Portfolio

Golang · Clean Architecture · Server-rendered Web Application

Contact Ops

An application that turns contact-form submissions into an operational workflow. It manages replies, attachments, mail logs, notifications, and user profiles through a server-rendered dashboard. Redis supports queues and rate limiting, PostgreSQL stores business data, and Cloudflare R2 stores files through an S3-compatible API. The production stack runs behind Traefik with TLS, health checks, and containerized deployment.

HTTP interfaces call application use cases and domain entities implemented by PostgreSQL, Redis, SMTP, and R2 adapters. templ renders the operations dashboard and WebSocket updates notifications. Traefik fronts the application container, while middleware handles session authentication and rate limiting.

Tech stack

Go 1.25GinGORMPostgreSQLtemplRedisWebSocketGorilla SessionsAWS SDK v2Cloudflare R2SMTPViperTraefik 3Docker Compose

Architecture

Clean Architecture · Server-rendered Web Application

HTTP interfaces call application use cases and domain entities implemented by PostgreSQL, Redis, SMTP, and R2 adapters. templ renders the operations dashboard and WebSocket updates notifications. Traefik fronts the application container, while middleware handles session authentication and rate limiting.

Core capabilities

  • Contact-request intake and management
  • Email reply composition and delivery
  • Cloudflare R2 attachment storage
  • Mail delivery logs
  • Real-time notifications
  • Statistics and profile dashboard
  • Session authentication and API keys
  • Redis-backed rate limiting
  • TLS reverse proxy with Traefik