Inspiration
The idea for AfterBell came from something we've (as two 15 years old) experienced quite a lot.
Trying to organise even a simple badminton game can be surprisingly annoying. You spend ages messaging people, figuring out who's free, finding enough players, and sometimes trying to borrow equipment. Study sessions can be just as difficult.
And sometimes, after all that, the plan doesn't even happen.
We realised that the problem isn't always that people don't want to join. It's that organising everything takes way more effort than it should.
So we thought, what if there was a platform that could help with all of that?
That's how AfterBell started. At first, we were thinking mainly about activities at school, but we eventually wanted to build something that could be useful for communities across Malaysia.
What it does
AfterBell is a platform for finding people, joining communities, and organising activities.
You can discover things happening around you, create your own plans (which we call Sparks), connect with other people, and join groups for anything from badminton to studying and peer tutoring.
We also built features like private school communities, public groups, chats, friend requests, nearby discovery, and directories for badminton courts and study spaces.
But the feature that makes AfterBell different is UNLOCK.
UNLOCK is our matching engine. Instead of only finding people with similar interests, it tries to work out how an activity could actually happen.
For example, imagine you're organising a badminton game and need one more player. Someone is free to join, but they don't have a racket. Another person has a spare racket they're willing to lend.
UNLOCK can look at these connections, check the available times, and suggest a combination that works.
It also works for other activities. A study group might need a tutor and an available room, or two activities might need the same equipment at different times.
Of course, just because the system finds a possible solution doesn't mean the event is confirmed. People still need to accept their invitations, and the requirements are checked again before everything is finalised.
Basically, we wanted AfterBell to help people go from saying "we should do something" to actually doing it.
How we built it
We built AfterBell using Next.js, React, TypeScript, and Tailwind CSS.
We used SQLite for local data storage and worked on integrating Supabase and PostgreSQL for hosted accounts and shared data.
Most of our time went into building UNLOCK and making sure it worked properly with the rest of the platform.
We used a constraint-search algorithm to look for possible combinations of people, schedules, and resources. It has to consider quite a few things at once, like whether someone is available, whether equipment is already being used, and whether everyone meets the activity's requirements.
We also built an invitation system so that people can accept or decline suggestions before anything gets confirmed.
For testing, we used Vitest and Playwright to check the matching logic and different parts of the application.
We used OpenAI Codex to help us write, improve, and debug substantial parts of the code, interface, and tests. We directed the project, decided what we wanted to build, and worked through the problems as we developed it.
One thing we really wanted was for the demo to be genuine. The fictional people and resources are clearly labelled, but the matching results come from the actual UNLOCK engine, not a hardcoded animation.
Challenges
One of the biggest challenges was making UNLOCK work beyond just finding a possible match.
At first, it's easy to think that if an algorithm finds the right people and time, the problem is solved.
But what if someone changes their mind? What if the equipment is no longer available? What if two activities need the same person at the same time?
We had to think about how invitations, confirmations, scheduling conflicts, and cancellations would work together.
Another challenge was supporting different types of communities.
We wanted students to have private school spaces, but we also wanted people outside schools to be able to discover and organise public activities. That meant thinking carefully about memberships, permissions, and who should be able to see or join certain groups.
The interface was also tricky at times.
UNLOCK does quite a lot behind the scenes, but we didn't want people to have to understand algorithms just to organise a game or study session.
Trying to keep everything simple for users while making the system more capable was probably one of the hardest parts.
What we learned
We learned that matching people based on interests is only a small part of organising something.
Two people might both love badminton, but that doesn't necessarily mean they're free at the same time, live nearby, or have everything they need.
There are lots of little things that can stop an activity from happening, and solving them together is much harder than we first expected.
We also learned how important it is to explain what the system is doing.
If UNLOCK suggests a plan, users should be able to understand why it works, who's involved, and what still needs to happen before it's confirmed.
On the technical side, we learned a lot about building a larger application where different features depend on each other.
And we definitely learned that adding a feature is one thing, but making sure it works properly with everything else is another.
What we're proud of
We're really proud of how much of AfterBell we managed to bring together.
It started as an idea about making activities easier to organise, but it eventually grew into a platform with communities, messaging, activity discovery, venue directories, and our own matching engine.
The part we're probably most proud of is UNLOCK.
Instead of just displaying a recommendation, it can search through different possibilities, explain what it found, and connect that suggestion to an invitation and confirmation process.
We're also happy that we got a working demo online, so people can actually try the project rather than only seeing screenshots of it.
There's still a lot we could improve, but seeing the different parts work together has been really rewarding.
And honestly, it's pretty cool to see an idea that started from struggling to organise badminton games turn into something much bigger.
What's next
The next thing we want to do is test AfterBell with a small community and see how people actually use it.
We'd like to find out whether it makes organising activities easier, how much time it saves, and how many suggested plans end up becoming sessions that people actually attend.
There are also things we still need to work on, including improving moderation, completing the remaining hosted account setup, and fixing problems that come up during real-world testing.
Eventually, we'd love to make AfterBell available to more schools, clubs, and communities across Malaysia.
We're not expecting everything to work perfectly straight away, but we think the idea has potential.
For now, we're just excited that we've managed to build something people can try.
Find your people. Make it happen.
Built With
- next.js
- node.js
- openai
- playwright
- postgresql
- react
- sqlite
- supabase
- tailwind-css
- typescript
- vitest



Log in or sign up for Devpost to join the conversation.