// the take
A cross-platform template for building AI chat apps with Expo Router, targeting iOS, Android, and web from one codebase. It's aimed at developers who want a production-looking starting point for an LLM chat UI rather than a bare-bones RN project, complete with streaming responses and platform-specific polish like iOS 26 Liquid Glass.
Uses @legendapp/list for virtualized chat scrolling, which actually matters once a conversation gets long in React Native. The platform-split files (.web.tsx, .ios.tsx, .android.tsx) per component show real per-platform UI work instead of one compromise layout stretched across targets. The streaming store throttles token updates to ~30fps, a concrete fix for the common RN problem of re-rendering on every token and janking the UI. EXPO_PUBLIC_MOCK_AI lets you build and demo the UI without burning API credits or needing a key at all.
No tests anywhere in the tree, which is a real gap for something meant to be forked and modified repeatedly. The actual chat backend is one mock function you're expected to replace yourself; there's no persistence or auth, and the README just points you at Convex and better-auth as external homework rather than wiring up anything. The Anthropic provider is hardcoded into app/api/chat+api.ts via @ai-sdk/anthropic, so swapping models or providers means editing the route, not flipping a config value. The feature surface is large for a 'template' — SwiftUI native pickers, Radix web menus, Tailwind v4 via Uniwind, Reanimated, glass effects — so there's real time investment before you can confidently strip out what you don't need.
We read the README, the directory tree and a key source file in October 2026. Nobody pays to be listed. How we judge →