this
How this site was built, the architecture behind it, and why it exists.
01 Architecture & Systems
Built as a Turborepo monorepo managed by Bun. This ensures fast execution and keeps the frontend, CMS, and API tightly coupled for rapid iteration.
- ↳Go API (Echo): The entire backend runs on Go. I chose this to showcase my comfort with strictly typed, compiled languages and to benefit from its speed and concurrency model. It connects to PostgreSQL (via pgx v5) and uses Redis for JWT refresh rotation.
- ↳Custom WebSockets Layer: Instead of relying on a managed service like Convex (which I use frequently), I built a raw Server-Sent Events / WebSockets layer in Go. I wanted updates made in the CMS to instantly reflect on the public site, while proving I can build real-time infrastructure at a low level.
- ↳Next.js App Router: The public-facing site. It consumes the Go REST API, handles caching and ISR, and integrates with PostHog for product analytics and Resend for communications.
Thoughtful Considerations
Is exposing my entire architecture, API routes, and database schema a smart security move? Probably not. It gives potential attackers a literal roadmap of the system. But whatever. The API is secured with strict JWT HTTP-only cookies, password hashing (bcrypt), and proper origin policies. I value transparency and demonstration of skill more than security through obscurity. Well, only in this case. 😂
02 API & Routing Design
The Go API strictly separates concerns into handlers, db stores, and services. It provides standard REST endpoints consumed by both the Next.js frontend and the Svelte CMS.
Public Routes (v1/public)
Auth Routes (v1/auth)
Admin Routes (v1/admin)
03 Custom Embedded CMS
I built a custom Content Management System using Svelte 5 and Vite. I had never worked with Svelte prior to this, but picked it to demonstrate my ability to adopt new tools efficiently. It relies on hash-based routing to avoid history API conflicts, and the entire production build is embedded straight into the Go API binary using Go's embed package. No separate frontend hosting required for the admin panel.
04 Design System & Components
The aesthetic uses the Geist Sans font for structure and Geist Mono for technical details. Below are the actual components rendering dynamically.
Interaction & Layout Components
Demo Carousel
This is a really long experience description that demonstrates how the component truncates text by default but allows the user to expand it to read the full context. It's particularly useful for the experience timeline where brevity is preferred initially, but detail is available for those who are interested.
05 Sitemap
06 Database Schema
The raw tables powering the backend, extracted from the Go API's SQL migrations.
07 Inspirations
"Good artists copy, great artists steal." The aesthetic and interactive choices on this site were heavily influenced by several incredible designers and engineers:
- ↳Alex GilevI saw his posts (here and here) and really loved the simplicity. I tried implementing his style mainly in the CMS, but that minimalist DNA naturally carried over to the rest of the site.
- ↳Akshit VermaHis post made me realize I don't have to rely on standard static hyperlinks. It inspired me to come up with a more creative, interactive approach to inline references. I definitely borrowed his format for the main description section on the home page.
- ↳OnurI really loved his real-time CMS built with Convex and Next.js. It looks stunning. I wanted to replicate that vibe but build the real-time layer completely from scratch using standard WebSockets/SSE via Go.
- ↳NoahHe posted about his simple website and I loved that he just had a raw list of his languages and tools. That directly inspired the Stack page on this site, which I then iterated on to make my own.
- ↳Ben DavisHis video particularly convinced me to pick Svelte for my CMS. It got the ball over the line over HTMX, which Prime (@ThePrimeagen) almost swayed me into using.