Never inventing a fact
Typed tool arguments go through all-field validation and exact-source grounding. Optional details such as ages stay unknown until they matter instead of being guessed.
سَدِيمًاArabic-first conversational AIIn development
A conversational assistant that asks before it assumes and cites what it finds.
An Arabic-first AI assistant for travel planning and everyday questions, with grounded web research, opt-in voice and consent-based memory on a Fastify and Next.js monorepo.
Actual application screenshots of the welcome screen. The background is a licensed landmark video credited inside the project.
Build an assistant that handles real travel planning — budgets, group size, changing constraints — without inventing facts, and answers off-topic questions plainly instead of forcing everything into a sales flow.
My part: product design, full-stack and agent engineering.
A pnpm monorepo: apps/api is Fastify 5 with strict TypeScript and server-only provider credentials; apps/web is Next.js 16 with React 19 and Three.js; packages/contracts holds Zod 4 schemas shared by both. Supabase migrations define the schema and RLS; embedded PGlite runs the same SQL locally. The browser never holds provider or service keys — Next proxies a configured loopback API origin.
Typed tool arguments go through all-field validation and exact-source grounding. Optional details such as ages stay unknown until they matter instead of being guessed.
Ten-second, independently decodable recording segments, a two-item queue and hard size limits. A provider failure stops the turn and marks partial text for review — no silent retries.
When the product scope changed, the CRM routes, tools, UI and migration were removed rather than left half-alive; the retired migration was never applied to the cloud database.
Active development in a private repository. The production API is deliberately kept closed until security and privacy acceptance, so there is no public deployment. SADEEMAN is intentionally not a CRM: it cannot book, pay, create customer records or contact anyone.