The Exam Resource Hub: A Project Nobody Asked For
TimePass Labs, by Arnav
I haven't written here in a while, so let me catch you up with something I've been meaning to talk about: the Exam Resource Hub.
Nobody asked for it. That's kind of the whole point.
A friend of mine was prepping for competitive exams and kept struggling with one specific thing, static GK. Not the kind of subject you can cram the night before; it's the kind that rewards steady, boring, daily consistency. I wasn't doing anything better with my time, so I put together a small resource around it, mostly to pass the time.
At some point I decided to make it public, and I'm pretty sure that dozen or so people I shared it with didn't really use it either. That was fine. Nothing about this project was built for an audience.
Keeping it deliberately simple
The one design decision I was strict about from day one: don't over-build this.
It would've been easy to reach for a framework, add a build step, throw in a database and an auth layer, and kill the project in the process. Instead I kept it to plain HTML and CSS, no React, no bundler, nothing to configure. The repo ended up almost entirely HTML anyway, one file per topic:
index.html
dates.html
orgs.html
parliaments.html
agencies.html
capitals.html
leaders.html
articles.html
banner.html
style.css
No routing library, no client-side framework deciding what to render. Each page is just a page. index.html links out to the topic pages, and each topic page is a static list of facts styled the same way, something like this:
<div class="resource-card">
<h3>World Health Organization (WHO)</h3>
<p>Headquarters: Geneva, Switzerland</p>
<p>Founded: 1948</p>
</div>
Repeat that block a hundred times across a page and you've basically got the entire "database." No API calls, no JSON fetch, no loading states. The browser downloads the HTML and the facts are already sitting right there in the markup. It sounds primitive because it is, and that was the entire appeal, there's nothing to break.
The CSS side follows the same logic, one shared style.css file, no preprocessor, no utility framework. Just enough to make cards, spacing, and typography feel consistent across every topic page without turning it into a design system nobody but me would ever look at.
Hosting it for free
I wasn't about to pay for a domain and hosting for a project I built as timepass. So the whole thing lives in a public GitHub repo, served through GitHub Pages. Push to main, and the live site at arnavbatra0.github.io/importantdates updates on its own. Zero cost, zero server to maintain, exactly what a project like this needs.
That's also basically the whole deployment pipeline. There's no CI step, no build command, no npm run build spitting out a dist folder. GitHub Pages just serves the HTML files directly out of the repo. For a project built to pass time, adding a build pipeline would've been solving a problem I didn't have.
The Notion layer underneath
For anything that needed more structure than a static HTML page could reasonably hold, more detailed breakdowns, more granular data, I connected it to a Notion database instead of trying to cram everything into flat HTML. Static pages for quick revision, Notion underneath for the deeper stuff. It kept the HTML pages themselves lightweight while still giving me somewhere to dump the messier, more detailed content without redesigning the site around it.
And then I killed it
My friend finished their exam prep, the loose reason for the project was gone, and so was my motivation to keep updating it. I shut it down in May 2026, and I don't think anyone noticed.
I'm still fairly sure nobody actually used it, not the friend, not the dozen people, maybe not even me after a point. And honestly, that's fine. This was never about traction or a userbase. It was timepass, something random I got to build with zero stakes and zero expectation of a reward, just because I felt like it.
That's basically the whole philosophy of TimePass Labs, if I'm being honest. I build things that don't need to justify their own existence. Some of them turn into actual projects, most of them just turn into a folder in my GitHub that quietly stops getting commits. Both outcomes count as a win here. More of this soon, hopefully with less of a gap than last time.

Comments
Post a Comment