Fizzy is a minimalist Kanban board designed by 37signals to replace bloated project management tools like Trello, Jira, and Asana. It’s built for teams and individuals who want a fast, no-nonsense way to track bugs, issues, and ideas without feature overload. Fizzy focuses on simplicity, speed, and visual clarity—offering just enough structure to stay productive without drowning in menus and settings.
Built with Ruby on Rails and Hotwire, Fizzy is a modern web application that runs either via Docker or Kamal for self-hosting. It includes a public API and webhook support for external integrations, and is fully open source under the O’Saasy License. The tool is free to use with a 1 GB file storage limit, subsidized by Basecamp and HEY.
What You Get
- Kanban Board with Cards - A clean, drag-and-drop Kanban interface for tracking bugs, issues, and ideas with customizable columns and card states.
- Auto Close - Old, inactive cards are automatically pruned to keep boards clean and focused without manual cleanup.
- Webhooks - Publish card events (created, assigned, completed) to Slack, Campfire, or any webhook-compatible service for real-time notifications.
- Stamps - Visual markers that show who created a card and when, providing instant context without cluttering the interface.
- Public Boards - Make any board publicly accessible so anyone can view progress without needing an account.
- API Access - A built-in REST API for custom integrations, allowing external tools to read and manipulate board data programmatically.
Common Use Cases
- Tracking bugs in a small SaaS product - A startup team uses Fizzy to manage bug reports and feature requests with minimal setup, avoiding the complexity of Jira or GitHub Issues.
- Managing customer support tickets across properties - A property manager in Denver uses Fizzy to track maintenance requests across multiple buildings with visual cards and auto-close for resolved issues.
- Running a public project roadmap - An open-source maintainer publishes a Fizzy board to let contributors and users follow feature progress in real time without requiring login.
- Personal task management for creatives - A designer uses Fizzy to organize client ideas and personal projects with a distraction-free interface and no subscription fees.
Under The Hood
Architecture
- Monolithic Rails application with tightly integrated MVC structure, extending core functionality through module-based concerns like CurrentTimezone and Card::Accessible
- Heavy reliance on Rails conventions with server-driven frontend patterns using Turbo Streams and Jbuilder, minimizing client-side complexity
- Modularity achieved via namespaced models and reusable partials, though business logic is often distributed across models and controllers without clear service boundaries
- Dependency injection is implicit through autoloading and service objects, with no explicit DI container or factory patterns
- Asset pipeline leverages Propshaft and Stimulus for lightweight interactivity, while Turbo and SolidQueue handle real-time updates and background processing within a single-layer architecture
- Infrastructure concerns such as containerization and deployment are co-located with domain logic, lacking clear separation
Tech Stack
- Ruby on Rails backend built on the latest official branch, fully embracing modern Rails conventions and tooling
- Frontend powered by Hotwire ecosystem (Turbo, Stimulus, Importmap, Propshaft) enabling a server-driven, lightweight SPA experience
- Production deployment uses Dockerized containers with Thruster as the HTTP server and Kamal for orchestration, optimized with Ruby 3.4.7-slim and jemalloc
- Asynchronous processing handled by Solid Queue and Solid Cable, backed by Trilogy for MySQL and SQLite for development
- Comprehensive tooling includes Bootsnap for fast boot times, Rubocop-Rails-Omakase for consistent styling, and Mise for environment management
Code Quality
- Extensive test coverage spanning unit, integration, and edge cases with strong assertions on state changes, side effects, and database behavior
- Robust data integrity enforced through model validations and explicit error handling across multiple database backends
- Clean, domain-focused organization with well-defined responsibilities across controllers, models, jobs, and helpers
- Consistent idiomatic Rails patterns throughout, with test files mirroring the domain structure and naming conventions
- Comprehensive error handling using custom exceptions to express domain-specific failures, with precise test validation
- Deep integration testing of background jobs, state transitions, and concurrency behavior with attention to database and queue side effects
What Makes It Unique
- Compositional state tracking in form controls prevents premature submission during IME input, significantly improving UX for non-Latin character entry
- Dynamic “bridge—stamp” controller renders contextual metadata as persistent visual stamps with semantic data attributes, unifying state visualization across the UI
- Card lifecycle states (e.g., postponed/closed) are deeply integrated with automated, accessible timestamp and attribution rendering via data-driven components
- Declarative record-set export system abstracts serialization logic, enabling scalable, maintainable data exports without boilerplate
- Turbo frames and Stimulus controllers enable seamless, frame-bound card interactions that feel native without full page reloads
- Intelligent avatar rendering with built-in fallbacks and accessibility attributes embedded directly in helpers, ensuring consistent user representation