<feed xmlns='http://www.w3.org/2005/Atom'>
<title>cgithub.git/.gitignore, branch main</title>
<subtitle>GitHub alternative frontend</subtitle>
<id>http://git.mou.fo/2026/cgithub.git/atom/.gitignore?h=main</id>
<link rel='self' href='http://git.mou.fo/2026/cgithub.git/atom/.gitignore?h=main'/>
<link rel='alternate' type='text/html' href='http://git.mou.fo/2026/cgithub.git/'/>
<updated>2026-09-04T03:05:33Z</updated>
<entry>
<title>Clean up renderer, redirects, and build commit</title>
<updated>2026-09-04T03:05:33Z</updated>
<author>
<name>Joe Mou</name>
<email>dev@mou.fo</email>
</author>
<published>2026-09-03T19:07:25Z</published>
<link rel='alternate' type='text/html' href='http://git.mou.fo/2026/cgithub.git/commit/?id=b9fb8851bb869a27048e02a51b28ef3aaffdd471'/>
<id>urn:sha1:b9fb8851bb869a27048e02a51b28ef3aaffdd471</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Show the build's commit in the page footer</title>
<updated>2026-08-11T12:38:30Z</updated>
<author>
<name>Joe Mou</name>
<email>dev@mou.fo</email>
</author>
<published>2026-08-11T12:37:25Z</published>
<link rel='alternate' type='text/html' href='http://git.mou.fo/2026/cgithub.git/commit/?id=d76a46b37b12823b5b3976d129c2d4b672a99693'/>
<id>urn:sha1:d76a46b37b12823b5b3976d129c2d4b672a99693</id>
<content type='text'>
Workers can't shell out at request time, so the commit has to be baked
in before wrangler bundles the sources. compile-views.ts grows a second
job and becomes scripts/build.ts: alongside the precompiled views it
writes src/commit.generated.ts with `git describe --tags --always
--dirty`, which yields a bare short hash until the repo is tagged and
marks builds made from an unclean working copy.

Co-Authored-By: Claude Opus 5 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>Deploy only to Cloudflare Workers</title>
<updated>2026-08-11T12:30:10Z</updated>
<author>
<name>Joe Mou</name>
<email>dev@mou.fo</email>
</author>
<published>2026-08-11T12:27:26Z</published>
<link rel='alternate' type='text/html' href='http://git.mou.fo/2026/cgithub.git/commit/?id=de557ad66466261ae578ea9342f32d78a139fbc9'/>
<id>urn:sha1:de557ad66466261ae578ea9342f32d78a139fbc9</id>
<content type='text'>
The Node server entry, esbuild bundle, and Makefile rsync/systemd deploy
are gone; wrangler dev and wrangler deploy are the only paths now, so the
dev:cf/deploy:cf scripts take over the plain dev/deploy names. @hono/
node-server and esbuild drop out with src/index.ts, and the README's
systemd socket and nginx snippets go with them.

Co-Authored-By: Claude Opus 5 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<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>
<entry>
<title>Use Node native TypeScript elision</title>
<updated>2026-01-26T22:23:43Z</updated>
<author>
<name>Joe Mou</name>
<email>dev@mou.fo</email>
</author>
<published>2026-01-26T20:55:52Z</published>
<link rel='alternate' type='text/html' href='http://git.mou.fo/2026/cgithub.git/commit/?id=967fb03d4014f862353cb110eefbede78304045c'/>
<id>urn:sha1:967fb03d4014f862353cb110eefbede78304045c</id>
<content type='text'>
See https://nodejs.org/api/typescript.html#type-stripping
</content>
</entry>
<entry>
<title>esbuild to bundle for deployment</title>
<updated>2026-01-25T22:46:15Z</updated>
<author>
<name>Joe Mou</name>
<email>dev@mou.fo</email>
</author>
<published>2026-01-25T18:16:25Z</published>
<link rel='alternate' type='text/html' href='http://git.mou.fo/2026/cgithub.git/commit/?id=8547b87b120101803a989ac768e3ffba4785c451'/>
<id>urn:sha1:8547b87b120101803a989ac768e3ffba4785c451</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Simple web server for viewing trees</title>
<updated>2026-01-23T05:54:48Z</updated>
<author>
<name>Joe Mou</name>
<email>dev@mou.fo</email>
</author>
<published>2026-01-22T18:27:36Z</published>
<link rel='alternate' type='text/html' href='http://git.mou.fo/2026/cgithub.git/commit/?id=4bbc0c19076dc8490c451a1f535f3e018fb8dda3'/>
<id>urn:sha1:4bbc0c19076dc8490c451a1f535f3e018fb8dda3</id>
<content type='text'>
</content>
</entry>
</feed>
