A small website is enough
Personal sites do not need to be applications. This one sends a complete HTML document from a small Deno server. The browser receives HTML, CSS, and no client-side JavaScript.
Keep the stack visible
A request selects a TSX component, the component describes the page, and the renderer turns it into a standard Response. There is very little machinery between the URL and the document.
const pages = new Map([
["/", HomePage],
["/dev", DevPage],
]);
const Page = pages.get(pathname);
return Page ? html(<Page />) : new Response("Not found", { status: 404 });
Small is a feature
A small stack is easier to understand, easier to change, and easier to keep online. Add complexity when the site earns it—not before.