🥳 JSDB¹ 7.1.0 release

Added:

• `JSTable.CHANGE` event. Fires when a value is changed (set) in memory. Guaranteed to fire before the `JSTable.PERSIST` event.

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

To install: npm install @small-tech/jsdb@latest

Enjoy!

💕

¹ JSDB is a free and open source, zero-dependency, transparent, in-memory, streaming write-on-update JavaScript database for the Small Web that persists to a JavaScript transaction log.

Find out more and grab the source at https://codeberg.org/small-tech/jsdb

#JavaScriptDatabase #JSDB #SmallWeb #SmallTech

🥳 New JavaScript Database (JSDB) release

• Fix: Now properly handling array indices on `JSTable.PERSIST` events in the `keypath` property that’s passed to the event handler.

Just noticed that the pretty keypaths of the JavaScript deltas written to the append-only log were ignoring array indices while playing with a new database introspection call I’m adding to the Kitten Interactive Shell (REPL) and fixed it.

I’ll be updating Kitten shortly to use this version of JSDB and I haven’t forgotten my promise to record a little video of the new Kitten Introspection API.

Enjoy!

💕

https://codeberg.org/small-tech/jsdb#readme

#JavaScriptDatabase #javascript #database #JSDB #SmallTech #SmallWeb #NodeJS

Just made a little correction to the JavaScript Database (JSDB) Table Events section:

Previously, the example that listens for the JSTable.PERSIST event was erroneously stating that the table was deleted when the `type` property in the event handlers parameter object was JSTable.DELETE. It now correctly states that the value at `keypath` was deleted.

I also documented the JSTable.PERSIST types so they wouldn’t be confused with the JSTable event types (persist and delete; the latter of which does actually signal that the table – i.e., the append-only JavaScript log – was deleted.

https://codeberg.org/small-tech/jsdb#table-events

#SmallWeb #SmallTech #JavaScript #database #JSDB #documentation #events #fix

jsdb

A zero-dependency, transparent, in-memory, streaming write-on-update JavaScript database for the Small Web that persists to a JavaScript transaction log.

Codeberg.org

Made a little logo for JSDB (JavaScript Database)

Better (six years) late than never? :)

https://github.com/small-tech/jsdb/issues/6

#JavaScriptDatabase #JSDB #logo

🥳 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!

 💕

#SmallWeb #SmallTech #Kitten #KittenReleases #web #dev #JavaScriptDatabase #JSDB #NodeJS

Kitten: Home

🥳 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:

```js
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

#JavaScriptDatabase #JavaScript #appendOnlyLog #JS #JSDB #JSDBUpdates #SmallTech #SmallWeb #Kitten #Catalyst

Kitten: Tutorials

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

#Kitten #JSDB #backups #SmallWeb #SmallTech

🥳 JavaScript Database (JSDB) version 6.1.4 released:

• Adds TypeScript type definitions

Been meaning to do this for a while and finally got round to it :)

https://codeberg.org/small-tech/jsdb#javascript-database-jsdb

#JavaScript #database #JavaScriptDatabase #JSDB #native #data #web #dev #NodeJS #SmallWeb

jsdb

A zero-dependency, transparent, in-memory, streaming write-on-update JavaScript database for the Small Web that persists to a JavaScript transaction log.

Codeberg.org

Ah, the joys of having a built-in native JavaScript database¹ that can persist and load typed JavaScript objects² and an interactive JavaScript shell (REPL)³ in Kitten⁴ :)

💕

¹ https://kitten.small-web.org/reference/#database
² https://kitten.small-web.org/tutorials/database-app-modules/
³ https://kitten.small-web.org/reference/#kitten-s-interactive-shell-repl
https://kitten.small-web.org

#Kitten #SmallWeb #web #development #JavaScript #NodeJS #JSDB

👋🤓 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

💕

¹ 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

#SiteJS #SmallWeb #SmallTech #peerToPeerWeb #SmallTechnologyFoundation #AutoEncrypt #AutoEncryptLocalhost #JSDB #JavaScriptDatabase #https #TLS