Crafting experience...
9/22/2025
A Project Made By
Jo Walton
Product
Sam Sutherland
Engineer
James Anwyl
Engineer
Sophie Galpin
Product
Josh Wells
Engineer
Jakub Szamuk
Engineer
Submitted for
Built At
Reboot Leeds Hackathon 2025: Innovate for Impact
Hosted By
What is the problem you are trying to solve? Who does it affect?
Local businesses and individuals in Leeds often have unused skills, equipment, and spaces, while others in the community are searching for exactly those resources.
Existing marketplaces focus on either people’s skills or product listings, leaving no single place to swap a meeting room for marketing support or lend a camera in exchange for copywriting. This creates wasted capacity, higher costs, and fewer local connections.
What is your idea? How does it fix the problem?
Swapable is an AI-powered community commerce connector that lets Leeds businesses and residents swap skills, share equipment, and exchange products all in one place.
Anyone can list what they can offer and what they need.
AI automatically tags listings and matches people with relevant opportunities, even when they don’t use the same words.
Easily accept or negotiate offers.
An app that helps the Leeds community trade time, talent, and things - growing local networks and reducing waste.
Four key aspects to the app is promoting:
Sustainability
Supporting local businesses and individuals
Trust and security
Reducing the stress of finding what you need
How do all the pieces fit together? Does your frontend make requests to your backend? Where does your database fit in?
Framework: Next.js App Router (React). Pages live under src/app/*. Navigation and rendering are handled server-first where possible for performance.
Data + Server actions: Uses Next.js Server Actions (not API routes) to read/write data securely on the server.
Database: PostgreSQL via Drizzle ORM. Schemas live in src/db/schema.ts, DB client in src/db. Migrations are assumed already run.
Auth: Clerk manages sign-in/sign-up and user sessions. Any user_id fields reference Clerk’s user ID.
UI: shadcn/ui components, TailwindCSS for styling, Lucide icons. A custom eco-tech theme is defined in src/app/globals.css using CSS variables.
Pages/features:
Public landing and listings (browse without auth).
Authenticated flows: profile setup, create listing, view listing, make/receive offers, negotiate via offer_history.
Tags power categories and recommendations.
State/forms: React Hook Form for inputs and validation (per project rules).
Tooling: pnpm for package management, ESLint for linting, Next.js config in next.config.ts.
Hosted all on Vercel
User go to the site
Views items other users have put on offer
Clicks one
Sign up / sign in via LinkedIn
User makes an offer for the items they want
Email notification sent to the other user to tell them someone wants their item
Other user views the offer and accepts or rejects it
If they accept the offer, both users get sent an email with their LinkedIn details so they can exchange items / services
What did you struggle with? How did you overcome it?
Deciding on which features to include and when to stop (vibe) coding
Overcame this by focusing on the core user journey
Some of us have never vibe coded before!
Some of us split off to help unblock others when they got stuck
Wrangling all the rapid changes we were making - loads of merge conflicts!
Stopped adding features once the core flow was done and focused on cleaning up
What did you learn? What did you accomplish?
A fully working prototype within the time frame!
Great teamwork and collaboration - for a team that doesn't usually work together day-to-day!
What are the next steps for your project? How can you improve it?
Introduce stronger trust features such as:
ID verification
Reputation scoring and spam filtering
User reporting
AI moderation to ensure that harmful / dangerous content doesn't make it's way on to the platform
Introduce a tinder-style swiping to make it even easier to accept or reject offers
Introduce messaging or an easier way to communicate back and forth between users
Expand to more UK cities
Enrich AI to suggest bundles (e.g. “Swap marketing help + equipment rental as a package”)
Public listings page to enable browsing without having to sign up
Potentially looking at whether this is a viable product to quit our jobs and live the start-up dream!