Hello World, Again
Rebuilding my portfolio with TanStack Start, Bun, and zero animation libraries — and why I keep coming back to markdown.
Welcome to the rebuilt portfolio. This site is now powered by TanStack Start running on Bun, deployed to Cloudflare Workers — fully server-rendered, yet light enough to stay on the free tier.
Why rebuild?
The old site was a Next.js app with a full CMS behind it. It worked, but most of that machinery went unused. This time around:
- SSR-first — every page renders per request
- Markdown blog — you are reading post number one
- No database (yet) — content lives in git
How this post works
It's a plain markdown file sitting in src/content/blog/:
const posts = defineCollection({
name: 'posts',
directory: 'src/content/blog',
})
At build time it gets validated against a schema, transformed into typed data, and rendered through React components. No CMS, no database round-trips.
Writing should feel like committing code. If publishing a post takes more than
git push, the tooling is wrong.
What stayed from the old design
The monochrome zinc palette, the Kalam handwriting headings, the particle field, and the noise-blob profile photo — all ported almost verbatim. Some things are worth keeping.
More soon. ☕