how we built vithi
we built vithi around the stuff students actually need to keep track of. syllabus progress, mock scores, application work, dates. each one is manageable on its own. keeping the whole picture together is the part we wanted to work on.
start with the work
vithi has separate spaces for your syllabus, mocks, portfolio and calendar. they sit inside the same app because schoolwork and applications can land in the same week. you should be able to move between them without setting up a different system for each one.
take a normal planning session. you can look at which topics you have marked complete, record a mock score, update a personal statement and put a study block in the calendar. those are different actions, but they belong to the same student’s plan.
the details are part of the feature
a calendar needs more than boxes with dates. ours has day and month views, with timed and all-day events. syllabus tracking needs subjects and topics you can update. mocks need a history you can read alongside the latest score. the portfolio holds things like statements and extracurricular entries.
the code history includes changes to calendar controls, mobile navigation, AI chat scrolling and how proposed actions are reviewed. those are small pieces of the interface, but they affect whether you can use the thing you came for. that work belongs in the product too.
how the app is put together
the frontend is React, built with Vite and served through Firebase Hosting. the API runs on Cloudflare Workers. D1 stores the app’s data and a private R2 bucket holds proof uploads. Firebase handles Google sign-in.
the public articles use a separate build step. each one becomes an HTML page with its own URL, publication date and structured data. the same build adds it to the feed and sitemap. you can read these pages without signing into the dashboard.
we also run a frontend build, lint and tests before publishing changes. that gives us checks on the code and generated pages. it is still separate from seeing how someone actually uses the app.
what to try
start with something you already need to track. add a subject and its topics, log a mock, or put an upcoming task in the calendar. use that information when you plan your next bit of work. there is no need to fill every section just to get started.
if something feels confusing or takes too many steps, tell us which screen you were on and what you were trying to do. a specific awkward interaction gives us something we can fix. that is the kind of feedback we want for vithi.