| Metadata | Value |
|---|---|
| Status | Active |
| Version | 1.1.0 |
| Last Updated | 2026-02-03 |
| Author | Sangeetha Grantha Team |
A Digital Compendium of Carnatic Classical Music
Sangeetha Grantha is an open, authoritative, multi-platform digital compendium of Carnatic classical music compositions (Krithis).
The project aims to unify scattered, semi-structured sources into a single, searchable, multilingual, and musicologically correct system, with strong editorial governance and production-grade engineering.
It is designed to become the system of record for Carnatic Krithis — supporting composers, ragas, talas, sahitya, sampradaya, temples, and themes in a structured and extensible manner.
- Consolidate Carnatic Krithi data from multiple legacy sources
- Enable fast, accurate search across:
- Krithi name / opening line
- Lyrics (substring search)
- Composer
- Raga(s), including Ragamalika
- Tala
- Deity
- Temple / Kshetram
- Preserve musicological correctness:
- Pallavi / Anupallavi / multiple Charanams
- Sampradaya (pāṭhāntaram / bani)
- Primary language of composition
- Provide a clean editorial workflow for curation and review
- Deliver a modern, scalable, cloud-ready platform
- Mobile App: Android & iOS using Kotlin Multiplatform (KMM)
- Admin Web Console: React + TypeScript + Tailwind CSS
- API: Kotlin + Ktor (REST)
- Database: PostgreSQL 15+
- Migrations: Rust-based CLI tool (
tools/sangita-cli) for database management (no Flyway)
- AWS or Google Cloud
- CI/CD via GitHub Actions
- Centralized logging and audit trails
- Browse and search Krithis
- Structured lyrics:
- Pallavi / Anupallavi / Charanams
- Original script
- Transliteration
- Optional meaning
- Ragamalika support (ordered ragas)
- Multilingual sahitya
- Sampradaya-aware variants
- CRUD for:
- Krithis
- Composers
- Ragas
- Talas
- Deities
- Temples (with multilingual names & aliases)
- Tags / themes
- Sampradaya
- Editorial workflow:
DRAFT → IN_REVIEW → PUBLISHED → ARCHIVED
- Data ingestion & normalization pipeline
- Full audit trail for all mutations
For the authoritative schema definition and detailed relationship models, please refer to:
For a complete and specific list of versions and dependencies, please see Current Versions.
| Layer | Technology |
|---|---|
| Mobile | Kotlin Multiplatform (KMM) + Compose Multiplatform |
| Backend | Kotlin + Ktor + Exposed |
| Database | PostgreSQL 15+ |
| Migrations | Rust CLI (tools/sangita-cli) |
| Admin Web | React + TypeScript + Tailwind + Vite |
| Build | Gradle (Backend/Mobile), Bun (Frontend) |
| Toolchain | Managed via mise |
├── modules/
│ ├── shared/ # Shared domain models & UI (KMM)
│ ├── backend/
│ │ ├── api/ # Ktor REST APIs
│ │ └── dal/ # Data access layer (Exposed)
│ └── frontend/
│ └── sangita-admin-web/ # Admin web (React + TS)
├── database/
│ ├── migrations/ # SQL migration files
│ └── seed_data/ # Seed SQL files
├── tools/
│ └── sangita-cli/ # Rust CLI for DB management, dev workflow, testing
├── openapi/ # OpenAPI specifications
├── application_documentation/ # PRDs, ERDs, architecture docs
├── config/ # Environment configuration (TOML)
└── gradle/libs.versions.toml # Centralized dependency management
💡 Quick Setup: For complete setup instructions, see Getting Started.
Prerequisites:
- mise (toolchain version manager)
- Docker Desktop (macOS/Windows) or Docker Engine (Linux)
One-command setup (after installing mise):
# Unix/Linux/macOS
./tools/bootstrap
# Windows
powershell -ExecutionPolicy Bypass -File .\tools\bootstrap.ps1This will set up the required toolchain and development environment.
Start development stack (recommended via mise):
# Via mise (ensures correct tool versions)
# Reset Database (Drop -> Create -> Migrate -> Seed)
mise exec -- cargo run --manifest-path tools/sangita-cli/Cargo.toml -- db reset
# Start development stack with database
mise exec -- cargo run --manifest-path tools/sangita-cli/Cargo.toml -- dev --start-dbFor detailed setup, usage guides, troubleshooting, and CLI commands, see:
- Getting Started — Complete setup guide
- Sangita CLI README — Development workflow and commands
- Product Requirements Document: Sangita Grantha PRD
- API Spec: API Contract
- Database Schema: Schema Overview
- Architecture: Backend System Design
This repository is designed to work seamlessly with AI coding assistants.
For comprehensive references and coding patterns, see: AI & Vibe Coding References
- ✅ Core schema & ingestion pipeline
- ✅ Admin editorial workflow
- ✅ AI Transliteration & Web Scraping
- 🔄 Mobile app development
- 🔄 Advanced lyric search & ranking
- 🔮 Media management (audio/notation)
- 🔮 Public read-only web experience
This project draws inspiration from decades of Carnatic scholarship and legacy sources such as karnatik.com, shivkumar.org, and various composer-centric archives.
Sangeetha Grantha exists to preserve, structure, and respectfully modernize this knowledge for future generations.
Sangeetha Grantha — where tradition meets thoughtful engineering 🎵