Static is not a dirty word
SydJS, 2013.10.23 / Ben Buchanan / @200okpublic
weblog.200ok.com.au
That's static websites.
You can argue about types (again) later.
"Why are you making a static site?!
That's a bit old school isn't it?"
Everything old is new again.
Good use cases
●

Small/medium sites

●

Blogs

●

Version-specific or bundled documentation
Use case: UI library
●

Build it with its own templates
●

●

●

Docs and demos
Test pages

Include docs in repo
●

●

pull requests can include code, tests and docs

Versioned docs deployed at release
Bad use cases
●

Anything else :-P

●

Things that actually should be an app.
Upsides of static
●

Fast

●

Less moving parts (in prod)

●

Deploy anywhere
Downsides
●

Dynamic content means oldschool scripting

●

"It just seems too simple."
"It just seems too simple."
...and anyway, "simple":
A few nodejs options
●

Hexo*

●

Romulus*

●

Blacksmith, CabinJS, DocPad, Wintersmith...

●

See modernstatic.com for a list

* As seen in JS Weekly ;)
Goes a liddle sumthin like this
●

npm install -g name

●

name scaffold dirname && cd dirname

●

name generate

●

name server

●

name deploy
Look for...
●

Clear setup, dev/test and deploy phases

●

Documentation

●

Your preference for:
●

●

Preprocessors

●

●

Templates
Deployment options

Proof of life (beware abandonware)
Example activity check
Blacksmith

CabinJS

Docpad

Hexo

Romulus

Wintersmith

Age

2 years

5 months

2 years

1 year

1 year

2 years

Version

1.1.3

0.3.1

6.53.4

2.2.1

0.1.1

2.0.7

Active

3 months

1 week

2 weeks

1 week

5 months

2 weeks

PRs

~100

~100

~700

~300

2

~200

Forks

31

14

143

184

4

137

Watchers

49

10

98

86

20

61

Stars

450

115

1619

1145

156

1090

License

MIT

MIT

MIT

MIT

MIT

MIT

(collected 2013.10.19)
Static sites have their place.
Embrace simple.

More Related Content

PPTX
Using Javascript in today's world
PPTX
WordCamp Kent 2019 - WP 101: Guten.. What?
PPTX
Integrating grunt and bower with maven
PPTX
How to Build a Bespoke Page Builder in WordPress
PDF
Why and How You Should Move from PHP to Node.js
PDF
C4ainaction-Introduction to the Pyramid Web Framework
KEY
PPTX
Isomorphic JavaScript with Node, WebPack, and React
Using Javascript in today's world
WordCamp Kent 2019 - WP 101: Guten.. What?
Integrating grunt and bower with maven
How to Build a Bespoke Page Builder in WordPress
Why and How You Should Move from PHP to Node.js
C4ainaction-Introduction to the Pyramid Web Framework
Isomorphic JavaScript with Node, WebPack, and React

What's hot (20)

PPTX
Vlad zelinschi optimizing the critical rendering path
PDF
Daniel Steigerwald: EsteJS - javascriptové aplikace robusně, modulárně a komf...
PDF
Softshake 2013 - Let's take this offline
PDF
WHAT / WHY / HOW WE’RE ENGINEERING AT SMARTSTUDY (English)
PPTX
Introduction to JS frameworks
ODP
Front-end tools in java webapps
PDF
Digibury: SciVisum - Making your website fast - and scalable
KEY
Node.js rulz! JavaScript takes over the full Stack
ODP
Sfd hanoi2012 nguyen ha duong yang node.js-intro
PDF
Daniel Steigerwald - Este.js - konec velkého Schizma
ODP
Riereta Node.js session 3 (with notes)
PPTX
Evolution of java script libraries
PPTX
Windows 8 javascript apps – getting it right
PDF
Golang #5: To Go or not to Go
KEY
English Casual 2012/05/10
PDF
Virtualisation - Vagrant and Docker
PDF
Slightly Advanced Topics in Gutenberg Development
PPTX
Just a millisecond_
PPTX
Brief overview of TypeScript - Ljubljana JavaScript Users Group
PDF
How to start WebGL easily?
Vlad zelinschi optimizing the critical rendering path
Daniel Steigerwald: EsteJS - javascriptové aplikace robusně, modulárně a komf...
Softshake 2013 - Let's take this offline
WHAT / WHY / HOW WE’RE ENGINEERING AT SMARTSTUDY (English)
Introduction to JS frameworks
Front-end tools in java webapps
Digibury: SciVisum - Making your website fast - and scalable
Node.js rulz! JavaScript takes over the full Stack
Sfd hanoi2012 nguyen ha duong yang node.js-intro
Daniel Steigerwald - Este.js - konec velkého Schizma
Riereta Node.js session 3 (with notes)
Evolution of java script libraries
Windows 8 javascript apps – getting it right
Golang #5: To Go or not to Go
English Casual 2012/05/10
Virtualisation - Vagrant and Docker
Slightly Advanced Topics in Gutenberg Development
Just a millisecond_
Brief overview of TypeScript - Ljubljana JavaScript Users Group
How to start WebGL easily?
Ad

Viewers also liked (8)

PDF
Static sites with react
PDF
Static Sites - Bringing Web 1.0 Back
PDF
Static Sites Can be the Solution (Simon Wood)
ODP
Remove php calls and scale your site like crazy !
ODP
Pyramid Lighter/Faster/Better web apps
PPT
SenchaCon 2016: LinkRest - Modern RESTful API Framework for Ext JS Apps - Rou...
PPTX
Presentation on Gatsby to SF Static Web Tech Meetup
PDF
Unbundling the Future Web Runtime
Static sites with react
Static Sites - Bringing Web 1.0 Back
Static Sites Can be the Solution (Simon Wood)
Remove php calls and scale your site like crazy !
Pyramid Lighter/Faster/Better web apps
SenchaCon 2016: LinkRest - Modern RESTful API Framework for Ext JS Apps - Rou...
Presentation on Gatsby to SF Static Web Tech Meetup
Unbundling the Future Web Runtime
Ad

Similar to Sydjs: static site generators (20)

PDF
DOD 2016 - Sebastian Krzyszkowiak - Jenkins: The Pipeline
PDF
Shift Remote: JS - Javascript Build Tools: Past & Beyond - Shedrack Akintayo
PPTX
Versioned Page Objects: How to handle 12 versions of web application
PDF
Static Websites - The Final Frontier
PPTX
Testing in GO
PDF
HTML, CSS & Javascript Architecture (extended version) - Jan Kraus
PDF
CQRS and Event Sourcing for Java Developers
PPTX
Node.js and MongoDB from scratch, fully explained and tested
PPTX
Client Side Performance for Back End Developers - Camb Expert Talks, Nov 2016
PDF
Once upon a time, there were css, js and server-side rendering
PDF
Tests immutable when refactoring - SegFault Unconference Cracow 2019
PDF
PPTX
Untangling spring week12
PDF
Super lazy side projects - Hamik Mukelyan
PDF
Architektura html, css i javascript - Jan Kraus
PDF
Taskfile - makefiles are fun again
PPT
Selenium
PPTX
Introduction to node.js GDD
PDF
JavascriptMVC: Another choice of web framework
DOD 2016 - Sebastian Krzyszkowiak - Jenkins: The Pipeline
Shift Remote: JS - Javascript Build Tools: Past & Beyond - Shedrack Akintayo
Versioned Page Objects: How to handle 12 versions of web application
Static Websites - The Final Frontier
Testing in GO
HTML, CSS & Javascript Architecture (extended version) - Jan Kraus
CQRS and Event Sourcing for Java Developers
Node.js and MongoDB from scratch, fully explained and tested
Client Side Performance for Back End Developers - Camb Expert Talks, Nov 2016
Once upon a time, there were css, js and server-side rendering
Tests immutable when refactoring - SegFault Unconference Cracow 2019
Untangling spring week12
Super lazy side projects - Hamik Mukelyan
Architektura html, css i javascript - Jan Kraus
Taskfile - makefiles are fun again
Selenium
Introduction to node.js GDD
JavascriptMVC: Another choice of web framework

More from Ben Buchanan (7)

PDF
Clickable DIVs and other icebergs
PDF
Things designers and developers should know (WDS18)
PDF
The Naming Of Things
PDF
UI Libraries: should rolling your own be the way you roll?
ODP
ARIA: beyond accessibility
ODP
Half Of The Next Thing
ODP
ARIA (SydJS lightning talk)
Clickable DIVs and other icebergs
Things designers and developers should know (WDS18)
The Naming Of Things
UI Libraries: should rolling your own be the way you roll?
ARIA: beyond accessibility
Half Of The Next Thing
ARIA (SydJS lightning talk)

Recently uploaded (20)

PDF
MENA-ECEONOMIC-CONTEXT-VC MENA-ECEONOMIC
PDF
AI.gov: A Trojan Horse in the Age of Artificial Intelligence
PDF
Build Real-Time ML Apps with Python, Feast & NoSQL
PDF
zbrain.ai-Scope Key Metrics Configuration and Best Practices.pdf
PDF
Transform-Your-Supply-Chain-with-AI-Driven-Quality-Engineering.pdf
PDF
The-2025-Engineering-Revolution-AI-Quality-and-DevOps-Convergence.pdf
PDF
CXOs-Are-you-still-doing-manual-DevOps-in-the-age-of-AI.pdf
PDF
SaaS reusability assessment using machine learning techniques
PDF
Lung cancer patients survival prediction using outlier detection and optimize...
PDF
Advancing precision in air quality forecasting through machine learning integ...
PDF
A symptom-driven medical diagnosis support model based on machine learning te...
PDF
giants, standing on the shoulders of - by Daniel Stenberg
PDF
Connector Corner: Transform Unstructured Documents with Agentic Automation
PDF
Transform-Quality-Engineering-with-AI-A-60-Day-Blueprint-for-Digital-Success.pdf
PPTX
Internet of Everything -Basic concepts details
PDF
Auditboard EB SOX Playbook 2023 edition.
PPTX
SGT Report The Beast Plan and Cyberphysical Systems of Control
PDF
Introduction to MCP and A2A Protocols: Enabling Agent Communication
PDF
“The Future of Visual AI: Efficient Multimodal Intelligence,” a Keynote Prese...
PDF
The AI Revolution in Customer Service - 2025
MENA-ECEONOMIC-CONTEXT-VC MENA-ECEONOMIC
AI.gov: A Trojan Horse in the Age of Artificial Intelligence
Build Real-Time ML Apps with Python, Feast & NoSQL
zbrain.ai-Scope Key Metrics Configuration and Best Practices.pdf
Transform-Your-Supply-Chain-with-AI-Driven-Quality-Engineering.pdf
The-2025-Engineering-Revolution-AI-Quality-and-DevOps-Convergence.pdf
CXOs-Are-you-still-doing-manual-DevOps-in-the-age-of-AI.pdf
SaaS reusability assessment using machine learning techniques
Lung cancer patients survival prediction using outlier detection and optimize...
Advancing precision in air quality forecasting through machine learning integ...
A symptom-driven medical diagnosis support model based on machine learning te...
giants, standing on the shoulders of - by Daniel Stenberg
Connector Corner: Transform Unstructured Documents with Agentic Automation
Transform-Quality-Engineering-with-AI-A-60-Day-Blueprint-for-Digital-Success.pdf
Internet of Everything -Basic concepts details
Auditboard EB SOX Playbook 2023 edition.
SGT Report The Beast Plan and Cyberphysical Systems of Control
Introduction to MCP and A2A Protocols: Enabling Agent Communication
“The Future of Visual AI: Efficient Multimodal Intelligence,” a Keynote Prese...
The AI Revolution in Customer Service - 2025

Sydjs: static site generators

Editor's Notes

  • #2: http://www.flickr.com/photos/nuitei/73859782/
  • #4: It was this reaction from a coworker that inspired my talk tonight. In every web job I've had, at some point deploying a static site was the right option. That was in fact my entire first job. And yet! People react as though it's crazy to be considering it. That it's somehow too old a technique to be used now.
  • #5: There are reasons for old patterns to come around again. It has become so easy to build a client side application, it's easy to build something needlessly complex. But if something can be deployed static, why not? "generate dynamic, deploy static" has been a strategy for a very long time. If you look around, you'll find plenty of people deploying static sites, because it makes huge sense.
  • #6: Good use cases for a static deployment are primarily about the content. If it doesn't update; if it's about content rather than actions and manipulation, it's probably going to be a good static site. This is also for that client website you want to build with node but when they want their nephew to take over, you don't have to teach their nephew node. This is for documentation that needs to be generated along with other compile-time resources for future reference. Library docs. When you don't want to be running a server for every frickin patch release you've ever done.
  • #9: It's not hard to understand why. Fast / performant – the download is it. Done. No runtime dependencies: you don't have to worry about services coming back up after downtime you don't need to mirror your dev environment on the server Deploy anywhere – zip files with your library, deploy to cheap hosting options Some options even deploy via FTP so you dont have to futz about with SSH keys Usually passes the Plane Test
  • #11: People often feel static sites are somehow too easy, or they're getting away with something. It's like building a browser extension and feeling bad for not having to suffer at the hands of IE8 – understandable, but time to break free. Fundamentally we need to be comfortable with simple. We should strip things back if we can, remove risks if we can. Keep complexity in the dev's realm. All those little tweaks you can do at compile time have to be totally automated on the server, lest you want to attract the rage fo devops - they're on call. Users don't care regardless.
  • #12: ...and anyway, we seem to need quite a lot of dependencies to do simple things these days... (that's the last screen of output of a yeoman "basic" static site scaffold generator) We should be meditating on the concept of simplicity.
  • #13: The cool thing is we can use the same dev tools, languages etc that we use in app projects. Nodejs, the relatively new kid on the block, has lots of static site generators! Common stack across projects Faster onboarding Less siloing Good for maintenance Match to your own team's skills If that leads away from node, that's cool
  • #14: I'm going to assume you know what an npm install looks like while it downloads the internet. So rather than doing that, I thought I'd run through the key things you should be looking for when you are choosing a tool.
  • #16: The only projects with real question marks here are Blacksmith and Romulus. CabinJS is pretty active but is quite new. Hexo and Docpad have the greatest evidence of activity. Activity doesn't equal quality or features, of course. But it's a litmus test.
  • #17: My message really is don't feel like static deployments are too simple, or don't make good use of the modern toolset. You can use a great dev stack and still deploy static. Embrace simple. http://www.flickr.com/photos/squirmelia/7094409713/