The Fastest, Freest Way to Get a Website Up
I am a web design student full of ideas. I often have an idea pop up in my head that I immediately want to deploy in the form of a website. It is this fast conversion from idea to actual product that got me interested in computer science in the first place. I have done a fair bit of research and experimentation on the best fastest way to deploy a simple project website, and have come to a solution that may be obvious to some of you. This solution involves static sites, HTML or Jekyll templates, and you guessed it, GitHub Pages.
If you are looking to deploy an idea, being fast and cheap is extremely important. A static site is perfectly suited to this. They are simple, using plain HTML and CSS or Jekyll, which is powerful and easy to learn. The pro and con of a static site is that there is no database that the user’s request goes through to access the site. The site is hosted in plain HTML and that is what the user requests. Jekyll allows you to have a kind of offline database which is important for blog posts. There are external solutions for things like comments and videos that allow you to keep your site fast and storage efficient.
For more information on the advantages of static sites see this post by development seed, an oldie but a goodie.
Now that you know the type of site we are building, you are growing impatient about deploying your idea, and want to put it to code. There is no reason you should write every bit of the site when all you want is to deploy a project. There are several great resources for website templates, a complete website that was programmed with the intent of serving as a starting place for other developers. Great places to get website templates for a static site are HTM5 UP!, Jekyll Themes, and this great template I found for my blog.
When you find a template that has the features your site needs, you can get modifying to make it your own. Just download the template and edit it using a text editor like Atom. If you want a blog on your site the last two links will be the most useful along with an intro to Jekyll.
Now that you have your website designed (or not) you can get it hosted. GitHub Pages is a fast, free, hosting service for static sites. If you are familiar with GitHub, which you should be, this will come easily to you.
The only big limitations are that the site must be static and no larger that 1GB. The way to build a website with that size limit in mind is to focus on embedding large files like videos, documents, or large amounts of pictures. With things like Youtube, Dropbox, and Flickr.
To get started you have to create a GitHub account, create a new repository using the name of your website, upload your site files, and going to the settings page and scrolling down to the GitHub Pages section. For a much more detailed version of this process, with pictures and custom domains, see the official guide.
Updating Your Site
This part is extremely simple, just clone your repository locally, using GitHub Desktop if you don’t like the command line, download your repository, make your changes, and commit and sync them. This process is identical to updating any GitHub repository, a process you should become familiar with if you aren’t already.
So far I have used this process to deploy three sites. The first site (jaccobpeddicord.com) was deployed in my three hours after school before practice. Another site for a web-monitoring service landing page (weup.info) was created in an afternoon. Lastly, the most complicated site (filteredgames.com) is a blog I am still developing, that has taken a couple days to transfer over from WordPress.
This process is the core of what made me fall in love with computer science and the internet. It is a perfect example of putting an idea into practice.
Think you have a faster, free-er way to deploy a website? I doubt it but show me in the comments.