A free, open-source Augmentative and Alternative Communication (AAC) app for children with autism, cerebral palsy, and developmental delays.
Sprout exists because no child should be without a voice due to cost. Every feature is free. Always.
Status: pre-release — not yet on the App Store or Google Play. We're building in public and the code runs, but the app isn't downloadable yet. Join the waitlist to be notified on launch.
The leading AAC apps cost $249+. Research shows only 32% of minority families have access to an AAC device versus 84% of white families. The last widely-used free alternative (Cboard) moved behind a paywall in 2024.
Sprout is permanently free, open-source, and built with the AAC community — not just for it.
- Offline-first — works with no internet. Data never waits on a network call.
- Motor planning stability — cells never move. Once a child learns where "more" is, it stays there.
- Privacy-safe — child data never leaves the device unless the family explicitly exports it.
- Accessibility within the accessibility app — switch scanning, high contrast, OpenDyslexic font, adjustable grid sizes.
- Built with the community — SLPs and families involved from day one.
- Guided onboarding flow (5-step setup wizard)
- Three starter boards: Little Communicator (3×3), Growing Voice (4×4), Big Talker (5×5)
- Open Board Format (OBF) templates with Fitzgerald Key color coding
- Communication screen with sentence bar and native offline TTS
- Multi-child profiles
- OpenSymbols integration (4,000+ free symbols — API stub ready)
- Caregiver edit mode (PIN-gated board editor)
- On-device word prediction (bigram model — schema + DB methods ready)
- OBF import/export (stubs in place)
- Board sharing via share code
- SLP → family board push
- Switch scanning (single & dual switch)
- Eye gaze support
- Larger grid sizes (42, 84 cells)
- Optional cloud backup (Supabase)
- Therapist dashboard
- Board library (community-contributed boards)
| Layer | Choice | Why |
|---|---|---|
| Framework | Flutter | Single codebase, iOS + Android |
| Database | Drift (SQLite) | Offline-first, type-safe, generated queries |
| State | Riverpod | Predictable, testable, no BuildContext leaks |
| TTS | flutter_tts (native) | Free, offline, no API key |
| Symbols | OpenSymbols API | Free, open-licensed, 4k+ symbols |
| Onboarding | SharedPreferences | Lightweight, no extra infrastructure |
| Cloud sync | Supabase (optional) | Generous free tier, additive only |
- Flutter SDK 3.0+
- Dart 3.0+
- Xcode (iOS) or Android Studio (Android)
git clone https://github.com/sproutaac/app.git
cd app
# Install dependencies
flutter pub get
# Generate Drift database code
dart run build_runner build
# Run on device/simulator
flutter runlib/
├── main.dart # Entry point, ProviderScope, OnboardingGate
├── constants/
│ └── app_theme.dart # Design system, Fitzgerald Key colors
├── models/
│ └── database.dart # Drift schema (profiles, boards, cells, usage)
├── onboarding/
│ ├── onboarding.dart # Library barrel + integration guide
│ ├── onboarding_flow.dart # OnboardingGate + OnboardingFlow (PageView)
│ ├── onboarding_provider.dart # State: name, age, template, access method
│ ├── onboarding_widgets.dart # Shared step UI components
│ └── steps/
│ ├── step_welcome.dart # Green gradient splash
│ ├── step_profile.dart # Name + age range + access method
│ ├── step_template.dart # Starter board picker with mini grid preview
│ ├── step_personalize.dart # Favorite symbol search (OpenSymbols stub)
│ └── step_done.dart # Creates profile + board in DB, marks complete
├── services/
│ ├── tts_service.dart # flutter_tts wrapper, per-child voice settings
│ └── symbol_service.dart # OpenSymbols API + local cache
├── screens/
│ ├── home/
│ │ └── profile_selection_screen.dart # Who's communicating today?
│ └── communication/
│ └── communication_screen.dart # Main board view + sentence bar
└── widgets/
└── grid/
└── communication_grid.dart # AAC grid, switch scanning, tap animation
assets/
└── templates/
├── little_communicator.json # OBF 3×3 starter board (ages 2–4)
├── growing_voice.json # OBF 4×4 starter board (ages 4–7)
└── big_talker.json # OBF 5×5 starter board (ages 7+)
Sprout is built with the AAC community. We especially welcome:
- SLPs — clinical expertise on vocabulary, motor planning, and board design
- AAC users and families — lived experience that no spec can replace
- Developers — Flutter, accessibility, offline-first architecture
- Translators — AAC must be accessible across languages
Please read CONTRIBUTING.md before opening a PR.
Join the conversation: OpenAAC Discord
GPL v3 — free to use, fork, and build upon. Any app built on Sprout must also be open source. See LICENSE.
Sprout is funded by grants and donations. We will never charge families.
If you're an organization that wants to support this work, email hello@sproutaac.org. Donation links coming once we launch.
- OpenAAC for the Open Board Format standard and symbol resources
- OpenSymbols for the free symbol library
- Cboard for demonstrating what's possible with open-source AAC
- Every SLP and family who gave their time and feedback