1Campus landing page

How I built a website in just one weekend

A guide to building a website from start to finish. Get your site out instead of your hair.

In a recent project for which I was recruited, I was required to produce a website in a tight turnover of just a few days, as time was of the essence. Sure, challenge accepted. Making a website isn’t and shouldn’t be viewed as a big scary thing and I advocate that everyone should try their hands at some level of website development as least once. Do it for the achievement!

I’m writing this guide documenting the steps that I took with the intent of empowering more people to create beautiful websites and enrich the internet with design beauty, and content of course.

Use a theme, you don’t have to reinvent the wheel

While I certainly don’t want the internet to become an unoriginal blur of stock themes, there is equally no need to start from scratch. Extend a theme that is close to what you have in mind or work with a skeleton template. I leveraged my very own HTML5 Blogfolio theme which is designed for traditional header/menu/content/footer sites. The template files are already built for me and properly hooked into the WordPress API; it was mostly the CSS that I had to tailor to my needs.

Graphics, make sure that they are pretty

Everyone has had their fun in MS Paint but unless you’re confident of your artistic ability it’s really better to have your graphics done properly. Appearances counts! I make no bones about it, Krae (she’s fantastic) was pivotal in the layout and visual design.

Legacy support? IE I’m looking at you

While I don’t particularly like flogging a dead horse, the fact is that people still do use older browsers, notably IE8 on Window XP boxes. That’s ok, you can still get IE8 to work with HTML5 tags by using the HTML5shiv. If you need more feature detection & support for legacy browsers, Modernizr is another useful bundle to consider and their site offers a decent list of browser polyfills used for filling in the missing browser features.

IE crash notification being dragged around to draw many duplicates in the likeness of the IE e

Special effects with jQuery

If you’d like to add snazzy effects to your site, there are several good JavaScript libraries for that. I personally use jQuery and jQuery UI. The difference being that the former provides the base API for building your own custom features & special effects while the latter builds up on jQuery to provide a set of easily configurable “standardized” UI components found in modern websites. For the site, I wrote a custom profile slider effect that expands and focuses the content of the selected profile while minimizing aside the others.

Make it Responsive

The desktop + big screen isn’t going anywhere, but desktop traffic is accompanied now more than ever before with mobile and tablet traffic. We don’t want them to feel left out do we. Enter Responsive Web Design. For a simple site without fancy UI components, it is quite feasible to make the layout flow naturally to the size of the screen using only CSS. Use percentage for dimensions & positional units, use min-width & min-height for ensuring that content containers don’t become ridiculously small.

A depiction of a site on various screen sizes

Of course, it’s often the case on small or large displays that you simply need to tweak the layout beyond proportional flow to make better use of the screen real-estate. CSS Tricks has a great guide on how to leverage CSS media queries to your advantage. IE8 and older is out of luck as it doesn’t recognize media queries but then again, IE8 doesn’t really run on cellphones and tablets. Nonetheless, Response.js can painlessly polyfill media queries in legacy IE if required.

I’d like to mention the trendy way of Responsively displaying the navigational menu as an expanding nested menu with Mean Menu distinctly recognized by this 3 bar icon. Mean Menu in default state If your menu is represented by the traditional nested list structure, this solution will mesh right in.

Translations, mais oui

To serve multilingual content, you must first ensure that your theme has been properly internationalized and localized. To manage translations for the actual site content, your pages and posts, the WPML plugin works really well. It isn’t free but if you’re serious about multilingual sites it’s worth its weight in gold as it manages translations for not just post/page content but also menus and taxonomies (tags, categories, etc). Technically, it’s able to translate all custom post types and taxonomies.

An added bonus, WPML’s String Translation module is handy for creating localized theme translations from within the WordPress admin dashboard if you don’t feel inclined to extracting and generating your own string locales. Furthermore, should you choose to part ways with WPML, your content remains completely intact and accessible as WPML creates distinct internal post objects for each translation and associates them through a management table.

Easy performance tweaks

Performance is a hot topic and there is a steady flow of articles on the latest and greatest techniques, but here are some simple ones that can and should be utilized

  • Optimize your images for the web. Photoshop has a feature for this purpose but there are alternative free options for optimizing your images as well.
  • Static content doesn’t need to be generated on every page request – spare your server with a caching layer. I’ve been quite please with the Hypercache plugin¬†for WordPress.
  • Minify your CSS and JS resources into single files to reduce HTTP request overhead. Better WordPress Minify plugin does a good job in this department.

And there you have it, a clear-cut guide to getting a website out instead of your hair.

1Campus landing page

1Campus designed for the 1Campus slate during SFUO elections Feb 2014