A free, open-source communication aid (AAC app) for people with aphasia, stroke recovery, ALS, or other conditions that affect speech. Users tap pictures organized in categories to build phrases that are spoken aloud.
- Choose a category - Tap a category like "I feel", "I need", "Eat", etc.
- Select an item - Tap a specific item within that category
- Hear it spoken - The phrase is automatically spoken (e.g., "I feel tired")
- Repeat if needed - Tap "Speak Again" to repeat the phrase
- Large, easy-to-tap buttons designed for accessibility
- Uses emoji icons (no images needed for basic use)
- Voice selection and speed control in settings
- Works on phones, tablets, and computers
- Can be installed as an app on mobile devices (PWA)
- Optional cloud sync - Sign up to save customizations across devices
- Built-in editor - Customize categories and items with an emoji picker (requires account)
- About page - Learn about the app and who it's for
npm install
npm run devOpen http://localhost:3000 to view it.
Guest Mode (no account needed):
- Full AAC functionality works immediately
- Settings saved locally on your device
- Default categories available
With Account:
- Customize categories and items via the Editor
- Visual emoji picker for choosing icons
- Upload custom photos for people
- Sync across all your devices
- Settings backed up to the cloud
To enable accounts and cloud sync:
- Create a free Supabase project
- Run the SQL from
supabase-schema.sqlin your Supabase SQL Editor - Copy your project URL and anon key from Settings > API
- Create
.env.local:VITE_SUPABASE_URL=https://your-project.supabase.co VITE_SUPABASE_ANON_KEY=your-anon-key - Restart the dev server
- Push to GitHub
- Import project in Vercel
- Add environment variables (VITE_SUPABASE_URL, VITE_SUPABASE_ANON_KEY)
- Deploy
The app works without Supabase configured - users just won't see login/editor options.
Edit src/lib/defaultCategories.js to change the default categories for all users.
- React 18 with Vite (fast builds, minimal dependencies)
- Supabase for auth and database (optional)
- Web Speech API for text-to-speech
- Large touch targets (140px+ buttons)
- High contrast dark theme
- Supports
prefers-reduced-motion - Supports
prefers-contrast: high - Screen reader friendly with ARIA labels
- Keyboard navigable
src/
├── components/
│ ├── App.jsx # Main AAC interface
│ ├── auth/ # Login/signup components
│ └── editor/ # Customization UI
├── hooks/
│ ├── useCategories.jsx # Data management
│ └── useSpeech.js # Text-to-speech
├── lib/
│ ├── supabase.js # Database client
│ └── defaultCategories.js
└── styles/
This app was originally built to help a mother with aphasia communicate with her family. It's been open-sourced so others in similar situations can use and customize it for their loved ones.
MIT - Feel free to use, modify, and share.