CMS Golang
A self-initiated CMS REST API built with Go to explore backend development outside my usual stack.
Client
Year
2025
Role
Backend Developer

The Brief
This is a personal project built out of curiosity — an exploration of Go as a backend language beyond my usual Laravel and Node.js environment. The API covers core CMS functionality including article management, user authentication, and media handling, structured with clean separation between repository, service, and controller layers.
The Challenge
Learning Go's idioms and ecosystem from scratch while designing a clean, production-ready project structure. Adapting patterns I knew from Laravel and Express.js into Go's way of doing things — particularly around error handling, middleware, and ORM behavior — required a fresh perspective.
The Approach
Built with Fiber v2 for routing and GORM for database interaction on top of PostgreSQL. JWT-based authentication was implemented with support for both Bearer and non-Bearer token formats. Soft deletes, public UUID vs internal ID separation, and Swagger documentation were included to keep the API maintainable and well-documented.
Technologies Used
Software Development