<feed xmlns='http://www.w3.org/2005/Atom'>
<title>cgithub.git/public/static/icons/git-branch.svg, branch main</title>
<subtitle>GitHub alternative frontend</subtitle>
<id>http://git.mou.fo/2026/cgithub.git/atom/public/static/icons/git-branch.svg?h=main</id>
<link rel='self' href='http://git.mou.fo/2026/cgithub.git/atom/public/static/icons/git-branch.svg?h=main'/>
<link rel='alternate' type='text/html' href='http://git.mou.fo/2026/cgithub.git/'/>
<updated>2026-07-15T06:08:29Z</updated>
<entry>
<title>Add Cloudflare Workers deployment target</title>
<updated>2026-07-15T06:08:29Z</updated>
<author>
<name>Joe Mou</name>
<email>dev@mou.fo</email>
</author>
<published>2026-07-15T06:08:17Z</published>
<link rel='alternate' type='text/html' href='http://git.mou.fo/2026/cgithub.git/commit/?id=fb16dc2b017e339e6a36a89c9b5d8a830ce3a541'/>
<id>urn:sha1:fb16dc2b017e339e6a36a89c9b5d8a830ce3a541</id>
<content type='text'>
Split routes into a shared createApp() (src/app.ts) used by both the
Node entry (src/index.ts) and a new Workers entry (src/worker.ts).
Workers disallow runtime code generation, so scripts/compile-views.ts
precompiles the Eta templates into src/views.generated.ts and rendering
switches from renderAsync to the sync render. Static files move to
public/static so Workers Static Assets can serve them; the Node build
and serveStatic root are updated to match.

Deploy with pnpm run deploy:cf, local dev with pnpm run dev:cf.

Co-Authored-By: Claude Fable 5 &lt;noreply@anthropic.com&gt;
</content>
</entry>
</feed>
