Overview
Yalla Kit is a commercial SaaS starter for Arab founders who want to launch in days rather than months, with Arabic treated as a first-class language rather than an afterthought. It sells for $50 at founding price, regularly $150, one-time with lifetime updates.
The kit ships fully bilingual and RTL-safe by design, with an admin dashboard, an email system, contact forms, and a waitlist already built.

Problem
Building a bilingual Arabic and English product from scratch means solving RTL layout and translation completeness before writing a single line of product-specific code. That work is unavoidable, unglamorous, and identical across every project.
The second problem is newer. A starter meant to be driven largely by coding agents has to constrain what an agent can get wrong, not merely document what it should do. An agent will eventually skip a step. The codebase has to make that failure loud.
Architecture
Next.js 16 with React 19 and TypeScript, styled with Tailwind v4. Data lives in Supabase Postgres, accessed through Drizzle. Billing runs through Stripe and Polar. Localization is handled by next-intl across the full bilingual surface.
The kit ships 50+ shadcn/ui components across 7 themes, plus the product surfaces themselves: an admin dashboard with analytics and user management, an email system, contact forms, and a waitlist.
Agent-facing tooling is part of the architecture rather than an add-on. There
are 17 agent skills, 5 custom commands, an AGENTS.md harness that gives
coding agents working context on the codebase, and end-to-end CI.

Tech Stack
Next.js 16, React 19, TypeScript, and Tailwind v4 on the frontend. Supabase Postgres with Drizzle as the ORM. Stripe and Polar for billing. next-intl for localization. Vitest for tests, backed by end-to-end CI.
Trade-offs
Guardrails for agents rather than trust in them. The sharpest decision in
Yalla Kit is treating coding agents as untrusted collaborators who need
enforced constraints, not documentation they might follow. The AGENTS.md
harness gives them structured context, but the real mechanism is that builds
fail when a translation is missing. Not a lint warning an agent can ignore. A
failed build.
That costs friction. A missing string blocks shipping instead of degrading quietly to a fallback locale. What it buys is a guarantee that the bilingual promise of the product cannot rot as features get added, which is exactly the kind of slow decay an agent is most likely to cause and least likely to notice.
Two payment providers instead of one. Stripe and Polar run side by side. That is more surface to maintain than a single processor, in exchange for covering buyers Stripe alone would not serve well.