DP

Connect to Your Cloud Database

Follow these 3 steps once — takes about 5 minutes, no coding needed

1 Go to supabase.com and sign up for FREE
👉 Open a new tab and go to supabase.com

Click Start your project → sign up with Google (easiest) or email.

Once inside, click New Project:
• Name it: divine-projections
• Pick any password
• Region: South Africa (Cape Town)
• Click Create new project and wait 2 minutes.
2 Run the setup code (copy and paste — no typing needed)
Inside your Supabase project:

1. Click SQL Editor in the left menu
2. Click New query
3. Click the button below to copy the code
4. Paste it into the box (Ctrl+V or Cmd+V)
5. Click the green Run button

You should see: "Success. No rows returned." — that means it worked! ✅
-- Divine Projections OS Setup -- Just paste this and click Run create table if not exists public.clients ( id bigserial primary key, name text not null, initials text, type text, status text default 'LEAD', value numeric default 0, email text, phone text, location text, since text, nps integer default 0, color text default '#C9A84C', notes text, user_id uuid references auth.users(id) on delete cascade, created_at timestamptz default now() ); create table if not exists public.projects ( id bigserial primary key, name text not null, client_name text, status text default 'SCHEDULED', progress integer default 0, due_date text, budget numeric default 0, type text, tasks_total integer default 0, tasks_done integer default 0, color text default '#C9A84C', user_id uuid references auth.users(id) on delete cascade, created_at timestamptz default now() ); create table if not exists public.tasks ( id bigserial primary key, title text not null, client_name text, status text default 'TODO', priority text default 'MED', due_label text, user_id uuid references auth.users(id) on delete cascade, created_at timestamptz default now() ); create table if not exists public.invoices ( id text primary key, client_name text, amount numeric default 0, status text default 'PENDING', due_date text, issued_date text, description text, user_id uuid references auth.users(id) on delete cascade, created_at timestamptz default now() ); create table if not exists public.proposals ( id text primary key, client_name text, title text, value numeric default 0, status text default 'DRAFT', views integer default 0, date_label text, user_id uuid references auth.users(id) on delete cascade, created_at timestamptz default now() ); create table if not exists public.documents ( id bigserial primary key, folder_name text, file_name text, file_size text, file_date text, file_type text, user_id uuid references auth.users(id) on delete cascade, created_at timestamptz default now() ); alter table public.clients enable row level security; alter table public.projects enable row level security; alter table public.tasks enable row level security; alter table public.invoices enable row level security; alter table public.proposals enable row level security; alter table public.documents enable row level security; drop policy if exists "own_clients" on public.clients; drop policy if exists "own_projects" on public.projects; drop policy if exists "own_tasks" on public.tasks; drop policy if exists "own_invoices" on public.invoices; drop policy if exists "own_proposals" on public.proposals; drop policy if exists "own_documents" on public.documents; create policy "own_clients" on public.clients for all using (auth.uid()=user_id) with check (auth.uid()=user_id); create policy "own_projects" on public.projects for all using (auth.uid()=user_id) with check (auth.uid()=user_id); create policy "own_tasks" on public.tasks for all using (auth.uid()=user_id) with check (auth.uid()=user_id); create policy "own_invoices" on public.invoices for all using (auth.uid()=user_id) with check (auth.uid()=user_id); create policy "own_proposals" on public.proposals for all using (auth.uid()=user_id) with check (auth.uid()=user_id); create policy "own_documents" on public.documents for all using (auth.uid()=user_id) with check (auth.uid()=user_id);
3 Copy your two keys from Supabase
Still in Supabase, click Project Settings (the gear icon ⚙️ at the bottom left).

Then click API in the menu.

You will see two things to copy:
• Project URL — looks like: https://abc123.supabase.co
• anon public key — a very long code starting with eyJ...

Paste both into the boxes below, then click the button.

Stuck? WhatsApp for help: +27 067 176 5141

Your data is 100% yours — stored in your own private Supabase database.
DP

Divine Projections OS

Sign in to your business system

Don't have an account? Create Account

⚙ Reconfigure database connection

DP
DIVINE
PROJECTIONS OS
MAIN MENU
CLIENT FACING
FD
Founder
Admin · Full Access
Dashboard

New Item