Convert Tunisian Arabic written in Latin script (Arabizi) into Arabic script or Modern Standard Arabic (Fusha), powered by Google Gemini.
Website: arabizzi.com · GitHub: Abdelkaderbzz/arabizzi · Chrome extension: Web Store
This repository includes a Next.js web app and a Chrome extension that share the same conversion logic and bilingual UI.
| Path | Description |
|---|---|
app/, components/ |
Next.js web application |
extension/ |
Chrome extension (Manifest V3, self-contained) |
netlify-landing/ |
Marketing site, releases, and privacy policy |
- Latin (Arabizi) → Tunisian Arabic script or Fusha (MSA)
- Bilingual interface (English / Arabic) with RTL support
- Fusha / Tunisian output mode selector
- One-click copy, clickable examples
- Recent conversions and saved bookmarks
- Response caching to reduce API calls
- Toolbar popup with the same Fusha / Tunisian modes
- Bring-your-own Gemini API key (stored locally in the browser)
- Copy output and recent history (last 10)
- Saved bookmarks for conversions you want to keep
- English / Arabic interface
See extension/README.md for extension-specific setup and publishing steps.
| Latin Input | Tunisian Output | MSA Output |
|---|---|---|
| 3aslema | عسلامة | السلام عليكم |
| chneya 7alek? | شنية حالك؟ | كيف حالك؟ |
| taw nemchi lel dar | توا نمشي للدار | سأذهب إلى المنزل الآن |
- Next.js 16 (App Router)
- TypeScript
- Tailwind CSS + shadcn/ui
- Google Gemini (
gemini-2.5-flash) via Vercel AI SDK - Chrome Extension Manifest V3
- Node.js 20+
- pnpm 9+
- A free Google AI Studio API key
- Clone the repository:
git clone https://github.com/Abdelkaderbzz/arabizzi.git
cd arabizzi- Install dependencies:
pnpm install- Set up environment variables:
cp .env.example .envAdd your Gemini API key to .env:
GOOGLE_GENERATIVE_AI_API_KEY=your_api_key_here- Start the development server:
pnpm devOpen http://localhost:3000.
- Open
chrome://extensions - Enable Developer mode
- Click Load unpacked and select the
extension/folder - Open the extension settings (gear icon) and paste your Gemini API key
Full details: extension/README.md
pnpm dev # run web app locally
pnpm landing # static landing page (port 5174)
pnpm build # production build
pnpm start # start production server
pnpm lint # run ESLintPull requests run CI automatically: Lint, Build, and Extension checks must pass before merge.
├── app/ # Next.js routes and API
│ └── api/convert/ # Gemini conversion endpoint
├── components/ # React UI components
├── contexts/ # Language and history state
├── extension/ # Chrome extension source
├── lib/ # Conversion and usage helpers
├── netlify-landing/ # Landing, releases, privacy (Web Store)
├── translations/ # English and Arabic strings
└── types/ # TypeScript declarations
The Chrome extension stores the API key and preferences locally. Conversion text is sent only to Google's Gemini API. The privacy policy lives at arabizzi.com/privacy.html (netlify-landing/privacy.html).
We welcome contributions from the community.
- Read CONTRIBUTING.md for setup and PR guidelines
- Follow our Code of Conduct
- Fork the repository, create a branch, and open a pull request
To report a security vulnerability, please read SECURITY.md and contact us privately. Do not open public issues for security reports.
This project is licensed under the MIT License.
- Built for the Tunisian Arabic community
- Powered by Google Gemini
- UI components from shadcn/ui