Simple, privacy-first analytics for Sparkle-enabled Mac apps. Free for open source projects.
If you have a Mac app that uses Sparkle for updates, stats.store gives you basic analytics without being creepy about it. Think of it as a friendly way to answer simple questions:
- How many people use my app?
- What macOS versions should I support?
- Are people actually updating when I release new versions?
What we collect:
- macOS version and CPU type (Intel vs Apple Silicon)
- App version numbers
- Daily unique users (anonymized)
- Basic hardware info (RAM, Mac model)
What we DON'T collect:
- No IP addresses or personal data
- No usage tracking or behavior analytics
- No creepy fingerprinting
- No third-party trackers
Building an open source Mac app? It's completely free! Just email Peter and he'll add your app. Read the full story of stats.store and learn how it came to be!
Instead of modifying your app's code, stats.store acts as a friendly middleman for your Sparkle updates:
- Your app checks for updates through stats.store
- We note that someone is using your app (anonymously!)
- We fetch your real update file and pass it along
- Your users get their updates, you get your stats!
In your app's Info.plist
, change your update URL from:
<key>SUFeedURL</key>
<string>https://raw.githubusercontent.com/you/yourapp/main/appcast.xml</string>
To:
<key>SUFeedURL</key>
<string>https://stats.store/api/v1/appcast/appcast.xml</string>
That's it! stats.store will automatically find your real appcast file and serve it while collecting anonymous stats.
Check out your dashboard at stats.store to see:
- Daily active users
- macOS version breakdown (pretty charts!)
- CPU architecture distribution
- Version adoption rates
# Clone and install
git clone https://github.com/steipete/stats-store.git
cd stats-store
pnpm install
# Set up environment (you'll need a Supabase account)
cp .env.example .env.local
# Edit .env.local with your Supabase credentials
# Run database migrations (see scripts/ directory)
# Start development server
pnpm dev
Built with modern tools that make development fun:
- Next.js - React framework
- Supabase - Database and real-time updates
- Tailwind CSS - Styling
- Tremor - Beautiful charts
For architecture details and API documentation, see docs/architecture.md.
Want to run your own instance? Check out the deployment guide for instructions.
Found a bug? Want to add a feature? Awesome!
- Fork the repo
- Make your changes
- Add tests if needed
- Submit a PR
Check out CONTRIBUTING.md for more details.
- 🐦 Twitter: @steipete
- 📧 Email: peter@steipete.me
- 🐛 Issues: GitHub Issues
MIT - see LICENSE file. Use it, fork it, make it your own!
Built with ❤️ for the Mac developer community by @steipete