# Page Structure or template design under pages category

**URL:** <https://forum.builder.io/t/page-structure-or-template-design-under-pages-category/15845>\
**Category:** General\
**Tags:** visual-editor, styling\
**Created:** [October 8, 2025, 2:35pm UTC](https://forum.builder.io/t/page-structure-or-template-design-under-pages-category/15845 "2025-10-08T14:35:24Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![apatil](https://avatars.discourse-cdn.com/v4/letter/a/839c29/32.png) [@apatil](https://forum.builder.io/u/apatil)\
**Post date:** [October 8, 2025, 2:35pm UTC](https://forum.builder.io/t/page-structure-or-template-design-under-pages-category/15845/1 "2025-10-08T14:35:24Z")

</div>

I want to create a Page template in one particular format for consistent page design under page category(eg- secondary page, blogs, home page, landing page etc). is there any way to follow the same design or declare a design once use it every time whenever i want to add something under particular page category.  
Creating symbol is the one way but is there any other way to achieve this using Builder’s functionality without using Visual Editor.

---

<div class="post-metadata">

**Author:** ![sheema](https://avatars.discourse-cdn.com/v4/letter/s/e19adc/32.png) [@sheema](https://forum.builder.io/u/sheema)\
**Post date:** [October 17, 2025, 9:16am UTC](https://forum.builder.io/t/page-structure-or-template-design-under-pages-category/15845/2 "2025-10-17T09:16:29Z")

</div>

Hi @apatil , Yes, you can maintain consistent layouts across different page categories (like “Secondary Pages”, “Blogs”, or “Landing Pages”) without using Symbols or the Visual Editor.

Here are a few Builder-native approaches you can use depending on how your site is set up:

**Option 1: Use a Template Component in Code**

You can define a reusable layout component in your codebase and programmatically map it to Builder pages.

1. Create a layout component, for example `SecondaryPageLayout.tsx`:

2. When fetching Builder content, choose which layout to render based on a **page type field** (like `data.pageType`) or the **URL pattern** :

You define your layout structure once in React (or your preferred framework) and reuse it for all pages of that category — no need to recreate the design each time in the Visual Editor.

You can refer to Builder’s [Developer documentation](https://www.builder.io/c/docs/integrate-section-building) for details on fetching and rendering Builder content in code.

**Option 2: Use a Separate Model per Page Type**

Another approach is to create separate [models](https://www.builder.io/c/docs/models-pages#create-a-page-model) for each page category (like `blog-page`, `landing-page`, or `secondary-page`) and define their default structure.

1. In Builder, go to **Models → Create new model** (e.g. `blog-page`).

2. Add default fields (hero, content blocks, CTAs, etc.).

3. In your code, fetch content using the model name:

It keeps each page type isolated and lets you set consistent default layouts for every new entry.

**Option 3: Use Custom Fields or Metadata**

You can add a custom field (like `layoutType`) in your Page model and render layouts conditionally in code based on that. This is a flexible option if you want all your pages under a single model.

Refer to the [Custom Fields guide](https://www.builder.io/c/docs/custom-fields) to see how to add and manage fields in your models.

* * *

If your goal is to have developer-defined, reusable layouts that editors can’t modify structurally, **Option 1 (Template Component)** is usually the cleanest and most maintainable approach.
