Revisio: Building my first startup
Okay, maybe startup is too strong a word — It’s just me, my laptop, and a healthy dose of procrastination. Anyway… this is the story of my… side-project, and how it came into being.
2021 was a strange year for everyone, but arguably one of the most stressful times for hundreds of thousands of 16 year olds across the UK, as the absolute waste of space who is Gavin Williamson decided to offload the responsibility of exam grading to schools. The story behind this would probably take up several volumes, but it lead to a chaotic mess of leaked papers, inconsistencies between schools, and swathes of confused and worried students
This absolute house fire inspired me to create Revisio, an exam revision tool that would give students a clear itinerary of what to revise each day, using algorithms, and resource links so students would be more relaxed and efficient.
Somewhat irresponsibly, I started working on this large project whilst simultaneously attempting to revise for my constantly shifting exams (fortunately my parents never found out 😆). I had a fleeting knowledge of frontend development, but I decided to throw myself in the deep end, learning as I went (this is my preferred method of learning when it comes to software development). Although some people may call themselves solo developers, or solopreneurs, I think that label is not only egotistical, but for 99% of people, completely incorrect. Revisio was created by me, yes, but I would be lying if I said I did it without any help.
So I’d like to take a moment or two to thank my good friend Alistair Smith, who was instrumental in helping me find my feet, and having the patience and confidence in me, to help Revisio become a reality. He’s an incredible developer and an even better friend ❤️. Check out his stuff!
So, how did I do it, and what would I do differently next time?
These are the frameworks, languages, and tools that were an absolute joy to use:
- Next.js — For someone who started with almost no React knowledge, this was certainly an ambitious way to start, but I learnt fast, and I learnt to love the speed and nifty features (built in routing, optimised loading, etc.)
- Prisma + Postgresql — Once again, I had minimal past experience with databasing, other than some simple SQL knowledge, but Prisma made interacting with my database an absolute joy, and one of the most painless parts of software development.
- Typescript — Oh how far I’ve come… once a “language” I feared, and now I can’t live without it. There were certainly frustrations no doubt, but the productivity and code quality gains were unparalleled to any other language, framework or library I’ve ever used.
- SWR — Okay, I’m digging into the weeds a bit here, but I think this deserves a special mention. useSWR is a fantastic library for fetching data in React, with an amazing array of features (reactive data mutations, periodic fetching, global context, etc.)
- Vercel — A fantastic hosting service for Next.js. This hardly surprising, seeing as they are also the developers of Next.js, but its interface is clean, its free tier is generous, and I’ve yet to have any complaints (although your support could be quicker, especially if I’m paying $20/m).
These are the tools that were meh, or that I would probably not use again:
- ExpressJS — This might be a bit unfair; there were no significant issues with using it, and I wouldn’t discourage anyone from learning it, but if prevailing sentiment is correct, there are better, more efficient alternatives available (see Fastify)
- Heroku — Arguably one of the most popular server deployment services out there for hobbyists. However, its pricing sucks, its interface is slow to navigate, and there are better alternatives. A good place to start, but a bad place to grow.
There were many other moving parts to this project, but the list would go on for pages, and I don’t have any complaints or praises for most of them.
Launch day is the most stressful day for any developer, no question about it. Something you’ve worked on tirelessly for a year is out there for the whole world to judge. Will people hate it? Will they be unimpressed? Will anyone even see it?
These were all fears I had, and it meant I kept procrastinating launch day, pushing it back again, and again, and again. I kept telling myself, just one more feature, just one more UI tweak, just one more… Of course, there’s always one more thing, and I eventually got fed up with my dithering, and set myself a hard date — Monday 21 February 2022. Whatever features I wanted to add would have to be done afterwards, otherwise, Revisio would remain on my hard drive forever.
So, with an MVP deployed, almost no large scale testing, and bugs being discovered and fixed days before launch, I made some promotional slides in Figma (great software btw), and setup my Producthunt launch.
Then launch day came. I was at school during the launch, but I did my best to surreptitiously monitor how the launch was going. I particularly enjoyed interacting with commenters, and it seemed like the reception was very positive overall — at the time of writing, Revisio currently has 125 upvotes on Producthunt, with it ending the launch in the daily top 10.
So the moral of the story is,
Set a date, and commit to launching your product at that date, otherwise you never will.
Well, there’s obviously a lot of features I still want to add, and I’m working on those, but now I feel more free to work knowing that my product is out in the world, and people know what I’ve been working on for the past 15 months.
I’d like to promote Revisio more, but it often feels like I’m balancing too many plates, and don’t have enough time in day to balance school, work, life and Revisio, without neglecting one of them.
Thanks for reading, if you want to check out Revisio, here’s the link: https://revisio.app. If anything here resonated with you, or you’ve got any questions, leave a comment — all comments are read, and appreciated.