---
layout: post
title: "CSS Wizardry: MVP Design and Development"
meta: "Redesigning and redeveloping my own website to serve a new purpose over a long weekend"
permalink: /case-studies/css-wizardry/
next-case-study-title: "How I helped the Financial Times with their CSS architecture."
next-case-study-url: /case-studies/financial-times/
hide-hire-me-link: true
case-study: true
lux: "Case Study"
---
It seems a little odd to list your own website as a case study on itself, but
getting to be my own client proved pretty interesting, and having free reign of
the techniques I employed with very few external constraints was definitely
something of a novelty.
I worked in a very intense sprint to get an MVP together, which provided me with
a more solid foundation to present CSS Wizardry as a business, rather than as
just a blog.
## The project
Since deciding to work for myself last year, I’d not managed to give CSS
Wizardry the full redesign it deserved—it was still just a personal blog, which
didn’t really give visitors the impression that I was in fact running a
business. In a bid to circumvent this in the short term, I created a dedicated
[Work](/services/) micro-site which I ran as its own product. This was to be
my business face to the world for almost a year, and in that time it grew into a
product in its own right. At the time of writing, that single page micro-site
has [over 180 commits against it](https://github.com/csswizardry/work)!
Screenshot of the previous CSS Wizardry home page. View full size/quality (179KB).
Redesigning a site is never a quick task, particularly when it’s your own, which
is largely the reason I opted for a separate micro-site instead of overhauling
CSS Wizardry wholesale. This move meant I could get something live very quickly,
but also brought with it some [tech
debt](https://medium.com/@joaomilho/festina-lente-e29070811b84): I would be
maintaining two separate codebases, and the task of redesigning the main website
was just being postponed.
I decided, after enough putting it off, to tackle a redesign head-on over my
birthday weekend. Not a lot of time, but enough to get a solid MVP together. The
requirements for that MVP were simple:
* Maintain at least feature-parity with the current website.
* Provide a more business-focussed homepage.
* Put less (but not too little) focus on blog posts.
* Introduce a [Case Studies](/case-studies/) section to feature client work
(given that the majority of my work is consultancy based, case studies make
more sense than a portfolio does).
## The process
As I’m not too great a designer, I didn’t want to spend ages frustrating myself
making mockups in Sketch. I scribbled a rough wireframe onto a folded up piece
of printer paper, and set my mind toward thinking about how I might want
something to look and, more importantly, function. I installed a brand new
instance of [Jekyll](http://jekyllrb.com/), ported over my old content, and got
hacking away straight into code.
I set up [a Trello board](https://trello.com/b/5vYEHwrP/csswizardry-com) to try
and keep things focussed, but ultimately I just bounced around ideas and
features as soon as I thought of them.
Having the content already there was a real boon, and meant that I didn’t have
that much work to do restructuring any of the IA. I’d spent weeks on end
constantly tweaking and refining the copy used throughout the site, so it was
something I didn’t really need to worry about during the redesign.
Screenshot of the current CSS Wizardry home page. View full size/quality (550KB).
## The tech
Naturally, CSS Wizardry is built on top of [inuitcss](http://www.inuitcss.com/),
my open-source, Sass-based, OOCSS framework. inuitcss is currently (at the time
of writing) in a state of flux: its GitHub repos are a collection of pre-alpha
modules that, although stable, are still, as yet, unofficial. Despite that, I
know that I have complete faith in the new version of inuitcss—the [NHSx
site](/case-studies/nhs-nhsx-elearning-platform/) was built on the pre-alpha
modules with great success.
Using inuitcss (installed via its [Bower](http://bower.io/) packages) meant that
I had the UI’s framework and architecture set up in less than half-an-hour. This
helped me work very quickly.
As well as using inuitcss, I built the CSS onto [ITCSS](http://itcss.io/), an
as-yet unpublished, proprietary CSS architecture of mine which lends itself well
to scalability and manageable code on long-running products, which CSS Wizardry
certainly aims to be.
As mentioned, the site is built on Jekyll, which can be hosted on [GitHub
Pages](https://pages.github.com/), and its source code is hosted [on
GitHub](https://github.com/csswizardry/csswizardry.github.com).
The site is responsive—mobile-first flavour—and testing it (as well as demoing
it to friends and peers) was made incredibly easy by using
[Finch](https://meetfinch.com/), a new product which allows developers to
securely expose their local dev sites to any internet-connected device. This
meant I could check CSS Wizardry on mobiles, tablets, and larger screens without
having to host it on a staging server. Being able to save time like this
definitely helped me hit my self-imposed deadline.
Finally, due to no external requirements or constraints, this iteration of CSS
Wizardry practices everything I preach. Further, it will continue to do so, as
it is built on an architecture designed to accommodate change.
## Summary
I gave myself a very tight deadline to get together an MVP for a better
positioned, more business focussed CSS Wizardry. Working with open-source tools,
and in a very pragmatic and agile manner, I was able to get the MVP live over
the course of a long weekend.
I am now in a position where I can move CSS Wizardry forward as a product, and,
after a very intense initial sprint, spend fragments of time improving and
honing the site in coming weeks. It was very important to me that I get
something ‘good’ live in a few days, rather than spending months trying to
strive for ‘perfect’.
---
{% include promo-next.html %}