@aral@mastodon.ar.al avatar aral , (edited ) to random

šŸ‘‹šŸ¤“ Goodbye Site.js, Hello Kitten!

I started working on creating a Small Web¹ server (a peer-to-peer Web server) six years ago² with Site.js.

Building Site.js was my first attempt. And it resulted in:

• Auto Encrypt (automatic Let’s Encrypt certificates): https://codeberg.org/small-tech/auto-encrypt

• Auto Encrypt Localhost (automatic localhost TLS certificates): https://codeberg.org/small-tech/auto-encrypt-localhost

• @small-tech/https (drop-in Node.js https module replacement with automatic TLS certs everywhere): https://codeberg.org/small-tech/https

• JSDB: In-process, in-memory JavaScript database that persists to append-only JavaScript logs: https://codeberg.org/small-tech/jsdb

As Site.js reached an evolutionary dead-end, and as I learned from my experiements with replicated data types that replicated data types are not a prerequisite for a decentralised web (actual topological decentralisation and ease of use are), I started writing a new server/platform called Kitten from scratch while still making use of the tried and tested modules listed above.

Last week, I switched over our last site using Site.js to Kitten and, with that, today I’ve sunset³ Site.js:

https://sitejs.org

For its successor, please see Kitten:

https://kitten.small-web.org

If you want to support our work at the Small Technology Foundation, please consider becoming a patron:

https://small-tech.org/fund-us

:kitten:šŸ’•

¹ https://ar.al/2024/06/24/small-web-computer-science-colloquium-at-university-of-groningen/
² https://ar.al/2019/08/26/introducing-small-technology-foundation/
³ Using our instance of Look Over There!: https://look-over-there.small-web.org

ALT
@aral@mastodon.ar.al avatar aral , to random

Your web server having an interactive shell (REPL) where you can live update entries in your site/app’s database is pretty neat (if I do say so myself) :)

https://kitten.small-web.org/reference/#kitten-s-interactive-shell-repl

(I’m porting the Small Technology Foundation site¹ from Site.js² – and hence from being a static site generated via Site.js’s integrated Hugo³ – to Kitten⁓. In the process, I’m creating an admin panel⁵ for the news, events, and videos sections, which will make them easier to update, and storing the data in Kitten’s internal JavaScript Database⁶.)

¹ https://small-tech.org
² https://sitejs.org
³ https://gohugo.io/
⁓ https://kitten.small-web.org
⁵ It’s trivial to create authenticated routes in Kitten. You just add a lock emoji (šŸ”’) to the end of your route’s name. e.g., adminšŸ”’.page.js or /adminšŸ”’/index.page.js (see https://kitten.small-web.org/reference/#sessions-and-authentication).
⁶ https://codeberg.org/small-tech/jsdb

ALT
@aral@mastodon.ar.al avatar aral , to random

I’m in the process of rewriting our sites that use Site.js¹, which has been deprecated for some time now, in Kitten².

In any of your sites use Site.js, I’d highly recommend doing the same thing. This is also a heads up for anyone who uses Site.js to install and run their own Owncast server³.

Site.js will be retired and the web site will start forwarding to Kitten’s at the end of April, 2025.

In May, automatic TLS certificate renewals for existing sites will start to fail.

(Kitten is the spritual successor to Site.js. Or think of Site.js as my first attempt at a Small Web server. I learned a lot while making it and a lot of the components I built for Site.js – like Auto Encrypt⁓, etc. – live on in Kitten.)

:kitten:šŸ’•

¹ https://sitejs.org
² kitten.small-web.org
³ CC @gabek , @owncast : If Site.js is still listed as a way of installing Owncast, now would be a good time to remove that and to relay this to folks in the Owncast community :)
⁓ https://codeberg.org/small-tech/auto-encrypt

@aral@mastodon.ar.al avatar aral , to random

So I guess Let’s Encrypt has decided what I’ll be working on today then…

https://letsencrypt.org/2024/12/05/ending-ocsp/

(They’re ending OCSP stapling support. I’ll be updating Auto Encrypt¹ to remove OCSP support and then update @small-tech/https, which uses it, along with Auto Encrypt Localhost² to provide seamless TLS support regardless of whether you’re working in development or in production, and then update Site.js³ – deprecated but still used to serve some of our own sites at Small Technology Foundation⁓ – and Kitten⁵, with the latest @small-tech/https.)

¹ https://codeberg.org/small-tech/auto-encrypt
² https://codeberg.org/small-tech/auto-encrypt-localhost
³ https://codeberg.org/small-tech/https
⁓ https://small-tech.org
⁵ https://kitten.small-web.org

@aral@mastodon.ar.al avatar aral , to random

Just made a macOS bug-fix release for Site.js¹ and also deprecated it as I’ll no longer be maintaining it. (We’ll be porting our own sites to Kitten².)

Site.js was the first iteration of a Small Web server and I learned a whole lot by building it. It is also where many of the components in Kitten originated (auto TLS, the JSDB database, etc.)

I’ll keep the site up for the foreseeable future for the historic record.

¹ https://sitejs.org
² https://kitten.small-web.org