Domain is a free and open Small Web hosting platform.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Aral Balkan d63f2933c2 Closes #4: periodically expire sessions 4 hours ago
admin Closes #4: periodically expire sessions 4 hours ago
.gitignore Initial add 1 week ago
Footer.component Improve index page layout 4 days ago
LICENSE Initial add 1 week ago Initial add 1 week ago
domain-logo.svg Update Domain logo colours to better match Kitten ;) 1 week ago
global.styles Progress #1: add sign in/sign out links to admin navigation 1 day ago Improve index page layout 4 days ago
index.styles Improve index page layout 4 days ago
main.script Closes #4: periodically expire sessions 4 hours ago
package-lock.json WIP: session-based authentication 3 days ago
package.json WIP: session-based authentication 3 days ago

Domain logo Domain

Work-in-progress (not ready for use).

Currently being re-written from scratch in Kitten. You can find the old prototype which was written in NodeKit on the old Domain remote.

Domain is a free and open Small Web hosting platform.

(Think of it as a batteries-included Digital Ocean in-a-box that anyone can own and operate.)

For an in-depth description of Domain, please see our NLnet Grant Application for Domain.

For organisations to serve individuals

Organisations can use Domain to provide small web hosting services at their own Small Web Domains to their communities.

These services could be:

  • A commercial activity (e.g., our not-for-profit Small Technology Foundation is planning on charging ~€10/month for small web places on in order to fund ongoing development of Kitten, Domain, and our other work.)
  • A public good (e.g., a could provide free small web places to its citizens via tokens)
  • A hyperlocal or more personal initiative (e.g., providing small web places for your neighbourhood or your own family via a private instance).

Individuals can use small web hosts to set up their own small web places at small web domains without any technical knowledge.

Small Web Domain

A Small Web Domain is, for all intents and purposes, like a top-level domain but:

  1. It is a second-level domain (e.g.,
  2. Where Small Web places are registered as subdomains.
  3. And, unless it is being run as a private instance (e.g., for your family), where the second-level domain is registered on the Public Suffix List.

If a person wants to move their place to a different Small Web Domain or to a Big Web domain (i.e., their own second-level domain), they can do so at any time.


  1. Install Kitten
  2. Clone this repo.


Domain is a Kitten app. There is no build stage.

From the Domain folder, simply run:


🚧 For admin panel password see terminal output.


Once you sign up for accounts with the supported service providers and Domain is running, you can configure your account using the Admin Panel.

Is this ready for use?

No. It is under heavy development.

Why such a generic name?

On purpose. We are not trying to create A Brand™ here. The “brand”, if anything, is the instantly-recognisable simplicity and typographic treatment of the public-facing sign-up page itself which will enable people to recognise Small Web Domains (due to the lack of bullshit/noise). Otherwise, the focus is on the domain itself, as it should be.

What does it take to run a Small Web Domain?

Domain integrates three* main services:

  1. A Domain Name Service (DNS) provider for setting up domains.

  2. A Virtual Private Server (VPS) provider for settings up servers.

  3. A payment provider to limit access to scarce resources.

* For public instances, it also requires that your domain is registered on the Public Suffix List.

Supported service providers

Domain provides support for the following service providers. You will need to get accounts with them to configure it.




  • None: for private instances (e.g., families, internal use at organisations, etc.)

  • Tokens: for use in place of money by organisations running public instances (e.g., a city providing free Small Web Places to its citizens). (Under construction.)

  • Stripe: for commercial payments (e.g., for making your Small Web Domain financially sustainable within the capitalist system you find yourself living under) (Under construction.)

What is the token payment type?

The Small Web aims to be a bridge between the capitalist centralised web and a post-capitalist humanscale web of individually-owned-and-controlled single-tenant web places. As such, we have the unenviable task of trying to design a system that is both sustainable under capitalism and viable for post-capitalist use.

Supporting both Stripe and tokens as a payment type is an example of this.

A token is simply a secret code that you can enter in place of traditional payment with money.

For example, a municipality might decide that its citizens having their own place on the Small Web is good for human rights and democracy and might budget to provide them with this service from the common purse, for the common good. As such, it might create codes that get mailed out to all citizens. They can then use these codes in place of payment. (We prototyped an early version of this with the City of Ghent several years ago. Unfortunately, a conservative government came into power and our funding for the project was cut off.)

Traditional/token payment doesn’t have to be mutually exclusive. The municipality in question might, for example, enable both so that people can sign up for more than one Small Web place or if it wants to enable others (e.g., people who are not residents of their city) to sign up.


Copyright ⓒ 2021-present Aral Balkan, Small Technology Foundation

Released under AGPL version 3.0.