The Serverless Programing episode from the Fragmented podcast is an excellent episode on starting and selling projects as a side or a hobby activity. It does not encompass everything, but it offers a good mindset on how to look at the success or failure of side projects. In addition, the episode talks about serverless architecture and how it can help simplify and speedup development on the cheap.
When I worked at Northwestern one of my goals was to transition the team from operating on dedicated servers located in the university’s data center to relying on Google Cloud Functions. One of several technologies I relied on, with another one being GCP Datastore, a NoSQL database. I had to refactor existing projects based on new ones. It helped to work backwards. What I learned from designing and developing products which primarily relied on Cloud Functions from the beginning enabled me to create APIs which could be implemented with minimal changes to existing algorithms on the backend, or by adding a couple of standardized JavaScript functions to the frontend.
At the end, relying on Cloud Function minimized the need for me to work around infrastructure constraints, like SSO, LDAP group memberships, and firewall zones. It also enabled me to support CORS in a less constrained way and I implemented reusable APIs which minimized the need for user input and provided additional resources on the backend.