Finora
Multi-tenant, GST-aware accounting SaaS for businesses.
Project Overview
- ❯Deployed on Render, with Cloudflare Workers acting as an API gateway
- ❯Multi-tenant data isolation via a custom MongoDB service layer
- ❯Plan-based feature gating (Growth/Pro tiers) integrated with Razorpay for billing
- ❯Role system: SuperAdmin, Owner, Member — all stored in one unified User model
- ❯UI style: dark sidebar (forest green/charcoal), tabular numeric alignment for currency, flat buttons, no emoji, reduced border radius
Architecture
Documentation and notes for Architecture.
Finora is a multi-tenant SaaS deployed on Render.
- API Gateway: Cloudflare Workers sit in front of the application to handle aggressive edge caching, rate limiting, and initial security filtering.
- Data Layer: MongoDB handles the primary data.
- Tenant Isolation: A custom-built MongoDB service layer ensures strict multi-tenant data isolation. Every query automatically enforces tenant-ID scoping so data can never leak between businesses.
Tenant Isolation
Documentation and notes for Tenant Isolation.
Finora is a multi-tenant SaaS deployed on Render.
- API Gateway: Cloudflare Workers sit in front of the application to handle aggressive edge caching, rate limiting, and initial security filtering.
- Data Layer: MongoDB handles the primary data.
- Tenant Isolation: A custom-built MongoDB service layer ensures strict multi-tenant data isolation. Every query automatically enforces tenant-ID scoping so data can never leak between businesses.
Role System (RBAC)
Documentation and notes for Role System (RBAC).
We use a unified Role-Based Access Control (RBAC) system. All users are stored in a single unified User model to prevent collection bloat.
SuperAdmin
Global platform management and override capabilities.
Owner
Business owner with billing and member management access.
Member
Standard employee with scoped operational access.
Billing & Razorpay
Documentation and notes for Billing & Razorpay.
Billing and subscription management is handled entirely via Razorpay. Features within the SaaS are strictly gated based on the active subscription plan (e.g., Growth Tier vs. Pro Tier).