Cubed Docs

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.

PieceWhat it holdsWhere it lives
TebexYour products, prices, categories, paymentsTebex's servers — you already have this
SupabaseYour settings, page text, colours, and uploaded imagesOne free Supabase project (3-minute setup)
The websiteThe theme itselfWherever 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

On this page