Creating a Simple Website for Free

Creating a Simple Website for Free

It’s really easy now to create a simple website from scratch!

A few months ago I was looking for a directory of ongoing machine learning competitions (like the kind you get on Kaggle), but I couldn’t find one.

So I decided to build a simple web page that just listed them. I was lucky that the domain was available and my hosting provider LCN were having a sale on domains, so I got that domain for free for the first year. (their customer service is great and they’re currently doing free domains!)

Since I didn’t need anything more fancy than a static page, I went with GitHub Pages for hosting, which is free and fast. The initial version of the page looked like this:

I was tempted to go with a database back-end, but ended up just keeping the list of competitions in a JSON file. This meant anyone could propose changes through pull requests on the project’s GitHub repository, and I was surprised that within a few weeks several people had added competitions I didn’t yet know about!

After I got a few visitors I realised a big grid really didn’t work on mobile, so I spent a bit of time trying to improve that. I hadn’t done any real web development in almost a decade, but with a little help (thanks Natasha!) and a bit of trial and error I got it to be much more usable on mobile.

From the start I’d had a form on the page so visitors could join the mailing list. It’s really easy (and free) to set this up through mailchimp, and I feel like it’s worth doing even if you’re not sure you’ll send many emails. So far around 500 people have joined the mailing list, and I’ve sent a handful of updates.

I also added Google Analytics early on, and it’s been nice to see the traffic growth. There was an temporary spike at launch when I posted the site on Reddit and Hacker News, followed by a brief plateau, after which the traffic increase has been slow but steady.

Most of the traffic comes through search, and I’ve found Google Search Console super valuable in trying to see which phrases people are searching for when they end up on my site, and for which phrases I could be ranking higher. It also pointed out a few site usability issues which could have been hurting my ranking.

I used the free Moz Pro trial to figure out which sites I should be trying to get links from in order to rank higher for relevant keywords. This led me to a few Medium posts, and after contacting the authors through LinkedIn they were usually more than happy to include a link to my site in their articles.

I’m hoping to see continued growth to the point where I can monetise the site a bit, but so far it’s been a good learning experience and it hasn’t cost me anything but time.

There’s one link on there advertising Genesis Cloud – a cloud provider I’ve been using for training some machine learning models (their GPUs are very cheap!). I contacted them as a customer looking to promote their service, and they gave me a link I could put on my site. If they get any new paying customers through my link I get some credits to use on their cloud compute service.

I hope my experience is helpful to others trying to set up a simple site.

Here’s a recap of the tools I mentioned:

And here’s my site, listing ongoing machine learning/data science competitions: Sign up to the mailing list for occasional (~once/month) updates on new competitions. All the code for the site is here.

For a more detailed guide on how to get set up your own blog with GitHub pages, I’d recommend this article.

Workflowy: Just the tool for Getting Things Done

There’s a chance you’ve read Getting Things Done — a great book which at its core describes a system to externalise ‘to do’ items, taking them from being in your head to being written down somewhere, allowing you not to worry about them until it’s time to take action.

I read the book a while ago and found the system interesting, but never managed to implement it because of practical reasons — while the book describes a system, it doesn’t provide a tool. I tried several tools including a physical notepad (great when you have it with you, useless when you don’t) and web services such as Trello (a good tool for collaborating on a project and capturing its state, but not for lists with several layers of depth) and Google Keep (useful for searchable notes and reminders, but not for long lists or keeping track of projects). None of them were good enough for me to be able to implement the system and reap any of its benefits, and I was left having to keep things in my head.

Just a few weeks ago my interest in the GTD system was rekindled when I came across an article called “GTD in 15 minutes — A Pragmatic Guide to Getting Things Done”. I decided to give it another go using Workflowy, a list keeping service which I had previously discarded because of its (at the time) limited mobile app. I found that this was not the case anymore: the mobile app now has a great range of features including offline support, meaning that you can check and update items even when you don’t have internet access. It also supports unlimited (as far as I can tell) list depth, hashtags, dragging and dropping items between lists, and makes it very easy to add new items or mark things as done.

I read through the 15 minute guide and set about implementing the system in Workflowy. Here are the key things if you want to try it yourself.

Create a Next Actions list

The core insight of the GTD system is that many ‘to-do’ lists contain items that aren’t immediately doable, so they end up getting postponed indefinitely. This might be because they’re too vague (‘exercise’), too large (‘start food blog’), or both. The Next Actions list is David Allen’s proposed solution to this. This list is only allowed to contain items which start with verbs, have no outstanding dependencies, and can be started immediately.

How is this so different from a normal to-do list? The difference is that you can glance at your Next Actions list whenever you have time, pick something, and do it. It becomes a more mechanical process, and removing ambiguity surrounding a task means less chance of getting distracted (I’ve certainly had my fair share of start task -> get confused -> watch tv -> feel guilty and look for another task to start -> repeat process).

How does this system help me keep my list actionable? By having an easy-to-follow structure. New items coming in don’t get added straight to the Next Actions list if they don’t satisfy the criteria, but are added to a temporary In list and processed when convenient. There’s also a Waiting For list for items which have been delegated or have dependencies, and a Projects list for a more high level view. Lastly there’s a list of things you’ll get around to… Someday/Maybe.

My five lists in Workflowy. Each of the bullets under Projects contains further items or lists.

Create the other lists and add some items

Here’s a more detailed description of each list. Take a few minutes here and try to come up with two or three items to add to each list. Feel free to use my list above for inspiration.

  1. Next Actions: a list of actionable tasks. These are all things that can be picked up by you and worked on given the right context (more on this later), and can include items like “call mum” or “buy bananas”. All of these should start with a verb, and not require input from anyone else to get you started.
  2. In: this is where you jot down anything that occurs to you that you want to follow up on, which as the article mentions can be anything including “your boss telling you to bake her a carrot cake, or seeing a poster for a circus you want to see.” This provides a brain dump that can be processed at a later time into items to go into the other lists.
  3. Waiting For: items you’ve delegated or can’t take action on right now, for example when you’re waiting for feedback from someone, or you’re planning on buying tickets for a festival once they go on sale.
  4. Projects: high level list of things you’re working on. Each of these projects can have one or multiple items associated with it in the Next Actions list. This allows you to keep track of the overarching goals behind items in other lists and come up with new Next Actions.
  5. Someday/Maybe: this might be the most important list of all, at least according to Warren Buffett. These are things you’d like to work on but not right now, and by putting them in this list you can free your mind from thinking about them and come back when you have time.

Maintain the lists

  • All new items will usually be added to the In list first.
  • The In and Waiting For lists should be reviewed regularly and actionable items added to the Next Actions list (unless they would take less than 2 minutes, in which case you should do them immediately).
  • The Projects and Someday/Maybe lists can be reviewed less frequently to check that each active project has a next action defined.
  • The Next Actions list will need to be reviewed continually — whenever you have some time, look through this list and find something you can do. This is where contexts come in.

Contexts are environments associated with certain actions. For example, the ‘buy bananas’ action can be done when at a shop, whereas the ‘fix door handle’ action requires you to be at home and ‘buy festival tickets’ is easiest when at a computer. Workflowy has a great feature for this: by using hashtags (e.g. #shop, #home, or #computer) you can tag each action with one or more contexts, and when you find yourself idle in that context you can display all the items with that tag.

While this gives you enough to get started, in the interest of brevity I’ve skipped over a lot of things which are covered in this 15 minute guide and in more depth in the Getting Things Done book. I would really recommend reading at least the 15 minute guide if you want to use this system, as you’ll win this time back in less than a few days of using it.

Sign up for Workflowy for free and get double the list capacity! This link will give you 500 free items/month, as opposed to the 250 you’d get if you signed up through their website without a referral.

If you liked this article, I would really appreciate if you could share/recommend it and check out some of my other articles below!

View at
View at