Super Awesome Totally Rad Going To Blow Your 

Mind Static Site Generators

Twitter: lesjames

Les James
UX Developer
Republic Wireless

2002

Dreamweaver

The original static site generator

Site compiling:

Dreamweaver -> CMS
Local -> Server

CMS: great for marketing, pain for development

2014

RW = Backbone + Drupal

Time for a new architecture

What is a static site generator?

Why SSG?

Simplicity

Development speed

Performance

Security

Precise control of output

Search: static site generator

assemble.io

Problems with SSG

No GUI

File based models

Frustrating templating

Search: static site generator

Metalsmith? Broccoli Taco?

This is the problem with developers

Build your own tools?

Fears of tool building

Time?

Skill?

Yet another SSG?
How can we innovate?

A CMS needs a...

URL

Context

Template

Formidable

Maintainable URLs

Data driven context

Django Template Language

Fully Async


    // URL definition
    // src/urls.js

    var url = require('rw-formidable/urls').url;

    module.exports = [
        url('/', 'pages/views/home', 'pages:home')
    ];
    
    // View definition
    // src/pages/views/home.js

    var context = require('rw-formidable/context');

    module.exports = {
        template: 'pages/home.html',
        context: context({
            greeting: 'Hello',
            name: 'World'
        })
    };
    
    {# Template definition #}
    {# src/pages/templates/pages/home.html #}
    
    <!DOCTYPE html>
    <html lang="en-us">
        <head>
            <meta charset="UTF-8">
            <title>Welcome</title>
        </head>
        <body>
            <h1>{{ greeeting }}, {{ name }}!</h1>
        </body>
    </html>

Demo: Github API

We have an asynchronous data driven context. Now what?

Demo: Contentful

What else can we do?

Demo: Photon

github.com/republicwireless-open

Don't be afraid to build your own tools.

Questions?

Thank you!

github.com/republicwireless-open

Twitter: lesjames

Made with Slides.com