@nicegeargames@mastodon.gamedev.place avatar nicegeargames , to random

We have a new to replace the constantly-out-of-date News and Updates section of our homepage! Now you can follow us on and find all of our updates in one centralized place instead of scattered all over social media!

https://blog.nicegear.games

@openrisk@mastodon.social avatar openrisk , to random

The early Web had a quality that has been lost ever since: it was simple

Download , write some by hand and boom, the concept of a networked digital society is born.

It first started going pear shaped with . The complexity of a full blown database was not justified for most use cases. As proven decades later by the popularity of and approaches.

The final blow was when got into the act. Immense complexity for the simplest things became a moat

aral ,
@aral@mastodon.ar.al avatar

@openrisk This is why I bit the bullet and started on Kitten instead of just building a peer-to-peer social web app and some means of deploying it… if we want a different web, we’re going to have to simplify the stack (at least those parts that are feasible to).

https://kitten.small-web.org

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

🥳 JavaScript Database (JSDB)¹ version 7.0.0 released

  • Breaking change JSTable.PERSIST event now uses a parameter object with properties for type, keypath, value, change, and table. This should make listening for events on your databases much nicer to author. e.g., a snippet from Catalyst² I’m working on:
const settingsTable = db.settings['__table__']  
const JSTable = settingsTable.constructor

settingsTable.addListener(JSTable.PERSIST, ({ keypath, value }) => {  
 switch (keypath) {  
 case 'servers.serverPoolSize':  
 console.info('New server pool size requested', value)  
 this.updateServerPool()  
 break  
 // etc.  
 }  
})  

This new version of JSDB is not in the latest Kitten³ yet as it is a breaking change and I want to make sure I update my sites/apps first if needed. I should have it integrated tomorrow.

To see the simple use case for JSDB in Kitten (the default untyped database that’s easy to get started with and perfect for quick experiments, little sites, etc.), see: https://kitten.small-web.org/tutorials/persistence/

For a more advanced tutorial for creating your own typed databases in Kitten, see the Database App Modules tutorial: https://kitten.small-web.org/tutorials/database-app-modules/

For another example, see: https://codeberg.org/small-tech/jsdb/#table-events

Full change log: https://codeberg.org/small-tech/jsdb/src/branch/main/CHANGELOG.md#7-0-0-2026-02-10

Enjoy!

💕

¹ https://codeberg.org/small-tech/jsdb#readme
² https://catalyst.small-web.org
³ https://kitten.small-web.org

aral OP ,
@aral@mastodon.ar.al avatar

🥳 New Kitten release

Just released a new version of Kitten that now includes JSDB 7.0.0 with its improved JSTable.PERSIST event.

https://kitten.small-web.org

Note that this is a breaking change. If you’re listening for the old 'persist' event, please update your code.

For more information, please see the changelog: https://codeberg.org/kitten/app/src/branch/main/CHANGELOG.md#breaking-changes

Enjoy!

:kitten: 💕

@robyn@yeg.bike avatar robyn , to random

> "Many personal website owners
deliberately choose inefficient methods
for updating their sites. They write
HTML by hand, upload files directly
via FTP, or maintain static sites that
require manual intervention for even
simple changes. These choices would
be considered backwards in a
professional context, but they serve
important psychological and creative
functions"

by @vale , in the current issue.

me and my site deployed via feel very seen

@vga256@tomodori.net avatar vga256 , to random

so i'd love an open discussion about something that i don't have much vocabulary for, if only because there are so few examples of it on the world wide web. anyone/everyone is welcome to chime in.

back in the mid/late 90s there were some attempts at turning web forums and chat interfaces into virtual worlds. beyond all of the 3d chat rooms and telnet muds, there were some 2d graphical sites like moo.ca. The Canada SchoolNet moo was a mud/moo that allowed users to add/remove/modify rooms in real time, in-browser.

snapshot archived here - click 'Web Walkthrough' to walk around:
https://web.archive.org/web/20010417181313/http://www.moo.ca/home

Furcadia went a hundred steps further and integrated a 2d tile-based world with a world editor and script editor, so you could build your own "dreams" (multiplayer instances) within the shared game world. the entire game was built around socialization.

both of the above games are not just fancy web chat terminals. building and decorating the game world is a critical part of the social experience. you create a dining room, put chairs in it, program the chairs to allow players to use the 'sit' command, and then invite people into your dining room for a make-believe dinner party.

we now have reddit and various web forums. they're effectively the same threaded conversation that has been around since the usenet days.

what i don't see anymore are graphical WWW virtual worlds built around socialization. we either lock down everything and only allow chat. are there web-based MUDs/MUSHes/MOOs that allow for both world building and conversation?

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

The built-in database backup and restore feature in Kitten¹ (that actually works and is in the Kitten Settings section of every Kitten app) just saved my ass (again) :)

Thank you, past me ;)

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

ALT
@readbeanicecream@mastodon.social avatar readbeanicecream , to random

Just a reminder! If you are looking RSS starter packs, The RSS Review has downloadable OPML files for each category. They can be imported directly into your feed reader to subscribe to the entire category at once.

https://the-rss-review.surge.sh/

If you want to add a feed or feed category, then post it in the comments.

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

Added information on HTML, CSS, and Markdown Fragments to the Kitten Components and Fragments tutorial, including a little TypeScript type declarations file you can add to your projects so you don’t get type warnings for them when you import them in your projects:

https://kitten.small-web.org/tutorials/components-and-fragments/#html-css-and-markdown-fragments

Enjoy!

:kitten:💕

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

Hey, guess what?

I just saw the first Small Web site (the Kitten Chat example¹ from Kitten²) running at a Web Number³:

https://91.98.66.193/

👉 Update: I’m shutting it down in a few moments so it might not be there when you try it :)

Come say hi (I don’t know how long I’ll keep it on for, will update this when I turn it off.)

🥳

PS. This is only in the ip-address-support branch of Kitten right now and should be considered experimental. Will likely make it into main today.

¹ https://codeberg.org/kitten/app/src/branch/main/examples/kitten-chat
² https://kitten.small-web.org
³ https://ar.al/2025/06/25/web-numbers/

aral OP ,
@aral@mastodon.ar.al avatar

Hah… just noticed something interesting that looks like it’s going to be another advantage to Web Numbers¹… look at these Kitten² screenshots and tell me if you can spot something unexpected.

Hint: it’s what’s missing.

There are no 404 errors for common hack attempts trying to exploit WordPress vulnerabilities, etc. In fact, it’s entirely quiet. Because those folks watch DNS :)

¹ https://ar.al/2025/06/25/web-numbers/
² https://kitten.small-web.org/

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

Ethical Technology or Feudalism?

https://yewtu.be/watch?v=FsF4sdMPYas

A talk I gave six years ago that I’d highly urge you to watch. Still entirely relevant today, if not more so (sadly).

(What I call the Indienet in the talk is what I now call the Small Web; a peer-to-peer Web owned and controlled by people not corporations or governments.)

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

I just looked at the first commit for Kitten (then called NodeKit) from four years ago and, boy, has it come a long way since then :)

Four years ago: https://codeberg.org/kitten/app/commit/d8b59a8d9fc5625f510205b3f4fa798aedc57832

Today: https://kitten.small-web.org/tutorials/streaming-html/

And, of course, it actually goes back six years, back to Site.js, back to when Site.js was just called https-server (and then, later, Indie Web Server): https://codeberg.org/site.js/app/commit/9a64f1888fde28ba7aeb43345b5e70e65778e01e

Here’s me talking about why I’m building what I’m building from back then (“Ethical Technology or Feudalism?”), back when I was calling the Small Web the Indienet (and we were Ind.ie, before we were Small Technology Foundation):

https://yewtu.be/watch?v=FsF4sdMPYas

Good things take time.

💕

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

🥳 Minor releases

• Auto Encrypt 5.1.0: Moves automatic IP address detection from top-level await to asynchronous createServer() method to enable servers that import to run offline when they’re running on localhost) and exports IPAddresses class so servers can carry out their own automatic IP address detection (IPv4 and IPv6) if they want full control over exactly which domains and IP addresses are included in provisioned TLS certificates.¹

@small-tech/https: Re-exports IPAddresses class so servers (like Kitten²) can have full control over exactly which domains and IP addresses are included in provisioned TLS certificates.³

¹ https://codeberg.org/small-tech/auto-encrypt/src/branch/main/CHANGELOG.md#5-1-0-2026-01-21
² https://kitten.small-web.org
³ https://codeberg.org/small-tech/https/src/branch/main/CHANGELOG.md#6-1-0-2026-01-21

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

🥳 Multiple major releases today

@small-tech/auto-encrypt v5.0.0 (https://codeberg.org/small-tech/auto-encrypt#readme)
@small-tech/auto-encrypt-localhost v10.0.0 (https://codeberg.org/small-tech/auto-encrypt-localhost/#readme)
@small-tech/https v6.0.0 (https://codeberg.org/small-tech/https/#readme)

These releases bring short-lived certificates, IP Address (IPv4 and IPv6) support, and ACME Renewal Information (ARI) support to Auto Encrypt and @small-tech/https, implement a consistent asynchronous API across all three packages, and include loads of little fixes and code quality improvements.

This brings us very close to getting Web Numbers¹ support implemented natively in Kitten².

OCSP support is removed from Auto Encrypt and Windows support is dropped from all three packages as Microsoft is complicit in Israel’s genocide of the Palestinian people³ and Small Technology Foundation⁴ stands in solidarity with the Boycott, Divestment, and Sanctions (BDS) movement. Furthermore, Windows is an ad-infested and surveillance-ridden dumpster fire of an operating system and, alongside supporting genocide, you are putting both yourself and others at risk by using it.

Enjoy!

💕

🇵🇸 To support families facing genocide in Gaza, consider donating to them via Gaza Verified: https://gaza-verified.org/donate/

¹ https://ar.al/2025/06/25/web-numbers/
² https://kitten.small-web.org/
³ https://www.bdsmovement.net/microsoft
https://small-tech.org/

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

Yay, first shot of Auto Encrypt¹ running a HTTPS web server at a Web Number (IP address).

https://ar.al/2025/06/25/web-numbers/

Next step: find out why some of the tests are failing on the Linux box, fix, and implement Web Numbers support in Kitten² and Catalyst³.

¹ https://codeberg.org/small-tech/auto-encrypt#readme
² https://kitten.small-web.org
³ https://catalyst.small-web.org/

ALT
aral OP ,
@aral@mastodon.ar.al avatar

So, going forward, Auto Encrypt¹, Kitten², and Catalyst³ will be seamlessly (automatically; with zero config) supporting Web Numbers⁴ (IPv4, IPv6), and, of course, should you want to point one at your server for old time’s sake, legacy domain names too.

I still have some dev to do on this on the Kitten side of things but I’m hugely excited about being able to remove another centralised component – DNS – from the Small Web⁵ (peer-to-peer, personal web) as we inch nearer to making it available this year to everyday people who use technology as an everyday thing.

¹ https://codeberg.org/small-tech/auto-encrypt
² https://kitten.small-web.org
³ https://catalyst.small-web.org
https://ar.al/2025/06/25/web-numbers/
https://ar.al/2024/06/24/small-web-computer-science-colloquium-at-university-of-groningen/

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

🇵🇸 @small-tech/cross-platform-hostname module deprecated

https://www.npmjs.com/package/@small-tech/cross-platform-hostname

The release of version 1.1.0 deprecates and removes support for this small module that normalised hostname reporting between Linux/macOS and Windows.

We no longer support Windows as Microsoft is complicit in Israel’s genocide of the Palestinian people¹ and Small Technology Foundation² stands in solidarity with the Boycott, Divestment, and Sanctions (BDS) movement³.

Windows is an ad-infested and surveillance-ridden dumpster fire of an operating system and, alongside supporting genocide, you are putting both yourself and others at risk by using it.

When supporting Linux/macOS, just use the built-in os.hostname() method which works the same way on both platforms.

¹ https://www.bdsmovement.net/microsoft
² https://small-tech.org/
³ https://www.bdsmovement.net/

@wikiyu@infosec.exchange avatar wikiyu , to random

I am asking this question quite often... about once every three months. And still not found ANY real alternative.

Is there any REAL WordPress alternative that is:

  • simple to run on any hosting / server. Copy files, configure DB access, end. Like with WP
  • doesnt require self building anything
  • Have any themes/layout system that doesnt require PhD in NodeJS Shitstack
  • Have built in RSS feeds

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

🥳 @small-tech/auto-encrypt-localhost version 9.0.1 released

Automatically provisions and installs locally-trusted TLS certificates for Node.js https servers (including Polka, Express.js, etc.) Unlike mkcert, 100% written in JavaScript with no external/binary dependencies. As used in Kitten¹

https://codeberg.org/small-tech/auto-encrypt-localhost#readme

This is a housekeeping release:

• Add TypeScript type definitions.
• Improve code quality; fix all type warnings.
• Update dependencies and remove all npm vulnerability warnings.

Full change log: https://codeberg.org/small-tech/auto-encrypt-localhost/src/branch/main/CHANGELOG.md

Enjoy! 💕

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

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

🥳 Auto-Encrypt Localhost version 9.0.0 released

Bye bye, Windows.

• Windows is no longer supported as Microsoft is complicit in Israel’s genocide of the Palestinian people¹ and Small Technology Foundation² stands in solidarity with the Boycott, Divestment, and Sanctions (BDS) movement³. Windows is an ad-infested and surveillance-ridden dumpster fire of an operating system and, alongside supporting genocide, you are putting both yourself and others at risk by using it.

Enjoy!

💕

About Auto-Encrypt Localhost:

https://codeberg.org/small-tech/auto-encrypt-localhost#readme

Auto Encrypt Localhost is similar to the Go utility mkcert but with the following important differences:

  1. It’s written in pure JavaScript for Node.js.

  2. It does not require certutil to be installed.

  3. It uses a different technique to install its certificate authority in the system trust store of macOS.

  4. It uses enterprise policies on all platforms to get Firefox to include its certificate authority from the system trust store.

  5. In addition to its Command-Line Interface, it can be used programmatically to automatically handle local development certificate provisioning while creating your server.

Auto-Encrypt Localhost is licensed under AGPL version 3.0.

¹ https://www.bdsmovement.net/microsoft
² https://small-tech.org/
³ https://www.bdsmovement.net/

@h333d@cyberplace.social avatar h333d , to random

The weirdest part of self-hosting isn't the control, it's the silence.
I logged into my dashboard tonight via the tunnel. No banner ads. No
"suggested content" algorithms designed to doomscroll me. No tracking pixels firing off to a data broker in Utah, lol.
Just my tools, sitting there, waiting.
We really forgot what the internet feels like when it isn't trying to extract value from us every single second. It’s quiet here. I like it.

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

Just added Web Reachability API (at least that’s what I’m calling it) support to https://ip.small-web.org.

It’s for testing the reachability of your Small Web servers (using a domain or, more importantly, an IPv4/IPv6 address). I’m using it to implement Web Numbers¹ support in Auto Encrypt² and Kitten³.

Protocol:

• At https://ip.small-web.org/reach/an empty HTTP 200 response that includes the following custom header: 'web-reachability-id': ‘<uuid>'
• Hit: https://ip.small-web.org/reach/<endpoint>/<uuid>/
• If you get a 200 response back, your endpoint is reachable. Anything else signals an error.

Enjoy! 💕

¹ https://ar.al/2025/06/25/web-numbers/
² https://codeberg.org/small-tech/auto-encrypt
³ https://kitten.small-web.org

@SocialGaff@cathode.church avatar SocialGaff , to random

Setting up an / feed reader. I know I've seen some of y'all's websites and bookmarked 'em, but I'm sure there's some I'm missing.

If you have a feed, I'd like to know about it. Please share it with me here :)

yes, you, the person who just thought "But I don't post anything interesting"

yes, you, the person who thought "I post really infrequently"

yes, you, the person who thought "I post all the time though and will flood your feed with BS"

I'm trying to balance out youtubers with people I have a shot at getting to know, if I don't know you already.