My biggest takeaway is life gets in the way of side projects. :)
Now that's not necessarily a bad thing. It's good to enjoy life and be happy. While I do get enjoyment from these side projects.... I'll make more time to hang with family and friends everytime.
Set up initial code base with Next.js, Material UI, Cypress, and Supabase
Got the infrastructure mostly set up. Supabase as a backend. Digital Ocean App Platform as the hosting the app. GitHub Actions for CI/CD. Check out the codebase here.
The app has sign up, login and logout. A homepage, a dashboard page, and a profile page... though the later two are really blank pages.
The app does not actually shorten urls. I focused on getting the infrastucture set up over getting the actual functionality working... lol
Supabase is awesome. Integrating it into a Next.js app is easy. The docs are good. Though there is some difficulty getting it to run with tests in a CI environment. (They are working on this though!)
Cypress is ok. Using Cypress for the end to end/integration tests is great.... once things are set up. I wanted to use the same
.env.local for Next.js and for Cypress tests, but there was no simple way to do that. I ended up using
.env.local, thus duplicating the same env variables.
Digital Ocean App Platform is good. First off, there is no autoscaling, you have to scale the servers manually (The DO Kubernetes platform does autoscale). Now the good stuff! You can have it autodeploy from git and set everything up in the App Platform UI. I did not do that though. I set up some github actions to deploy the
develop branch to a staging App Platform instance and deploy the
main branch to a production App Platform instance. I did figure out how to run tests before the deployment, but did not do it because of the Supabase limitations.
Making time for side projects is hard. I learned a ton setting up the code base, tests, and infrastructure. Which is awesome! But I didn't have any external motivation and this is not something that I'll use myself.
Keep using Supabase!
Try something else for hosting.
Choose a project that "scatches my own itch" or build it for someone, even if its just one person. Hopefully, this will keep me a bit more motivated
Try some marketing. Yep, this and the above are breaking the rules I outlined here [[3 projects in 3 months]]. But it is no fun for me to build something for no one.
Was Project 1, the "url shortener" a failure? I think not. I built some stuff and I learned a lot. Project 1: great success.
Now, on to Project 2!
Reach out to me on Twitter @readingwaters