Inspiration

We are a group of Singaporean friends living in Toronto and Waterloo. Since we came to Canada in January, we've been sending each other reels on the many events and activities that Canada has to offer, yet we kept losing track of all of them...

What we had was a mess of posts and reels in an Instagram group chat, and a burning desire to bring our plans out of it. We wanted to make something out of that mess, that 'ruckus' of half-baked plans, which is what birthed Ruckus.

What it does

Smart Event Capture

Users can send an event or place they discover online directly into Ruckus. The app analyses the content and extracts useful information such as the event name, location, date, time, and category.

Dens: Sharing with friends

Every friend group has its own Den: A shared space containing the places and events that group wants to explore together. Rather than losing ideas across multiple group chats, everyone in the Den can contribute to the same shared collection.

Expressing Interest

Saving something does not necessarily mean committing to it. Friends can indicate that they are interested in an event first, allowing the group to see where interest naturally overlaps before anyone has to finalise a plan.

Map View

Saved events and places can be explored geographically, helping users understand what is happening nearby and identify things their group wants to do in the same area.

Grouped by Time

Ruckus also organises plans by time, giving groups visibility into what is happening today, this week, or later. This turns saved inspiration into something that can actually fit into a group's schedule

Notifications

Remember that event you saved? Well, it happened last week. The good news is that Ruckus won't forget your next events like you did. Users can choose to be reminded of when an event is upcoming and which friends have already expressed interest.

How we built it

We built it as an npm-workspaces monorepo: an iOS app using React Native, Expo, and TypeScript; shared JavaScript packages for the API and data processing; a Node.js/Express proxy deployed on Railway; and a Supabase backend with Postgres and SQL migrations. The proxy connects to Claude Haiku 4.5 via OpenRouter for place extracting and Google Places for geocoding, keeping their API keys off the mobile app. We tested the code with Node’s test runner, database tests, an extraction harness, and TypeScript checks. And finally, we used RevenueCat for handling our freemium model.

Challenges we ran into

Legality of what we were doing :0

We initially almost scrapped the idea when we ran into Instagram's Terms of Use, and how us scraping Instagram posts for information could potentially be legally touchy. The good thing was that some more research landed us with a user-flow that would circumvent this. When a user shares a reel, the app fetches that one public page while logged out. It reads the three link-preview tags (og:title, og:description, og:image), plus one extra fetch per tagged @handle to get the business name (the same request other apps like imessage or slack makes to show a link preview). We have no account, session cookie, token, logged-in WebView, proxy rotation or rate-limit evasion, and we don't crawl. Each fetch happens because a person chose to share that link.

Actually Shipping the App

While we were mainly gunning for the Next Gen Award, we started thinking to ourselves: What if this was a real app?

And hence we began tackling the admin of actually bringing this to life. Navigating the legal stuff, drafting our own TOS and privacy policy, ensuring compliance, making sure the subscription stuff was properly implemented, maintaining accuracy of info, getting it available on TestFlight for people to be able to test it properly, were all a huge challenge.

Unfortunately, we were unable to have the app published on the iOS App Store before the submission deadline :( but if you are a fan of this project, please stay tuned, this may very well be real soon!

Accomplishments that we're proud of

Data extraction Our data extraction engine works really reliably and well! It's also way faster than we imagined it would be

Frontend and Music We made an app that we ourselves find a joy to use, with cute music and visuals that keep us coming back. The user experience as well is smooth and enjoyable.

Notification engine We spent a while debugging the notification feature, so ultimately getting it to work reliable and non-intrusively was a huge accomplishment. It's also a feature that we ourselves find super useful.

What we learned

Making the User Experience Intuitive It was a journey, running through our frontend again and again as users, and learning how many features were designed with intention that we so easily overlook as consumers. Making the app intuitive depended so much on the features, the platform, the screen size, all these factors played a role. We never quite realised how nitpick-y we were with our apps until we had to make one ourselves.

Whimsy on the Frontend What would make users come back to our app? What could we do to drive home the message and value of our creation? Fleshing out the storyline of our animal pals and our main guy, Rascal the Raccoon, was crucial to the design language of our app. Rascal, together with his currently unnamed Squirrel, Chipmunk and Possum friends, would dig through their trashcan, their Ruckus, and find treasure. Through this story, we wanted users to form a personal connection with our app and whimsy, and keep coming back.

What's next for Ruckus

Due to the lack of time, we scrapped a client-facing part of the app that we initially planned for. We wanted the platform to also support event organisers, allowing them to post their own events and pay a premium to have them be advertised or recommended to users of Ruckus. This would also have been another stream of revenue for the app. Past this submission, this would be our next goal.

We would also like to come up with some names and backstories for our critters, and flesh out the visuals and animations and have a more cohesive design language throughout the app.

Overall, we are excited to have our app out on the iOS App Store, and we can't wait to see what others think of our creation.

Share this project:

Updates

Submission history