My website
Personal portfolio built with Astro and Tailwind CSS, with server-rendered themes.
Astro
Tailwind CSS
Personal portfolio built with Astro and Tailwind CSS, with server-rendered themes.
Astro
Tailwind CSS
Full-stack expense tracker with search, filters and secure sign-in. Expenses are stored in PostgreSQL and managed through a separate API using ConnectRPC and Protobuf.
Next.js
TypeScript
React Query
Fastify
ConnectRPC
PostgreSQL
AI chat application with streaming responses and a built-in demo mode. Live responses from the OpenAI Responses API can be enabled with a server-side API key.
Next.js
TypeScript
OpenAI API
Vitest