Personal Developer Platform
Self-hosted platform behind this site: portfolio and CMS, a life-tracking app, and an MCP server that lets Claude read and edit both.
Highlights
- ▸ MCP server (aleph) with typed tools so Claude can read and edit portfolio and Forge data
- ▸ FastAPI LLM service with Groq and Gemini fallback chains and pydantic-typed tool inputs and outputs
- ▸ Custom OAuth 2.0 authorization server built from the RFCs (DCR, PKCE S256, revocation, discovery), later retired for Clerk
- ▸ BullMQ repeatable jobs for live LeetCode stats
- ▸ Docker images built in GitHub Actions, pushed to GHCR and deployed to Coolify over Tailscale
The platform this site runs on: a Next.js portfolio with an admin CMS, Forge (a personal life-tracking app), and aleph, an MCP server that lets Claude read and update both.
Backend: NestJS services for the portfolio and Forge, plus a Python FastAPI service that handles all LLM work with fallback chains across Groq and Gemini. aleph exposes typed MCP tools and calls the services' internal APIs with service keys.
Auth: first built as a custom OAuth 2.0 authorization server from the RFCs (Dynamic Client Registration, PKCE S256, revocation, discovery, single-use auth codes), later retired in favour of Clerk.
Infrastructure: schema-isolated Postgres and key-prefixed Redis shared across services, BullMQ repeatable jobs, and Docker images built in GitHub Actions and deployed to a self-managed Coolify VPS over Tailscale.