🎵 Grassroots Live Music Platform

The app that makes
live music happen

Pactd is a commitment-based event platform for independent music and grassroots artists. Every ticket purchase is a promise — and enough promises turn a show from a dream into a reality.

iOS & Android Stripe Payments QR Ticket Scanning Real-time Discovery Ticket Transfers Venue Management Organiser Payouts
4
Main tabs in the app
16
Music genres supported
7
Event categories
6
Currencies (EUR, GBP, USD…)
The Pact Model

Pactd's core innovation — a commitment-based ticketing model that removes financial risk from independent promoters.

Traditional Events

  • Organiser pays upfront regardless of turnout
  • Venue booked whether or not enough tickets sell
  • Attendees book and sometimes don't show
  • Artists play to empty rooms

The Pact Way

  • Organiser sets a minimum ticket threshold
  • Buyers commit — their purchase makes it real
  • Event proceeds only when threshold is met
  • Every seat filled. Every show matters.

For Everyone

  • Artists know they have a guaranteed audience
  • Venues see predictable attendance numbers
  • Fans know the gig is actually happening
  • Grassroots music thrives

Each event has a ticket threshold — the minimum number of tickets that must be sold for the gig to go ahead. Until that threshold is met, the event is shown as building momentum. Once it's reached, it's confirmed. That commitment is The Pact.

User Roles

Pactd supports three distinct roles, each with their own set of capabilities.

🔍

Discover Events

Browse and search gigs near you with real-time filters for genre, category, location, and price.

🎟️

Buy Tickets

One-tap purchase for free events. Secure Stripe checkout for paid gigs with a transparent booking fee.

📅

Manage Tickets

View your upcoming and past tickets, add events to your calendar, and access your QR code for entry.

🔀

Transfer Tickets

Can't make it? Transfer your ticket to a friend via a shareable link. Transfers are time-limited and cancellable.

❤️

Save Favourites

Favourite events and venues. Saved venue events bubble to the top of your discovery feed.

Review Venues

Rate and write reviews for venues on a 5-star scale to help the community find great spaces.

Create Events

Set up gigs with full details: artist name, venue, date, time, ticket quantity, threshold, price, description, image, category, and genre.

📋

Manage Events

Edit event details, monitor ticket sales, and duplicate past events for quick re-scheduling.

📱

QR Scanning

Use the built-in scanner to check guests in at the door. Switch between scan mode and an attendee list view.

📊

Sales Analytics

View a timeline chart of ticket sales for each event so you can track momentum and demand.

💷

Stripe Payouts

Connect a Stripe account to receive payments. View your available balance, pending balance, and per-event earnings breakdown.

🏛️

Register a Venue

Add your venue to Pactd with a name, address, description, image, and GPS location. Venue registration goes through an approval workflow.

Approve Events

Review and approve or reject event applications from organisers who want to use your venue.

✏️

Edit Venue Details

Keep your venue profile up-to-date: images, description, contact info, and location data.

🎵

Auto-fill Events

When creating events, venue admins have the venue fields automatically populated from their registered venue.

Event Discovery

The Discover tab is the heart of Pactd — a powerful, real-time event browser with smart filtering.

🔤

Full-Text Search

Search across event names, venues, and towns simultaneously.

📍

Location Filter

Filter by town. Results are automatically sorted by distance from your GPS location.

🎭

Category Filter

Music, Exhibition, Convention, Corporate, Comedy, Sports, or Other.

🎸

Genre Filter

16 music genres — appears only when "Music" category is selected. Alternative, Blues, Classical, Country, Electronic, Folk, Hip-Hop, Indie, Jazz, Metal, Pop, Punk, R&B, Reggae, Rock, Soul.

💰

Free / Paid

Toggle to show only free events or only paid events.

⭐ Favourites Section

Shows all events you've manually favourited, plus every upcoming event from venues you've saved. This section always appears first when you have saved content, ensuring you never miss a gig from your favourite spots.

📅 This Week Carousel

A horizontal scrolling carousel of events happening within the next 7 days — a quick glance at what's on imminently without having to scroll the full feed.

🗺️ By Location

The main feed groups events by town and sorts towns by distance from your device's current location. Within each town, events are ordered by date. This makes it easy to find local gigs without knowing exactly which areas to search.

🚫 Sold Out

Sold-out events are grouped into a separate section at the bottom of the feed. They remain visible for context and social proof — knowing an event sold out can drive interest in future shows from the same organiser.

Event Management

Everything an organiser needs to run a gig — from creation to post-show analytics.

➕ Creating an Event

Fill in the event form with the following information:

Basic Info
  • Band / artist name
  • Venue (auto-filled for venue admins)
  • Date and time
  • Description
  • Event image
Ticketing
  • Total ticket quantity
  • Threshold (minimum to proceed)
  • Price + currency
  • Free event toggle
Classification
  • Category (Music, Comedy, etc.)
  • Music genre (if Music category)
Location
  • Address and town
  • GPS coordinates (auto-detected)
📱 Ticket Scanning at the Door

The scanning screen has two modes:

📷 Scan Mode

Live camera view that reads a guest's QR code and instantly validates or rejects the ticket with visual feedback.

📋 List Mode

Full attendee list showing each ticket's status (Valid / Used / Refunded), live attendance counts, and percentage of seats filled.

📊 Sales Analytics

Each event detail screen (for the organiser) includes a chart showing ticket sales over time. Track when demand spikes — after a social post, a press mention, or as the event date approaches — to better plan future events.

♻️ Duplicate Events

Regular promoters can duplicate any past event to pre-fill the creation form with all the same details. Just update the date and you're ready to go — great for recurring nights or repeat bookings.

Event Status Flow

Step 1
Created
Organiser publishes event
Step 2
Pending
Awaiting venue approval (if linked)
Step 3
Approved
Visible in discover feed
Step 4
Threshold Met
The Pact is made
Step 5
Sold Out / Live
Event proceeds
Tickets

From purchase to entry — the full ticket lifecycle on Pactd.

🛒

Purchasing

Free events: one-tap claim. Paid events: Stripe checkout with a 10% booking fee (minimum 50p). Apple Pay and Google Pay supported.

📲

QR Code Entry

Each ticket contains a unique QR code. Present it at the door for instant scanning by the organiser's app.

📅

Add to Calendar

One tap adds the event to your device's native calendar app with all the event details included.

🔀

Transfer Tickets

Generate a shareable transfer link. Recipients click the link to claim the ticket. Transfers are time-limited and can be cancelled before they're accepted.

🕐

Past Tickets

Toggle between upcoming and past tickets. Your gig history stays on your profile forever.

Ticket Transfer Flow

Step 1
Initiate
Tap "Transfer" on your ticket
Step 2
Share Link
Via share sheet or clipboard
Step 3
Recipient Claims
Opens link, confirms claim
Step 4
Transferred
Ticket moves to new owner

Ticket Statuses

Status Meaning
Valid Ticket is purchased and ready for entry.
Used QR code has been scanned successfully at the venue.
Refunded Ticket was refunded. No longer valid for entry.
Venues

A browsable directory of registered spaces, with community reviews and an admin workflow for venue owners.

🔍

Search Venues

Search by venue name or town. Results update in real-time as you type.

Star Ratings

Each venue shows an average star rating (1–5) calculated from all community reviews.

❤️

Favourite Venues

Save venues you love. All their upcoming events will appear in your discovery feed automatically.

📅

Venue Events

Tap any venue to see its approved upcoming events listed directly on the venue profile.

Venue owners can register their space on Pactd and manage incoming event requests.

Step 1
Register Venue
Submit name, address, description, image, GPS location
Step 2
Await Approval
Pactd reviews the venue registration
Step 3
Go Live
Venue appears in the directory; organisers can request it
Step 4
Approve Events
Review and approve or reject event applications from organisers
✏️

Write a Review

Authenticated users can leave a star rating and written review for any venue they've visited.

📝

Edit Your Review

Changed your mind? Update your rating and comments at any time from the venue page.

📊

Aggregate Rating

The venue's overall star rating is calculated from all reviews and displayed prominently in the directory listing.

Payments & Payouts

Transparent, Stripe-powered payments for organisers and attendees.

💳

Stripe Checkout

Paid ticket purchases go through Stripe's secure checkout. Card details are never stored by Pactd.

📱

Apple Pay & Google Pay

Native wallet payments are supported for a frictionless checkout experience on compatible devices.

💰

Transparent Fees

A 10% booking fee (minimum 50p) is applied to paid events. Free events have zero platform fee.

🌍

Multi-Currency

Events can be priced in EUR, GBP, USD, CAD, AUD, or CHF.

Organisers connect a Stripe account to receive ticket revenue directly.

🔗

Stripe Connect Onboarding

Walk through Stripe's guided onboarding to link your bank account and enable payouts directly from the Pactd profile tab.

💵

Balance Dashboard

See your available balance (ready to withdraw) and pending balance (funds not yet settled) at a glance.

📈

Per-Event Earnings

Drill down into each event's financial breakdown: gross revenue, platform fee, and net earnings.

Account Status

Clear indicators show whether your Stripe account has charges and payouts enabled, so you know when you're ready to start selling.

Getting Started

New users are guided through an onboarding experience before reaching the main app.

🎵
Slide 1
Discover live music near you
🤝
Slide 2
The Pact — commitment-based events
🌱
Slide 3
Support grassroots music and creators
🚀
Slide 4
Sign up or log in to get started

The onboarding carousel plays once and is then skipped on future app launches. Users can tap Skip at any time to jump straight to the login screen.

Authentication

Secure, email-based authentication powered by Supabase.

Step 1
Enter Details
Name, email, password
Step 2
Submit
Supabase creates account
Step 3
Verify Email
Click link in inbox
Step 4
Login
Access the full app
  • Friendly error messages for weak passwords, duplicate emails, and invalid formats
  • Display name is stored on the profile and shown throughout the app
  • Profile is automatically created in the database on first sign-up
  • Email and password sign-in
  • Session is persisted securely — stay logged in between app launches
  • Rate limiting prevents brute-force attacks
  • Push notification token is registered on successful login
  • Enter your registered email address
  • Receive a password reset link via email
  • Click the link to set a new password
  • Available from the login screen without requiring an existing session
Tech Stack

Built with modern, production-grade tools across the full stack.

Framework
React Native 0.81 + Expo 54
Navigation
Expo Router v6
UI Library
React Native Paper (Material 3)
Backend
Supabase (PostgreSQL)
Auth
Supabase Auth + Secure Store
Payments
Stripe React Native SDK
Location
Expo Location
Camera / QR
Expo Camera
Images
Expo Image Picker
Calendar
Expo Calendar
QR Generation
react-native-qrcode-svg
Notifications
Expo Notifications
Error Tracking
Sentry
Testing
Jest + React Native Testing Library
Fonts
Raleway + Oswald (Google Fonts)
Platform
iOS, Android & Web