Stop silent money leaks. Own your subscriptions.
SubSentry is an open-source subscription management dashboard that helps users track recurring payments, free trials, upcoming renewals, and automatically detect subscriptions using Gmail (read-only access).
This project is built as part of Geekhaven OpenCode and is designed to be beginner-friendly, production-oriented, and fully open-source.
- 🔐 Authentication using Clerk
- 📊 Subscription dashboard with monthly & yearly spend
- ✏️ Add, edit, and delete subscriptions
- ⏰ Track upcoming renewals and free trials
- 📥 Gmail email ingestion (read-only, keyword-based)
- 🗂️ Filter subscriptions by category
- 📈 Dashboard summary widgets
- Next.js (App Router)
- Clerk Authentication
- Tailwind CSS
- Node.js
- Express.js
- MongoDB
- Mongoose
- Frontend: Vercel
- Backend: Local (optional cloud deployment)
subsentry/
├── client/ # Next.js frontend
├── server/ # Node + Express backend
├── .github/
│ ├── ISSUE_TEMPLATE/
│ └── pull_request_template.md
├── README.md
└── CONTRIBUTING.md
git clone https://github.com/<your-org>/subsentry.git
cd subsentrycd client
npm install
npm run devCreate .env.local:
NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY=your_key
CLERK_SECRET_KEY=your_secretcd server
npm install
npm run devCreate .env:
MONGO_URI=your_mongodb_uri
PORT=5000
GOOGLE_CLIENT_ID=
GOOGLE_CLIENT_SECRET=
GOOGLE_REDIRECT_URI=http://localhost:5000/api/auth/google/callbackSubSentry uses Gmail read-only access to detect subscription-related emails.
- ✔ Can read email content
- ❌ Cannot send emails
- ❌ Cannot delete or modify emails
Scope used:
https://www.googleapis.com/auth/gmail.readonly
We never store email content permanently and never access emails without user consent.
- Pick an issue and comment to get assigned
- Fork the repository
- Create a feature branch in your fork
- Open a Pull Request to
main - One PR per issue
See CONTRIBUTING.md for detailed guidelines.
MIT License
npm run dev # start dev server
npm run build # build for production
npm run start # start production servernpm run dev # start server with nodemon
npm start # start serverNEXT_PUBLIC_CLERK_PUBLISHABLE_KEY=
CLERK_SECRET_KEY=MONGO_URI=
PORT=5000
GOOGLE_CLIENT_ID=
GOOGLE_CLIENT_SECRET=
GOOGLE_REDIRECT_URI=http://localhost:5000/api/auth/google/callback
⚠️ Never commit.envfiles. Use.env.exampleif needed.
- Gmail access is read-only and limited to subscription detection
- OAuth tokens are stored securely and scoped minimally
- No emails are modified, deleted, or sent
- No sensitive email content is persisted
Q: Why Gmail read-only? A: It ensures maximum safety and avoids Google verification requirements.
Q: Can I add subscriptions manually? A: Yes, manual entry is fully supported.
Q: Is this production-ready? A: It is an MVP built for OpenCode with production-grade patterns.
- Advanced email parsing
- Dark-pattern detection
- Browser extension
- Team/workspace dashboards
Built with ❤️ during Geekhaven OpenCode.