Describe your client in plain English — I'll extract the details and create the lead for you.
Sarah, Amboseli, 6 pax, $5k, referralJohn WhatsApp enquiry, Mara 3 nights July, coupleCarlos Toledo, Kenya+Tanzania 11 días agosto, 2 adultos, $300/día, guía españolPaste a full enquiry form here…
Analysing your description…
✓ Lead extracted — please confirm:
🔍
🔔 Follow-ups Due
No follow-ups scheduled
📈 Pipeline by Stage
🌍
GOWILD
Safari & Tour Platform
Operator PIN
I'm a client — Plan my safari →
0
Total Guides
0
Languages
0
Avg. Years Exp.
0
Active
🔍
No guides yet — click Add New Guide to get started.
Plan Your Dream Safari
Build your personalised safari quote in minutes — choose your destinations, lodge, vehicle and activities.
1 Destination
2 Dates & Guests
3 Lodge
4 Vehicle
5 Activities
6 Your Quote
Where would you like to go?
Select one or more destinations for your safari.
Who's travelling?
Tell us how many guests and your preferred start date. You'll choose lodges and set the nights at each property in the next step.
Optional — you can leave this blank for now
How many guests?
Choose the number of travellers in each age group.
2
0
0
Choose your accommodation
For each destination, pick a lodge and set how many nights you'd like to stay. Your total trip duration is calculated automatically.
Total Duration
0 nights · 1 day
Estimated Total
—
Select your safari vehicle
Your private vehicle will be dedicated exclusively to your group.
What experiences would you like?
Select optional activities to add to your safari.
🎉
Thank you! Your enquiry has been sent.
Our team will review your safari plan and get back to you within 24 hours with a personalised itinerary and confirmation.
Your Safari Quote
Here's a summary of your personalised safari package.
Your Details
We'll respond within 24 hours with your full personalised itinerary
Estimated Total
—
✂️ Crop Your Photo
Drag to reposition · Corners to resize · Frame = 3:2 (1200×800px) — the exact size used in PDFs
1200 × 800 px
🟠 Orange frame = exact area that will be saved (3:2 ratio, landscape)
Drag the frame to choose the best part of the photo · The frame always keeps 3:2 ratio
>
🦁
Install GOWILD
Add to home screen · Works offline
🚗 Vehicle Library
Add and price your vehicle types. The daily rate will be auto-filled when selected.
🌿 Park Library
Define parks with seasonal rates. Leave date range blank for a fixed rate year-round.
🏕️ Lodge Library
Define lodges / camps with seasonal rates. Leave date range blank for a fixed rate.
🎯 Activity Library
Define your standard activities and costs. When adding activities to a park, select from this library to auto-fill the name and price.
➕ New Guide
🧑🦱
★★★★★
➕ New Lead
$
🗄️ Connect to Supabase Database
Step 1 — Create your free Supabase project
Go to supabase.com → click Start your project → sign in with GitHub
Click New Project, name it safari-calculator, set a password, choose region nearest to you (e.g. Frankfurt)
Wait ~2 minutes for it to set up
Step 2 — Create your database tables
In your Supabase dashboard, go to SQL Editor → click New Query, paste the SQL below and click Run:
CREATE TABLE quotes (
id bigserial PRIMARY KEY,
created_at timestamptz DEFAULT now(),
client text,
destination text,
guests int,
days int,
currency text,
total_label text,
total_raw numeric,
guest_mode text,
breakdown jsonb
);
CREATE TABLE vehicle_library (
id bigserial PRIMARY KEY,
name text NOT NULL,
rate numeric NOT NULL DEFAULT 0,
image_url text DEFAULT ''
);
CREATE TABLE park_library (
id bigserial PRIMARY KEY,
name text NOT NULL,
location text,
seasons jsonb NOT NULL DEFAULT '[]',
website text DEFAULT '',
image_url text DEFAULT '',
description text DEFAULT ''
);
CREATE TABLE accom_library (
id bigserial PRIMARY KEY,
name text NOT NULL,
location text,
seasons jsonb NOT NULL DEFAULT '[]',
website text DEFAULT '',
image_url text DEFAULT '',
description text DEFAULT ''
);
CREATE TABLE activity_library (
id bigserial PRIMARY KEY,
name text NOT NULL,
category text NOT NULL DEFAULT 'Other',
cost numeric NOT NULL DEFAULT 0
);
-- Allow public read/write (fine for private use)
ALTER TABLE quotes ENABLE ROW LEVEL SECURITY;
ALTER TABLE vehicle_library ENABLE ROW LEVEL SECURITY;
ALTER TABLE park_library ENABLE ROW LEVEL SECURITY;
ALTER TABLE accom_library ENABLE ROW LEVEL SECURITY;
ALTER TABLE activity_library ENABLE ROW LEVEL SECURITY;
CREATE POLICY "Allow all" ON quotes FOR ALL USING (true) WITH CHECK (true);
CREATE POLICY "Allow all" ON vehicle_library FOR ALL USING (true) WITH CHECK (true);
CREATE POLICY "Allow all" ON park_library FOR ALL USING (true) WITH CHECK (true);
CREATE POLICY "Allow all" ON accom_library FOR ALL USING (true) WITH CHECK (true);
CREATE POLICY "Allow all" ON activity_library FOR ALL USING (true) WITH CHECK (true);
CREATE TABLE crm_leads (
id bigserial PRIMARY KEY,
created_at timestamptz DEFAULT now(),
name text NOT NULL,
phone text DEFAULT '',
email text DEFAULT '',
destination text DEFAULT '',
travel_date date,
group_size int,
budget numeric,
source text DEFAULT '',
stage text NOT NULL DEFAULT 'New Lead',
followup_date date,
followup_note text DEFAULT '',
notes jsonb DEFAULT '[]',
linked_quote jsonb,
currency text DEFAULT 'USD'
);
ALTER TABLE crm_leads ENABLE ROW LEVEL SECURITY;
CREATE POLICY "Allow all" ON crm_leads FOR ALL USING (true) WITH CHECK (true);
CREATE TABLE IF NOT EXISTS guides (
id bigserial PRIMARY KEY,
created_at timestamptz DEFAULT now(),
name text NOT NULL,
status text DEFAULT 'Active',
years int DEFAULT 0,
languages text[] DEFAULT '{}',
specialities text[] DEFAULT '{}',
region text DEFAULT '',
parks text DEFAULT '',
phone text DEFAULT '',
email text DEFAULT '',
bio text DEFAULT '',
rating int DEFAULT 5,
photo text DEFAULT ''
);
ALTER TABLE guides ENABLE ROW LEVEL SECURITY;
CREATE POLICY "Allow all" ON guides FOR ALL USING (true) WITH CHECK (true);
-- Storage bucket for lodge & park photos
INSERT INTO storage.buckets (id, name, public)
VALUES ('safari-photos', 'safari-photos', true)
ON CONFLICT DO NOTHING;
CREATE POLICY "Allow all safari-photos"
ON storage.objects FOR ALL
USING (bucket_id = 'safari-photos')
WITH CHECK (bucket_id = 'safari-photos');
Step 3 — Get your API keys
In Supabase dashboard → Project Settings → API — copy your Project URL and anon public key below:
⚠️ The anon key is safe to use here — it only has the permissions you set in the SQL above. Never paste your service_role key.