Rather loving the umpteenth iteration of my streaming setup :)
(Just recorded a preview of Kitten’s improved component model and will share it once it’s uploaded.)
Little preview video: Kitten’s improved component model
• Class-based page routes and components
• Object-oriented
• Event-based
• Seamless hypermedia-driven WebSocket-based event mapping and interface updates (Streaming HTML)
• A light server-side live component hierarchy with event bubbling
• Almost as if you’re building a desktop or mobile app instead of a web app…
… another authoring simplification made possible because on the Small Web – which is a peer-to-peer web – you build a web app/site as a tool for one person (the owner of the site/app) instead of as a tool for you to farm millions of people.
… still experimental ;)
Learn more about Kitten:
If you like what you see and want us to keep existing, we could definitely use your support:
https://small-tech.org/fund-us/
PS. I make a silly mistake while copying and pasting at one point in the video and I don’t catch it right away as I apparently don’t save the file although I think I did. Anyway, the still frame in the video contains the mistake:
The <h1 morph>${new Date()}</h1> line should be contained in a kitten.html`` tagged template.
(In the video I only catch the issue when updating the example to make into a persisted counter to show off Kitten’s internal JavaScript database, JSDB.)
PPS. The code you see is all the code in an app that streams a new date to the client whenever a button is pressed. All of it. No other files. Nada. You start kitten and it works (once you’ve fixed my mistake.) ;)
So last night, while recording the preview of Kitten’s¹ improved component model², I made a silly mistake (copying raw HTML into a JavaScript function instead of wrapping it in a kitten.html`` tagged template, easy to do when you’re refactoring to pull out components from pages).
Then, once I figured out what I’d done, I made another one by forgetting to return the value from the function (easy to do when you’re used to using one-line closures as render functions).
I would have caught both of those so much faster if Kitten had helpful error messages for those two pitfalls. And guess what, this morning, it does :)
Attached are screenshot showing the before and after error messages.
Enjoy!
¹ https://kitten.small-web.org
² Scroll up the thread to watch the video.
Adding more beautiful error messages to Kitten. These should help make it easier to recover from common errors while authoring.