3 minute read

Lessons from CAIA Center

Building a well-structured website is more than just placing pages and posts—it’s about creating a logical framework that makes content easy to navigate, expand, and maintain. This post breaks down how we approached the CAIA Center’s architecture and provides a step-by-step guide for structuring your own site, especially when using Jekyll or other static site generators.

1. Why Structure Matters

Many projects start small and grow organically, but without a proper content hierarchy, websites can quickly become a mess. A clear structure helps:

  • Ensure scalability as new content is added.
  • Make navigation intuitive for users.
  • Keep the backend organized, reducing maintenance headaches.
  • Improve SEO & accessibility by maintaining a logical URL structure.

At CAIA Center, we followed a structured topic-based approach that fits within Jekyll’s architecture while maintaining flexibility for growth.

2. Defining What You Want to Display

Before mapping out the technical structure, you need to ask:

  1. What kind of content will the site feature?
    • Is it primarily blog posts, reference material, project pages, or a mix?
  2. How many categories & topics make sense?
    • Too few = content becomes too broad.
    • Too many = navigation gets overwhelming.
  3. How will users navigate between sections?
    • Will they use a sidebar, a breadcrumb system, or a homepage overview?

For CAIA Center, we structured content into four main areas:

  • Projects (Development & research logs)
  • Research (AI concepts, models, and theory)
  • Advocacy (Laws, regulations, and ethics)
  • About (Team, blog, and general info)

3. Understanding Data Types: Posts vs. Pages

Jekyll offers two primary types of content:

📌 Posts (_posts/ folder) – Time-based content

  • Automatically sorted by date.
  • Best for blogs, logs, and news.
  • Uses filename format: YYYY-MM-DD-title.md.

📌 Pages (_pages/ folder or root) – Static content

  • Manually structured.
  • Best for about pages, documentation, or project descriptions.
  • Doesn’t follow a date-based structure.

🔹 Why we chose posts for most content: For CAIA Center, even development logs and research articles are stored as posts, because:

  • Sorting by date ensures latest research is always surfaced.
  • Tags & categories make cross-linking more dynamic.
  • Easier to integrate with Jekyll’s built-in navigation features.

4. Mapping the Structure into Jekyll’s System

Once the content needs were clear, we designed the URL and category structure:

🔹 URL Format:

caia.center/<topic>/<subtopic>/<information>

Or in Jeckyll's terms:

caia.center/<category 1>/<category 2>/<post>

that translate to the post's frotmatter:

categories: category 1, category 2
permalink: /projects/caia-center-development/:title/

🔹 Jekyll Folder Structure:

caia.center/
│── _posts/              # Blog, research, and logs (date-based)
│── _pages/              # Static pages
│── _categories/         # Category index (if using collections)
│── assets/              # Images, styles, and scripts
│── _includes/           # Reusable components (navbars, footers, etc.)
│── _layouts/            # Page layouts
│── _config.yml          # Jekyll site settings

🔹 Example Post Organization:

caia.center/projects/caia-center-development/the-birth-of-caia/

Maps to:

_posts/projects/caia-center-development/2025-02-15-the-birth-of-caia.md

5. Configuring Jekyll for This Structure

To make Jekyll handle this layout properly, we configured _config.yml:

permalink: /:categories/:title/
categories: [projects, research, advocacy, about]
collections:
  pages:
    output: true
    permalink: /:path/

🔹 This setup ensures:

  • Posts follow the category-based URL structure.
  • Collections allow us to manage static pages separately.
  • The site remains dynamic and scalable.

6. Final Thoughts: Structuring for the Future

A well-designed website architecture helps you avoid chaotic content sprawl and makes adding new content seamless. When planning your own site, remember to: 1️⃣ Decide what content you need (topics & categories). 2️⃣ Choose between posts & pages based on time relevance. 3️⃣ Map out a logical URL structure for easy navigation. 4️⃣ Configure Jekyll accordingly to keep things organized.

This structured approach keeps your content scalable, maintainable, and user-friendly—whether you’re building a small blog or a large knowledge hub like CAIA Center. 🚀

📢 Need help structuring your Jekyll site? Let us know in the comments! 😃

Updated: