All Projects
Personal Project · December 2025

Productivity Timer

A productivity timer application built with Go, Gin, HTMX, Alpine.js, Templ, and MongoDB with OAuth authentication for tracking time spent on various tasks with custom tags and statistics.

Technologies
GoGinHTMXAlpine.jsTemplMongoDBOAuthGothSwaggerRailway
Overview

Overview

Productivity Timer is a clean, server-rendered web application for tracking time spent on tasks. Built with Go and Gin on the backend, it uses HTMX for dynamic interactions without heavy JavaScript frameworks, Alpine.js for lightweight client-side state, and Templ for type-safe HTML templates.

The application features OAuth authentication (Google, GitHub) via Goth, persistent session management with MongoDB, and a comprehensive tagging system for organizing and filtering time entries. The statistics page provides insights into productivity patterns across different time periods.

Deployed on Railway with automatic builds, the application demonstrates modern server-side rendering patterns that deliver fast, accessible experiences while maintaining the developer ergonomics of a Go backend.

Features

Features

Timer & Tracking

  • Start, pause, resume, and stop timers with real-time display
  • Custom task descriptions and multi-tag support
  • Persistent timer state across page refreshes via server-side sessions
  • Complete history of all tracked sessions

Analytics & Organization

  • Statistics dashboard with daily, weekly, monthly, and yearly views
  • Tag-based filtering and categorization
  • Total time aggregation across configurable periods
  • Session history with detailed breakdowns
Screenshots

Screenshots

Running Timer

Running Timer

Stats Page

Stats Page

Back to All Projects