So I had my idea, what I didn't have was the necessary skills to execute it myself, or so I thought. I had some experience building small bits of software in my previous startup and my previous jobs, but I had never attempted to launch an entire application myself, the task seemed gargantuan.
While I was pondering this, I was listening to podcasts and reading books to absorb as much information on building as I could. I stumbled upon a podcast episode with Pieter Levels, who is of course a bit of a legend in this community. He discussed starting to build his own businesses and how he knew even less code than I did when he began. He simply googled problems and solved them as he faced them. I thought this was brilliant. Armed with the confidence that I could solve anything, I began.
Not quite abiding by the levelsio dharma, I decided to spend a few days learning about the stack I was going to build with, I think overall this is a more efficient approach to development, provided you don't overcommit to the learning. I decided to build on a ReactJS frontend with a Python API backend. I chose React because I felt it was the frontend framework with the greatest degree of community support. This meant the framework had longevity and every problem I was likely to come across had a googlable solution. I chose Python because after a couple of quick google searches it seemed to sensible choice for web scraping.
I watched a four hour youtube video on ReactJS to learn the basics and followed along with the tutorial, giving me a nice bit of sample code that I could refer to whenever confused. I then set about mocking up a simple frontend. I built a basic homepage with a search bar and a black background, then I built a results page with results loading in cards once they're received from an external source (my python API) . This whole process took me about 6 days.
Python I had used a little bit before so I didn't think the pre-learning was necessary. I simply googled my problems as I went along and read short articles explaining what I needed to do. I used BeautifulSoup to web scrape along with requests (wherever possible) and Selenium. About 5 days later I had finished with a simple synchronous version of the API, it scraped only 3 websites and ran entirely synchronously, but in 12 days I had finished my first ever solo PoC.
I then undertook the challenge of making the frontend look nicer (a dreaded task) and preparing the API for production. For the frontend I made the background of the home screen a bookshelf and cleaned up all of the display cards to show the necessary information. This took me 2 more days. The API was more challenging, I had to add more websites to the scraper and make the scraping system asynchronous, I had no idea how. I hopped between adding websites to the scraper and studying asynchronous programming in python, the endeavour made me begin to regret my choice of stack, but I was too deep to turn back now!
After opening and abandoning multiple ways of async programming I finally found an old way of implementing threading that I understood well enough to implement. The entire process took me 3 days of intense work.
Just like that I was done, I showed it to my family and friends and sought their feedback. I ended up listening to about 10% of the advice they gave me and implementing little things here and there to tidy the platform up. 18 days after ideation, I was ready to launch.