In Ruby On Rails By Leigh Halliday December 04, 2014 Leigh Halliday

Why make a blog?

What's it like to start a website from scratch? It could be a personal one like this one, or it could be the website for your company, or really anything you want to get online. There are inevitably a number of decisions and steps you need to take in order to take it from an idea to something concrete. I'm going to walk through as many of those steps that I can in this series of articles. My audience ranges from seasoned veterans to beginners thinking of making their first site, but for everyone alike, it's a good thing now and again to start at the beginning.

This will start from the ground up; coming up with an idea, planning the website, how and where to host it, starting the project, choosing your gems, modelling your data, building an admin, user authentication, i18n, launching the site, etc.

Why build a blog?

This site actually started out when my wife asked for a website where she can write law research articles and start to make an online presence for herself.

So I started to think: Well, there are a million blog solutions out there. We can go with Wordpress, or Ghost, or any number of other blogging platforms available for free or at minimal cost. They probably handle the aspect of straight up blogging better than I could in a reasonably short amount of time, and there are a ton of plugins available for them.

But, where's the fun in that? I'm a programmer and I like to build things. My wife then mentioned she wanted to write articles in both Spanish and English... and it just happens that I was working on a rails gem/engine for managing translations. The perfect opportunity to try my code out in a real environment.

Then I thought a bit more, and realized it would be a good way to practice, try out some new techniques, and I could also use the same codebase to power my own website, the one you're on right now.

It was settled, I'd build my own blog.

Planning

If this were for a client at work, it would start with discussing their needs, what they want to get out of having this product, what kind of features they want, what is it going to solve, timeline, and a budget. And really a project for yourself doesn't need to be any different. You don't have to be as strict and document things as well, but with a plan you'll more easily reach your goal than by just stepping out blindly without a guide.

This site has to do blogging reasonably well, handling all of the usual aspects of publishing, formatting, uploading media, etc. It must have an admin section to manage the content. It needs to be available in Spanish and English. It needs to look nice. And since the budget isn't too large, I need to be able to host and run the site for a reasonably cheap price.

Total cost for this website: About $50. I purchased a theme (design and CSS isn't my strength), a domain, and am currently using free hosting on Heroku... oh, and quite a few hours of development time.

Getting Started

With a high-level plan, budget in check, it's time to begin. My next post will be about choosing which technologies to use, where to host it, and how to get my your domain name.