Paste your credentials below. Run the SQL once, then you're live.
Supabase → Settings → API
Settings → API → Legacy tab → anon key
⚠️ Run this once in Supabase → SQL Editor → New query:
-- Voluntier v3 schema — run once
CREATE TABLE IF NOT EXISTS profiles (
id UUID REFERENCES auth.users PRIMARY KEY,
full_name TEXT, email TEXT, role TEXT DEFAULT 'volunteer',
location TEXT, skills TEXT, points INTEGER DEFAULT 0,
causes_completed INTEGER DEFAULT 0, hours_logged INTEGER DEFAULT 0,
streak_days INTEGER DEFAULT 0, tier TEXT DEFAULT 'bronze',
skill_points TEXT DEFAULT '{}',
avatar_color TEXT DEFAULT '#1B4332', created_at TIMESTAMPTZ DEFAULT NOW()
);
CREATE TABLE IF NOT EXISTS organisations (
id UUID DEFAULT gen_random_uuid() PRIMARY KEY,
name TEXT NOT NULL, cause_area TEXT, charity_number TEXT,
contact_email TEXT, icon TEXT DEFAULT '🏛️', color TEXT DEFAULT '#F0FAF2',
verified BOOLEAN DEFAULT FALSE, plan TEXT DEFAULT 'free',
volunteers_needed INTEGER DEFAULT 0, created_at TIMESTAMPTZ DEFAULT NOW()
);
CREATE TABLE IF NOT EXISTS causes (
id UUID DEFAULT gen_random_uuid() PRIMARY KEY,
org_id UUID REFERENCES organisations(id),
created_by UUID REFERENCES profiles(id),
title TEXT NOT NULL, description TEXT, category TEXT,
points_reward INTEGER DEFAULT 100, slots_total INTEGER DEFAULT 10,
slots_filled INTEGER DEFAULT 0, urgency TEXT DEFAULT 'open',
icon TEXT DEFAULT '🌱', color TEXT DEFAULT '#D1FAE5',
event_date DATE, location TEXT, donation_total NUMERIC DEFAULT 0,
created_at TIMESTAMPTZ DEFAULT NOW()
);
CREATE TABLE IF NOT EXISTS applications (
id UUID DEFAULT gen_random_uuid() PRIMARY KEY,
applicant_id UUID REFERENCES profiles(id),
applicant_type TEXT DEFAULT 'volunteer',
cause_id UUID REFERENCES causes(id),
status TEXT DEFAULT 'pending',
motivation TEXT,
applied_at TIMESTAMPTZ DEFAULT NOW(),
UNIQUE(applicant_id, cause_id)
);
CREATE TABLE IF NOT EXISTS donations (
id UUID DEFAULT gen_random_uuid() PRIMARY KEY,
donor_id UUID REFERENCES profiles(id),
donor_name TEXT,
donor_type TEXT DEFAULT 'volunteer',
cause_id UUID REFERENCES causes(id),
amount NUMERIC(10,2) NOT NULL,
message TEXT,
donated_at TIMESTAMPTZ DEFAULT NOW()
);
ALTER TABLE profiles ENABLE ROW LEVEL SECURITY;
ALTER TABLE organisations ENABLE ROW LEVEL SECURITY;
ALTER TABLE causes ENABLE ROW LEVEL SECURITY;
ALTER TABLE applications ENABLE ROW LEVEL SECURITY;
ALTER TABLE donations ENABLE ROW LEVEL SECURITY;
DROP POLICY IF EXISTS "Public read profiles" ON profiles;
DROP POLICY IF EXISTS "Users manage own profile" ON profiles;
DROP POLICY IF EXISTS "Public read orgs" ON organisations;
DROP POLICY IF EXISTS "Public read causes" ON causes;
DROP POLICY IF EXISTS "Users insert causes" ON causes;
DROP POLICY IF EXISTS "Users manage own apps" ON applications;
DROP POLICY IF EXISTS "Public read apps" ON applications;
DROP POLICY IF EXISTS "Users insert donations" ON donations;
DROP POLICY IF EXISTS "Public read donations" ON donations;
CREATE POLICY "Public read profiles" ON profiles FOR SELECT USING (true);
CREATE POLICY "Users manage own profile" ON profiles FOR ALL USING (auth.uid() = id);
CREATE POLICY "Public read orgs" ON organisations FOR SELECT USING (true);
CREATE POLICY "Public read causes" ON causes FOR SELECT USING (true);
CREATE POLICY "Users insert causes" ON causes FOR INSERT WITH CHECK (auth.uid() = created_by);
CREATE POLICY "Users manage own apps" ON applications FOR ALL USING (auth.uid() = applicant_id);
CREATE POLICY "Public read apps" ON applications FOR SELECT USING (true);
CREATE POLICY "Users insert donations" ON donations FOR INSERT WITH CHECK (auth.uid() = donor_id);
CREATE POLICY "Public read donations" ON donations FOR SELECT USING (true);
CREATE OR REPLACE FUNCTION handle_new_user()
RETURNS TRIGGER AS $$
BEGIN
INSERT INTO profiles (id, full_name, email)
VALUES (NEW.id, NEW.raw_user_meta_data->>'full_name', NEW.email)
ON CONFLICT (id) DO NOTHING;
RETURN NEW;
EXCEPTION WHEN OTHERS THEN
RETURN NEW;
END;
$$ LANGUAGE plpgsql SECURITY DEFINER;
DROP TRIGGER IF EXISTS on_auth_user_created ON auth.users;
CREATE TRIGGER on_auth_user_created
AFTER INSERT ON auth.users
FOR EACH ROW EXECUTE FUNCTION handle_new_user();
-- Backfill existing users
INSERT INTO profiles (id, full_name, email)
SELECT id, raw_user_meta_data->>'full_name', email FROM auth.users
ON CONFLICT (id) DO NOTHING;
2,400+ active volunteers across the UK
Connect people to causes that need them.
Voluntier brings charities, NGOs, and community organisations together with skilled volunteers — with built-in rewards, event scheduling, and impact tracking.
2,400+
Active volunteers
340
Organisations
£48k
Pledged to causes
18k
Hours contributed
💎 Platinum: create your own cause
Causes needing support now
Updated in real time
🏥
Hospital Visitor Programme
NHS Trust · London
Urgent
🌱
Community Garden Restoration
Hackney Council · East London
Open
📚
After-School Tutoring
Bright Futures · Manchester
Starts soon
🐾
Animal Shelter Support
RSPCA · Birmingham
Open
💚 £240 donated this week
How it works
Three routes — volunteer, donate, or both.
For Volunteers
01
Create your profile
Sign up, list your skills, availability and location. Start at Bronze tier.
For Volunteers
02
Volunteer & donate
Apply for causes or pledge money. Every hour and every £ earns points.
For Volunteers
03
Reach Platinum
Hit 1,000 pts and complete 10 causes to unlock the ability to create your own.
For Organisations
01
Register & get verified
Create your org profile, list causes, and start receiving applications.
For Organisations
02
Volunteer for other causes
Organisations can volunteer for other causes too — great for corporate partnerships.
For Organisations
03
Donate & track impact
Pledge money to causes, download impact reports for funders and trustees.
Featured organisations
Verified charities actively seeking volunteers
🏥
NHS Volunteer Network
Healthcare
84 volunteers needed
✓ Verified
🌍
Oxfam UK
Poverty relief
31 volunteers needed
✓ Verified
📚
Bright Futures
Youth education
52 volunteers needed
✓ Verified
🐾
RSPCA England
Animal welfare
18 volunteers needed
✓ Verified
🧠
Mind UK
Mental health
27 volunteers needed
✓ Verified
♻️
Keep Britain Tidy
Environment
46 volunteers needed
✓ Verified
Browse causes
Volunteer your time or donate — every action earns points
🔍
Tiers & Rewards
Earn points by volunteering and donating. Climb to unlock more.
🥉
Bronze
Starting tier — everyone begins here
Browse all causes
Apply to volunteer
Donate to any cause
Earn points for every action
🥈
Silver
250+ pts AND 2+ causes completed
All Bronze benefits
Silver badge on leaderboard
Priority application review
Monthly impact report
🥇
Gold
500+ pts AND 5+ causes completed
All Silver benefits
Featured on leaderboard homepage
Exclusive Gold causes access
Volunteer reference letter
💎
Platinum
1,000+ pts AND 10+ causes completed
All Gold benefits
Profile verified badge
Org partnership invitations
🌟 Unlocks: Create your own causes
How you earn points
Every action on Voluntier contributes to your total.
🙋
Apply for a cause
+10 pts
Per approved application
✅
Complete a cause
+100–200 pts
Based on cause difficulty
💚
Donate to a cause
+10 pts / £1
Any amount, any cause
🌟
Create a cause
+500 pts
Platinum tier only
🔥
Daily streak
+5 pts / day
Log in every day
⏰
Log volunteer hours
+20 pts / hr
Per verified hour logged
Volunteer leaderboard
Recognising our most dedicated community members
#VolunteerTierPointsHoursStreak
Upcoming events
Find volunteering events that fit your schedule
MoTuWeThFrSaSu
Organisations
Verified charities and NGOs — volunteer for them, or donate to their causes
🔍
My dashboard
Your volunteer profile and activity
?
Loading…
Volunteer
0
Voluntier Points
0
Hours logged
0
Causes done
0
Day streak
£0
Donated
My skills
Loading skills…
My applications
📋
No applications yet
Browse causes and apply to get started.
My donations
💚
No donations yet
Support a cause — every £1 earns 10 points.
Recommended for you
Get started
Join thousands making a difference
= in demand across active causes
0 skills selected
You can update your skills anytime from your dashboard.
✅ As an organisation, you can list causes, volunteer for other causes, and donate to causes.
Welcome back
Sign in to your Voluntier account
💚 Donate to cause
Loading…
🧪 Payments are simulated — no real money is charged. Real Stripe integration coming soon.
£
🏆 This donation will earn you 0 points!
💎 Create a Cause
Platinum perk — your cause will go live after review
💎 Creating this cause awards you +500 Voluntier Points once approved.
✏️ Edit your skills
Select everything you can offer — more skills means better cause matches