This article describes how to develop and deploy a custom production ready blog in five simple steps and why an MVP (Minimal Viable Product) is essential to do that.
Why an MVP?
An MVP (Minimal Viable Product) is the concept of developing a product just large enough to fulfil its purpose. Nothing more than that. Kinda like keep it simple, stupid in the software development world. If you aren't familiar with the term MVP, here's a great description of it.
MVP comes with a lot of advantages. Saving time and resources, producing early prototypes, reduce complexity and bugs, lessen time spent on testing etc. There's a lot of reasons to adapt it. And amazingly, there's a single gain that trumps them all - that the product will actually be released!
I have spent thousands and thousands of hours developing software products. Web applications in vanilla javascript, in jQuery, in Angular, in React, in Angular again and then React again. I have developed native Android applications, PWA:s, WebView-based Android applications, Ionic and React Native applications and a lot more. What did I learn during all that time? To never do all that again!
Constantly focusing on developing new features will eventually hit you back.
Recently, I launched a blog, which is the first project I have released publicly. I have absolutely deployed a lot of stuff in my days. I have a bunch of microservices running, some web clients available at various hosting providers and a half-finished overgrown portfolio. But none of them are of any use today, or even yesterday for that matter. The only site that is in a usable state is this blog. Why is that? The answer is spelled with three letters - because it's an MVP.
Five Steps to a Production Ready Blog
Do you know how long time it took to develop and launch that blog? Looking back at the git repository I can see I completed it within two weeks, at evenings and a weekend. Some minor changes after that, some minor edits I wouldn't accept going live without. Launching that blog was a simple five-step process. Nothing more, nothing less.
1. Download a Template
The first step taken was to download a blog template provided by Next.js. I'm using typescript, they got one without it as well. They have a wonderful tutorial if you are unfamiliar with Next.js and want to understand how it works. If you want to use another framework there's certainly a free blog template available there as well.
2. Customize the Template
Secondly, I made some alterations to the template to personalize it and extended it with some necessities which I consider being a part of the MVP. Like being able to filter articles based on tags, making small optimizations for SEO and making it production ready.
I mentioned earlier that I got that blog up in two weeks. This is where most of those two weeks were spent. This is the step where most of all applications get stuck, by spending too much time improving the product, adding additional features, refactoring it and trying out different variations of the application to find the perfect solution.
Instead of doing all that, make a list of the bare minimum features you require and follow that list strictly. Don't forget it's an MVP you are building. When you have a minimal solution, you can try it out on a small number of users and improve it based on the feedback, before launching it officially.
3. Add a Source of Funding
The third step I took was to add a source of funding. Obviously, since I haven't posted more than one article so far, I have not made any money on the blog yet. Perhaps I never will. My ambition is to provide content for free, but everyone has expenses. Domain name and email server subscriptions aren't for free. Hosting usually comes with a cost as well, at least when you start to get some traffic at your site. But most of all, it takes time, and even though time can't be bought with money, you can free some time if you have money. For that reason, I added a donation button to my blog.
You can use another approach to earn money if you want. One of the most common way to make money is to sell ads or write sponsored blog posts. Other alternatives involves selling digital or physical products, adding a membership for users to access extra content or selling your blog as a book.
4. Get a Domain and Deploy
At this time, I had a functional MVP blog ready to be deployed. I bought a custom domain and a custom email. I bought that from a Swedish provider, I guess most of you are better off with googling for alternatives. The email is of course not something mandatory, but I wouldn't want to replace it later on and I didn't want to share inbox with my other email accounts. Plus, it looks more professional than using an old email named fancy_fire_dragon_1337@hotmail.com.
Later I deployed the application to Vercel, the creators of Next.js. There are other ways to deploy Next.js applications, but Vercel was sufficient for me and my MVP. I might switch hosting platform dependent on my needs, until then I'm pleased with this solution. They even got analytics support ready to be setup by clicking a button.
5. Let the World See It
Just one step left to departure. There's no reason to publish a blog if no one can find it. When I developed the blog, I had SEO in mind, but for that to be useful, search engines must index my site. So, the third step is to ensure that google do that. Google provide a tool called Search Console to let you know how they perceive your site and if they successfully index the complete site. You can of course skip using that, but it's kind of a no-effort step to take.
What Comes After?
Five steps. That's all. We are done now. Of course, there are more things that can and will be added further on, but the blog is up and running and the first development phase can be considered completed. Further development can be done to improve the blog, but it's critical not to forget what the real business here is, writing blog articles! And since knowledge is useless if nobody knows about it, herding traffic to the site is crucial as well. Maybe nobody reads the first blog article when I first publish it, but one day people may.
Conclusion
A lot of projects run late. Most other projects are never finished at all. This article describes why a Minimal Viable Product (MVP) not only saves you time and money, but also makes you truly reach your goal.
Five simple steps are enough to deploy a custom blog. Downloading a template, customizing it, funding it, deploying it and making it visible to the world. You can be done in a few weeks if you already are familiar with developing web applications.