back to projects

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.

NestJSTypeScriptPythonFastAPINext.jsPostgreSQLRedisBullMQMCPClerkDockerCoolify

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.