Go-Based Portfolio Website
This project showcases a custom website framework built entirely in Go (Golang), using native HTML templates
to render structured, dynamic content without external CMS dependencies. The goal was to design a fast,
secure, and easily configurable portfolio site that reflects both technical versatility and
performance-conscious engineering.
Unlike sites generated by JavaScript-heavy frameworks, this platform prioritizes server-side rendering, low
latency, and lightweight deployment. It runs efficiently on a minimal VPS or container, serving static
assets and templated pages with near-instant response times.
At the core of this system is a configuration-driven architecture that separates content from logic. The
application parses a YAML or JSON configuration file containing all site metadata:
- - Site Details: title, description, email, and social links
- - Projects: structured data describing featured works, each with its own title, summary, tech stack, and links
- - Skills & Technologies: categorized lists of programming languages, frameworks, and tools
This design allows content updates without touching any Go code — simply edit the config file and redeploy or reload the server.
Technical Highlights
The application is built on Go’s standard net/http package with html/template for rendering views. No
external frameworks are required, keeping the codebase lean, portable, and easy to audit.
Key technical components include:
- - Custom Struct Parsing: A structured model unmarshals configuration data at startup, populating the in-memory site context.
- - Template Inheritance: Shared layouts for headers, navigation, and footers using define and template blocks.
- - Template Caching: Some templates are read on the fly to improve performance a caching mechanism is employed.
- -Toml based configuration: Configuration data is read from a TOML file and parsed into a structured model.
Design Philosophy
The website was designed to be maintainable, transparent, and developer-friendly. Every piece of
content—whether a project summary, contact info, or technology tag—is data-driven, making it ideal for
developers who prefer to version-control their portfolio content in Git.
By leveraging Go’s standard library, we avoided external templating frameworks or CMS systems that introduce
bloat and security risks. The result is a system that starts instantly, serves thousands of requests per
second, and can be deployed on virtually any host that supports Go binaries.
Outcome
The finished product is a lightning-fast, fully self-contained website that represents a developer’s
profile, portfolio, and technical skills without relying on third-party platforms. It’s a perfect showcase
for developers who value performance, autonomy, and code clarity.
While I can’t publicly disclose proprietary interface details or internal workflows, I’m happy to discuss
the technical architecture, migration strategy, and Flutter best practices that made this transition a
success.
The Go-based templating system has since become a reusable framework that can be adapted for blogs, company
landing pages, or internal dashboards with minimal effort.