Welcome
Everything you need to install, configure and run the Cubed Tebex store theme.
Cubed is a complete storefront for your Tebex webstore. It reads your categories, packages and prices straight from Tebex, and gives you an admin panel where you change the branding, colours, languages, currencies and page text without touching any code.
What you get
A Tebex storefront
Categories, packages, basket, gift cards, sales and checkout — all driven by your existing Tebex store.
An admin panel
Built-in CMS at /admin. Change logo, colours, footer, languages and rank tables from your browser.
34 languages
Translations shipped for 34 locales. Enable the ones you want; the rest stay hidden.
Multi-currency
Six display currencies with live exchange rates, on top of your Tebex store currency.
How this works, in one picture
Three pieces. Understanding them makes everything else easy.
| Piece | What it holds | Where it lives |
|---|---|---|
| Tebex | Your products, prices, categories, payments | Tebex's servers — you already have this |
| Supabase | Your settings, page text, colours, and uploaded images | One free Supabase project (3-minute setup) |
| The website | The theme itself | Wherever you deploy it (5 options) |
Cubed never stores products or payments — those stay in Tebex. And it writes nothing to the server's disk, so your host is disposable: wiping and rebuilding it loses nothing, and moving hosts is just pointing the new one at the same Supabase project.
Start here
Check you have what you need
Node.js, Bun, a Tebex store and a Supabase account. → Requirements
Get your Tebex keys
Two values, both from the Tebex Creator Panel. → Tebex setup
Create your Supabase project
Three minutes in the dashboard. No code changes. → Set up Supabase
Install and seed
One command creates your tables, your starting content and your admin login. Done once, whatever you deploy to. → Install and seed
Deploy it
Pick your host and follow that one page start to finish. → Deployment
Never used a terminal before? That is fine. Every command in these docs is
written out in full — you copy it, paste it, press Enter. Where a command needs
something of yours (a password, a domain), it is written in CAPITALS so you know to
replace it.
Three things that catch people out
Each has a fix that takes seconds if you know about it, and hours if you do not.
1. Use Supabase's Session pooler connection string.
Supabase offers three and only one works here. The direct connection is IPv6-only and
fails with ECONNREFUSED on most networks; the transaction pooler (port 6543)
cannot create your tables.
→ Set up Supabase
2. Your Storage bucket must be public. Uploads succeed either way, but a private bucket means your logo and favicon 404 for every visitor. → Set up Supabase
3. SUPABASE_URL has to exist at build time.
The build bakes your Supabase hostname into the image loader and the security policy.
Add it to your host's environment settings before the first build, not after.
→ Environment variables