Inspiration
Learning something new almost always comes with a price tag — a course, a subscription, a tutor. At the same time, everyone already knows how to do something well enough to teach it. We kept coming back to one question: why does learning have to run through money at all, when the real currency people already have is their own skill? That's the seed SkillSwap grew from — a place where teaching what you know is literally how you pay for learning something new.
What it does
SkillSwap is a peer-to-peer skill-exchange platform built around a points economy instead of money:
Everyone starts with 100 points. Teaching earns points, learning spends them. Users list skills they can teach (priced by depth — full skill, part of a skill, or a quick micro-skill) and skills they want to learn. Browsing and sending a swap request connects a learner with a teacher, and an in-app chat opens once the request is accepted. The part we're most protective of: before a skill can go live, the teacher has to build a real exam for it — at least 10 questions, multiple-choice or true/false. When the learner is done, they have to pass that exam with 80% or higher before the swap completes and points actually move. Fail, and the chat just stays open for another attempt — no penalty, no explanation needed. Afterward, both sides rate each other, and profiles show every skill a user has verifiably learned (with a privacy toggle the user controls), plus a private feedback channel to the team and a full admin panel for moderating accounts and chats.
How we built it
The whole thing runs on Flask with SQLite as a single-file database — deliberately lightweight so it's easy to set up and reason about. Templates are server-rendered with Jinja2, and the frontend is plain HTML/CSS/JavaScript with no framework, which kept the build fast and the codebase approachable for the whole team. We leaned on Claude (Anthropic) heavily during development — for scaffolding routes and schema, catching logic bugs before they shipped, and writing documentation — but every piece of generated code was reviewed, tested, and adjusted by us before it went in.
Challenges we ran into
The points economy looked simple until we actually tried to break it. Early on, a skill's price was calculated live from its current listing — which meant a teacher editing or deleting a skill after a request was sent could silently change what the learner ended up paying. We fixed that by locking the price in at the moment the request is sent. We also had to guard against a user racking up more pending requests than their balance could actually cover, since nothing stopped them from promising points they didn't have. The exam system itself was its own puzzle: building a dynamic question editor (mixing true/false and multiple-choice, with a minimum of 10 questions) that stays usable and doesn't silently let a broken exam through required careful validation on both the client and server side. Getting the admin permissions right — bans, timeouts, and warnings that actually take effect mid-session, not just at login — took more iteration than we expected too.
Accomplishments that we're proud of
Making "I taught this" mean something verifiable, not just a claim, is the feature we're happiest with — the mandatory exam turns a swap into an actual, checkable outcome instead of an honor system. We're also proud of how self-contained the moderation side is: bans and timeouts are enforced in real time even for sessions that are already open, and every warning, ban, or suspension is logged with a reason, so nothing happens silently. And the whole platform runs on nothing heavier than Python and a single SQLite file — no external services required to try it out.
What we learned
We came out of this with a much sharper sense of how many small assumptions a "simple" economy makes — locking values in at the right moment, and never trusting a number you can recompute from data that might change later. We also learned a lot about designing moderation tools that are genuinely usable under pressure: an admin panel is only as good as how fast you can find the account you're looking for and how clearly the consequences of an action are shown before you commit to it.
What's next for SkillSwap
Near the top of our list: real-time notifications so users don't have to refresh to see a new message or request, and smarter skill matching that suggests teachers based on what a learner has shown interest in. We'd also like to add shareable certificates for high exam scores, and eventually support richer sessions — voice or video calls — directly inside the chat instead of text alone.
Log in or sign up for Devpost to join the conversation.