Like Kitten itself, it’s a baby but will be evolving quickly as they approach API version 1 together.
Enjoy!
💕
PS. Of course it’s written in Kitten itself. It doesn’t do anything fancy but here’s the source code if you’re interested: https://codeberg.org/kitten/site
Kitten now has a lovely new multi-page Settings screen and… drumroll… a new 🐢 interactive shell (REPL) for you to play with the running state of your Small Web site/app/place and debug your app, inspect/manipulate its database, etc.
I plan on recording demos of each of them tomorrow but you can play with them now.
And here’s a little tutorial to get you started with the shell:
Trust me, you will save thousands of dollars if you never got excited about #AI hardware and #Tech nor go out and buy an AI hardware thing that would have been better as an app. Same for phones. Seriously, save the money. It will go far past the honeymoon phase faster than you will know. If your phone still works, you honestly don't need a new one. If you use #SmallTech you don't have to upgrade your laptop every year. Best thing I ever did was save my money and give it to writers and audiobook narrators instead of AI hardware.
Realised last night that JavaScript Database (JSDB) doesn’t run the constructor on persisted custom objects (https://codeberg.org/small-tech/jsdb#custom-data-types) when deserialising them because I didn’t know that you apparently have to define your constructor manually when using Object.create().
Will fix it today but it’s something to watch out for if you’re using Object.create() directly.
#Shaarli is a bookmarking service in #FreedomBox that stores each bookmark as a comment in a single PHP file.
This is actually appropriate design (in the sense of appropriate technology). A good example of #smallTech design. A big tech bookmarking service would have used some NoSQL database technology such as Cassandra, not a simple flat file.
Shaarli works great for thousands of bookmarks. Who cares if it scales to millions or not? :blobcatgooglyshrug:
Remember when #photography was about the #art of it, not clout-chasing or product-pushing? For example, in the late 2000s so many cool (not just meaning 'popular') photographers were on #Flickr. Then #Instagram came around in 2010 and #Facebook bought them out in 2012.
IMHO the mid-2000s was when #tech & online platforms started going downhill quick and tech #enshittification began to spread. I think the introduction of the #iPhone had a lot to do with it, not to mention the many tech acquisitions that have been happening ever since. Correct me if I'm wrong.
Anyway, the 'art' of photography feels lost now; pay-walled, plundered, copied, capitalized, and even censored. All of it beholden to whatever satisfies the venture capitalists, advertisers, and/or shareholders. Fuck all that. Let's take back the web. Let's take back tech. This is why the #Fediverse (including #pixelfed) and more broadly, concepts like #smalltech, #indieweb, #smallweb and #selfhosting etc gives me glimmers of hope.
Just discovered the concept of "small tech" / "small web" boosted by @laura and @aral :black_bloc_blob:
More interesting than "low tech" or "low web" fashion, powered by and for privacy, interoperability, inclusion with non-colonial nor non-commercial ideas.
Some fights and ideas picked from libre and ethical software movements, cool and mandatory nowadays :blobnomcookie:
So did I mention that no company or government pays me for the work I do?
But you can support my work if you want to live in a world where we have the Small Web as an alternative to the Big Web of Google, Facebook, and other people farmers.
Removed table-level proxies for the table delete(), addEventListener(), and removeEventListener() methods. These were erroneously being injected not just into table objects but into every data object in them (which was destructive in the case of delete()).
Given you can persist custom JavaScript objects in JSDB, this namespace pollution was a problem.
On the Internet, public space is not a place like Facebook or Xitter. It is the sum total of the interconnections between individually owned and controlled places.
This is why I’m designing the Small Web to enable everyone to have their own place on the web.
I love how this “Created by AI, edited by humans” summary of the chat I had with Doc this month starts off mildly enough with “A great chat on FLOSS Weekly regarding alternate funding models to support ethical tech projects…“ and ends a few paragraphs later with “…Balkan provided an urgent call to action to avoid extinction at the hands of unchecked capitalism.”
Every word in this article speaks directly to my soul. I have no desire to burn down the world we live in yet every desire to try and help bring about the kind of world I want to live in: a kinder, fairer, more equal and – to steal a phrase from the piece – more joyous one for us all.
I needed a pick-me-up so I took a break from the back-end stuff to make a logo for Domain¹ :)
(The main page for public instances will have a very different design before launch – one based on the prototype we created while working with the City of Ghent a few years ago.)
Just got an email saying Kitten’s been rejected for funding by Sovereign Tech Fund. No reason given.
I don’t even know why I try anymore, really.
We’ve never received a single penny of public funding for our work even though everything we make is free and open source and all our work is for the common good.
We do have a group of folks who support us via patronage – thank you all so much. It doesn’t pay the rent but it means a lot.
Hey folks, quick announcement: we’re not going to keep doing the monthly Small is Beautiful streams going forward.
Instead, I’ll be doing impromptu streams¹ and releasing recordings of new features, etc., as I add them to Kitten, Domain, etc., and Laura might join me for some of those.
We’re both very busy so we’re trying to make the best use of our time.
Since the Streamiverse (streaming updates of my public Mastodon feed) and Kitten Chat (WebSocket chat examples, starting simple and leading to end-to-end-encrypted peer-to-peer Small Web chat) examples are rather long, I just added a simple WebSocket echo tutorial to the list to hopefully better highlight the basics of working with WebSockets in Kitten:
Just saw that the Fetchiverse, Streamiverse, and Kitten Chat tutorials in the Kitten readme were still showing the old way of doing things so I just updated them.