Content Collections & Routes
Techbyte’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
Techbyte defines collections for:
pagesblogservicesprojectsteamtestimonialsectionshomepage- and more (about-us, contact, faq, pricing, author)
Several collections are configurable through config.toml:
[settings] blogFolder = "blog" serviceFolder = "services" projectsFolder = "projects" testimonialFolder = "testimonial" teamFolder = "team"That means route behavior and content lookup depend partly on config, not just file names. Note the singular key names: serviceFolder and testimonialFolder.
The Catch-All Static Page Route
Generic static pages are rendered by:
src/pages/[...lang]/[page].astro
That file:
- loads all entries from the
pagescollection - creates static paths for each supported language
- uses
SinglePageLayout.astroto render the body
So files like these:
src/content/pages/english/privacy-policy.mdsrc/content/pages/english/terms-conditions.mdsrc/content/pages/english/components.mdx
become localized routes through that catch-all page.
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/HeroSection.astrosrc/layouts/components/sections/AboutSection.astrosrc/layouts/components/sections/ServicesSection.astro
This is why editing a section file changes multiple pages at once when that section is reused. Most sections also have a -two variant (e.g. about-section-two.md) consumed by Home 02.
Route Generation Mental Model
Use this simple rule:
src/pages/...decides the routesrc/content/...usually provides the datasrc/layouts/components/...controls rendering
That separation is powerful, but it is also the main reason Techbyte feels more “app-like” than a basic Markdown theme.