Why I built Uxie

Because studying with PDFs shouldn't feel like digital torture.


Context:

Uxie is a free and open-source pdf reader with note-taking, annotations, collaboration, AI features (chat, flashcard generation with AI feedback), text-to-speech, OCR, and more. You can try it out or check the code.

Picture this: new sem just started, and you're already drowning in PDFs. Lectures, assignments, scanned notes, random textbook pages, all dumped into folders with names like "misc" or "to sort later". Then come the quizzes, midsems, endsems, w the same topic over and over again. You know you'll need proper notes later. So what do you do? Highlight some text, screenshot a few diagrams, copy-paste them into an app like Notion, then hope future-you can find it all during finals. It kinda works, but everything feels scattered. Notes are disconnected from the source, and organisation is just vibes at that point.

This started bothering me back in my first year. I really wanted a better way to study. I'm someone obsessed w finding the right tool for every little task (if you're curious,

here's my whole setup).

Naturally, I tried every PDF reader app I could find. The closest I got to what i wanted was

Highlights. Clean ui, worked really well. But all the good stuff was behind a paywall, and most of the other decent web / electron apps used a library called react-pdf, has this really annoying bug, ps: super cool lib except for this 1 issue.


In apps using react-pdf library


In Uxie


I soo wanted to build one, but having zero coding experience, I decided to leave it to someone better. But it just wouldn't go away. A couple of years later, I had picked up full-stack dev, built a few apps, done a few internships. Around that time, my uni launched a hackathon event called BuildSchool, a 10-week program where students pitch ideas, 10 teams get selected, and it ends w a big demo day.

It felt like the perfect chance, with chatgpt and gen-ai exploding everywhere, I knew I could build something more than just a PDF reader. I'd already seen apps that only did flashcards, or just AI chat, or only PDF annotations, and they were all doing really well. So I thought, why not combine all of that into one clean, nice experience? We pitched the idea, a PDF reader with annotations, note-taking and AI features, and got selected.

We called it

Uxie, named after the pokémon (a knowledge pokémon). (credit to t3dotgg for the idea of naming side projects after pokémon. i don’t know a thing about pokémon, but i love this way of naming things haha)


Fun fact: we'd placed third in BuildSchool the year before with an app called

Mentora.

About a week after getting selected, our university held a separate event, a 24-hour hackathon. One of the problem statements was vaguely close to what we had in mind for uxie. Not the same, but close enough to take a shot. We knew it probably wouldn't help us win, but figured it was a good excuse to start building. So we went for it.

24 hours later, we built a decent product, it was rough, the UI was super basic, we skipped things like optimistic updates (highlighting text took a few seconds to reflect). But it worked. And somehow, we actually placed second! The judges really liked the idea, even with how clunky the product was.

That was all the validation we needed. If people liked it in that state, we knew we were onto something. We grinded so hard, we spent the next few weeks building out a much better version, fixed a ton of stuff, added features, and the mid-demo day program went really well.

We were so back!

But the final demo day didn't go as well as we hoped. Bunch of ai provider issues, we hit all sorts of rate limits, had to show pre-recorded demos, we could only get the 2nd, which was cool, but it hurt, we knew the product deserved better.


Demo video we built for the event (ps: this has changed a lot since then.)

I absolutely loved the product and wanted to improve it, I would literally be using uxie to read something, get an idea, and immediately stop studying to go build it. It was chaotic but fun. Life got busy eventually, but a few months later I came back to the project and started fixing all the rough edges. I added flashcard generation with AI feedback, built a text-to-speech feature that highlights the current sentence as it reads (easily the most time i've spent on a single feature, but super happy w how it turned out), added pdf background colors for readability, and kept polishing things bit by bit.

Today, Uxie has 450+ active users and is easily the best thing I’ve built. It started off as a random itch I couldn't ignore and somehow turned into something that actually helps people learn better.

Funny how that works.

See all posts