I Built an Open-Source Alternative to Expensive Software Licensing Platforms 🚀
TL;DR
Built Source License – a complete software licensing management system in Ruby/Sinatra that handles everything from payments to license validation. It’s open source, self-hostable, and free.
🚧 Alpha Status: This is early alpha software! Core features work, but expect bugs and missing functionality. Perfect for developers who want to contribute and help shape an open-source licensing platform.
GitHub: https://github.com/PixelRidge-Softworks/Source-License
The Story: Why I Built This 🤔
I was tired of paying ridiculous fees to licensing platforms. $100+/month plus 5-8% transaction fees? For indie developers, that’s brutal.
But building your own licensing system is a nightmare:
- Payment processing (Stripe, PayPal)
- Secure license generation
- Activation limits and validation
- Admin dashboards
- Customer management
- API endpoints for your software
Months of work before you can even launch your product.
So I built Source License to solve this once and for all.
What It Actually Does ⚡
Complete E-commerce Flow
# Customer journey: Browse → Cart → Checkout → License delivered
# Supports both one-time and subscription products
Cryptographically Secure Licenses
# Multiple formats supported:
# XXXX-XXXX-XXXX-XXXX (classic)
# UUID format
# Custom patterns
Real License Validation API
# Validate any license in real-time
curl -X GET http://localhost:4567/api/license/XXXX-XXXX-XXXX-XXXX/validate
# Response:
{
"valid": true,
"status": "active",
"product": "My Software",
"expires_at": "2025-12-31T23:59:59Z",
"activations_used": 1,
"max_activations": 3
}
Machine Fingerprinting
# Prevent license sharing with activation limits
curl -X POST http://localhost:4567/api/license/XXXX-XXXX-XXXX-XXXX/activate
-H "Content-Type: application/json"
-d '{"machine_fingerprint": "unique_machine_id"}'
The Tech Stack 🛠️
Backend: Ruby + Sinatra (because sometimes simple is better)
Database: MySQL, PostgreSQL, or SQLite
Payments: Stripe + PayPal with webhook handling
Auth: JWT tokens for API access
Security: CSRF protection, rate limiting, audit logging
Why Ruby/Sinatra?
- Fast to develop: Got the MVP running in weeks
- Simple deployment: Single file, minimal dependencies
- Mature ecosystem: Solid gems for everything
- Easy customization: ERB templates, clear separation of concerns
Architecture That Makes Sense 📐
Source-License/
├── app.rb # Main Sinatra application
├── lib/
│ ├── models.rb # Sequel ORM models
│ ├── license_generator.rb # Crypto-secure license creation
│ ├── payment_processor.rb # Stripe/PayPal integration
│ └── controllers/ # Modular route handlers
│ ├── public_controller.rb
│ ├── admin_controller.rb
│ └── api_controller.rb
├── views/ # ERB templates
└── test/ # Comprehensive test suite
Models that matter:
-
User
– Customer accounts -
Product
– Your software products -
Order
– Purchase tracking -
License
– The actual licenses -
LicenseActivation
– Machine-specific activations -
Subscription
– Recurring billing
Getting Started is Dead Simple 🎯
⚠️ Alpha Warning: You’re about to install alpha software! Things might break, features might be missing, but that’s part of the fun. Please report any issues you find!
# 1. Clone it
git clone https://github.com/PixelRidge-Softworks/Source-License.git
cd Source-License
# 2. Run the installer (handles everything)
./install.sh # Linux/macOS
# or
.install.ps1 # Windows
# 3. Deploy automatically
./deploy.sh # Linux/macOS
# or
.deploy.ps1 # Windows
# 4. Visit http://localhost:4567
# Admin: http://localhost:4567/admin
The installer does everything:
- ✅ Checks Ruby version
- ✅ Installs gems via Bundler
- ✅ Sets up database with migrations
- ✅ Creates config from templates
- ✅ Launches the server
Configuration: Just Edit .env 📝
# Payment processing
STRIPE_PUBLISHABLE_KEY=pk_test_your_key
STRIPE_SECRET_KEY=sk_test_your_key
PAYPAL_CLIENT_ID=your_paypal_id
# Database (pick one)
DATABASE_ADAPTER=mysql # or postgresql, sqlite
DATABASE_HOST=localhost
DATABASE_NAME=source_license
# Email delivery
SMTP_HOST=smtp.gmail.com
SMTP_USERNAME=your_email@gmail.com
# Security
JWT_SECRET=your_super_secret_jwt_key
APP_SECRET=your_app_secret_change_this
Real-World API Usage 💻
Integrate License Validation Into Your App
Popular language SDKs are on the way too!
Desktop Software (C#):
public async Task<bool> ValidateLicense(string licenseKey)
{
var client = new HttpClient();
var response = await client.GetAsync($"https://yourdomain.com/api/license/{licenseKey}/validate");
var json = await response.Content.ReadAsStringAsync();
var result = JsonConvert.DeserializeObject<LicenseValidation>(json);
return result.Valid;
}
Web App (JavaScript):
async function validateLicense(licenseKey) {
const response = await fetch(`/api/license/${licenseKey}/validate`);
const data = await response.json();
return data.valid;
}
CLI Tool (Python):
import requests
def validate_license(license_key):
response = requests.get(f'https://yourdomain.com/api/license/{license_key}/validate')
return response.json()['valid']
Features That Actually Matter 🎯
Admin Dashboard
- Real-time sales statistics
- Customer management
- License operations (suspend, revoke, extend)
- Order fulfillment
- Customizable branding
Customer Portal
- License validity checking
- Download links
- Activation management
- Order history
Security Features
- Rate limiting (prevent API abuse)
- CSRF protection
- SQL injection prevention (Sequel ORM)
- Audit logging (track everything)
- JWT authentication
Use Cases I See 📊
Desktop Apps: Perfect for selling Windows/Mac software
WordPress Plugins: Manage pro versions with subscription renewals
IDE Extensions: VS Code, IntelliJ plugins with trial periods
Creative Software: Photoshop plugins, video editing tools
Educational Tools: Student licenses, institution-wide deployments
The Economics Make Sense 💰
Commercial platforms charge:
- Monthly fees: $50-200+
- Transaction fees: 3-8% per sale
- Setup costs: Often $500+
Source License costs:
- Hosting: ~$20/month VPS
- Transaction fees: Just payment processor (2.9%)
- Setup: Free (open source)
Break-even: If you’re doing $1000+/month in sales, you’ll save money immediately.
What’s Coming Next 🔮
I’m actively working on:
- 📊 Advanced Analytics: Revenue tracking, customer insights
- 🌍 Multi-language Support: Internationalization
- 📱 Mobile Admin: Manage licenses from your phone
- 🔌 Plugin System: Extend with custom functionality
- 🚀 Performance Improvements: Redis caching, optimizations
Want to Contribute? 🤝
This is GPL v2.0 licensed – completely free and open. Since we’re in alpha, contributions are especially valuable!
Ways to help:
- 🐛 Report bugs via GitHub Issues (seriously, we need this!)
- 💡 Suggest features in Discussions
- 🔧 Submit PRs (check our style guide)
- 📖 Improve documentation (always needed in alpha)
- ⭐ Star the repo if you find it useful!
- 🧪 Alpha testing – use it and tell us what breaks
Get Started Today 🚀
GitHub: https://github.com/PixelRidge-Softworks/Source-License
Quick Start: README has everything you need
Community: Join GitHub Discussions for support
Alpha Testers Welcome: We need feedback to make this better!
Questions? 💬
Drop them in the Github Discussion! I’m happy to help with:
- Deployment issues (expect some in alpha!)
- Custom integrations
- Feature requests
- Architecture questions
- Bug reports and alpha feedback
I am not on Dev.to commonly, so comments here may go unanswered!
What licensing challenges are you facing? Maybe Source License can solve them (or we can build the solution together)!
Follow me on Github for more open source projects and Ruby/web development content! And remember – this is alpha software, so buckle up for the ride! 🚀