Setup guide · from zero to live

Ultimate AI Studio on ultimate-ai.studio

About 45 minutes. You need no programming – only copy, paste and click. Work through the steps in order and tick the checklist at the end.

0

Create the accounts you need

  1. Supabase (database, sign-in, AI functions) – free: supabase.com → Start your project.
  2. Cloudflare (hosting, free SSL) – free: dash.cloudflare.com.
  3. Google AI Studio (Gemini key for chat, images, video, speech): aistudio.google.com/apikey → Create API key → copy it.
  4. Optional: OpenRouter (free open models such as DeepSeek, Qwen, Llama): openrouter.ai/keys → Create key.
  5. Your domain ultimate-ai.studio at IONOS (you have it already).
  6. Unzip ultimate-ai-studio.zip on your computer. You get a folder ultimate-ai-studio with two parts: website (goes to Cloudflare) and supabase (goes to Supabase).
1

Create the Supabase project

  1. Supabase → New project. Name: ultimate-ai-studio. Region: Central EU (Frankfurt). Set a strong database password and keep it safe.
  2. Wait ~2 minutes until the project is ready.
  3. Open Project Settings → API (or Data API). Copy two values into a note:
    Project URL, e.g. https://abcd1234.supabase.co
    Publishable key (or anon public key), starts with sb_publishable_ or eyJ…
Never use the service_role / secret key in the website. It stays inside Supabase.
2

Create the database

  1. Supabase → SQL Editor → New query.
  2. Open the file supabase/setup.sql from the folder with a text editor, select all, copy, paste into the editor.
  3. Click Run. You should see Success. No rows returned.
This creates accounts, plans (Free/Pro), Studio chats, skills, media, usage, support tickets, team chat, mail, live updates and the storage bucket ai-studio.
3

Sign-in settings

  1. Supabase → Authentication → URL Configuration:
    Site URL: https://ultimate-ai.studio
    Redirect URLs → Add URL: https://ultimate-ai.studio/** and https://www.ultimate-ai.studio/** (and later your *.pages.dev address, see step 6).
  2. Authentication → Providers → Email: keep enabled. Confirm email on (recommended).
  3. Google sign-in (optional): in Google Cloud Console → Create credentials → OAuth client ID → Web application. Authorized redirect URI:
    https://YOUR-PROJECT.supabase.co/auth/v1/callback
    Copy Client ID and Secret → Supabase → Providers → Google → paste → Save.
4

Install the AI functions

  1. Supabase → Edge Functions → Deploy a new function → Via Editor.
  2. Function name: ai-studio. Delete the sample code, paste the content of supabase/functions/ai-studio/index.ts, click Deploy.
  3. Repeat with name ai-free and the file supabase/functions/ai-free/index.ts.
  4. For both functions: Details → Verify JWT must be on.
  5. Edge Functions → Secrets (or Manage secrets) → add:
    GEMINI_API_KEY = your Google AI Studio key
    OPENROUTER_API_KEY = your OpenRouter key (optional)
Video (Veo) and some image models need billing enabled in Google AI Studio. Chat with Gemini Flash-Lite also works on the free tier.
5

Put your keys into the website

  1. Open website/assets/config.js with a text editor (Notepad, TextEdit in plain-text mode, VS Code).
  2. Replace the two placeholders with your values from step 1 and save:
window.UA_CFG = {
  url: 'https://abcd1234.supabase.co',
  key: 'sb_publishable_xxxxxxxxxxxxxxxx',
  supportEmail: 'support@ultimate-ai.studio'
};
6

Publish on Cloudflare Pages

Option A – upload (fastest):

  1. Cloudflare → Workers & Pages → Create → tab Pages → Upload assets.
  2. Project name: ultimate-ai-studio → Create project.
  3. Drag the contents of the folder website (index.html, assets, studio, chat … – not the folder itself) into the upload area → Deploy site.
  4. You get an address like https://ultimate-ai-studio.pages.dev. Add https://ultimate-ai-studio.pages.dev/** to the Supabase redirect URLs (step 3).

Option B – automatic from GitHub: create a private repository, upload the contents of website, then Cloudflare → Pages → Connect to Git → choose the repository → Framework preset None, build command empty, output directory / → Save and Deploy. Every upload to GitHub then publishes automatically.

Upload only website. The supabase folder is used in steps 2 and 4 and is not part of the site.
7

Connect ultimate-ai.studio (IONOS → Cloudflare)

  1. Cloudflare dashboard → Add a domain → ultimate-ai.studio → plan Free → continue. Cloudflare shows two nameservers, e.g. ada.ns.cloudflare.com and bob.ns.cloudflare.com.
  2. IONOS → Domains & SSL → ultimate-ai.studio → Nameserver (or Adjust nameservers) → Use custom nameservers → enter the two Cloudflare nameservers → Save. Remove any other IONOS nameservers.
  3. Wait until Cloudflare shows the domain as Active (minutes up to 24 h; you get an email).
  4. Cloudflare → Workers & Pages → your project → Custom domains → Set up a custom domain → ultimate-ai.studio → Activate. Repeat for www.ultimate-ai.studio.
  5. Cloudflare → domain → SSL/TLS → mode Full; Edge Certificates → Always Use HTTPS on.
If you use IONOS email (e.g. support@ultimate-ai.studio), copy the IONOS MX, SPF (TXT) and autodiscover records into Cloudflare → DNS before switching nameservers, so mail keeps working. IONOS lists them under Domains → DNS.
8

Make yourself the administrator

  1. Open https://ultimate-ai.studio/studio/ → Create account with your email → confirm the email.
  2. Supabase → SQL Editor → run (with your email):
update public.profiles set role = 'admin', plan = 'pro' where email = 'you@example.com';
  1. Reload /admin/. You can now give other users Pro, make support agents, block accounts and change the daily AI limit.
9

Sign-in emails from your own address (recommended)

  1. IONOS → create the mailbox support@ultimate-ai.studio.
  2. Supabase → Authentication → Emails → SMTP Settings → enable custom SMTP:
    Host smtp.ionos.de · Port 587 · User support@ultimate-ai.studio · Password = mailbox password · Sender name Ultimate AI Studio.
  3. Optionally translate the email templates under Emails → Templates.
10

Test everything

11

Updates later

  • Option A: Cloudflare → your Pages project → Create deployment → upload the new contents of website.
  • Option B (GitHub): upload the changed files to the repository – Cloudflare publishes automatically within a minute.
  • Keep your assets/config.js – it holds your keys.