Skip to content
New: Customize your theme with an AI assistant. Read the guide

Content Collections & Routes

Techlo’s content system is more advanced than a simple “one Markdown file equals one page” setup.

The project uses Astro content collections defined in:

  • src/content.config.ts

Main Collections

Techlo defines collections for:

  • pages
  • blog
  • services
  • projects
  • team
  • testimonials
  • sections
  • homepage, about-us, contact, faq, pricing, and author

Several collections are configurable through config.toml. For example:

[settings]
blogFolder = "blog"
servicesFolder = "services"
projectsFolder = "projects"

That means route behavior and content lookup depend partly on config, not just file names.

The Catch-All Static Page Route

Generic static pages are rendered by:

  • src/pages/[...lang]/[page].astro

That file:

  1. loads all entries from the pages collection
  2. creates static paths for each supported language
  3. uses SinglePageLayout.astro to render the body

So files like these:

  • src/content/pages/english/privacy-policy.md
  • src/content/pages/english/terms-conditions.md
  • src/content/pages/english/components.mdx

become localized routes through that catch-all page. In the Tina edition, the privacy policy and terms are .mdx. In the Sanity edition, they are Other pages in the Studio.

Adding An Entry

Add a file to the language folder of a collection, such as src/content/services/english/. In the Tina edition, use Create New. In the Sanity edition, use the + button.

A new entry with only a title won’t break the site, and it builds. Its card or page shows what you filled in, and images and other fields stay empty until you add them, so fill them in before you publish.

Reusable Sections Are Not Standalone Pages

Files in src/content/sections/<language>/ are usually not routed directly.

They are data sources for section components such as:

  • src/layouts/components/sections/AboutOne.astro
  • src/layouts/components/sections/ServicesSection.astro
  • src/layouts/components/sections/ProjectsSection.astro

This is why editing a section file changes multiple pages at once when that section is reused.

Route Generation Mental Model

Use this simple rule:

  • src/pages/... decides the route
  • src/content/... usually provides the data
  • src/layouts/components/... controls rendering

That separation is powerful, but it is also the main reason Techlo feels more “app-like” than a basic Markdown theme.

Type something to search...