A modern, self-hostable developer portfolio powered by a Go backend and React frontend (via Bun & Vite).
This project is optimized for performance, portability, and developer experience, using a clean architecture with declarative metadata and zero server-side JavaScript dependencies.
.
├── api # Backend API handlers
├── assets # Static assets (images, icons)
├── bin # Final built Go binary
├── client # Frontend React project (Bun + TypeScript)
├── cmd # Go server entry point
├── config # JSON-based configuration (server, client, metadata)
├── logger # Logging utility
├── middleware # Custom middleware (logger, crash recovery, etc.)
├── parser # HTML head metadata parser
├── types # Shared Go types
├── util # Utility helpers
- ✅ Pure Go HTTP server (no Node.js backend)
- ⚡ React + Bun frontend (blazing fast DX)
- 📦 Portable binary deployment (
bin/Portfolio-1.x.x) - 🔧 Configurable via JSON
- 🌍 Cloudflare Tunnel | AWS EC2 | Any VPS With Linux / Let’s Encrypt TLS-ready
make devHead <title>, <meta>, and <link> tags are defined per route using a single config file:
config/static.route.json
- Global tags (wildcard path
"*"). - Merged with per-route overrides at runtime and build.
To generate a .tar.gz archive containing everything needed to deploy:
make archive_prodThis includes:
bin/config/LICENSEREADME.md
Extract the archive and run the binary:
tar -xzf archive_prod.tar.gz
./bin/Portfolio-1.x.xOptional:
- Add a
systemdservice - Use
certbotfor TLS - Serve via Cloudflare Tunnel
MIT — See LICENSE
Jelius Basumatary — Fullstack Web & App Developer