Hey there! I'm Umar , and I built NexusCore because I was tired of spending the first 3 months of every SaaS project building the same boring infrastructure over and over again.
Authentication? β
Done.
Multi-tenancy? β
Done.
Billing? β
Done.
Role-based permissions? β
Done.
Now you can focus on what actually makes your product unique. Ship faster. Build better.
"The best code is the code you don't have to write." β Me, after building my 5th authentication system from scratch π
π Authentication & Security
Feature
Description
JWT Authentication
Secure access & refresh token system
Argon2 Hashing
Industry-leading password security
Session Management
Track devices, revoke sessions
Email Verification
Verify user emails with tokens
Password Reset
Secure password recovery flow
Rate Limiting
Protect against brute force attacks
π’ Multi-Tenancy & Teams
Feature
Description
Organizations
Isolated workspaces for teams
Role-Based Access
Owner, Admin, Member, Viewer roles
Granular Permissions
15+ fine-grained permissions
Team Invitations
Email-based invite system
Member Management
Add, remove, update team members
π³ Subscription & Billing
Feature
Description
Multi-tier Plans
Free, Pro, Enterprise tiers
Usage Tracking
Monitor limits and quotas
Invoice Generation
Automatic invoice creation
Trial Periods
Configurable free trials
Plan Upgrades
Seamless plan switching
π Dashboard & Analytics
Feature
Description
Real-time Stats
Live metrics and KPIs
Activity Feed
Track user actions
Audit Logging
Complete action history
Usage Charts
Visual data representation
Feature
Description
Responsive Design
Works on all devices
Dark/Light Themes
User preference support
Toast Notifications
Real-time feedback
Loading States
Smooth user experience
Technology
Purpose
Node.js 20+ - Runtime
Express.js - Framework
TypeScript - Type Safety
PostgreSQL - Database
Redis - Caching
Zod - Validation
Technology
Purpose
React 18 - UI Framework
Vite - Build Tool
TypeScript - Type Safety
React Router - Routing
TanStack Query - Data Fetching
CSS Variables - Styling
π¦ nexuscore/
βββ π backend/
β βββ π src/
β β βββ π modules/
β β β βββ π auth/ # Authentication & sessions
β β β βββ π€ users/ # User management
β β β βββ π’ organizations/ # Multi-tenancy & RBAC
β β β βββ π³ subscriptions/ # Plans & usage limits
β β β βββ π billing/ # Invoices & payments
β β β βββ π notifications/ # In-app notifications
β β β βββ π audit/ # Audit logging
β β β βββ π dashboard/ # Analytics & stats
β β βββ π shared/ # Shared utilities
β βββ π migrations/ # Database migrations
β βββ π package.json
β
βββ π frontend/
β βββ π src/
β β βββ π api/ # API client & endpoints
β β βββ π components/ # Reusable UI components
β β βββ π pages/ # Page components
β β βββ π hooks/ # Custom React hooks
β β βββ π stores/ # Zustand state stores
β β βββ π styles/ # CSS design system
β βββ π package.json
β
βββ π³ docker-compose.yml # Docker configuration
βββ π .env.example # Environment template
βββ π README.md # You are here!
Node.js 20 or higher
Docker & Docker Compose
Git
1οΈβ£ Clone the Repository
git clone https://github.com/Mavdii/Nexus-Core.git
cd Nexus-Core
2οΈβ£ Setup Environment
cp .env.example .env
# Edit .env with your configuration
3οΈβ£ Start Infrastructure
# Start PostgreSQL, Redis, and MailHog
docker-compose up -d postgres redis mailhog
4οΈβ£ Install & Run Backend
cd backend
npm install
npm run db:migrate
npm run db:seed
npm run dev
5οΈβ£ Install & Run Frontend
cd frontend
npm install
npm run dev
π Authentication
Method
Endpoint
Description
POST
/api/auth/signup
Register new user
POST
/api/auth/login
Authenticate user
POST
/api/auth/logout
Invalidate session
POST
/api/auth/refresh
Refresh access token
GET
/api/auth/me
Get current user
POST
/api/auth/forgot-password
Request password reset
POST
/api/auth/reset-password
Reset password
POST
/api/auth/verify-email
Verify email address
π’ Organizations
Method
Endpoint
Description
GET
/api/organizations
List user's organizations
POST
/api/organizations
Create organization
GET
/api/organizations/:id
Get organization details
PATCH
/api/organizations/:id
Update organization
DELETE
/api/organizations/:id
Delete organization
GET
/api/organizations/:id/members
List members
POST
/api/organizations/:id/members
Invite member
PATCH
/api/organizations/:id/members/:userId
Update member role
DELETE
/api/organizations/:id/members/:userId
Remove member
π³ Subscriptions
Method
Endpoint
Description
GET
/api/subscriptions/plans
List available plans
GET
/api/subscriptions/organizations/:id
Get subscription
POST
/api/subscriptions/organizations/:id/change
Change plan
POST
/api/subscriptions/organizations/:id/cancel
Cancel subscription
GET
/api/subscriptions/organizations/:id/usage
Get usage stats
π Billing
Method
Endpoint
Description
GET
/api/billing/organizations/:id/invoices
List invoices
GET
/api/billing/organizations/:id/invoices/:invoiceId
Get invoice
GET
/api/billing/organizations/:id/invoices/:invoiceId/pdf
Download PDF
# Backend tests
cd backend && npm run test
# Frontend tests
cd frontend && npm run test
# E2E tests
npm run test:e2e
# Build and start all services
docker-compose up -d --build
# View logs
docker-compose logs -f
# Stop all services
docker-compose down
Contributions are what make the open source community amazing! Any contributions you make are greatly appreciated .
Fork the Project
Create your Feature Branch (git checkout -b feature/AmazingFeature)
Commit your Changes (git commit -m 'Add some AmazingFeature')
Push to the Branch (git push origin feature/AmazingFeature)
Open a Pull Request
Distributed under the MIT License. See LICENSE for more information.
β Star this repo if you find it helpful!
Made with β€οΈ and mass amounts of β
Copyright Β© 2024 Umar (Mavdii). All rights reserved.