-
released this
2025-08-23 12:52:40 -04:00 | 47 commits to main since this releaseWhat's Changed
🐛 Bug Fixes
- Fixed issue #35: Subscription updates now properly save all fields including dates
- Subscription form date fields are now correctly parsed during PUT requests
✨ Improvements
- Settings page now displays the actual git commit SHA as the version
- Added Makefile for consistent builds with automatic version injection
- Version information is now dynamically generated at build time
🔧 Build System
- New Makefile with targets for building, testing, and multi-platform releases
- Build process automatically injects git commit SHA into binaries
- Added
make build-allfor cross-platform builds (macOS, Linux, Windows)
📝 Technical Details
- Added
internal/versionpackage for version management - Updated
UpdateSubscriptionhandler to include date field parsing - Modified settings template to display dynamic version
Installation
Using Make
make build ./subtrackrDirect Build
go build -o subtrackr cmd/server/main.go ./subtrackrFull Changelog
-
released this
2025-08-09 20:47:41 -04:00 | 48 commits to main since this releaseSubTrackr v0.4.0 - License Change & Bug Fixes
🔄 Major Changes
License Update
- Changed from MIT to AGPL-3.0: This ensures that any modifications to SubTrackr, including hosted versions, must remain open source and share improvements with the community.
🐛 Bug Fixes
Fixed SMTP Configuration Issues (#26)
- SMTP Username Validation: Removed email format requirement from SMTP username field
- Better Provider Support: Now supports SMTP providers like Resend that use non-email usernames (e.g., "resend" + API key)
- Improved UX: Updated placeholder text to clarify "username or email" format
Enhanced Template Loading (#13)
- ARM64 Compatibility: Added robust template loading with better error handling for ARM64 architecture
- Fallback System: Implements graceful fallback to ensure application continues working even with template parsing issues
- Detailed Logging: Better error messages for troubleshooting template problems
Currency Display Consistency (#16, #14)
- Fixed Hardcoded Symbols: Replaced hardcoded "$" with dynamic currency symbols from settings
- Global Consistency: All subscription cost displays now respect user's currency preference
Documentation Improvements (#32)
- Known Limitations: Added clear documentation about price history limitations
- User Guidance: Explains that annual calculations use current prices, not historical spending data
🔧 Development Improvements
CI/CD Pipeline Optimization
- Efficient Builds: Docker images now only build/push on merge to main and version tags, not on PRs
- Proper Tagging: Version tags (e.g., v0.4.0) now create corresponding Docker tags (0.4.0, 0.4)
- PR Testing: Separate workflow for PR validation with Go tests and Docker build verification
- Resource Optimization: Reduced unnecessary Docker builds on pull requests
Testing Infrastructure
- Playwright Integration: Added comprehensive end-to-end testing with Playwright
- Automated Validation: Tests for subscription calculations, form submissions, and UI consistency
- Multi-browser Support: Configured for Chrome, Firefox, and WebKit testing
📊 Verified Calculations
- Monthly/Annual Totals: Confirmed accuracy of subscription calculations including annual subscriptions converted to monthly equivalents
- Category Breakdown: Verified that spending by category correctly shows monthly equivalents (e.g., $37/year → $3.08/month in Education category)
🔗 Docker Images
This release is available as multi-platform Docker images:
# Latest version docker pull ghcr.io/bscott/subtrackr:0.4.0 docker pull ghcr.io/bscott/subtrackr:0.4 # Always latest from main branch docker pull ghcr.io/bscott/subtrackr:latest🙏 Acknowledgments
Thanks to all community members who reported issues and provided feedback to make SubTrackr better!
-
released this
2025-08-03 19:22:38 -04:00 | 0 commits to v0.3.0 since this releaseMigration Required; Please read the full release notes before upgrading!
🎉 Highlights
This release introduces a powerful Dynamic Categories System that allows users to create, edit, and manage their own subscription categories. A huge thank you to @Klick3R-1 for the excellent PR (#22) that made this feature possible! 🙏
✨ New Features
Dynamic Categories System
- Custom Categories: Create, edit, and delete your own categories through the Settings page
- Category Management UI: Intuitive interface for managing categories
- Smart Validation: Categories with active subscriptions cannot be deleted
- Auto-Migration: Existing subscriptions automatically migrate to the new system
Extended Schedule Options
- Added support for Weekly subscriptions (billed every 7 days)
- Added support for Daily subscriptions (billed every day)
- Improved cost calculations for all schedule types
Database Migration System
- New extensible migration framework for smooth upgrades
- Automatic schema updates without data loss
- Future-proof architecture for upcoming features
🔄 Breaking Changes
API Changes
The API now uses `category_id` instead of `category` string:
Before (v0.2.x):
```json
{
"name": "Netflix",
"category": "Entertainment"
}
```After (v0.3.0):
```json
{
"name": "Netflix",
"category_id": 1
}
```To get available categories:
```bash
curl http://localhost:8080/api/categories
```🛠️ Technical Improvements
- Proper foreign key relationships between subscriptions and categories
- Enhanced data integrity with referential constraints
- Improved repository pattern with category preloading
- Better error handling for category operations
📋 Default Categories
On first run after upgrade, these categories are automatically created:
- Entertainment
- Productivity
- Storage
- Software
- Fitness
- Education
- Food
- Travel
- Business
- Other
🚀 Upgrading
Please see MIGRATION_v0.3.0.md for detailed upgrade instructions.
Quick Upgrade Steps:
- Backup your data (Settings → Create Backup)
- Pull the v0.3.0 release
- Restart SubTrackr
- Verify your subscriptions and categories
🙏 Contributors
Special thanks to:
- @Klick3R-1 - Dynamic categories system implementation (#22)
📝 Full Changelog
Added
- Dynamic categories with CRUD operations
- Category management UI in settings
- Weekly and Daily schedule options
- Database migration system
- Category deletion validation
- Migration documentation
Changed
- API now uses category_id instead of category string
- Improved cost calculations for all schedule types
- Enhanced subscription forms with dynamic category selection
Fixed
- Schedule validation now includes all schedule types
- Proper handling of category relationships
- Migration of existing data to new schema
Full Changelog: v0.2.0...v0.3.0
-
released this
2025-07-13 14:13:18 -04:00 | 74 commits to main since this release🎨 What's New in v0.2.0
Logo Integration
- Brand new SVG logo now appears in the header across all pages
- Replaced text-based "SubTrackr" with professional logo design
- Improved visual consistency and brand recognition
I want to thank Ethan at Selfh.st Newsletter for cleaning up the SVG logo 🤟🏾
Speaking of which, were now listed in Apps on Selfh.st!📊 Spending Visualization Fixes
- Fixed spending by category charts that were previously showing as grey bars
- Proportional bar charts now accurately represent spending amounts
- Enhanced color coding with reliable blue progress bars
- Better visual feedback for subscription spending breakdown
🏗️ Infrastructure Improvements
- Created proper static assets directory structure (
web/static/images/) - Improved template rendering with explicit CSS styling
- Streamlined Cost Analysis section for better layout
🔧 Technical Details
- Moved logo from
assets/toweb/static/images/logo.svg - Fixed Go template math calculations for percentage-based bar widths
- Replaced Tailwind CSS classes with inline styles for better browser compatibility
- Updated all page templates (dashboard, subscriptions, analytics, settings)
📸 Screenshots
The spending by category visualization now properly shows:
- Entertainment spending as proportional blue bars
- Productivity spending with accurate width calculations
- Clean, professional visual design
Full Changelog: https://github.com/bscott/subtrackr/compare/v0.1.0...v0.2.0
-
SubTrackr v0.1.0 Stable
released this
2025-07-04 21:24:58 -04:00 | 87 commits to main since this release🎉 SubTrackr v0.1.0 - Initial Release
SubTrackr is a self-hosted subscription tracking and management application that helps you monitor your recurring subscriptions and visualize spending patterns.
✨ Features
- 📊 Subscription Management: Track monthly and annual subscriptions
- 💰 Multi-Currency Support: Support for USD ($), EUR (€), and PLN (zł)
- 📈 Analytics Dashboard: Visualize spending patterns and trends
- 🔔 Email Notifications: Get reminders for upcoming renewals
- 📱 Mobile Responsive: Works great on all devices
- 🔒 Privacy First: Self-hosted with complete data ownership
- 📤 Data Export: Export your data in CSV or JSON format
- 🔑 Secure Authentication: Built-in user authentication system
💱 Supported Currencies
This release includes support for the following currencies:
- 🇺🇸 USD - US Dollar ($)
- 🇪🇺 EUR - Euro (€)
- 🇵🇱 PLN - Polish Złoty (zł)
🐳 Deployment
SubTrackr is available as a Docker container:
docker run -d \ --name subtrackr \ -p 8080:8080 \ -v subtrackr_data:/app/data \ ghcr.io/bscott/subtrackr:v0.1.0Or use Docker Compose:
version: '3.8' services: subtrackr: image: ghcr.io/bscott/subtrackr:v0.1.0 ports: - "8080:8080" volumes: - subtrackr_data:/app/data restart: unless-stopped volumes: subtrackr_data:📋 Requirements
- Docker or Docker Compose
- Port 8080 available
- SMTP server for email notifications (optional)
🚀 Getting Started
- Deploy using Docker or Docker Compose
- Access the application at
http://localhost:8080 - Create your account
- Start adding your subscriptions
- Configure email notifications (optional)
📖 Documentation
See the README for detailed documentation including:
- API endpoints
- Configuration options
- Security recommendations
- Deployment guides for various platforms
🙏 Acknowledgments
Built with Go, Gin, GORM, SQLite, HTMX, and Tailwind CSS.
Special thanks to our contributors:
- Brian Scott (@bscott)
- CyberL1 (@CyberL1) - PLN currency support
- Andre Saddler (@andre-saddler)
Full Changelog: https://github.com/bscott/subtrackr/commits/v0.1.0