Non-Profit / CMS

Debate House
CMS

The content platform behind the Debate House public website. Built on Statamic 5 with a flat-file architecture — no database for content. 9 collections, 25+ reusable content blocks, bilingual Greek/English support, and a control panel that lets the team publish blog posts, manage events, curate people profiles, and maintain a video library without touching code.

Status
Production
Year
2024 – Present
Role
Technology Director — Architecture, Development, Ops
Org
Debate House (Non-Profit, Greece)
Tech Stack
Statamic 5 Laravel 12 Antlers Blade TailwindCSS 4 Bootstrap Vite Flat-File
Debate House — public website

Context

The Challenge

Debate House needed a public website that non-technical team members could update on their own — publishing blog posts, creating event pages, adding speaker profiles, and curating a video library from their YouTube channel. Content needed to work in both Greek and English, and the site had to be fast, SEO-friendly, and easy to extend with new page layouts.

The Approach

Statamic 5 as a flat-file CMS on top of Laravel. Content is stored as YAML and Markdown in Git — no database dependency for content, version-controlled by default. A replicator-based page builder with 25+ content blocks lets the team assemble flexible layouts. Blueprints enforce consistent structure across collections, and every entry gets standardized SEO fields out of the box.

Collections

9 flat-file
content collections

$ ls content/collections/
blog/
Posts with categories, images, SEO. Markdown body with rich editor.
events/
Event listings with dates, speakers, locations, and registration links.
pages/
Dynamic pages built with 25+ replicator content blocks.
video_library/
YouTube videos with auto-synced view/like/comment stats every 15 min.
people/
Speakers, leadership, advisors, and volunteers with bios and photos.
partners/
Partner organizations with logos and descriptions.
testimonials/
Community testimonials displayed across pages.
faq/
Frequently asked questions, reusable across sections.
member_announcements/
Private posts visible only to active members.

Page Builder

25+ replicator
content blocks

$ ls resources/views/sets/
hero mission testimonials faq newsletter video_grid people_grid partners_grid events_list blog_feed cta_banner rich_text image_gallery stats_counter timeline contact_form embed spacer divider + more

Each block is a reusable fieldset with its own Antlers template. The team drags and drops blocks in the Statamic control panel to assemble page layouts — no developer needed for content changes.

Features

01

Flat-File Architecture

Content stored as YAML + Markdown in Git. No database dependency, version-controlled by default, trivial to back up and deploy.

02

Bilingual Support

Full Greek and English content with language switcher. Every collection entry supports both locales. Default locale: Greek.

03

SEO Built-In

Every collection has standardized SEO fields — meta title, description, OG image, canonical URL, noindex toggle. Plus auto-generated sitemap.

04

Video Library

YouTube videos linked by ID with auto-synced statistics (views, likes, comments) every 15 minutes via background jobs.

05

Taxonomy System

Post categories, video categories, and general categories. Content can be filtered and organized across collections.

06

Global Settings

Site-wide config managed from the CP — social links, analytics codes, footer content, follower counts. No code deploys for content changes.

Architecture

$ cat architecture.yml
Statamic 5
Flat-file CMS
Antlers
Templating engine
YAML + MD
Content storage
Vite + Tailwind
Frontend build
YouTube API
Video stats sync
Sitemap
Auto-generated
Blueprints
Schema enforcement

Gallery