How the app is built

Why the Mridanga Seva app uses Expo, Supabase and PostgreSQL. The class has about 200 students, many of them children, and is run by volunteers with no budget. These choices follow from that.

Three ideas behind it

What the app had to handle

The pieces

On your phone or computer: the app, built with Expo (React Native and TypeScript). Android users install it from a link; iPhone users add the web version to their home screen.

Behind it: one Supabase project, which is a PostgreSQL database with sign-in, file storage and scheduled jobs. Every read and write goes through the database's rules.

Outside services, each replaceable: Expo and Firebase deliver Android notifications, Brevo sends emails, lesson videos stay on YouTube, and Cloudflare Pages serves the web version and this website.

Compared with the usual alternatives

Each row is a way this app could have been built. The comments are about this class's situation, not about the technology in general.

OptionGood for usProblems for us
Expo + Supabase (what we use)Free plans; one code base for Android, iPhone web and later an iOS app; access rules inside PostgreSQL; reports are plain SQL; the data is a standard PostgreSQL dump.The rules need SQL skills; iPhone users get a web app for now.
Flutter + Firebase (our first draft)One code base; popular.For new projects, file storage and server functions need a paid plan with a card; reports are harder in a document database; data and rules are Firebase-specific.
Separate Android and iPhone appsThe best iPhone app.Two code bases plus a server; needs a Mac and US$99 a year.
PHP or Node with MySQLCommon skills; fully our own.Hosting costs money every month; MySQL cannot limit rows per user, so every rule lives in a server we must write, secure and patch; sign-in, files and notifications are all ours to build.
No-code (Google Sheets with AppSheet or Glide)Quick to start; easy for non-programmers.Children's data sits in a spreadsheet anyone with edit access can read or change; paid per user as the class grows.
Ready-made music-school softwareNothing to maintain.A monthly fee; built for booked, paid lessons, not drop-in seva or Telugu and Hindi.
WhatsApp and Excel (how the class runs today)Free; everyone already has it.Every member sees every phone number; no consent record; no attendance history at 200 students.

Why PostgreSQL and not MySQL?

Both are good databases. The deciding point is where the rules live.

Why Expo?

What these choices cost us

Short answers

Isn't a free plan risky?

The free plan has the same database rules as the paid one. The risks are a pause or lost data, and we handle them with weekly backups. Moving to the paid plan takes a day.

What if Supabase closes or changes its prices?

The data is ordinary PostgreSQL. A backup restores on any PostgreSQL host, and Supabase itself is open source and can run on our own server.

Why not just keep WhatsApp?

WhatsApp shows every parent's number to every member and keeps no attendance history. The app takes over the record-keeping; WhatsApp can stay for chat.

Prices and free-plan limits as of October 2026. The full reasoning, with a diagram, is in the project's source code.