
It's OK not to use tools - refrigerator
http://signalvnoise.com/posts/3752-its-ok-not-to-use-tools
======
aaronbrethorst
So why not use a service like Squarespace (or their dozens of competitors) to
build a new, attractive website with a hosted WYSIWYG editor, and everything
else the non-profit might need?

    
    
        Even hosted CMSes have a lot of cognitive overhead,
        and the content is trapped away inside someone
        else’s system.
    

Fair point, but I'd much rather explain to someone that I'm helping that they
click this button over here, type in a box over there, and then click the big
"PUBLISH" button than try to explain HTML or FTP to them.

I've had a few occasions to help friends with the websites for their small
businesses, and I've always tried to impress upon them that they need to be
self-sufficient for their long-term web content updating strategy. I can't
upload files for them every time they need to change some copy.

$10/month should not be a deterrent, especially given that you, as a
professional developer should be able to bill out that hosting bill for a year
_in a single hour of your time_. If you're helping out a non-profit, donate an
hour or two of your time and $120 to help them build a new website, instead of
ten hours of your time today, and then an hour of your time every month in
perpetuity.

~~~
Xenmen
People are working on bringing convenience to self-hosting. Don't assume that
freedom precludes comfort: [https://arkos.io/](https://arkos.io/)

------
JoachimSchipper
This is true. But it's less true for tools that degrade gracefully - Wordpress
may be damn convenient, but it's a pain to move away from. For some static
site generators, you can simply throw away the tool and continue editing the
output with no downside over never having used the tool in the first place.

(The same applies in other domains, too - it's fine to rely on gcc's many -W
switches, but be careful with its custom C dialect; etc.)

~~~
sanderjd
Came here to say something very much like this. A good static site generator
has no downsides:

\- It's easier for you, the savvy developer who groks the toolchain, because
it allows structure and reduces repetition.

\- It may very well be easier for the next person who wants to add a page or
change some copy, because editing Markdown and running a couple (admittedly
esoteric) commands is likely still easier than editing HTML directly.

\- If the next person doesn't understand or like the toolchain, they can
ignore it entirely and edit the HTML directly, which is no worse than if you
didn't use a generator at all.

So yeah, you don't _have_ to use tools, and yeah, CMS sites and compile-to-CSS
is probably overused in the small-site market, but I think static-site-from-
Markdown with vanilla CSS is a pretty sweet spot for this!

~~~
cparedes
Er, sure it does:

* No web UI. This may be a blocker for business folks who want to update a blog. This is a blocker for folks who are using devices like iPad's to update blogs (which is a huge reason why I moved away from things like Octopress and moved toward things like Ghost or Wordpress.) This may be a blocker for folks who don't always have the tools on whatever machine they're using at the time in order to generate the site.

* No imposed structure. It's easier to impose a web UI form that locks folks into certain workflows than it is to just give them a git repository with all sorts of stuff strung about, with no apparent structure other than the FS structure.

~~~
sanderjd
Whoops, I wasn't clear - I mean that using a static site generator has no
downsides _relative to writing HTML /CSS directly_. Your downsides are both
relative to using _more_ tooling.

In terms of those downsides, I agree with you for larger sites, but not for
the kind of really small sites the OP was talking about.

------
mapgrep
> So what if I have to repeat the navigation markup 8 separate times?

Server side includes are built into both Apache and nginx, and are a very
mature technology, so you don't even have to worry about that. (And lots of
ISPs, including Dreamhost, support them. Notable exception: S3.)

~~~
burnte
But those are tools, and this argument is that it's better to do things the
bad old way than to think ahead and save time and work. I guarantee this guy
doesn't remember what it was like creating web sites in 1996.

~~~
PavlovsCat
"think ahead and save time and work"

True, but still: there is still a lot of wilderness to get lost in between
certain future needs and possible future needs. Realizing you need to go back
and fetch your bat belt to cross a bridge as you come to it costs time; but so
does hauling a million tools which you _could_ have needed, but actually
didn't end up needing that day. We all have our anecdotes, but none of them
invalidate the one of the author.. if he says he's happy with his work, and
his client is as well, I will believe it.

" _Perfection is achieved, not when there is nothing more to add, but when
there is nothing left to take away._ " (Antoine de Saint-Exupery)

To read that as "let's go back to before anything existed, and stay there", is
missing the point. Likewise, when someone says that sometimes it's okay to
bring a walkman, they are _not_ saying orchestras should not be a thing; just
that, say, when you are jogging and want to listen to some music, it's more
practical to bring a portable audio player and headphones, than have a
orchestra/band run beside you. While that _is_ always the coolest option, it
is not always the most practical, and it can even seem a bit tacky. Sometimes,
_just sometimes_ , less is more.

------
127001brewer
_Today, a basic HTML /CSS site seems almost passé. But why?_

Logically, a small website _should_ be built with static HTML and CSS. So why
build an overly complicated _infrastructure_ with a web application front-end
and a database back-end (which needs to be regularly maintained) just to
display a simple website?

In many cases, WordPress became the hammer looking for anything that resembles
a nail.

~~~
hluska
I'm not trying to troll, though I have a response to your question.

There is a large percentage of decision makers who want to be able to update
their own sites, despite barely being confident enough to use Microsoft Word.
In actual practice, the odds that these decision makers will ever actually
update their site is nearly 0%. However, despite this, they still want the
capability. If I were to show them static HTML/CSS, I'd starve.

For me, Wordpress gives me an interface that I can show these people before
they decide to hire a quack who uses Wordpress for everything.

I've sometimes thought of a business model where I'd do content updates within
24 hours, but that just seems insane.

~~~
chris_mahan
I edit my own site by hand. I ssh into linux vps, navigate to folder, launch
nano, edit, save, exit.

Then I go to my browser, hit F5, and presto, my change is displayed.

Ahhh, and I don't even use CSS! Only html5.

I use the following tags: h1, h2, h3, h4, p, ul, ol, li, br, strong, and i.

I use &copy; and &amp;

And I let the browser render as it wishes.

~~~
vectorpush
Editing code, live on the production server... what could possibly go wrong?

~~~
carrotleads
for the use case mentioned above. if it goes wrong, its a easy fix.

~~~
vectorpush
> _its a easy fix._

Famous last words. The day when it's _not_ an easy fix, you're stuck with bad
code live in production affecting all users until someone can fix the bug.
Worse, the only way to verify that the fix works is to check your assumptions
against the live system aka a nightmare. Of course, none of this matters if
your site is a personal blog or something that doesn't affect anybody's
business, but nothing really matters in that case.

~~~
chris_mahan
Exactly. It's not Amazon.com.

------
aenario
> So what if I have to repeat the navigation markup 8 separate times?

"Actually, could you remove the facebook link from the header and put it on
the footer"

> Why do we need a CMS for an 8-page site?

"James might need to make some changes in the future, don't worry only the
edito ... HTMWhat ? FTPWhat ?"

> Let's add Sass and a grid system ... Regular old CSS can do the job just
> fine.

"This needs to run on IE8"

> They want to get stray animals adopted, not fuss around with website stuff.

Exactly.

~~~
benatkin
> "Actually, could you remove the facebook link from the header and put it on
> the footer"

This assumes the site has a header and a footer. The author just specified
navigation. Maybe the facebook link is only on the home page. Is that a real
problem?

> "James might need to make some changes in the future, don't worry only the
> edito ... HTMWhat ? FTPWhat ?"

Then someone can help them get it set up, when that happens, and it will be
easier for the person helping James to get them set up with whatever tool
James is comfortable with. It's hard for people to learn skills they don't
need to use right away.

> "This needs to run on IE8"

Depends on the tools that are being considered, some new tools like ZURB
Foundation (which is one way to use Sass) and Angular don't support old
browsers, for reasons that are valid for a web app but not for a simple
website.

------
edanm
I agree with the principle, but disagree with most of the specific
consequences mentioend in the article.

We _shouldn 't_ use newer tools just because we like new, shiny technology.
And we _definitely_ shouldn't push them on our non-technical customers.

But! Saying that modern tools are not more convenient is wrong. Copy-pasting
the same change to 8 files is _not_ an improvement. It's not an improvement
both _practically_ , since you _will_ mess up on the 18th change you're
required to make. And it's not an improvement in _reality_ , because in
reality the people who don't use something to abstract this problem away don't
do it because plain HTML/CSS is better, it's because they don't know how to
solve this issue, or even that they _need_ to solve this issue.

The technical world is _better_ because we assume that you won't have to hand-
edit and hand-apply changes in the way the article talks about.

And lastly, anyone thinking that WordPress is a _problem_ is simply mistaken.
WordPress is one of the most popular systems for getting real-life people to
be able to create and post content to the web. The kind of people who don't
have a clue what HTML is, and who couldn't care less.

For _these_ people, and arguably for most people who want a quick web site
with a nice-looking theme and easy ability to create and edit content, then
WordPress is the best option by far. Even knowing many other technologies and
being in general a power-user, I _still_ use WordPress extensively. There's no
easier way to get a decent looking site online.

------
chrislomax
Although I'm a fan of not over complicating things; generally when you re-
build something for someone and they see the potential of their new site then
1 of 2 things happens.

1, They let the site go stagnant again like their previous site. 2, They want
to build more on top of their site.

I always build a site like a client is going to come back to me for more work.
I never work on the expectation to build and forget.

In most cases, the client ends up coming back to me for more pages. I've
generally built this in a CMS so I charge 1 hours work for something that
takes me 30 minutes to sort out for them. There is a client service there
where I am doing them a service. I make 30 minutes profit per page (at a min
charge of 1 hours work at a time) and everyone is happy.

The beauty of this method is that I am not coming back to a site in a year and
wondering how I built it. Did I put navigation on every page? Were there
differences on some pages?

I say Yes to not over complicating, I say No to not over complicating at the
expense of making it complicated again for yourself to modify in the future.

EDIT: Typo

~~~
jbooth
I think the key distinction there is how unique is the site/project. Is it
something that fits naturally in a CMS? Then for god's sake use a CMS. If it's
something that doesn't fit naturally, it's just as much effort to figure out
the hacks you did to make it fit as it is to figure out your from-scratch
code.

~~~
chrislomax
Yes and No. How do you know that something that doesn't fit now won't fit on
the next iteration?

Can you honestly say you haven't built a site before that you wish you had
built differently? I know I have.

These regrets make us make better decisions in future and to that end I always
plan for bigger.

------
jarrett
Repeating the headers and footers even eight times seems unworkable to me. I'm
quite certain I'd mess up at some point, and one page would be different from
all the others. Maybe there are some projects where that doesn't matter, but I
haven't worked on such a project.

For me, a static site generator is the bare minimum.

~~~
toyg
SSI is usually available out of the box, or at worst an .htaccess away.

~~~
stevekemp
The downside there is performance overhead.

If a user requests "/foo/bar/baz" you have to allow your webserver to stat
"/foo/bar/baz/.htaccess", "/foo/bar/.htaccess", and "/foo/.htaccess" which can
be a significant performance hit.

SSIs have similar issues, parsing all files on the off-chance there is some
magic that will be required.

~~~
recursive
This website doesn't need to scale. It doesn't matter.

~~~
stevekemp
You know your site best - but I'd suggest that being able to scale is just
good practice.

You never know when your site is going to be posted to hacker news, or
similar!

~~~
copperx
Premature optimization, yadda yadda ...

------
ajanuary

        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!
    

I would still be tempted to use a static site generator for it. You can always
hand over the compiled output for the next person to maintain.

Other tools like sass/less, I would be less tempted partly because it's
slightly harder to get human maintainable output (though the argument of a
small site counters that too!)

------
fiatjaf
I'm building a tool (at the same time I'm building a personal throw-in-every-
data-you-have website, so the Github repo is my personal website repo) to edit
any kind of data, fetching it directly from the hosted website, build a git
tree locally, upload it to Github and let Github host this new version of the
website, just uploaded from itself.

It's kinda of a static hosted hierarchical website generator CMS (if you like
these pedantic names):

[https://github.com/fiatjaf/fiatjaf.github.io](https://github.com/fiatjaf/fiatjaf.github.io)

(and you can access the CMS at work here:
[http://fiatjaf.github.io/edit](http://fiatjaf.github.io/edit) , just ignore
the password thing)

The idea is that you can create `docs`. Each doc you render itself to a page.
Each doc is a JSON object including

\- `title`, a title to be findable and nice, and to be displayed on the CMS,
but not strictly required, as docs also have ids.

\- `text` (something that will be displayed as is, or after some markdown
rendering)

\- `data` (field in which you can put structured data such as JSON, YAML, CSV,
suggestions accepted) and do something with it later

\- `parents` (a list of ids of the parents of this element, parents are used
for generating URLs such as /parent/son/grandson and some other relationships
-- like parents can receive its sons as data instead of the data at the `data`
field)

\- `kind` (a field that will be used to reference a `processor` and a
`template` to render that data later)

\- any other attribute you want, included using the traditional `yaml-
frontmatter`, that can be used later for processing or display

In the rendering process each docs is passed to the processor referenced by
its kinds and then to the template referenced by its kind and the HTML is
generated.

------
arb99
this is hacker news. and this post is questioning if its worth the effort to
copy navigation to 8 pages. surely the obvious answer is to just include
header/footer files (e.g. simple example in php: <? include('header.php');?>).

this way will just increase cost for his/her client down the road. Use even a
super simple templating system (even if it is just including header/footer).

sure, using WP is overkill. but this is just silly to have actual plain .html
files...

plus in a url [http://example.com/about-us.html](http://example.com/about-
us.html) doesn't look as nice as [http://example.com/about-
us](http://example.com/about-us)

(something like mod_rewrite could fix this, but if he/she is copy/pasting
headers/footers i doubt that would be implemented...)

~~~
copperx
mod_rewrite? you must be kidding. How about an about-us/ folder with an
index.html inside?

Tools give some people too much rope ...

------
zimbatm
And with HTML5 imports you don't need to repeat the headers and footers
anymore ! :)

[http://www.html5rocks.com/en/tutorials/webcomponents/imports...](http://www.html5rocks.com/en/tutorials/webcomponents/imports/)

~~~
scott_karana
Cool! Once that's more widely supported, that seems well worth using.

------
jiggy2011
Don't shelter websites usually have an up to date list of animals to adopt?
That seems like something that would need some kind of backend unless he's
willing to update the list himself every week or whenever.

~~~
tjr
Some shelters outsource that aspect of the site to something like
[http://www.petfinder.com](http://www.petfinder.com)

~~~
Jonasd
That's exactly right. We used Petfinder and a simple API call with jQuery.

------
Fizzadar
Couldn't agree more, perhaps a tiny bit of PHP to handle headers/footers but
certainly nothing more.

It seems these days you need a whole Django/Wordpress/etc app for even the
simplest, static content.

~~~
eddieroger
That was exactly what I thought as well. A simple Sinatra router that looks
for a filename that matches whatever the user asks for, and I'm off to the
races. Quick and dirty header and footer in a layout file and I'm good - my 8
page site is now 9, but it's much more edit-friendly than 8 versions of a nav
bar.

------
NateDad
I did this exact same thing on a friend's small business website. There was
some ASP code to put the business's contact info in several different places,
but her new hosting didn't support ASP. The answer was to just copy and paste
the contact info into the 5 pages that needed it. It's trivial to look at
every page on the site and make sure they're all correct, so why bring a whole
apparatus into the equation?

------
pekk
This is a pretty elementary observation that will only be a revelation to
someone who learned things like Wordpress and Sass, let's say, last year. The
more sophisticated tools exist to handle cases which are not covered by "just
write some HTML and CSS". Maybe a client wants to update his own page in
simple ways without writing markup?

------
buckbova
> We used to do it for much larger sites!

Why is there this group of people fighting against innovation, against
experimentation?

For your client you can do whatever you want, but you should strive to make
your code manageable at least.

> Remember when the web was damn simple? It still can be. It’s up to us to
> make it that way.

Over a decade ago, I used java servlets, with XML and XLST. It was not simple.

------
mplewis
That's a bad example. Harp ([http://harpjs.com](http://harpjs.com)) is easy
enough to set up, develop with, and generate sites with that there's no reason
anyone who can work with HTML and CSS can't work with EJS and build a site
without repeating a nav bar 8 times.

------
wowsig
I don't see a lot of value in this post. No one is really there to judge you
on what you used to get your stuff done. Unless people are just intrinsically
pressured to use the latest stuff, which is quite illogical. CMSes exist
because they make the maintenance easier. Not because they are the in-thing to
do.

------
carsongross
If you are on a *nix box and have an HTML site with more than one page with a
common header/footer, it'd be well worth your while to take the 10 minutes
required to learn jekyll. After two or three header/footer updates you'd be
money good with respect to time.

------
bitJericho
So true. Show the receptionist how to use the FTP client and she can update
the hours and holidays. Imagine teaching her the ins and outs of wordpress and
expecting her to be ok with it or training in the next user.

~~~
LordIllidan
Why would you need to teach her the "ins and outs" of wordpress?

Login, edit a page - you can even keep the edit url as a bookmark, preview and
publish.

As compared to teaching her about FTP, opening files in a text editor, and
editing HTML/markdown.

~~~
bitJericho
You think a wordpress installation is easier to use than ftp/notepad?

~~~
LordIllidan
Depending on the installation, yes. You haven't explained what the notepad
will be editing.

~~~
bitJericho
I mean in relation to what this article is talking about. A simple page eg
hours.html or something. I think most folks could manage it. But you're right
it would entirely depend on the design and the willingness of the user to take
a moment to learn the ftp software and the crash course in HTML it would
require. I still think that's simpler than running and operating a full
wordpress installation in some cases.

------
codez
Header and footers, layouts. Just use something like jade?

------
adamors
I agree that when it comes to Wordpress or nothing it's better to pick
nothing. But the newest Joomla is pretty nice, comes with Bootstrap and it's
responsive out of the box etc.

Updating pages through a CMS is also easier to an end user, than editing text
files.

~~~
tbergeron
Logged in just to say, whoever thinks the old or the new Joomla is a great
tool says bullshit or never really had to get their hands dirty with it
because it plain sucks. I hate Wordpress and I'd rather use it than Joomla.
Plain HTML FTW.

~~~
adamors
Why are you getting your hands dirty with a CMS?? It's a simple tool and
should be used as such.

------
dahart
"And for that matter, why even bother with Sass? Regular old CSS can do the
job just fine."

I do not think Saas means what you think it means.

Edit: I made a reading mistake

~~~
cocoflunchy
Sass, not Saas.

~~~
dahart
Ha! My mis-read.

I do not think Sass means what I think it means.

