Split subscription costs effortlessly with friends, family, and colleagues
A modern Rails 8 application with Svelte frontend for managing shared subscriptions
Features โข Quick Start โข Installation โข Documentation
SplitMySub is a comprehensive subscription cost-sharing platform that eliminates the hassle of manually tracking and collecting payments for shared subscriptions. Whether you're sharing Netflix with roommates, Spotify with family, or any other subscription service, SplitMySub automates the entire process.
Built with modern technologies:
Project Dashboard Manage all your subscription projects |
Create New Project Set up subscription sharing |
Invite Members Send email invitations |
Project Invitations Manage project members |
Payment Tracking Upload and track payments |
Project Payments View payment history |
git clone https://github.com/ashwin47/splitmysub.git
cd splitmysub
bundle install
npm install
rails db:setup
rails db:seed # Optional: creates sample data
bin/dev
Visit http://localhost:3100 to see the application running.
# 1. Clone repository
git clone https://github.com/ashwin47/splitmysub.git
cd splitmysub
# 2. Install dependencies
bundle install && npm install
# 3. Setup database
rails db:create db:migrate db:seed
# 4. Start development server
bin/dev
# Start with live reloading
docker-compose -f docker-compose.dev.yml up --build
Access at http://localhost:3000 (Docker) or http://localhost:3100 (traditional).
Create a .env file in the project root:
# Application
APP_HOST=localhost
APP_PROTOCOL=http
# Email (required for magic links)
RESEND_API_KEY=re_xxxxxxxxxxxxxxxxxxxxxxxxxx
# OR use SMTP
[email protected]
SMTP_PASSWORD=your-app-password
# Admin Access
ADMIN_PASSWORD=your-admin-password
For detailed configuration including production setup, email providers, and security options, see:
splitmysub/
โโโ app/
โ โโโ controllers/ # Rails controllers
โ โโโ frontend/ # Svelte frontend
โ โ โโโ components/ # Reusable components
โ โ โโโ pages/ # Inertia.js pages
โ โ โโโ lib/ # Frontend utilities
โ โโโ models/ # ActiveRecord models
โ โโโ services/ # Business logic
โ โโโ jobs/ # Background jobs
โโโ config/
โ โโโ deploy.yml # Kamal deployment
โ โโโ routes.rb # Application routes
โโโ docs/ # Documentation
โโโ test/ # Test files
For detailed architecture information, see docs/SYSTEM_ARCHITECTURE.md.
# Run all tests
rails test
# Run specific test files
rails test test/models/user_test.rb
# Run system tests
rails test:system
For comprehensive testing scenarios and manual testing procedures, see docs/TESTING_SCENARIOS.md.
Quick Deploy with Kamal:
# 1. Configure server in config/deploy.yml
# 2. Set up secrets in .kamal/secrets
bin/kamal setup
bin/kamal deploy
For complete deployment instructions including:
For complete self-hosting instructions including Docker setup, manual installation, and maintenance procedures, see docs/SELF_HOSTING.md.
# Start development server with live reloading
bin/dev
# Access Rails console
rails console
# Run database migrations
rails db:migrate
# Code quality checks
rubocop # Linter
brakeman # Security audit
We welcome contributions!
git checkout -b feature/amazing-feature)git commit -m 'Add some amazing feature')git push origin feature/amazing-feature)git clone https://github.com/ashwin47/splitmysub.git
cd splitmysub
bundle install && npm install
rails db:setup
rails test
This project is licensed under the MIT License - see the LICENSE file for details.
Made with โค๏ธ for the subscription-sharing community