<feed xmlns='http://www.w3.org/2005/Atom'>
<title>microblog/app/routes.ts, branch master</title>
<subtitle>Unnamed repository; edit this file 'description' to name the repository.
</subtitle>
<link rel='alternate' type='text/html' href='http://git.yyamashita.com/microblog/'/>
<entry>
<title>Move passkey login inline to home page, remove /auth/login route</title>
<updated>2026-06-20T00:51:12+00:00</updated>
<author>
<name>yyamashita</name>
<email>yyamashita@hetzner.yyamashita.com</email>
</author>
<published>2026-06-20T00:51:12+00:00</published>
<link rel='alternate' type='text/html' href='http://git.yyamashita.com/microblog/commit/?id=d7a8e8a42b752aeaa22315e96b7e5fb69811fdbc'/>
<id>d7a8e8a42b752aeaa22315e96b7e5fb69811fdbc</id>
<content type='text'>
Co-Authored-By: Claude Sonnet 4.6 &lt;noreply@anthropic.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Co-Authored-By: Claude Sonnet 4.6 &lt;noreply@anthropic.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix: move passkey API to dedicated route without React component</title>
<updated>2026-06-19T15:43:10+00:00</updated>
<author>
<name>yyamashita</name>
<email>yyamashita@hetzner.yyamashita.com</email>
</author>
<published>2026-06-19T15:43:10+00:00</published>
<link rel='alternate' type='text/html' href='http://git.yyamashita.com/microblog/commit/?id=abe09e38fb5dc5ede5abe715520c3e4006c66894'/>
<id>abe09e38fb5dc5ede5abe715520c3e4006c66894</id>
<content type='text'>
React Router v7 treats POST to routes with a default export as document
requests and returns HTML instead of the action's JSON response. Moving
the API logic to an action-only route (/api/passkey) fixes this.

Co-Authored-By: Claude Sonnet 4.6 &lt;noreply@anthropic.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
React Router v7 treats POST to routes with a default export as document
requests and returns HTML instead of the action's JSON response. Moving
the API logic to an action-only route (/api/passkey) fixes this.

Co-Authored-By: Claude Sonnet 4.6 &lt;noreply@anthropic.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Add white theme, post delete, and passkey authentication</title>
<updated>2026-06-19T10:45:41+00:00</updated>
<author>
<name>yyamashita</name>
<email>yyamashita@hetzner.yyamashita.com</email>
</author>
<published>2026-06-19T10:45:41+00:00</published>
<link rel='alternate' type='text/html' href='http://git.yyamashita.com/microblog/commit/?id=cba06f7e23417a9aef6c15ae26715385feb225ba'/>
<id>cba06f7e23417a9aef6c15ae26715385feb225ba</id>
<content type='text'>
- Rewrite CSS to light/white theme
- Add delete button (auth-gated) with confirm dialog
- Add passkey register/login/logout routes via @simplewebauthn
- Gate compose form and delete behind session authentication
- Add credentials table to SQLite schema
- Add SESSION_SECRET and WebAuthn env vars to docker-compose

Co-Authored-By: Claude Sonnet 4.6 &lt;noreply@anthropic.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
- Rewrite CSS to light/white theme
- Add delete button (auth-gated) with confirm dialog
- Add passkey register/login/logout routes via @simplewebauthn
- Gate compose form and delete behind session authentication
- Add credentials table to SQLite schema
- Add SESSION_SECRET and WebAuthn env vars to docker-compose

Co-Authored-By: Claude Sonnet 4.6 &lt;noreply@anthropic.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Initial implementation of microblog</title>
<updated>2026-06-19T06:18:55+00:00</updated>
<author>
<name>yyamashita</name>
<email>yyamashita@hetzner.yyamashita.com</email>
</author>
<published>2026-06-19T06:18:55+00:00</published>
<link rel='alternate' type='text/html' href='http://git.yyamashita.com/microblog/commit/?id=30f24e137ee2d1acec11a0da61e134f512ee02dd'/>
<id>30f24e137ee2d1acec11a0da61e134f512ee02dd</id>
<content type='text'>
Markdown-based personal microblog with REST API.
XSS protection via sanitize-html on server-side markdown rendering.

Co-Authored-By: Claude Sonnet 4.6 &lt;noreply@anthropic.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Markdown-based personal microblog with REST API.
XSS protection via sanitize-html on server-side markdown rendering.

Co-Authored-By: Claude Sonnet 4.6 &lt;noreply@anthropic.com&gt;
</pre>
</div>
</content>
</entry>
</feed>
