Inspiration
Being students ourselves, we are always caught between assignments, tests, projects, extracurriculars and our personal lives. What we realized was that when there were many things to do, the biggest problem was never actually doing them, but figuring out how to begin.
It led us to develop Chunk, an intelligent planning app that helps convert daunting tasks into doable chunks. We wanted to design something that was more than just another todo app, but one which would help students prioritize their tasks and stick to them.
What it does
Chunk lets students break down their assignment and into small portions. Students can manage their assignments, plan their day, chunk their tasks, do focus sessions, and see how much they are completing.
Chunk Pro is our premium offering. We integrated RevenueCat behind our paywall to manage products, purchases, purchase restoration, and Pro entitlements.
Supabase handles authentication and user sessions, allowing users to create an account and giving us a consistent identity that can be connected to their RevenueCat customer.
How we built it
We developed Chunk with the help of React Native, Expo, and TypeScript.
Among the main tech stacks used to create Chunk there are:
React Native + Expo for the mobile application
TypeScript for better code maintainability
Supabase for the authentication and user sessions
RevenueCat for the subscription, purchasing, restoring purchases, and entitlements
GitHub for version control and project collaboration
The largest piece of work in terms of implementation during Shipaton was RevenueCat integration. We included the native RevenueCat SDK, fetched products, implemented purchasing and restoring of purchases, and linked the authenticated users to the RevenueCat customer identity.
Moreover, we built the native development builds to be able to test the functionality that cannot be tested via the simple Expo preview build. With the help of RevenueCat Test Store, we triggered and tested the purchase flow within the Chunk app.
In the process of growing the project, we also developed automated testing in order to ensure that the addition of such components as authentication, purchases, etc. did not interfere with the existing functionalities.
Challenges we faced
One of the main obstacles we encountered was understanding the difference between something looking functional and it being functional behind the scenes.
For instance, developing the Chunk Pro paywall UI was one thing. But then we had to set up RevenueCat, configure native dependencies, get offerings, make purchases, restore purchases, and sync RevenueCat customers with authenticated users.
Native mobile app development was another thing we had to learn. We needed to understand the Expo development builds, fix issues with builds on Android and iOS, connect physical devices to our development environment, and figure out problems that do not arise during UI development.
Authentication turned out to be trickier than we initially thought. We had to work with real Supabase sessions, email verification, social authentication, redirects, and identity syncing of the user.
Another aspect where we learned a lot was collaboration. Although many parts of Chunk were being developed simultaneously, we had to use Git branches, commits, testing, and proper conflict resolution to integrate everything together and not lose any newly added functionality.
What we learned
Through Chunk, we have learned that making an actual application is way more than designing a screen.
We gained knowledge about authentication systems, communication between mobile applications and external systems, integration of native React Native modules, customer entitlement management through subscription system, and the importance of testing and version control in projects.
A lot of lessons were drawn through debugging. We did not solve all problems on the first attempt. We had to debug errors and failures, find solutions for the same and improve our application in the process.
The most important lesson was making a problem that we experienced as students into something functional.
Our goal with Chunk is simple: make overwhelming work feel manageable, one chunk at a time.
Built With
- android
- eas
- expo.io
- github
- ios
- react
- react-native
- revenuecat
- supabase
- typescript