Recently I did a little side project to improve the website for a non-profit animal shelter in our town. The existing site was an outdated Microsoft FrontPage menagerie, so basically anything I did would be a big improvement.
I spent around 20 minutes creating a simple design in HTML, and then several hours editing, rewriting, and refining the copy. In the end, I reduced a scattershot 25-page website down to about 8 focused pages written in a friendly tone.
My next instinct was to apply our great modern web toolset to the site. Let’s add a static site generator or a CMS! Let’s add Sass and a grid system! Let’s do more fashionable things!
Then I started looking at those tools critically. A static site generator usually requires knowing Markdown and esoteric commands and configuration. A typical CMS will need setup, logins, security patches, templates, and maintenance. Even hosted CMSes have a lot of cognitive overhead, and the content is trapped away inside someone else’s system.
These are tools made by geeks, for geeks. Why do we need a CMS for an 8-page site? And for that matter, why even bother with Sass? Regular old CSS can do the job just fine.
Who knows who will take over the site in the future. I’ll hang with it for a while, but someday someone else might have to work on it. It would surely be easier to do that with 8 simple, straightforward HTML files than with some custom WordPress installation that’s several versions out of date. So what if I have to repeat the navigation markup 8 separate times? It’s not that hard. We used to do it for much larger sites!
Today, a basic HTML/CSS site seems almost passé. But why? Is it because our new tools are so significantly better, or because we’ve gone overboard complicating simple things?
As builders, we like tools and tech because they’re interesting and new, and we enjoy mastering them. But when you think about the people we’re building for, the reality is usually the opposite. They need simple designs, clear writing, less tech, and fewer abstractions. They want to get stray animals adopted, not fuss around with website stuff.
Remember when the web was damn simple? It still can be. It’s up to us to make it that way.

Andrew Spiers
on 21 May 14I did the same for a UK based charity helping a region of Nigeria. It is a static site with a tiny bit of jQuery for an image carousel. It is slightly bigger than your site with approx. 20 pages.
The challenge I have now is that I would like to pass the site back to the charity so they can look after it themselves. The committee is ageing in years and would not be comfortable editing HTML / CSS files.
This leaves me with the decision on whether to keep maintaining the site myself or whether I introduce some kind of CMS for them to edit the site.
Thomas David Baker
on 21 May 14Sounds great. The only problem I see is that they can’t update it, only you can. I don’t know if any CMS truly delivers on its promises but something that lets them update their own telephone number when it changes without involving you sounds good.
Michel
on 21 May 14Similar to the Andrew and Thomas are saying, I think having a minimalist CMS (static or not) with markdown or multiple supported markup languages would be much simpler for them to maintain than HTML files.
But yeah, the point is still valid that you don’t need Drupal or Wordpress for this kind of website as it introduces a whole lot of maintenance problems as well as being less portable (between hosts).
chris
on 21 May 14Nice post, I agree. For smaller sites like this something like Cushy CMS and a little new div on the homepage is all anyone needs. I’ll often see people messing around with Wordpress and the like with a huge database just to create a simple marketing site.
As a user 90% of the time I just want to know what your product or service is and how to get in touch with you. I don’t want to read your blog and fill out large forms, etc.
Jonas
on 21 May 14Andrew and Thomas: yeah, that’s a bit of a problem, but I’d argue it’s mostly our problem—we don’t want to be bothered.
There’s certainly a point where change requests are frequent enough that it’s worth adding a CMS and teaching the client how to use it. But there’s also the question of whether clients are even well-suited to make changes. They’re probably not professional copy editors, so you might be giving them the rope to hang themselves.
Most of the time, I’d rather be the friendly website handyman, and help out with occasional fixes. Just like a plumber or mechanic you trust when something is broken.
pht
on 21 May 14“So what if I have to repeat the navigation markup 8 separate times? It’s not that hard. We used to do it for much larger sites!”
The expected counterargument would be : ‘cause it keep changing.
After a while, you end up being convinced that even this 8 page site will be a 10 page tomorow, a 15 next week, 25 next month, 100 by Christmas. “Has it ever been different ?”, you think. “YAGNI-SHMAGNI”.
You used to do it for much larger sites. Was it really easier / simpler / quicker than using “some” tool ? Have you really NO
Christian
on 21 May 14So what’s the URL?
Daniel Winter
on 21 May 14Well for a simple thing like the navigationa simple php include would be sufficient, but sadly that includes php, and therefore you need a php server already. Not that this is a big investigation, but it at least something.
One thing that would change everything however is ONE html file with the content of the homepage, and one javascript-script (jesus!) that loads the other content throughout ajax. Of course you would bang out non-js user but well… What kind of people disable js these days? And they would have the homepage fallback aswell… But yeah, there you are, back within the tools.. :) I just don’t think that 8 html files are efficient though. Everything bigger than 3 sites will get messy at some point.
Kelli Dochstader
on 21 May 14Jonas, not being able to update the site as a user is a pain, as well. There’s something to be said about being able to make changes when you think of them, and not when someone else has the time. I’ve been on both sides.
Additionally, I find using FTP to update a site to be way more confusing than any CMS I’ve ever tried. That said, designers tend to choose the most open content management systems because they’re entirely free of charge and/or they like the creative freedom. I may be biased, but I believe if designers would choose beginner-friendly content management systems that allow for custom development (even those with a minimal fee), there would be less disconnect on both ends.
FGX
on 21 May 14Cool post, man! That’s good to keep in mind even when working on more complicated apps.
Bill Rawlinson
on 21 May 14You can use server side includes to minimize the code duplication without making the site too complicated to pass along.
Server side includes are built into most webservers and look a lot like an html comment.
Greg
on 21 May 14I guess I’m torn on this point. I hear & understand the argument, but sometimes some easy copy edits are refreshing, not to mention it’s billable time. Sometimes the value we provide is that we are the buffer between the client and their website.
Personally… I rather they call me for all their needs. That’s why we have such great long term relationships.
Emil
on 21 May 14So it’s better to use email instead of Basecamp since it’s simpler and more people know how to use it without any training?
I for one would never ever write CSS after learning SCSS. I would never go let non technical (i.e. not interested) people change HTML or Markdown to make copy changes. Everyone needs to do it. Even if you are not a professional you want to have the power to change an email form or an address.
Nah I don’t buy it. Humans are tool builders and we will always build new tools that are better than what we currently have. I don’t think “It was better 10 years” ever applies to anything.
James Young
on 21 May 14Why wouldn’t you bother with things like Sass? I’ve seen this sort of comment a couple of times in recent weeks and it seems to be equating the use of Sass with overpowering complexity.
It’s a tool like any other, the power it gives you is your responsibility and ultimately even if you’re only going to use a couple of colour variables or simple media query mixins or font sizes isn’t that a sensible use rather than throwing out a tool because of it’s power if overused?
J.
Mike
on 21 May 14There are a lot of tools that you can use locally that will generate the site for you. Codekit or Hammer and Anvil and the like. Even static generators. Seems like you can still use any of these tools while you are working on the site and easily hand off the output (uncompressed) to the next person to take over.
Brady Wetherington
on 21 May 14When I’ve run into situations like this, I tend to use really really simple php <?include(“header.php”)?> stuff.
Then you don’t end up repeating yourself. Super-easy too.
And most servers have PHP on them already.
Mimoun Raddahi
on 21 May 14URL or it didn’t happen.
DRJ
on 21 May 14Wow this has made me want to put a PERL script in my cgi-bin.
Anonymous Coward
on 21 May 14Absolutely well said!
Devan
on 21 May 14Makes me think back to my early days of Dreamweaver web design. In the pre CMS days, Dreamweaver had the concept of a site ‘template’ that could contain the navigation, headers, footers and act as a container for the actual content. If you wanted to change a navigation link – I just had to do it in the template and the change would replicate through all the generated individual web pages automatically.
Makes me wonder if there is still a plain Jane HTML editing app now that will still do this without the designer having to add in any scripting themselves…
Bud Parr
on 22 May 14It’s tempting to want to simplify to practically nothing, but I disagree with you. It’s easy to dismiss today’s tools as fashionable but the tools and the swarm around them are a natural outgrowth of the highly technical and yet highly distributed nature of the field.
What you see as simplifying denies us our job of making technology seem simple to its users. Your comments are surprising given that basecamp does exactly that.
Static site generators in particular take everything that’s good about those simple HTML web pages and abstracts them only enough to be of value to their users, including developers, content creators, and the site’s viewers. Oh, and there are new content editors for markdown (itself a wonderfully simple abstraction) emerging every day.
John S.
on 22 May 14Did you ever read the story about ‘the Complicator’s Gloves’ from TheDailyWTF which is along these same lines? http://thedailywtf.com/Articles/The_Complicator_0×27_s_Gloves.aspx
Linh
on 22 May 14KISS, it works so well sometimes :) Totally agree with the article. We get lost in all our cool toys when we need to just step back sometimes and re-evaluate…. “what am I really trying to accomplish here?”
Anol
on 22 May 14Ever noticed- ‘CMS’ sounds like ‘see-a-mess’?
Mat
on 22 May 14I’ll just agree with most of the early comments. You speak a foreign language, and your clients don’t. A CMS translates plain copy into the HTML/CSS you and I understand. It’s a simple equation. You’re building the same thing that got them into trouble in the first place; a FrontPage bag o’ poo. To them, your code won’t be different than that.
Of course, to us there is a million miles of difference. However, it would be better to use something like getkirby.com or some other system, even if it’s just separating content and navigation from HTML and CSS. If that means a light system with PHP, at least you’ll be able to walk away with a clear conscious, with them having the ability to change content and navigation without calling someone like you.
Yes, it’s simple to us, and that’s because we’re bilingual. Don’t burden clients with that, IMO.
Great article, despite disagreeing with the premise. :)
Nadine
on 22 May 14Great article. Thanks for posting. I don’t agree with all these comments from a lot of techie people talking about how they would have done it. The point i feel you’re trying to get across is that if you’re not being asked to change something frequently then don’t set it up to be easily changeable and complicate things. Keep it simple. When / If the animal shelter calls to change their contact details or tell everyone about a fundraiser, I’m sure you’d be happy to dive in, because you like what they’re doing, which is why you did it in the first place.
Xavi
on 22 May 14There’s another point on that. In this kind of project, saving time in development gives you more time for the message.
The less you code, the more you can focus on the goal of the site.
For me, SASS or HTML generators are nothing but tools to save time. I can easily create a readme with instructions for the next to come, and generate an uncompressed output than can be edited “manually” in the future. So there’s no more technological dependences than HTML/CSS itself in the delivery.
I agree with you that CMS and generators are not always required but not using your knowledge to save development time is a nonsense, IMHO.
Ellen
on 22 May 14Amen! :)
Nick Bramwell
on 22 May 14For a simple site that you’ll be updating for the near future yourself, a basic HTML & CSS site sounds perfect. Once it requires more updating or you are no longer updating it a lightweight CMS (like Perch) can easily be added later.
I see too many small businesses or non-profits with small sites they rarely update that are powered by WordPress or another fairly large CMS. I suspect if they had someone to call on or a simpler CMS they’d actually be updated more often.
If you’ll be the one updating it then why bother adding complexities now, as you say keeping it simple now makes it easier for someone to take over later.
Josh Green
on 22 May 14It’s so easy to hate on CMSs. Wordpress is an amazingly powerful tool that now auto updates! and allows the average joe to manage their website and possibly even add new features without the help of a web dev. Personally I think that is amazing.
It seems like the cool thing to do to mock or dismiss amazing pieces of incredibly (Photoshop, Wordpress, etc.. )powerful pieces of software because they are “just not right” for the job but when in actuality they are probably perfect.
Nux
on 22 May 14The problem described above with updating is the most problematic part. Sure you can add simple PHP (or whatever) page that will allow uploading new version of HTML.
Then you can add CKEditor to make changes easier. You cut it down to only have lists, bold and maybe adding headers if you are courageous ;-).
Then surprise – you need to implement authentication… Bummer. You need users. Password change, maybe registration, some admin to remove and maybe accept users… Pfew. Done. Not that hard, just one or two tables/arrays.
And since you know your users can break something some version control would be nice… Hm. Saving version, comparing, restoring…
And the list continues. You end up creating yet another CMS, which you have to bug fix (and you are a one person, so a lot will be there), update for changing environment (both server side i.e. PHP change, and client side i.e. browser changes). And when another developer comes he will scream in agony. Documentation? Any comments, even? Any information on how to update? Any support forum or whatever? No? Then someone will just create another project, maybe based on CMS that has all this features.
Ronny Lam
on 22 May 14Can you share the URL so we can all learn from it?
Scott C.
on 22 May 14I don’t understand why this static old school HTML workflow is somehow simpler and easier than installing WordPress via cPanel, slapping a minimal generic theme like Thematic on it and just start writing those 8 pages in it. I would much rather do that than having to manually code 8 pages from scratch. I just don’t see any good reasons to do that for some 8-page simple-design site.
Joshua Pinter
on 22 May 14I managed a dog rescue site for many years. Their main value for the website was putting up dog profiles that were available for adoption. This was about 3 dogs per day and required multiple photos and information.
Are they doing something similar, and if so, are you doing those updates then?
Tina
on 22 May 14Isn’t the a perfect customer for http://virb.com
For $10/mo, you get a super system CMS that also hosts your entire web site.
That way the charity no longer needs to pay hosting costs and also has a simple CMS they can use to make small web site changes.
Dave Peele
on 22 May 14Great article! We all just need to KISS! ;)
Jeff Couturier
on 22 May 14Yes, a thousand times over. I just rebuilt a site for my comics. The overwhelmingly popular thing to do is to shoehorn it all into Wordpress. It’s bloat, and totally unnecessary. So the new site is all static pages. No need for a database or a CMS. A terminal is my CMS. I have one little bash script I run after writing a new page, and that script auto updates my RSS feed, updates my archive and creates all of my previous/next links. It’s dead simple, small footprint and fast as hell.
The trend these days is that everything needs a CMS. Everything needs a database. Everything needs… needless complexity. Just plain HTML, CSS and Javascript is elegant, and is far more powerful than most people seem to realize.
vzvxvz
on 22 May 14vzvxvv
Pedro C
on 22 May 14I agree, there’s no need to use all the stack available for every single website that we craft. I often try to use just the basics. I believe that the only thing that I consider a standard on all my sites is the normalize.css ;)
Btw, can you share the URL? You just made a bunch of people curious. :P
spencer
on 23 May 14All we need is a CMS but with the zen philosophy ;)
Jason E.
on 23 May 14It seems to me that tool bashing is a cool thing to do among Basecamp folks. (another example: https://signalvnoise.com/posts/1186-gearheads-dont-get-it) “Tools complicate everything! They are unnecessary garbage! Your skill should cover everything! Keep it simple and do everything the hard way!” Sounds noble, but why? Is it because doing everything without tools is so significantly better, or because you are just being reactionary after trying a badly designed CMS?
I think the illusion of simplicity you seem to enjoy advocating is a luxury you can’t afford in a constrained situation, in which you must choose the most efficient and cost-effective method to accomplish your goal. You say, “They want to get stray animals adopted, not fuss around with website stuff.” So why not just sign up for something like Squarespace or Weebly (takes only a couple of minutes to set up a new account), pick some simple theme for now, start authoring contents and skip the initial “I must code everything myself and skip CMS” nonsense? It doesn’t matter whether the animal shelter staffs need CMS. Getting a few pages up using hosted CMS is far easier and quicker than manually hand coding 8 pages of CSS layout from scratch.
BTW, I don’t remember the web being simpler than it is now. We didn’t have easy-to-use CMSs back in the old days, everything was clumsy table-based layout and I had to know so much more in order to get something up and running. Sure, HTML itself wasn’t that hard but it was a tedious and clumsy process if I wanted to go beyond a simple page of a few paragraphs. I appreciate all the handy tools available to me now, and I use them to save a lot of time and grief. I must say your view on simplicity is myopic and reactionary at best.
Steven
on 23 May 14Online project managers seem to involve too much cognitive overhead for many client so perhaps we should just stick to email?
The alternative is to train the client for 30 minutes on how to use system in question.
Eight copies of the navigation? Bloody hell…
Tommy
on 23 May 14I am planning to make a template for students in my college who get funds from the school to organize events. Obviously most of them don’t code and a landing page is not something that deserves a whole CMS.
My workaround is tumblr. They just need to fill in the blanks, pick some colors and upload a photo or two. Tumblr theme editor is much simplier than a full feature WordPress.
Quinten
on 23 May 14The simplest solution is to set them up on an inexpensive hosting platform, something like Squarespace or any of the myraid similar sites with a low monthly fee. That way they have an outlet for support that doesn’t have to run through you first and are empowered to make simple updates on their own.
Before we had off the shelf products, I built several PHP-based CMSs by hand for various projects. Even that was better than the mess 5 years earlier of trying to maintain a bunch of static HTML files in Dreamweaver or a plain old text editor.
You are looking at it with rose colored glasses, but I do think that the way we do things now is a vast improvement for customers and for web developers than each previous generation of the web.
Michael
on 23 May 14If you do 20 small sites, maybe one actually changes significantly. You can take the time you saved from not overdoing the other 19, completely redo the 20th, and have hours to spare.
Also, designers who like to reduce and simplify aren’t going to add a lot of pages. They’re still trying to simplify!
Alexus
on 23 May 14Very interesting post!
Anonymous Coward
on 23 May 14Oh man, thank you for this! I’ve felt like such on old lady this week while ramping up the summer intern, because I kept hearing myself saying how I missed the old days of web dev, before everything got so crazy with tooling.
Stephen
on 24 May 14Sounds like a great way to make sure a site stays static and quickly becomes irrelevant. It reminds me of a call I was on once where a developer actually said “I am the CMS”. Ok bud. Good luck with that.
Michael
on 24 May 14This is my old passional idea of building web pages and services to people who do not think programatically. The hard thing sometimes, while acting in voluntary work, is to get other IT geeks to gather into the idea. Simple like that.
Congrats on the goal.
Hope I can be the next in throwing it out to life.
Cheers, Michael
Thomas Fuchs
on 24 May 14Simplicity also means faster loading, wider compatibility and fewer things that can break. All things you want in the landing page for your business. I’ve written up an article about this when we redid the landing page of our SaaS product: http://mir.aculo.us/2013/08/10/how-many-javascript-frameworks-do-you-need-to-make-a-landing-page/
DHH
on 24 May 14I came to the same conclusion for my personal site. Everything on there is just vanilla HTML with a dash of CSS.
Matt
on 25 May 14Interesting article and certainly one to get a discussion going. I agree with all of this, as long as it’s done in a way that is in line with the clients requirements. I don’t see the problem with using SCSS though? The output is CSS, so as long as the output isn’t compressed, all it does is make your job quicker, easier and less-repetitive. It’s likely the compiled CSS will also be less repetitive and contain less errors.
RVD Design
on 27 May 14Agreed and great post! Things have become way too complicated with knowing all these complicated add-ons, frameworks and CMS’s, keep it plain and simple for personal or small websites. Even the navigation can be written once and included through PHP (if supported)!
Paul Ireland
on 28 May 14Having maintained several small sites for non-profits in HTML for many years, I would only partially agree. If the site will have minimal content changes AND you plan on being there long-term to maintain it, then this is a great plan. But in other cases where content is changing more regularly, I’d disagree.
For me, the primary concern becomes testing. In a CMS you have reliable output plus you can change that output without causing any troubles with any other pieces of the site. Even server-side includes can be broken by the content. Granted, nowadays there’s less concern about cross-browser compatibility than 5 or 10 years ago, but you still need to manually validate that nothing broken.
This discussion is closed.