~/ Olúwadámiláre
Subscription Tracker API
← cd ..
Backend Development2026

Subscription Tracker API

Track subscriptions and never miss a renewal.

Client

Personal Project

Industry

Fintech / Personal Finance / SaaS

Service

Backend API Development

// overview

Subscription Tracker API is a backend application designed to help users manage recurring subscriptions, monitor renewal dates, and receive automated reminders before upcoming payments. The API includes user authentication, protected routes, subscription ownership validation, automatic renewal-date calculation, email notifications, background workflows, request protection, and centralized error handling. It was built with Node.js, Express, MongoDB, Mongoose, JWT, Arcjet, Upstash Workflow, Nodemailer, and Day.js.

// the challenge

Managing recurring subscriptions requires reliable authentication, accurate renewal tracking, secure access controls, and automated communication. The challenge was to build a backend system that could securely associate subscriptions with individual users, calculate renewal dates, protect sensitive endpoints, trigger scheduled workflows, and deliver reminder emails while remaining suitable for deployment on a managed cloud platform.

// the solution

The API uses JWT authentication and authorization middleware to protect routes and ensure users can only access their own subscriptions. Mongoose models manage user and subscription data, while schema hooks calculate renewal dates based on billing frequency. Upstash Workflow handles scheduled reminder processes, Nodemailer delivers renewal emails, and Arcjet provides request protection and rate limiting. The application is deployed on Render and connected to MongoDB Atlas for persistent cloud storage.

// screenshots

Subscription Tracker API screen 2
Subscription Tracker API screen 3
project.json
"client": "Personal Project"
"role": "Backend Developer"
"duration": "1 week"
"year": "2026"

Tech Stack

Node.jsExpress.jsMongoDBMongooseJWTArcjetUpstash WorkflowNodemailer
$ start a project →