About the Project
I built StudyOS because I kept running into the same problem while studying: making a study plan was easy, but actually following one was not.
A normal to-do list might say “Study Maths for 2 hours,” but it doesn't answer the questions that matter when you're sitting at your desk: What should I do right now? How long should I spend on it? What happens if I fall behind?
That became the idea behind StudyOS — a study system that adapts to the student instead of expecting the student to perfectly follow a plan.
StudyOS takes a student's syllabus, goals, and available study hours and turns them into a clock-time routine. It then guides the student through focused study sessions and tracks what actually happens. If a session takes longer than expected, a student finishes early, or their available time changes, StudyOS can adapt the remaining routine instead of leaving them with a broken plan.
What I Learned
One of the biggest things I learned was that adding more features doesn't necessarily make a product better. My first instinct was to keep adding AI features, dashboards, and tools. But as I tested the product, I realized that students don't need more things to look at — they need more clarity about what to do next.
That changed how I approached the entire product. I started designing around one question:
“What is my next step?”
I also learned a lot about building reliable stateful systems. StudyOS has to coordinate scheduling, task completion, focus sessions, availability, and real-time schedule adaptation without losing track of what the student has already done.
How I Built It
I built StudyOS with React Native, TypeScript, Expo, Zustand, Google Gemini, and RevenueCat.
The core scheduling system is deterministic, while Gemini is used where AI can genuinely improve the experience. I also built the project around a continuous loop:
GOAL → PLAN → DO → MEASURE → ADAPT
The app has four main areas:
- Today — shows the student what they should do right now.
- Subjects — organizes their curriculum from subject → syllabus → chapter → topic.
- Routine — manages when they are actually available to study.
- Sanctuary — helps them reset when they're overwhelmed or struggling to focus.
RevenueCat powers the subscription layer for premium capabilities, allowing StudyOS to experiment with a sustainable model rather than treating AI usage as an unlimited free resource.
Challenges
The hardest challenge wasn't getting an AI model to generate a study plan. It was making the entire system behave reliably when reality doesn't follow the plan.
I had to deal with things like changing availability, unfinished tasks, completed sessions, breaks, schedule recalculation, and maintaining state across different screens. I also encountered React hook-order issues while restructuring the app's navigation, which forced me to become much more careful about how stateful React components are designed.
Another challenge was realizing that my early interface had become too complicated. I eventually redesigned StudyOS around a much simpler information architecture so that opening the app immediately answers one question:
What should I do right now?
Building StudyOS taught me that good software isn't just about how much you can build. It's about knowing what to remove
Built With
- asyncstorage
- expo.io
- gemini
- native
- react
- revenuecat
- typescript
- zustand
Log in or sign up for Devpost to join the conversation.