Run every school, madrasa, college and coaching centre
from one multi-tenant platform
Each institution gets its own website, built in a drag-and-drop Profile Studio, plus a role-aware dashboard with 45 management modules: admissions, attendance, exams, fees, payroll, library, hifz and more. Bangla and English out of the box.
No sign-up needed. Pick a role and you land in the dashboard with exactly that role's permissions.

0
Management modules
0
Demo roles, one click each
0
Fine-grained permissions
0
Database tables with keys and indexes
Core pillars
Everything an institution needs, in one product
Server components, server actions and a typed data layer keep public sites fast and the admin side safe.
Multi-tenant by design
Every institution gets its own subdomain, or an /i/slug path where wildcard DNS is not available. A platform console sits above all of them.
- Subdomain or path routing
- Every query scoped to its institution
- Console for institutions, users and audit
Drag-and-drop website builder
Profile Studio puts the editor next to the live page. Drag sections into order, show or hide them, edit content and tune the brand colour while desktop, tablet and mobile previews update instantly.
- 20 section types, filled in automatically
- Drag to reorder, one-click show and hide
- Brand colour, theme, layout and motion
Role-based access control
Every server action asks for a capability, never 'is this an admin?'. Grant or deny single permissions per member without inventing new roles.
- requirePermission() on every write
- Per-member grant and deny masks
- Audit log of sign-ins and changes
Product tour
One dashboard, many workspaces
What each role sees depends on its permissions. Sign in below to compare.

Admin dashboard
Attendance, fees collected, dues, admissions and wellbeing flags at a glance.

Profile Studio
Drag-and-drop website builder with live desktop, tablet and mobile preview.

People and roles
Invite staff, assign roles and fine-tune permissions per member.

Admissions pipeline
Online applications move from enquiry to enrolment on one board.

Fees and payments
Monthly invoices, payments, waivers and overdue tracking in Taka.

Platform console
Operators manage every institution, user, module and audit entry.

Public website
Each institution's generated site: faculty, notices, gallery, admission form.

Tutor marketplace
Ranked tutor profiles with bookings, reviews and verification.
45 modules
From attendance to Zakat scholarships
Switch modules on per institution. Madrasas get hifz and prayer tracking; coaching centres get batches and live classes.
Core
- Students
- Faculty
- Classes & sections
- Notices
Academics
- Attendance
- Timetable
- Exams
- Marks & results
- Assignments
- Syllabus progress
- Question bank
- Homework load balancer
- Substitute engine
People
- Admissions
- Staff leave
- Peer observation
- Parent meetings
Finance
- Fees & invoices
- Payments
- Scholarships & Zakat
- Payroll
- Budget & expenses
- Fundraising
Operations
- Library
- Transport
- Hostel
- Asset registry
- Lost & found
- Meals & nutrition
- Notifications
Community
- Events
- Alumni network
- Mentorship matching
- Public reviews
Signature
- Wellbeing pulse
- Grievance box
- Skill passport
- House & merit points
- Certificates
- Continuity mode
- Campus footprint
- Hifz tracker
- Salah register
- Coaching batches
- Live classes
Built for Bangladesh
Local from the first line of code
Language, money and geography are part of the data model, not an afterthought.
- Full Bangla and English interface, including Bangla digits
- Taka amounts stored as whole poisha, never floating point
- All 8 divisions and 64 districts, with education boards
- EIIN, MPO, Alia and Qawmi madrasa classifications
- Sign in with a phone number or an email address
- Hifz, prayer, Zakat scholarships and madrasa workflows
Authorisation by design
Every write is checked on the server
A server action is a public endpoint whatever page renders its button, so each one re-checks the caller against the institution it acts on.
- Capability checks against a 31-bit permission mask
- Every update and delete filtered by institution
- scrypt password hashes; signed sessions you can revoke
- Login lockout; public forms are rate-limited
- Foreign keys, unique constraints and indexes in the schema
Example server action
'use server';
export async function recordPayment(institutionId: number, input: PaymentInput) {
// Throws unless the caller's role in THIS institution grants it.
const auth = await requirePermission(institutionId, Permission.CollectPayments);
return db.transaction(async (tx) => {
const [invoice] = await tx.select().from(invoices)
.where(and(eq(invoices.id, input.invoiceId),
eq(invoices.institutionId, institutionId)))
.for('update');
// …validate, insert payment, update invoice, write audit log
});
}Instant evaluation
Explore with one-click demo login
No passwords to type. Pick a role and you'll land in the dashboard with exactly that role's permissions.
Under the hood
A modern stack your developers already know
- Next.js16
- React19
- TypeScript5.9
- PostgreSQL16+
- Drizzle ORM0.44
- next-intl4
- Tailwind CSS4
- GSAP3
- Zod4
- jose (JWT)6
- sharp (AVIF)0.34
- DockerCompose
What you get
Full source, ready to deploy
- Complete TypeScript source, nothing compiled or obfuscated
- database/schema.sql and seed.sql, plus Drizzle migrations
- Docker Compose, Ubuntu VPS and Vercel + Neon setup guides
- README, HowToSetup, CLAUDE.md and CHANGELOG
- Automated tests for auth, permissions and demo sign-in
- Seed data: 14 institutions and 82 tutors, every module populated
FAQ
Questions buyers ask
Can I run it on my own server?
Yes. HowToSetup.md covers Docker Compose, a plain Ubuntu VPS with Nginx and PM2, and Vercel with Neon Postgres.
Is the source code complete?
Yes. Every page, server action, schema file and seed script is included as readable TypeScript.
Can I rebrand it?
The product name, colours and copy live in a handful of files, and each institution can set its own brand colour in Profile Studio.
How is each institution's data kept separate?
Every query filters by institution, foreign keys tie rows to their institution, and permissions are checked per institution on the server.
Can I add another language?
Yes. All interface text lives in the messages folder, one JSON file per language. Add a file and register the locale.