Josh Ramirez
← Back to the journal

Departed 2024

Youth Political Times

student journalism · Web app · Archived

Youth voices, behind a 19th-century nameplate.

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

  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

    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.

  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.

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

    Distribution layer.
  8. YPT

    Sign off.

From the gallery

Editor-in-Chief, CTO, and the cascade beneath them.
The schema, and the page that comes out of it.

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.