Skein

From IndieWeb

Skein is a Node.js static site generator developed by Emma Kuo and previously used on notenoughneon.com (July 2015) until the site was later lost. It uses html+microformats as its native data store.

Features

  • Articles, notes, photos, replies, likes, reposts
  • Tags
  • Webmentions
  • Self hosted oauth and indieauth endpoint
  • Micropub endpoint
  • oEmbeds Youtube, Soundcloud, Twitter content
  • Publishes to Amazon S3

Code

Skein is in development. Use at your own risk.

The microformats library used by Skein has been released as a separate module on NPM, and is more suitable for general use:

Architecture

Skein uses PURR to use published HTML as its native data store. Earlier in development, sqlite was used as a cache, but it was abandoned due to issues getting out of sync with published content. See database-antipattern. The oauth endpoint issues stateless JWT tokens.

The server process hosts micropub and webmention endpoints, and is designed to run an an EC2 instance. On receiving a webmention or new post, content is regenerated and published to S3.

The publishing layer is modular, and S3 can be switched out for git or static file hosting backends. The static file backend is used to run an end-to-end test suite.