← Projects

Youth Political Times

Technical lead for a student publication site with 25+ articles from 10+ writers.

2024 · Web · Archived

  • @youthpoliticaltimes
Youth Political Times homepage — date bar and About/Search links above a large gothic masthead, subtitle reading 'Redefining Political Discourse Through Youth Voices,' topic navigation rows, and main story cards for Kashmir and Brexit
Youth voices, behind a 19th-century nameplate.

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

  1. 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.

  2. 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.

  3. 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.

    Tech slide for Youth Political Times — black gothic 'Tech' title over large React atom logo, DreamHost logo, and the word React on a pale blue background
    What I already knew how to deploy.
  4. 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.

  5. 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.

  6. 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.

  7. @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.

    @youthpoliticaltimes Instagram profile — dark-mode mobile profile with YPT logo avatar, 11 posts, 33 followers, bio linking yptimes.org, and a grid of article-promo thumbnails for economics, Brexit, Kashmir, Trump, Ukraine, and culture stories
    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.