Over the past few years, I’ve been working on several different projects mostly for fun or my own learning. There was always nothing like spending hours on the development of these projects (which have mostly been websites) then the excitement of deploying to share with the world.
Deploying can be quite overwhelming, mostly because of the vast amount of ways that you can do it. I recall when I was still starting out, trying to publish my projects was another often stressful thing to figure out. Googling can lead you down several rabbit holes, especially if this is your first time deploying anything. Trust me, I know that based on my own experience. 😂
Luckily today it is easier than ever to get your projects online. Different services nowadays not only deploy your website for you but also allows you easily update your changes without thinking much about it. In some cases, a quick push of new code to your main branch is all it takes once it’s all set-up which is awesome!
Here are some of my favourite ways to deploy web-based projects. (Bear in mind, these are mostly small websites.)
I recently used Vercel for the deployment of a recent re-build of my portfolio. You can read about my experience of re-writing my portfolio from scratch in Next.is here.
Out of the other ways I’ve deployed my websites in the past, Vercel was by far the greatest developer experience. It was quick and easy to set-up and even easier to deploy any changes after the initial push. I have since moved all my other small projects to this way of deployment just because of how easy it is!
A popular way of deploying small websites is using GitHub Pages. This was my favourite way of deployment for a couple of years! I first learned it off a Code First: Girls Web Development course back in 2016.
Your website would be hosted directly from your GitHub repository which means that any changes that you need to make moving forward, all you’d need to do is to push your changes to your main branch and your changes should be live in minutes.
If you like Amazon Web Services (AWS), their various Code services might be the solution for you. CodeDeploy specifically works great with CodeCommit (a code repo, similar to GitHub) but can also be integrated with GitHub, AWS CodePipeline or Jenkins.
I recently used CodeDeploy for a small React project at work and was surprised by how easy it was to set-up. Similar to the rest of the deployment services I’ve listed already, AWS CodeDeploy makes continuous deployment as simple as possible.
A cool thing about using AWS CodeDeploy is the fact that since it is integrated with the vast variety of AWS services, you can do some pretty awesome things. For this small project at work, I set-up SNS alerts that were sent to a Slack channel. This was useful for collaboration because developers on the project could see when a PR was raised and what needed approving.
I also just like playing around with AWS services and seeing how they all work together. I find it super cool 😂
Similar to Vercel, Heroku has a pretty streamline flow when it comes to continuous delivery. One of my Code First: Girls Python project and a hackathon project was deployed on Heroku! It definitely is another way to maximise developer productivity and support that modern development practice of continuous deployment.
And there you have it – just some of the ways that I have deployed several of my small website projects. All of them differ slightly but at the centre of it all focus ensuring that the deployment process is simple for everyone.
Over to you – what are some of your favourite ways to deploy small projects?