Inspiration

I am a classically trained tabla player, and every Hindustani music student I know has the same problem sitting in a drawer.

Your teacher writes a composition on the board. You copy it into a notebook in sargam: Sa Ni Pa Ga Re Sa. Six months later you find that page and you cannot play it back. You remember the notes but not the rhythm. You cannot tell whether two swars shared a beat or took one each. The notebook holds the letters and loses the music.

I built Swarlipi because I wanted my own class notes to be playable.

What it does

Swarlipi is a class diary for Hindustani music students.

  • Write compositions in sargam using a purpose built swar keyboard, not a QWERTY keyboard fighting you at every character
  • Hear any line played back with real harmonium samples at the tempo and Sa you choose
  • Mark taar and mandra octaves, group swars into shared beats, and set the taal so the rhythm survives the notebook
  • Keep every class, every raga, and every palta in one searchable place that syncs across your devices

How I built it

Swarlipi is a native iOS app, built solo.

Layer Choice
UI SwiftUI
Persistence SwiftData with CloudKit sync
Audio AVFoundation, driving recorded harmonium WAV samples
Monetization RevenueCat with a founding supporter tier

The notation editor was the hardest surface to get right. A swar keyboard has to feel faster than handwriting or nobody uses it twice, so it ships with a suggestion engine that predicts the next swar from what you have already written and from the shape of the phrase.

Audio was the second hard problem. Synthesized tones sound wrong to a trained ear, so playback uses recorded harmonium samples pitched to the Sa the student actually practices in.

Challenges I ran into

App Review rejected the first build. The app came back on its first submission. I worked through the reviewer's objection, resubmitted with clarification, and Swarlipi went live on the App Store in September 2026.

Notation is harder than text. Sargam is not a string of letters. Two swars can share one beat, a dash can mean a rest or a sustain, and octave markers change meaning depending on the direction of the phrase. Getting the data model right so that a written line is genuinely playable took more iterations than the entire UI.

Google Play blocked the Android launch. I built an Android version and then hit the closed testing requirement: twelve testers opted in for fourteen continuous days. Coordinating that as a solo developer was not realistic. I registered a Quebec business, opened a Google Play organization account that is exempt from the rule, and cleared the path that way.

Accomplishments I am proud of

  • Shipped and live on the App Store as a solo developer, after clearing an App Review rejection
  • Real users found it without paid acquisition, including enough Android demand to justify a second platform
  • The playback actually satisfies trained musicians, which was the bar I set myself

What I learned

Monetization is a product decision, not a step at the end. Wiring RevenueCat in taught me to think about who the paying user is while the feature is still being designed, rather than bolting a paywall onto a finished app and hoping.

I also learned that the App Store rejection was useful. It forced me to articulate what the app does for a reviewer who has never heard of sargam, and that framing made the listing better.

What's next for Swarlipi

Featured teacher packs. Instead of opening notation sharing to everyone and drowning in noise, I am curating it. Chosen teachers and creators get their own notation packs inside the app, published under their name, with credit and a share of revenue. Their students get authoritative notation. They get a new income line. The catalog stays high quality.

Android. The build is done and the organization account is ready. It ships next.

Built With

Share this project:

Updates