7 ms·
It's OK not to use tools
- JoachimSchipper 12y agoThis 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 12y agoCame 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 12y agoEr, 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.
- jawr 12y agoSurely that's not a static site? I think the author was trying to say that people rely to heavily on tools to achieve simple goals; using a tool or framework for your own amusement can sway you away from the actual goal, in his case making a static website for an animal shelter.
- trentmb 12y agoYou can still have a web UI and produce a static website. I've written blogging software that did just that. Every time the author edited/added something in the web UI (which saved to a db), it just re-'compiled' the particular pages.
- sanderjd 12y agoWhoops, 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.
- deong 12y agoOne downside might be that if the next person (person N+1) doesn't know the system and just edits the HTML and CSS by hand for a few months or years, and then person N+k comes along and runs the generate script, he potentially blows away any edits that weren't done with markdown and the site generator. I suppose you could use the static generator for the initial build and then throw it all away yourself, but that's basically the same as not using it at all.
- jarrett 12y agoRepeating 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 12y agoSSI is usually available out of the box, or at worst an .htaccess away.
- X-Istence 12y agonginx certainly doesn't use .htaccess ...
- btgeekboy 12y agoOr, on your basic shared hosting, you'll usually find PHP too. While I'm not advocating a ton of calls to do all sorts of things with databases and who knows what else, a set of PHP includes (and maybe a few additional helper functions) would be similarly useful.
- NateDad 12y agoThe thing of it is, the next person that looks at the site might not know PHP... then what? You must know HTML to be able to work with a webpage. Anything else is just a further restriction on who can edit the site. Most small businesses get their websites managed by whoever happens to come along with a tiny bit of knowledge. The tiny bit of copy and paste you might need to do to avoid non-HTML is a perfectly good tradeoff to keep the barrier of entry as low as possible for the next poor schmuck who has to go in there and twiddle with things.
- ahallock 12y agoA PHP include takes about 1 minute to explain. You don't even need to know PHP, just the include syntax.
- ajanuary 12y agoSo 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!)
- 127001brewer 12y agoToday, 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 12y agoI'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.
- jiggy2011 12y agoI think this is it, it's easier to justify your fee if you offer lots of features and extras. You could spend a lot of time thinking and examining requirements and come to the conclusion that a static site with very minimal but carefully designed styling would be an effective solution. But it's hard to ask for thousands of $ for that with a straight face when the competing bidders are offering CMSs , iphone apps and facebook integration for the same price.
- chris_mahan 12y agoI 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 © and & And I let the browser render as it wishes.
- adamors 12y agoI 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.
- AdrianRossouw 12y agoJekyll is much simpler still, and is what most of those kind of sites actually need. http://developmentseed.org/blog/2012/07/27/build-cms-free-websites/ http://developmentseed.org/blog/2012/07/27/build-cms-free-we... see also: http://prose.io http://prose.io
- tbergeron 12y agoLogged 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 12y agoWhy are you getting your hands dirty with a CMS?? It's a simple tool and should be used as such.
- antidaily 12y agoJoomla over WordPress? Huh.
- dahart 12y ago"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 12y agoSass, not Saas.
- dahart 12y agoHa! My mis-read. I do not think Sass means what I think it means.
- shortstuffsushi 12y agoDo you know what Sass means? http://sass-lang.com/ http://sass-lang.com/
- trjordan 12y agoSass is a CSS extension language that helps remove redundancy and make CSS easier to work with. http://sass-lang.com/ http://sass-lang.com/
- modarts 12y agoNot sure how that could be misinterpreted as such, given the context
- deleted 12y ago[deleted]
- Fizzadar 12y agoCouldn'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 12y agoThat 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.
- deleted 12y ago[deleted]
- bitJericho 12y agoSo 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 12y agoWhy 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 12y agoYou think a wordpress installation is easier to use than ftp/notepad?
- LordIllidan 12y agoDepending on the installation, yes. You haven't explained what the notepad will be editing.
- bitJericho 12y agoI 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.
- jiggy2011 12y agoDon'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 12y agoSome shelters outsource that aspect of the site to something like http://www.petfinder.com http://www.petfinder.com
- pekk 12y agoThis 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?
- chrislomax 12y agoAlthough 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 12y agoI 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 12y agoYes 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.
- NateDad 12y agoI 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?
- zimbatm 12y agoAnd 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 12y agoCool! Once that's more widely supported, that seems well worth using.
- mapgrep 12y ago> 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.)
- benatkin 12y agoIt isn't well known though. A lot of people know of server side includes but don't know how to write them. I'd fail that interview question.
- thenomad 12y agoFortunately, nginx's server-side includes are (or at least appear to be, on a production website) quick, robust and very easy to learn. I was facing exactly this problem on a static HTML website a few months ago, and was pleased to discover that two Google queries and five minutes' work left me with a functioning SSI.
- benatkin 12y agoThat misses the point of this article though, it isn't about easy to learn tools, it's about not having to learn something at all. I've used SSI and I don't wish to use it again. It isn't the same as a static page, and is too underpowered for me to want to use it for a dynamic page. It reminds me of files that don't contain a well-formed html fragment. Stuff like <!--#include "header.html"--> <p>Hello</p> </body> </html> Oops, did I just remember the proper syntax for SSI? Guess I might not have forgotten it like I intended to. :P Also server side includes are using a second language inside a first language without any introduction to the second language. No mention of them here: http://www.w3.org/TR/html401/ http://www.w3.org/TR/html401/ Edit: I didn't quite remember it right. It's <!--#include virtual="header.html"-->
- seabee 12y agoServer side includes amount to a preprocessor, no? A lot of code is written that way without major incident.
- carsongross 12y agoIf 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.
- buckbova 12y ago> 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.
- aenario 12y ago> 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.
- vacri 12y ago"Actually, could you remove the facebook link from the header and put it on the footer" man diff man patch
- benatkin 12y ago> "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.
- arb99 12y agothis 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 12y agomod_rewrite? you must be kidding. How about an about-us/ folder with an index.html inside? Tools give some people too much rope ...
- carrotleads 12y agoI don't see this fixation with clean-urls. One of the saners reasons is to avoid broken links but I see broken links with with clean urls all the times. So don't think that is a good reason either.
- d--b 12y agoDamn right, it's also why we're using a good old spreadsheet instead of paying for basecamp!
- codez 12y agoHeader and footers, layouts. Just use something like jade?
- aaronbrethorst 12y agoSo 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 12y agoPeople are working on bringing convenience to self-hosting. Don't assume that freedom precludes comfort: https://arkos.io/ https://arkos.io/
- edanm 12y agoI 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.
- wowsig 12y agoI 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.
- mplewis 12y agoThat'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.
- fiatjaf 12y agoI'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.