2018: Reflections on trying to start an internet business

I had planned to build beyond the free feature set if I had seen enough users using the site, however most people came for the blog posts, and didn’t stick around to see the app.The site was unique in that it was a 100% pure Gatsby.js site, where I added a client-only section under the /app path.In total, AppointmentScheduler logged 561 sessions for 496 users in 2018.RoomBooking.coI started work on an MVP of a spin-off product from AppointmentScheduler — Roombooking.co, only to find the Google API restrictions meant I would have to implement most of it myself..RoomBooking would let you select slots in a Room’s Google Calendar and see when it would be available for use.I was starting to finally understand the lean start-up methodology at this point, so I had spoken to a few people working in businesses too small to afford using Microsoft Outlook for meeting room bookings, but large enough to need a system to book meeting rooms..There seemed to be a clear need for a means of booking rooms in a business..I only spent a week of time after work on this, as I wasn’t particularly interested in the problem space.I wanted to be able to create a public calendar in Google Calendar, while also allowing anyone to create events on that public calendar, while restricting the viewing of events to the Owner of the calendar..Turns out Google won’t let you do it..Unwilling to implement it myself, I canned the project, and wrote a blog post about the experience.Using a template to build side-projectsHalf-way through the year, I realised I had been building all of these side projects from scratch each time, and had been pretty burned out by the experience..I basically didn’t write any fresh side-project code for four months, though I did try to keep coming up with ideas (I actually bought the domain for two of the ideas, RecordMyWeight.com and IndiePhotogs.com — though I never used them).In August, I collected all of the code I had written all year and built myself a React + GraphQL server template in Terraform that deploys a complete site with HTTPS, CDN caching via CloudFront, GraphQL server & SSR server running in AWS Lambda.To avoid having to go back and update version numbers in the template, I actually wrote it in the form of a three-part blog:Server-side Rendering, Serverlessly!Deploying to a real domain nameLet’s build a GraphQL backend!OnlineOrNot — finally a problem worth solvingSince starting my career as a software engineer I’ve found APIs to be a pain to work with.My first experience working with a “back-end” developer as a front-end developer to build a dashboard for financial data essentially involved having a financial quant dump a spreadsheet into the Python pandas library, and outputting the result to JSON..At one point in the project, the API’s result would break the front-end every 3 hours, despite there being contracts in place to prevent this from happening..If we had a tool capable of snapshotting the API result and alerting our boss whenever it changed, the project would have gone much more smoothly.Most developers I spoke to while validating this project’s commercial viability had a similar story, or could relate to the problem..Being able to ensure your API is operating correctly and as expected is particularly tricky with GraphQL, as GraphQL servers do not respond with 5xx error codes when they fail.My approach to deciding whether or not to build OnlineOrNot was slightly more rigorous than my previous side-projects, as I really wanted to make sure people would actually pay for this..I spoke to former coworkers, and current coworkers to try understand how developers ensure GraphQL is running — and in short, it’s really hard!So after a month of testing whether people liked the idea, I set off to build OnlineOrNot using my side-project template I had developed back in August..I had quite ambitiously wanted to launch my beta by December 1, however when you’re working on a product after work and on weekends, occasionally life gets in the way.. More details

Leave a Reply