Youth Political Times
Technical lead for a student publication site with 25+ articles from 10+ writers.
2024 · Web · Archived
- @youthpoliticaltimes

Stack
Stack: React · DreamHost · Markdown · Metadata
The editorial team handled the articles and political positions; I built the pipeline. The site had to render what the writers turned in without me touching the codebase for every new piece.
Log
First — the pitch
Reagan pitched it: a youth political publication, no adult layer in between, written by high schoolers for whoever wanted to read them. He had the editors and the writers lined up; I had React. We split the org chart at the top — Editor-in-Chief and CTO — and started before either of us thought too hard about it.
Mission and the count
The editorial team chose the topics and wrote the articles; I built the platform. By the time we ran the numbers it was over twenty-five articles and ten or so individual writers, and both kept climbing.
Tech
React for the front end, DreamHost for the host. Both because they were the smallest things I already knew how to deploy. Pretty standard, pretty straightforward — that was the appeal.

What I already knew how to deploy. The cascade
Reagan as Editor-in-Chief out of St. Mark's; me as CTO. Managing Editors above Section Editors above Writers, and the writers stretched across multiple Dallas-area private schools and one in New York. The submission pipeline was Reagan's hand — pieces came in, approvals went out.
meta.json + content.md
Each article became a folder. meta.json carried title, subtitle, author, date, tags, and image refs; content.md carried the prose with inline image-N references; an images directory sat alongside. The shape of meta.json became the shape of the site — what the homepage could sort by, what the article page could render.
pages, components, public
Project tree was the React standard — pages/ for Home, Article, About; components/ for the reusable UI; public/articles/ for the content folders. One helper called loadArticles did the work for everything: walk the local slugs in parallel, pull each meta.json, hydrate it with the markdown body, return the array. Home, search, filter, and the article page all called the same function.
@youthpoliticaltimes
Spun up an Instagram for distribution. The plan after that was direct submission with an editor pipeline behind it; I never built the submission flow.

Distribution layer.
Result
25+ articles, 10+ writers
What I learned
Most things I'd built before this lived in a folder only I opened — code as a private object. YPT was the first time I shipped a system whose job was to carry other people's work, and the test stopped being whether I liked it and started being whether the writers kept showing up. The other half of the lesson was that a content schema is a kind of information architecture: meta.json was four or five fields long, and those fields decided what the homepage could sort by, what search could match, what the article page could render. The site was the schema.