A culturally aware Flutter AI assistant for Egyptians and visitors exploring Egypt.
egypto
Ask smarter. Get better answers.
A culturally aware AI assistant built for Egyptians and visitors exploring
Egypt.
egypto combines streaming AI chat with Egypt-aware guidance, web-assisted
answers, voice input, response controls, guided discovery, and personal
collections. The Flutter client supports Arabic and English from one
feature-first codebase, with localization scaffolding for ten additional
locales.
The client builds with zero analyzer diagnostics and 57 passing unit, widget,
and entity tests, gated in CI on every change.
## Product experience
- **Streaming conversation:** cancellable Server-Sent Events deliver partial
answers without freezing the interface.
- **Text, voice, and web-assisted prompts:** users can choose how they ask and
tune the response style without changing the backend protocol.
- **Discovery and organization:** guided topics help start useful
conversations, while collections keep important answers easy to revisit.
- **Arabic and English first:** Arabic right-to-left layouts and English are
supported today; ten additional ARB locales provide scaffolding for future
reviewed translations.
## Architecture
```mermaid
flowchart LR
User["Android / iOS user"] --> App["Flutter client"]
App -->|"Firebase ID token"| Auth["Firebase Authentication"]
App -->|"HTTPS + cancellable SSE"| Api["Node.js / Express API Vercel Function"]
Api -->|"streamed response"| App
Api --> Redis["Managed Redis"]
Api --> Db["Supabase PostgreSQL"]
Api --> Models["LLM providers"]
App --> Telemetry["Firebase Analytics Crashlytics / Messaging"]
Cron["Vercel Cron"] --> Api
```
This repository contains the mobile client. The backend lives in a separate
repository and is currently deployed on Vercel, with a configured maximum
function duration and Vercel Cron for scheduled Explore work. A separately
maintained Terraform and EC2 path is documented below as an alternative
deployment design.
The application uses a feature-first structure. Feature …