Building an OS-Style Portfolio
Building an OS-Style Portfolio
Most developer portfolios are simple scroll-based pages. I wanted something different — something that demonstrates technical ability through the experience itself.
The Idea
What if my portfolio was the proof of skill? Instead of telling people I can build complex UIs, I'd show them by making them interact with one.
A desktop operating system has everything:
- Window management — drag, resize, minimize, maximize, focus
- Multiple apps — each showcasing different content
- A terminal — the ultimate developer flex
- Smooth animations — 60fps Canvas rendering
Architecture Decisions
Why Go for the Backend?
The backend serves all portfolio content via API. This means if someone views the page source, they find an empty shell. The actual content — my resume, projects, blog posts — only exists on the server.
Go was perfect because:
- Single binary deployment —
scpone file to the server - 5MB RAM idle — runs on the cheapest hosting
- Zero external services — SQLite embedded, no Docker needed
- Standard library HTTP — no framework overhead
Why No React?
React solves team coordination problems. This is a solo project where demonstrating fundamentals matters more than demonstrating framework familiarity.
Every line of JavaScript is intentional. The window manager, the dock magnification, the event handling — I understand all of it because I wrote all of it.
What I Learned
- Canvas is underrated for web UIs. The wallpaper animation runs at 60fps with minimal code.
- Go's standard library is incredibly capable. HTTP server, JSON handling, file serving — all built in.
- Constraints breed creativity. "No frameworks" forced better architecture decisions.
The entire project is about 400 lines of Go and one HTML file.