Estimating and planning a website project can be daunting, especially when it comes to breaking down the work into clear, actionable tasks for developers. To streamline this process, it’s essential to have a solid grasp of the foundational elements of a website theme: components, widgets, and templates. These elements not only define how content is presented but also play a critical role in shaping the user experience and overall site functionality.
By understanding how components serve as the building blocks for various content types, how widgets offer flexibility in page design, and how templates organize these elements into cohesive page layouts, you can more accurately estimate project scope and plan your implementation strategy. This knowledge will help you allocate resources effectively, prioritize tasks, and ensure that your website project progresses smoothly from conception to completion.
In this blog post, we’ll explore these key elements in detail, offering insights on how to leverage them for efficient project planning and execution. Whether you’re scoping out a new site or re-platforming an existing one, mastering these concepts will empower you to break down complex projects into manageable, actionable steps for your development team.
Elements of a theme
Component: A component is a reusable, self-contained building block which defines the design and functionality of a specific type of content.
Widget: A widget is a special type of type flexible component which can be added, removed, and reordered on a page.
Template: A template defines the overall structure of a page by specifying the type and order of components which appear on the page.
Components
A theme will include multiple components which present different types of content.
Examples:
- A “product card” component might display a product’s image, title, price, and include a buy button that allows users to add the product directly to their cart.
- A “hero banner” component might display a large, customizable image, a customizable heading, and a customizable link which can navigate to a customizable URL.
Generally, each horizontal section of a page translates to a component. In some cases, components may contain other components.
Example:
- A “product listing carousel” component might display a list of products as product cards, along customizable heading, a customizable link to a customizable URL, and slider functionality which is enabled when more than three products are displayed.
While the product card defines how a single product’s data is displayed, the product carousel defines how multiple products are displayed. In this case, we’re reusing the product card component to create a consistent user experience.
Templates
As we’ve already discussed, sections of a page generally translate to components. Different templates contain different sections and therefore different components.

a few common templates that exist on e-commerce websites, along with the components which are commonly found in these templates.
A “page” is a singular instance of a template, so that there may be multiple product pages which each share a single product template. An additional product template could display different components in a different order.
Widgets & Widget Regions

Usually, themes include some number of static components which appear in the same place on every page using the template. While some components may appear only in one template, like the product buy box on the product detail page template, other components are designed to be more flexible, like the hero banner on the homepage. These types of flexible content components are called widgets, and widgets can be added, removed, and reordered on a page. Instead of defining static components, a widget region is added to the template which allows widgets to be added into that section of the page in any order.
How to Estimate Effectively Using Components & Templates
When scoping a website re-platforming project, you’ll need to estimate how many components need to be built. A component inventory of the existing website can help determine how many components are required. If the goal is to simplify or create a more unified user experience, perhaps fewer components will be required. If new content or functionality is being added, or if more flexibility and presentation is desired, then perhaps more components will be required. In any case, understanding the various types of content and how that content is presented on the existing site will provide a more accurate estimate for the number of components that are required.