The NFTopia Notifications Service is an Express.js microservice handling all notification delivery for the NFTopia platform. It supports SMS, email, in-app, and webhook notifications with TypeScript robustness.
View Swagger Docs (Available when running locally)
- Multi-Channel Delivery:
- ๐ง Email (SendGrid/Mailgun)
- ๐ฑ SMS (Twilio)
- ๐ In-App (WebSocket)
- ๐ Webhook (Custom endpoints)
- Template Management: Handlebars templates for consistent messaging
- Rate Limiting: Protect against notification spam
- Delivery Tracking: Status webhooks for all notifications
| Component | Technology |
|---|---|
| Framework | Express.js (TypeScript) |
| Nodemailer + SendGrid | |
| SMS | Twilio |
| WebSockets | Socket.io |
| Queue | BullMQ (Redis-backed) |
| Validation | Zod |
- Node.js v18+
- Redis (for queues)
- SMTP credentials (or SendGrid API key)
- Twilio account (for SMS)
- Clone the repo:
git clone https://github.com/NFTopia-Foundation/nftopia-notifications-service.git cd nftopia-notifications-service - Install dependencies:
pnpm install
- Setup environment:
cp .env.example .env
- Start the service:
pnpm dev # http://localhost:9001
- Fork the repository
- Create your feature branch:
git checkout -b feat/your-feature- Commit changes following Conventional Commits
- Push to the branch
- Open a Pull Request