Departed 2024
Youth Political Times
student journalism · Web app · Archived
[image: Youth Political Times homepage — large gothic Old English masthead reading 'Youth Political Times' across the top, three featured article cards in a row beneath with thumbnail images, headlines, and short subtitles]
Departure
Reagan Graeme from St. Mark's had the idea: a publication where high schoolers analyze political and social issues from their own vantage instead of borrowing an adult one. He had the editorial instinct and the network of writers; I had the React. Most things I'd shipped to that point lived only on my own machine — this was the first time the codebase had to carry someone else's editorial vision. Reagan took Editor-in-Chief, I took CTO, and React on DreamHost was the smallest stack that would get articles online by the end of the week.
Approach
- React
- DreamHost
- Markdown
- Metadata
Reagan owned editorial; I owned the pipeline. The site had to render whatever the writers turned in without me touching the codebase for every new piece.
Field 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
Platform for young people to publish on political and social issues — fresh-vantage analysis, civic engagement as the through-line. 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.
[image: Tech slide — large React atom logo and DreamHost logo placed side-by-side under a black gothic Old English 'Tech' header]
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. Settled around forty followers, which was more than the writer count alone could explain — actual outside readers had picked it up. The plan after that was direct submission with an editor pipeline behind it; I never built it.
[image: @youthpoliticaltimes Instagram profile — bio at the top with the gothic YPT mark, follower count around forty, grid of post thumbnails featuring political figures, headlines, and topical pull-quotes]
Distribution layer. YPT
[image: Closing slide — the letters 'YPT' centered alone on a blank white background in large black gothic Old English type]
Sign off.
From the gallery
[image: YPT team org chart — two portraits at the top labeled Reagan Graeme (Editor-in-Chief) and Josh (CTO), a row of silhouette tiles below for Managing Editors, then another row for Section Editors, then a wider row for Writers spread across multiple Dallas-area schools and one in New York]
[image: Article schema in practice — dark code editor on the left showing meta.json with title, subtitle, author, date, images, and tags fields; rendered article on the right on a white background titled 'How Did the Israel-Gaza Ceasefire Fail?' with author byline, date, and a header photo of Joe Biden shaking hands with Benjamin Netanyahu]
[image: VS Code file explorer pane — React project tree with pages/, components/, and public/ expanded; pages/ holds Home, Article, and About; public/articles/ holds one folder per slug, each containing its own meta.json, content.md, and images directory]
What I came back with
25+ articles, 10+ writers
@youthpoliticaltimes
Lesson from the terrain
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.