Flarestamina looked like three different products. The hub was black and orange with JetBrains Mono, the news section had its own palette, the account page was a fourth thing, and the tools each had their own language toggle that forgot what the last page knew. It worked. It just did not look like one thing built by one person.
This weekend it became one thing. Every page except the practice tests moved to a single design: white paper, Inter and IBM Plex Mono, a four-point spark, and a teal-to-fuchsia gradient rail as the only colour on the entire site.
The interesting part is what I threw away.
The design arrived as a compiled React bundle — 262 KB of JavaScript, 52 KB of CSS, and an index.html whose body was one empty div. No source in my workspace. Shipping that as the home page of a site that lives on search traffic would have meant two things: I could never edit the copy again without the original project, and Google would fetch a blank document and have to run a bundle to find out what the page says. So would a student on 3G in Namangan.
I rewrote it as one static HTML file. Same design — the cycling headline, the animated product mock, the colour wash on the mark, EN/UZ, light/dark. 54 KB instead of 315 KB, and I can change a sentence in ten seconds. The JSON-LD graph, the FAQ entities and the search action that the old page carried are all still in the markup where a crawler can see them without executing anything.
Then the other forty pages. Those share one stylesheet now —
/assets/paper.css, about 14 KB of tokens and components — and get their header and footer from a small Python shell so the chrome cannot drift apart again. The home page and the hub stay self-contained on purpose: they take the most traffic and are better off without a second blocking request.
Things I found while I was in there, which is really why you do this kind of pass:
A GitHub Action rebuilds the community article pages from Firestore on a schedule. It has its own copy of the templates. Two hours after I finished the migration it woke up and put the old design back on nine pages. Every future publish would have done the same. That is the kind of bug you only find by watching the site after you think you are done.
Three cited sources in the news section were 404. Every post there promises to link its official source, and three of those links had quietly moved. A promise you do not check is a promise you are not keeping.
The lightest grey in the palette failed WCAG AA for small text — 3.45:1 in light mode, 2.82:1 on dark surfaces. It was carrying every date, caption and table header on the site. Both themes got a new value.
The "Writing Lab" links across the site pointed at the form for submitting an article, not the Writing Lab. An old email sign-in page was still live, creating sessions the rest of the site did not recognise. The author pages had no heading element at all.
And the favicons and link previews did not change even though the files did — browsers cache favicons by URL and Telegram caches a card per image URL, so replacing the file changes nothing that anyone can see. Everything is versioned now.
None of this is glamorous. It is a weekend of reading your own site as if a stranger wrote it. But the version that exists now is the first one where every page agrees with every other page about what Flarestamina is.