Building Act Reel - Part 1
Or what I learned shipping a full stack platform solo
As I've mentioned earlier in this blog I have been developing my own social media website based around amateur theatre. The purpose of this site was to essentially make things easier for those wishing to get involved in amateur theatre. I wanted users to be able to create accounts, create their theatre groups and events and find and join other theatre groups among many other features I had in mind. In this post I'll discuss some of the initial tech decisions I made. I was developing this by myself.
Attempt 1
When I first started writing on a blog, I started using a free Wordpress website. I'd read other blog posts about how if you wanted to start writing a blog you should just make a start with a pre built website like with Wordpress. It saves you a lot of the initial coding and allows you to just start writing, so that's what I did. In using it, I started thinking about how I could use Wordpress for the Act Reel idea I had begun coming up with. I looked up how to create a social media website with Wordpress and found there were plugins I could use, primarily on called BuddyPress. I paid for the developer website, started installing plugins, and spent ages trying to figure out how to get it to do what I wanted, but it was limited. If I wanted to do more I'd have to create plugins myself and pay for more different plugins.
One time, I was hanging out with some former coworkers and I was talking about the website with them. They questioned my choice of using Wordpress. 'You're a developer' they said, 'why aren't you coding it yourself'. I realised they were right. I was a developer, I could probably more easily create what I wanted if I was coding it myself from scratch. So the Wordpress attempt was abandoned in favour of a better solution.
Attempt 2
At my first software developer role, I was involved in a project to create a brand new wizard. I didn't decide the tech (I was only a junior) but I became quite heavily involved in the development of it and so I got a lot of experience using the tech that was chosen. That tech was Angular. It also made use of a C# API connected to an SQL database. I had a lot of fun working with Angular. After getting a decent introduction to it, I was able to work on it on my own figuring things out myself. So when it came to working on Act Reel I felt quite comfortable working with the same tech.
I used Visual Studio Community to create two projects, an Angular frontend, a C# API backend and I connected the latter to an SQL database. Much of the design of this code was copied from that time I had developing the wizard in my first role. But something wasn't quite right. It felt it was too corporate. The look of the website I was creating didn't feel suitable for a more creative audience. Also, I hadn't really given any thought to how it would all be deployed.
Attempt 3 - The Succesful One
While I was exapnding my learning of different coding aspects, I watched some videos on React and Next.js by a YouTube channel called Net Ninja and I liked what I saw. I'd already started looking into React back in one of my previous roles as there were discussions in making use of it to update the UI of the product we worked on. I hadn't gained that much experience with it but it was certainly intriguing. Once I saw what was possible with using Tailwind CSS to create a more creative look and feel to the website, how it could be pointed to a Supabase website and easily deployed through Vercel, I was sold. By making use of Next.js I could easily develop a full stack website solo. Supabase would feature a lot of the necessary backend features automatically such as password hashing, user authorisation and security, meaning I could focus on developing the actual site itself.
I played around with it a bit and immediately liked what I had created. In the upcoming blog posts, I'll discuss some of the code I wrote and the reasoning for it.