Show HN: One – A new React framework unifying web, native and local-first
Scope and Goals of One / Zero
- One is described as a React-based full‑stack framework targeting web, iOS, and Android with a single codebase, using Vite as the only bundler.
- It aims to combine Expo/Tamagui-style cross‑platform UI with SSR, SSG, SPA modes selectable per page, plus good tree‑shaking, code‑splitting, and fast dev HMR.
- Zero is a separate but tightly integrated data/sync engine (based on Replicache) for “local-first style” apps, running alongside Postgres; Zero will likely be paid and is still in private beta.
Comparison to Existing Stacks
- Compared to Expo + Next + Solito, One’s main selling point is one bundler (Vite) for web and native, integrated routing, and built‑in SSR instead of bolting on Next.
- Some see it as a partial “Rails for TypeScript” but focused more on data sync and routing than on business‑logic modeling.
- Many ask whether they can keep existing backends (especially Rails); answer: yes, as long as Postgres is used with Zero, and One itself is backend‑agnostic.
Local‑First Debate
- Supporters highlight instant local reads/writes via a client DB, background sync, optimistic UI, and offline reads; queries can be partially resolved client‑side.
- Critics argue this isn’t “true” local‑first per the Ink & Switch definition: offline mutation at launch is not yet supported, apps typically depend on a central server, and long‑term offline, user‑controlled operation is unclear.
- Even Zero’s creator now avoids labeling it strictly “local-first” and prefers “local-first style,” but marketing around One still leans on the term, which some find misleading.
DX, Stability, and Testing
- Enthusiasts praise Tamagui/Expo stacks and are excited about consolidating them; small teams hope to ship faster across three platforms.
- Others report serious instability and regressions with Tamagui across versions, saying it derailed projects; maintainers acknowledge regressions, cite huge scope, and claim recent stabilization and more testing.
- Testing story for One (unit/integration across web and native) is acknowledged as incomplete and “under investigation.”
Complexity, Philosophy, and Fatigue
- Some welcome another attempt to simplify cross‑platform JS; others see “a framework on top of frameworks” as preserving, not reducing, complexity.
- There’s extensive meta‑discussion: many experienced devs express burnout from JS framework churn and prefer Rails/Laravel/Vue/htmx or server‑rendered apps with sprinkles of JS.
- React itself draws polarized reactions: indispensable for some, intolerable for others who prefer Svelte/Vue/Solid.
Marketing, Naming, and Maturity
- Several criticize the homepage: too much focus on Zero (not yet released), unclear high‑level explanation, and a “Get Started = install it” flow.
- Name/SEO concerns: “One” and “onejs” collide with existing projects; share‑previews and Slack unfurl issues are noted.
- Native support is described as “pretty decent but beta”; maintainers estimate a few months to “stable” for production mobile apps.