Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

Project logo

Easy Indie App

Run your own X, in a few clicks.

Data compiled automatically from the following locations:




The project is a large collection of mostly small modules and functions. With the exception of a few 'global' or 'magic' things such as the localization function OLSKLocalized, most resources used by a module should be in the same folder or referenced by path name.

Routing, rendering markdown content, and serving pages is done via a Node.js server (usually configured in the controller.js files).

Development Setup

(For a deeper dive, watch the tutorial).

Install Node.js and npm, then:

npm run setup

This should create an .env file if there is none. If you encounter errors referring to this file, you can find missing variables in .env-sample.


npm start

It should be accessible at http://localhost:3000.


Run logic tests

npm test 

Run interface tests

npm test ui

To filter interface test paths by string:

npm test ui match=vitrine

To filter interface test paths by JavaScript regular expressions:

npm test ui match='/(list|robots)/'


Help me keep creating projects that are public, accessible for free, and open-source.

Become a backer


The code is released under a Hippocratic License, modified to exclude its use for surveillance capitalism and also to require large for-profit entities to purchase a paid license.


Feel free to reach out on Mastodon or Twitter.