The redesign, on the site's own content and hosting - #171
Open
barisgirismen wants to merge 1 commit into
Open
Conversation
The redesign of omarchy.org, as this repository. Nothing about how the site is written, generated or served changes: a post is still a Markdown file rendered by bin/build-news and committed with the feed, the manual is still rendered from the Omarchy repository and committed, a theme is still a pull request that edits themes/index.html and adds a screenshot, and GitHub Pages still uploads a folder on every push to master. The app renders that folder from the files already here, and pages.yml gains one build step in front of the upload it already did. Every route is rendered at build time. Server functions run at build time and leave their results as static files, so nothing runs on a server. The plugin listing arrives with its default page rendered and does every filter, sort and page in the browser, over a trimmed catalogue fetched once. All 2,186 plugin pages are rendered by name. A /404/ route is written to 404.html, the file Pages serves for an unknown address. The site's own URLs are kept: a trailing slash on every page, news at its dated address. The feed, the installer scripts, the security contact, the assets, the images beside posts and chapters, and the pages not yet redesigned are laid over the output byte for byte. Two addresses folded into other pages, /manual/toc/ and /security/credits/, get redirect pages the way /discord/ always has. A scheduled workflow refreshes the plugin catalogue from the marketplace repository and commits it. Proven cold, from a fresh checkout with no environment set: npm ci, npm run build, npm run parity. Every one of the 571 addresses the site serves today answers from the build, and 480 of 481 files pass through byte-identical; the one that differs is 404.html, on purpose. Nothing is removed. The generated pages and the hand-written ones stay committed; the build reads them. Retiring any of it is a separate decision.
barisgirismen
force-pushed
the
redesign
branch
from
September 3, 2026 21:55
4a1d76e to
fa0ac56
Compare
barisgirismen
marked this pull request as ready for review
September 3, 2026 22:20
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
omarchy-redesign-demo.mp4
Try it: https://omarchy.baris.sh (the same static output, served for review)
The redesign, as this repository
This is the redesign of omarchy.org, brought into this repository on its own content, its own build, and its own hosting. Nothing about how the site is written, generated or deployed changes. The app renders the site into a folder of static files from the files already here, and GitHub Pages uploads that folder the way it uploads the repository today.
What stays exactly as it is
master.pages.ymlgains one build step in front of the upload it already does; the upload now points at the built folder.content/news/, rendered bybin/build-news, committed with the feed. The build reads what that produces.bin/build-manual, committed. The build reads those pages.themes/index.htmland adds a screenshot. The build parses that file.What the pull request changes
Two of this repository's files:
.github/workflows/pages.ymlgains the Node and Python setup,npm ciandnpm run buildin front of the upload it already does, and uploadsdist/clientinstead of the repository root..gitignoregains the build's own directories, after its existing lines.What it adds
src/(75 files) andpublic/(29 files).scripts/: the importer that reads this repository's rendered manual, news, pages and teams into JSON (port_content.py); the refresh of the plugin catalogue, similarity map and release version (refresh-data.mjs); the step that lays this repository's files over the rendered output (assemble-static.mjs, withsite-passthrough.mjsas the one list of what those files are); the parity audit (parity.py); and two one-off generators for the not-found glyph and the social-card image, whose outputs are already committed.package.jsonand its lockfile,vite.config.ts,tsconfig.json,tsr.config.json,components.json, the eslint and prettier configs..github/workflows/refresh-content.yml: a scheduled refresh of the plugin catalogue and the release version, committed, and deployed by the ordinary path.Nothing of this repository's own is removed or rewritten: not
bin/, nottemplates/, notcontent/, not the generated pages, not the hand-written ones. The build reads them where they are. Retiring any of that is a separate decision.Proof
npm run paritywalks this repository for everything Pages serves, everyindex.htmlas its directory's address and every other file as its own path, and requests each from the built folder.404.html, replaced on purpose./manual/toc/and/security/credits/, get redirect pages, the same way/discord/has always worked.Verified from a cold checkout with no environment set:
npm ci,npm run build,npm run parity.How the site is built now
Every route is rendered at build time. Server functions run at build time and leave their results as static files, so nothing runs on a server; a client-side navigation reads a file. The plugin listing, whose search box has unbounded inputs, arrives with the default listing rendered and does every filter, sort and page in the browser over a trimmed catalogue (0.9MB, about 200KB on the wire). All 2,186 plugin pages are rendered. A
/404/route is written to404.html, the file Pages serves for an unknown address.Authors never need Node. Only the deploy runs the build.
Three things not decided here
/screensaver/,/discord/,/patrons/badges/. They are copied through unchanged, and can follow in their own pull request.