arrow_back Back to Projects
EDITORIAL PLATFORM

An Editorial Platform with Four Interactive Islands

A static-first Astro site for Practical Apologetics — pairing dozens of pre-rendered pages and a typed content model with four self-contained React islands that ship in the same build, with no origin server behind any of it.

4
Interactive Islands
63
Markdown Articles
0
Backend Services
01 / Challenge

Editorial Depth Without a Backend

A serious apologetics site is expected to feel like a magazine — long-form articles, topic taxonomies, paginated indexes, an interactive resource library — and Practical Apologetics also wanted purpose-built tools layered on top: a mind map of evidence, a visualization of alleged Bible contradictions, a Greek-learning study app, and an interactive guide to AI principles drawn from Puritan thought.

The site needed to ship as a single static deploy — no origin server, no database, no scheduled jobs — while still supporting deep linking from editorial articles into the interactive visualizations, and a build-validated content model that authors could extend without ever touching a component file.

The visual register mattered just as much. Long-form serif typography, restrained color, generous whitespace — the platform needed to feel considered and editorial from the first scroll, not like a SaaS template dressed up with a header image.

02 / Solution

Static Pages + Interactive Islands, Same Build

description

Three Zod-Validated Collections

Articles, topics, and resources each have a typed schema enforced at build time. Optional frontmatter fields like an audio URL or a contradiction-map ID act as feature flags — adding a single line to a Markdown file mounts an audio player or a deep link without touching any component code.

widgets

Four Self-Contained React Islands

A radial-tree mind map, an SVG arc visualization of alleged contradictions, a spaced-repetition Koine Greek study app, and an interactive guide to Puritan AI principles. Each island is its own directory with its own state — none share runtime, none coordinate, all mount client-side only.

hub

Build-Time Taxonomy Graph

The topics page computes a topic-tag relationship graph at build — co-occurrences counted, primary topics assigned, top tags capped per topic — then ships the result as inline JSON to a hand-rolled canvas constellation. No runtime queries, just a deterministic graph the reader can explore.

Content Model

Three Collections, One Taxonomy

63
Articles
Markdown with typed frontmatter — series, tags, optional audio, and per-article opt-ins for islands
6
Topics
Bible, Theology, Philosophy, Culture, Science, World Religions — each with build-time tag aggregation
39
Resources
One polymorphic schema covering interactive tools, books, infographics, videos, and documents
03 / Results

What We Delivered

A platform engineered for editorial longevity — fast, maintainable, and fully static.

check_circle

78

Static HTML Pages

Articles, paginated indexes, topics, tags, series, resources, search shell, RSS, and sitemap — every route pre-rendered at build, served straight from the CDN.

check_circle

0

Backend Services

No origin server, no database, no API. Production traffic is static asset GETs and a lazy-loaded comment widget — everything else runs in the browser against build-time-baked data.

check_circle

4

React Islands

Mind map, contradictions chord, Koine SRS app, and Puritan principles — each mounted client-side only, with no shared state and no SSR friction to engineer around.

check_circle

Fuse

Build-Time Search Index

All three content collections compiled into a single search.json at build, fuzzy-matched in the browser by Fuse.js — a complete site search with no search backend.

check_circle

Sharp

Pre-Built Thumbnails

A prebuild step generates infographic thumbnails with mtime-based incremental caching — only changed sources get re-encoded, and the resource library references stable URLs.

check_circle

SPA

View-Transition Navigation

Astro's ClientRouter upgrades internal navigation to morph-style transitions, while every script registers cleanly on page-load and tears down on before-swap — no leaks across pages.

Technology Stack

Built With

rocket_launch Astro 5
bolt React 19
code TypeScript
palette Tailwind 3
hub ReactFlow 11
search Fuse.js + Sharp

Building a content platform that needs to last?

We design editorial systems with typed content models, fast static delivery, and the right interactive layers — built to ship and built to maintain.