A cloud-based POS (Point of Sale) application for Indonesian small businesses (UMKM), built with Flutter and Supabase.
- Cloud-First - All data stored in Supabase (PostgreSQL) with Row Level Security
- Multi-Device - Sign in from any device, data follows your account
- Profit Tracking - Track profits, not just revenue
- Debt Management - Built-in debt (hutang) tracking for local business needs
- Frontend: Flutter
- State Management: Riverpod
- Backend: Supabase (PostgreSQL + Auth + RLS)
- Authentication: Supabase Auth (mandatory email/password)
- Architecture: Clean Architecture (feature-based modules)
Kasbon/
├── app/ # Flutter mobile app
├── supabase/ # Supabase config, migrations, seed data
└── docs/ # Project documentation
Development tasks and progress are tracked in ClickUp (Kasbon space).
- Flutter SDK 3.x
- Dart SDK
- Supabase CLI (for local development)
- Docker (required by Supabase CLI)
# Clone repository
git clone <repository-url>
cd Kasbon
# Start local Supabase (from project root)
supabase start
# Note the API URL and publishable key printed by this command
# Install Flutter dependencies
cd app
flutter pub get
# One-time setup: create your env file with the values from `supabase start`
cp env.example.json env.json # then fill in SUPABASE_PUBLISHABLE_KEY
# Run the app against local Supabase
flutter run --dart-define-from-file=env.jsonLocal test user (from seed data): test@kasbon.id / password123
supabase start # Start local Supabase (API: 54321, DB: 54322)
supabase stop # Stop local Supabase
supabase migration new <name> # Create a new migration
supabase db reset # Reset local DB (applies migrations + seed)CLAUDE.md— Current architecture, commands, and conventions (kept up to date)- ClickUp Kasbon space — Development tasks & progress tracker
supabase/migrations/— Database schema source of truthdocs/— Original planning documents (historical; early sections describe a since-abandoned SQLite offline-first design)
[License information here]