Connect your Supabase backend

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