Start with the job

Define what the feature needs to do, who uses it, and which data it touches. That answer matters more than the initial implementation choice.

Keep business logic portable

A plugin can keep custom behavior independent from a theme. That is useful when the design changes but the workflow must remain.

Check the maintenance cost

Use an existing plugin when its behavior and support fit the job. Build custom code when the workflow is specific enough that general-purpose settings become a burden.

Have a website that could do more?

Get a free audit