Mardi Gras Developers
A SSO platform for Mardi Gras developers to access and manage all their tenant applications in one place.



Key Features
- Single Sign-On Portal
- Secure Authentication & Authorization
- Role-based Access Control
- User Management
- Tenant Application Management
Tech Stack
Next.js
TypeScript
Tailwind CSS
Firebase
Google Cloud
Google IAM
Secret Manager
Firestore
Challenge
Ensuring sensitive operations and data handling were exclusively managed server-side to prevent potential client-side vulnerabilities.Ensuring sensitive operations and data handling were exclusively managed server-side to prevent potential client-side vulnerabilities.
Solution
Utilized Next.js server-side API routes and server-side rendering (SSR) to securely process authentication, authorization, and sensitive data operations entirely on the server. This approach minimized client-side exposure, significantly enhancing the application's security and protecting tenant data.
Challenge
Ensuring secure and efficient handling of sensitive private keys for various tenant applications.
Solution
Implemented Google IAM and Secret Manager to securely store, manage, and rotate private keys, significantly enhancing the security posture and simplifying key management across all integrated tenant applications.
Challenge
Integrating robust role-based access control (RBAC) with Firebase Authentication to manage permissions across multiple tenant applications.
Solution
Implemented custom claims with Firebase Authentication and Firestore Security Rules, creating a scalable and maintainable solution that efficiently enforces user permissions and application-level security.
Challenge
Ensuring robust data isolation and performance optimization across multiple tenant applications.
Solution
Leveraged Next.js's server-side rendering capabilities, incremental static regeneration, and optimized data-fetching strategies to ensure efficient, isolated data handling and high performance for each tenant.
Role: Solo Developer
This project is not publicly available (cannot provide the live-demo link).