Version: 0.1.0+1
FkmeUp is a single-user, gamified productivity execution system built as a dark performance console. It is offline-first, local-first, and optionally syncs to Supabase.
- Single-user only
- No AI assistant
- No team/collaboration
- No SaaS requirement
docs/screenshots/dashboard.png(placeholder)docs/screenshots/tasks.png(placeholder)docs/screenshots/heatmap.png(placeholder)docs/screenshots/stats.png(placeholder)docs/screenshots/settings.png(placeholder)
- Flutter (Android, Web, Windows, macOS, Linux)
- Dart 3+
- Riverpod
- GoRouter
- Isar Community (
isar_community) - Supabase (optional sync)
flutter_dotenvfl_chart
- App shell + route modules in
lib/app - Feature-first UI modules in
lib/features/* - Local/remote/repository data layers in
lib/data/* - Sync engine with queue/retry/backoff in
lib/data/sync/sync_engine.dart - Consistency engine in
lib/core/services/consistency_engine.dart - Typed domain persistence models in
lib/models/*
See docs/ARCHITECTURE.md for details.
- Create a Supabase project.
- Execute
supabase/schema.sqlin SQL editor. - Keep realtime enabled for
tasksanddaily_stats. - Set credentials in:
assets/env/.env(runtime asset).env(developer convenience)
Template:
SUPABASE_URL=https://your-project.supabase.co
SUPABASE_ANON_KEY=your_anon_keyflutter pub get
dart run build_runner build --delete-conflicting-outputs
flutter runflutter build apk --release
flutter build web --release
flutter build windows --release
flutter build macos --release- Verified in this workspace:
flutter analyze✅- focused tests (
test/utils/*) ✅ flutter build apk --release✅flutter build web --release✅
flutter build windows --releaserequires Windows Developer Mode (symlink support).
Symptoms: part '*.g.dart' not found.
Fix:
dart run build_runner build --delete-conflicting-outputsSome Flutter/Dart toolchains reject 64-bit schema ID literals in generated Isar files for dart2js.
Current workaround in this repo:
- JS-safe IDs are post-processed in generated model files under
lib/models/*.g.dart. - If you re-run codegen, re-apply this compatibility patch before
flutter build web --release.
Checklist:
- Valid
SUPABASE_URLandSUPABASE_ANON_KEY syncEnabledturned on in Settings- Schema applied from
supabase/schema.sql - RLS / table permissions allow operations for your key
Settings screen validates:
- Supabase URL format
- anon key presence
- sync enablement fallback (disables sync on invalid config)
- sync test button for runtime connectivity check
lib/
├── app/
├── core/
├── data/
│ ├── local/
│ ├── remote/
│ ├── repositories/
│ └── sync/
├── features/
│ ├── dashboard/
│ ├── tasks/
│ ├── heatmap/
│ ├── stats/
│ └── settings/
├── models/
├── theme/
└── utils/
See CONTRIBUTING.md.
See CHANGELOG.md.
MIT (LICENSE).