Free and open-source communication app using pictograms.
Built with Flutter for web, installable as a PWA on any device.
Live Demo · Why PictoTap? · Features · Getting Started
PictoTap is a free, safe, and accessible communication app designed for people with Autism Spectrum Disorder (ASD). Its goal is to provide an easy way to communicate through pictograms on any device — mobile, tablet, or computer.
While originally designed for people with ASD, PictoTap can also be helpful for anyone with communication difficulties, including people with cerebral palsy or other conditions that affect speech.
Pictograms are universally easy to identify, making communication simple and intuitive.
- Education — A practical tool for teachers to communicate with students and support classroom routines, which are essential for people with ASD.
- Social inclusion — Helps people with communication difficulties participate more actively in everyday social interactions.
- Family — Enables fluid communication at home and helps families reinforce routines and learning from the classroom.
- Pictogram keyboard with categorized icons (descriptive, people, prepositions, determiners, nouns, verbs)
- Visual board to compose messages by selecting pictograms
- Smart recommendations — contextual next-word suggestions based on communication patterns
- Share the board as a 1080×1080 image with text description
- Offline-first PWA — works without internet after the first visit, installable on any device
- Multi-language support: English, Spanish, Catalan, Basque, French, Galician, Portuguese, Valencian
- Accessibility-focused design with semantic labels for screen readers
- Flutter SDK >= 3.0.0
- lefthook (optional, for git hooks)
make setupThis installs dependencies and configures pre-commit hooks (format + analyze) and pre-push hooks (tests).
make run-webmake test # run all tests make coverage # run tests and report coverageReleases are managed automatically by release-please. Push to main using Conventional Commits (feat:, fix:, chore:, etc.) and a release PR will be created with the version bump and changelog.
If a deploy breaks in production, rollback to any previous version from the Actions tab:
- Go to Actions → Rollback → Run workflow
- Enter a git ref (tag like
v1.0.0, commit SHA, or branch) - The previous version will be rebuilt and deployed to GitHub Pages
lib/ ├── main.dart # App entry point ├── models/ │ ├── pictogram.dart # Pictogram value object │ └── board.dart # Board entity with business rules ├── data/ │ ├── pictogram_data.dart # Pictogram categories and icon data │ └── pictogram_recommendations.dart # Next-word suggestion graph ├── screens/ │ └── pictotap_screen.dart # Main screen (presentation only) ├── services/ │ ├── image_saver.dart # Platform export selector │ ├── image_saver_native.dart # Native image sharing (Android/iOS) │ ├── image_saver_web.dart # Web image download / Web Share API │ ├── image_saver_stub.dart # Stub for unsupported platforms │ ├── board_share_service.dart # Board capture and share pipeline │ └── recommendation_service.dart # Contextual pictogram suggestions ├── utils/ │ └── pictogram_utils.dart # Convenience wrappers ├── widgets/ │ ├── board_empty_hint.dart # Empty board hint animation │ ├── pictogram_icon.dart # Pictogram icon widget │ └── pictogram_keyboard.dart # Keyboard widget with categories └── l10n/ # Localization (ARB files) This project was conceived and designed by Leire Gerekaetxebarria and Irune Iglesias, who envisioned a simple and effective communication tool for accessibility. Development by Endika.
This project is licensed under CC BY-NC-SA 4.0 — free to use, modify and share, but not for commercial purposes.