Site.js version 15.1.1 released

This is a patch release that fixes a circular dependency bug that was causing sync/push to fail on Hugo sites.

Site.js version 15.1.0 released

Minor update: Enable wildcard routes to be defined using the filename of the HTML file (for syntactic consistency with how dynamic routes are defined).

Relevant documentation:

Get started:

Site.js version 15.0.1 released

This is a small bug fix that gets the new DotJS route parameters feature working properly on Windows 10 also.

Relevant docs:

Get started:

Site.js version 15.0.0 released

You can now specify named parameters in your DotJS routes via the file name.


1. Create a file at .dynamic/hello_name.js with the following route:

module.exports = (request, response) => {
response.html(`<h1>Hello, ${}!</h1>`)

2. Start a local server (site).

3. Hit https://localhost/hello/Laura to see “Hello, Laura!” in the browser.


Get started:

Yay, my new computer just arrived: the postmarketOS edition of @PINE64 PinePhone with USB-C dock. Can’t wait to connect this baby to my monitor and keyboard and play with Site.js on it ;)

Site.js version 14.6.3 released

- Fixes: Redundant server close call causing subsequent restart attempts to fail. (The bug only affected regular process servers, not daemons.)

Site.js version 14.6.2 released

Fixes regression: crash on (regular process) server restart requests. (Daemon processes/production was not affected.)

To upgrade your client, just run:

site update

Site.js version 14.6.1 released

- Fixes sync regression (crash) introduced in 14.4.0 when attempting to deploy sites with Hugo (generated) content.

Site.js tutorial (in a toot): How to make a dynamic web site

[Windows 10 version]

1. iex(iwr -UseBasicParsing

2. mkdir -p counter/.dynamic

3. echo 'i=0; module.exports = (request, response) => response.html(`${++i}`)' | Out-File -Encoding UTF8 counter/.dynamic/index.js

4. site counter

Hit https://localhost and refresh 🤓👍

Site.js tutorial (in a toot): How to make a dynamic web site

Linux & macOS:

1. wget -qO- | bash

(On macOS, curl is preinstalled so use that instead: curl -s | bash)

2. mkdir -p counter/.dynamic

3. echo 'i=0; module.exports = (request, response) => response.html(`${++i}`)' > counter/.dynamic/index.js

4. site counter

Hit https://localhost and refresh 🤓👍

Site.js version 14.5.1 released

This release introduces wildcard routes. Specialise the behaviour of your pages using only client-side JavaScript while making use of path fragments as arguments without having to define your routes manually.

(It’s much easier to understand with an example.)

Documentation + example:

Get started at:

Site.js version 14.4.0 released

This release implements new pull and push commands that make use of Small Web conventions to simplify downloading and deploying your site.

- pull command
- push command

- Server auto-restart when a .dynamic folder is created/synced

To update, use: site update

(Daemons will auto-update as usual.)

Site.js version 14.3.0 released

💫 You can now sync on Windows 10 also.

This means that Site.js now has feature parity across Linux, macOS, and Windows 10.

(Production use is – and will remain – limited to platforms with systemd.)

So one of the traditions I enjoyed in Sweden was after work drinks. So grab something, turn on your camera and microphone, and join me at (and help me test out our Jitsi instance.)

PS. It might go up in flames :)

About to start hearing the final pitches for the 2020 Eastern Partnership Civil Society Facility Online Hackathon.

Just released: recordings of a talk and question and answer session that @laura and I gave recently at the Eastern Partnership Civil Society Online Hackathon.

We will be hearing their final pitches and seeing the prototypes tomorrow.

Site.js version 14.2.0 released

Adds ARM64 support on Linux. Tested on PineBook Pro and PinePhone (localhost servers not supported on UBPorts edition PinePhone).

Either I can’t find it or there’s no “fork” command on the “mobile view” of GitHub and they seem to have removed the option to switch to the desktop view (wtf, folks, it’s 2020, this is not how you design a web site).

Anyway, so one way to fork a repo from a phone is to choose the “Create new file” command. That will fork it for you (you don’t have to actually complete the process to create a new file).

Show more
Aral’s Mastodon

The social network of the future: No ads, no corporate surveillance, ethical design, and decentralization! Own your data with Mastodon!