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.
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
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

Running Timer

Stats Page