Once UI Blog
Posts
Once UI
Once UI 2.5: reactions that move
Once UI 2.4: ready for AI apps
Once UI 3.0 beta: one way to say it
Stack languages: your app in Hungarian, or in two
Stack store: your shop on your own site
Liquid Metal: chrome that never sets
Chirio, redesigned
Styled screenshots in Chirio
Once UI 2.3: made for real apps
Frametic is now a video and capture studio
Agents write about 40% less code from Stack
Magic Portfolio, now on Once UI 2
Frametic MCP: let your agent film your site
Once UI Stack: your site as a desktop app
Once UI Stack, redesigned
Stack: teams and billing
Prism Glow: soft prism light behind your sign-in screen
Once UI for React Native: the same props on a phone
Once UI 2.2: chat, forms and mobile
Dither: your own image or video as a dithered print
Once UI 2.1: The pieces apps kept asking for
Once UI 2.0: A system an AI can build with
What made Once UI 2.0 possible
Once UI 2.0 alpha: Measured, not assumed
Colour arrives in pairs
Once UI 1.8: Polish as a feature
Once UI 1.7: Form with Intent
From products to systems: a new service model
Magic Journal: A different medium for long-form writing
Supa Social: The next milestone of our journey
Once UI is open source. Here's how we plan to keep it that way.
Designing a timeless, AI-native brand
Once UI 1.5: Curiosity in code
Once UI 1.4 migration guide: The breakpoint object
Launching in the AI-native era: A guide for indie builders
The first design system for indie builders
Builder Stories
Side and Once UI: From café website to reservation system
SatisPro and Once UI: Scaling smarter review management
IQON and Once UI: Scaling with a design system
Dev: Blending science and code with Once UI
JExcellence and Once UI: Turning experiments into enterprise apps
OsmyReal: Launching a platform for mobile gaming with minimal coding
TrademarkTrademark
Ctrl k
Search…
Sign up
Once UI Blog
Posts
Once UI
Once UI 2.5: reactions that move
Once UI 2.4: ready for AI apps
Once UI 3.0 beta: one way to say it
Stack languages: your app in Hungarian, or in two
Stack store: your shop on your own site
Liquid Metal: chrome that never sets
Chirio, redesigned
Styled screenshots in Chirio
Once UI 2.3: made for real apps
Frametic is now a video and capture studio
Agents write about 40% less code from Stack
Magic Portfolio, now on Once UI 2
Frametic MCP: let your agent film your site
Once UI Stack: your site as a desktop app
Once UI Stack, redesigned
Stack: teams and billing
Prism Glow: soft prism light behind your sign-in screen
Once UI for React Native: the same props on a phone
Once UI 2.2: chat, forms and mobile
Dither: your own image or video as a dithered print
Once UI 2.1: The pieces apps kept asking for
Once UI 2.0: A system an AI can build with
What made Once UI 2.0 possible
Once UI 2.0 alpha: Measured, not assumed
Colour arrives in pairs
Once UI 1.8: Polish as a feature
Once UI 1.7: Form with Intent
From products to systems: a new service model
Magic Journal: A different medium for long-form writing
Supa Social: The next milestone of our journey
Once UI is open source. Here's how we plan to keep it that way.
Designing a timeless, AI-native brand
Once UI 1.5: Curiosity in code
Once UI 1.4 migration guide: The breakpoint object
Launching in the AI-native era: A guide for indie builders
The first design system for indie builders
Builder Stories
Side and Once UI: From café website to reservation system
SatisPro and Once UI: Scaling smarter review management
IQON and Once UI: Scaling with a design system
Dev: Blending science and code with Once UI
JExcellence and Once UI: Turning experiments into enterprise apps
OsmyReal: Launching a platform for mobile gaming with minimal coding
Sponsored
Aveiro
aveiro.app
Sponsored
Aveiro
aveiro.app
TrademarkTrademark
Once UIDocumentationBlog
© Once UI. All rights reserved.
Built with Aveiro
Stack

Stack languages: your app in Hungarian, or in two

One setting gives a Once UI Stack store its language. Add a second and it serves /hu URLs with a switcher, a remembered choice and hreflang for search.
Updated 2 days ago
Once UI 3.0 beta: one way to say it
Stack store: your shop on your own site
Every Once UI Stack app now has a language, set once when you start it. Give it Hungarian and the store speaks Hungarian. Give it English and Hungarian and it serves both, each at its own URL.
Stack languages at a glance, slide 1 of 7
Stack languages at a glance, slide 2 of 7
Stack languages at a glance, slide 3 of 7
Stack languages at a glance, slide 4 of 7
Stack languages at a glance, slide 5 of 7
Stack languages at a glance, slide 6 of 7
Stack languages at a glance, slide 7 of 7
The first language is the default. It sets <html lang>, how prices are formatted, and which text the interface shows.

One entry per language

A surface keeps its interface text in one labels file, with one entry per language. Translating it means adding an entry, not editing components, which is exactly the kind of change an AI agent gets right. Every entry has the type of the first one, so a missing key fails the typecheck instead of showing up blank in production. The storefront has its labels file today, and the other surfaces follow.

Two languages, two sets of URLs

With two or more languages, /hu/store renders the same page as /store, in Hungarian. The default language keeps plain URLs.
  • The visitor's choice is remembered, so ordinary links keep a Hungarian reader in Hungarian. On the first visit, the browser's language decides.
scaffold --surfaces store --locales hu      # Hungarian only
scaffold --surfaces store --locales en,hu   # English, Hungarian at /hu
const hu: StoreLabels = {
  cart: { title: "Kosár", checkout: "Fizetés" },
  // …
};

export const storeLabels = { en, hu };
  • The store header gets a language switcher.
  • Each page gets its own canonical URL and hreflang alternates, so search engines index every language.
  • Products and collections are content, not interface text, so they come from the catalog in whatever language it is written in.