mastodon.ar.al is one of the many independent Mastodon servers you can use to participate in the fediverse.
This is my personal fediverse server.

Administered by:

Server stats:

1
active users

Aral Balkan

While working on porting the Small Technology Foundation web site¹ to Kitten², I took the opportunity to pull out base Model and Collection classes that I’ll likely end up including in Kitten proper:

• Model: codeberg.org/small-tech/site/s
• Collection: codeberg.org/small-tech/site/s

To see them in use, here’s the base Posts class (with RSS generation) that extends Collection:
codeberg.org/small-tech/site/s

And here’s the concrete EventPosts collection class that extends Posts:
codeberg.org/small-tech/site/s

And the EventPost (showing an implementation of a calculated property):
codeberg.org/small-tech/site/s

So all this is possible (persisting and reading back typed model collections, etc.) thanks to JSDB¹ (JavaScript database), a zero-dependency, transparent, in-memory, streaming write-on-update JavaScript database I wrote for the Small Web that persists to a JavaScript transaction log and is included as as first-class citizen in Kitten.

codeberg.org/small-tech/jsdb

And if you want to know how the magic mapping of classes happens, see the Database App Module:

codeberg.org/small-tech/site/s

PS. For a much gentler introduction to persistence in Kitten, see the Kitten Persistence tutorial:
kitten.small-web.org/tutorials

Enjoy! :kitten:💕

¹ small-tech.org
² kitten.small-web.org

@juliangonggrijp Just had a quick glance. Nice. So, similar idea but instead of syncing via REST, you write to an append-only JavaScript log and so if you persist SomeClass, you get SomeClass back :)

@aral Backbone's Model and Collection have overridable .toJSON, .sync and .parse methods so you can do similar things. Saving data to localStorage instead of a server is a common pattern.