home.social

#kittenrelease — Public Fediverse posts

Live and recent posts from across the Fediverse tagged #kittenrelease, aggregated by home.social.

fetched live
  1. 🥳 New Kitten Release

    • Fixed: Kitten no longer crashes when a server error occurs after a response has ended. (#320)¹

    Full change log: codeberg.org/kitten/app/src/br

    Enjoy!

    :kitten:💕

    ¹ codeberg.org/kitten/app/issues

    #Kitten #KittenRelease #SmallWeb #SmallTech #bugFix

  2. 🥳 New Kitten¹ release!

    Implemented workaround:

    There is a bug in the CommonMark spec that results in preformatted code with empty lines nested in an HTML node not rendering correctly.²

    In Kitten, this previously threw an error (see #294³ and also #318⁴).

    Kitten now works around the issue in its own parser.

    Full change log: codeberg.org/kitten/app/src/br

    Enjoy!

    :kitten:💕

    ¹ kitten.small-web.org
    ² github.com/commonmark/commonma
    ³ codeberg.org/kitten/app/issues
    codeberg.org/kitten/app/issues

    #Kitten #KittenRelease #SmallWeb #SmallTech #CommonMark #spec #bug #workaround #Markdown #web #dev #NodeJS

  3. 🥳 New Kitten Release

    • Reduces minimum Bash version requirement for installing Kitten to Bash 3.2+ (was previously Bash 5+). This removes the requirement for people on macOS to upgrade the ancient version of Bash that Apple ships with their desktop operating system. (If you’re on Linux none of this was ever an issue for you.)¹

    • Updates runtime to Node 24.12.0, the latest long-term support (LTS) version.

    kitten.small-web.org

    ¹ While it’s easy enough to update your version of Bash on macOS using Homebrew, that only works (as we discovered on Friday mastodon.ar.al/@aral/115706233) if you’re running one of the latest three versions of macOS and thus excludes people with perfectly functional older computers. (Don’t get me started on why Apple ships an ancient version of Bash as we’ll go down the rabbit hole of open as in “open for business” vs “free as in freedom” and corporate capture and how capitalism will happily be the end of us if we let it. Aren’t you glad you didn’t get me started?) ;)

    #Kitten #KittenRelease #SmallWeb #SmallTech #bash #NodeJS

  4. Another quick release, this one adds Alpine.js support for shorthand event handlers.

    Just add a `@` before your shorthand event handler names to have them expanded as inline Alpine.js event handlers.

    e.g., `on:connect` → `@on:connect`

    Enjoy!

    :kitten:💕

    #Kitten #AlpineJS #HTMX #SmallWeb #peerToPeerWeb #web #dev #JavaScript #nodeJS #SmallTech #KittenRelease

  5. 🥳 New Kitten Release

    kitten.small-web.org

    You can now use the simple `on:` prefix instead of `hx-on:htmx:` to define inline event handlers for HTMX events¹.

    Also, there are three new event shorthands for responding to your Kitten page’s connection lifecycle:

    • on:connecting
    • on:connect
    • on:disconnect

    (These expand during render to `hx-on:htmx:ws-connecting.window`, `hx-on:htmx:ws-open.window`, and `hx-on:htmx:ws-close.window`, respectively.)

    These are useful when using Kitten’s Streaming HTML workflow.

    Full change log:
    codeberg.org/kitten/app/src/br

    Enjoy!

    :kitten:💕

    ¹ htmx.org/events/
    ² kitten.small-web.org/tutorials

    #Kitten #SmallWeb #peerToPeerWeb #web #dev #SmallTech #KittenRelease

  6. 🥳 New Kitten Release

    Housekeeping:

    • Updated runtime version to Node version 22.18.0 (latest LTS).

    • Removed `--experimental-global-customevent` in node launch command (as `CustomEvent` is no longer behing the CLI flag since Node v19.0.0)

    • Renamed `--experimental-loader` flag to `--loader` as the experimental prefix is no longer required.

    kitten.small-web.org

    Enjoy!

    :kitten:💕

    #Kitten #KittenRelease #SmallWeb #SmallTech #web #dev #HTML #JavaScript #CSS #NodeJS

  7. 🥳 New Kitten release!

    Markdown and general renderer fixes.

    Fixed:

    • Nested Markdown sections rendering bug.

    • Detection of components in Markdown where the opening tag spans multiple lines.

    • Support for returning a component as a top-level object in a page.

    • Slots in Markdown now work as they should (make sure you add them as block-level items, so with a leading and trailing empty line)

    Enjoy!

    :kitten: 💕

    kitten.small-web.org

    #Kitten #KittenRelease #SmallWeb #SmallTech #Markdown #rendering #HTML #web #dev

  8. 🥳 New Kitten Release

    To GNU tar or not to GNU tar?

    • Installing Kitten on Linux should no longer display a screenful of gibberish from the tar command.

    You see, macOS, being special, includes BSD tar, not GNU tar, and adds a bunch of Mac-specific metadata and extended header keywords to archives that GNU tar on Linux machines then chokes on and regurgitates onto your screen as warnings.

    With this release, Kitten’s packaging script expects GNU tar to be available on macOS and uses that instead of BSD tar.

    The latest release of Kitten now installs without any warnings on Linux (at least on my Fedora Silverblue box).

    Enjoy!

    kitten.small-web.org

    #Kitten #KittenRelease #SmallWeb #SmallTech #GNU #BSD #Darwin #macOS #tar

  9. 🎉 New Kitten¹ Release: A little housekeeping 🧹

    Today’s release only concerns production servers:

    • Kitten no longer counts all *hits* in its stats. You can still see which of your *pages* are most popular, etc., and see stats for missing URLs, etc., as before from either the web interface or the interactive shell, but not every hit is logged. Instead, you can see the latest 25 served routes in Kitten’s Settings (at /🐱/settings/state/requests/ via the web on your server).

    - Kitten production servers now carry out an automatic daily maintenance restart at some time between 3AM and 5AM local server time. (“Have you tried turning it off and on again?” as a Service™) This is to allow JSDB² tables a chance to compact themselves (especially important for high traffic/high mutation tables like sessions, so they don’t balloon up to take up all available memory on small VPS instances).

    I don’t think anyone but us (Small Technology Foundation³) is running Kitten in production at the moment but, still. If you are playing with Kitten and experimenting with it in production, your servers will update to this latest version in a few hours.

    Full details: codeberg.org/kitten/app/src/br

    :kitten: 💕

    ¹ kitten.small-web.org
    ² codeberg.org/small-tech/jsdb
    ³ small-tech.org

    #Kitten #KittenRelease #SmallWeb #SmallTech

  10. 🥳 New Kitten Release

    • Improved Markdown parser

    Kitten’s JavaScript tagged template strings (`kitten.html`) no longer fail to render as expected when interpolated values are used inside of Markdown where the Markdown render changes source order.

    So, for example, the following will now work correctly, whereas, previously, the link source and link text would have been erroneously flipped:

    kitten.html`
    <markdown>
    [${linkText}](${linkSource})
    </markdown>
    `

    To implement the fix, I’ve moved Markdown rendering outside of the main render loop and into a pre-render stage and implemented a simple Markdown render tree that non-recursively handles all Markdown region renders.

    More details: codeberg.org/kitten/app/src/br

    Run `kitten update` to update your dev machines. Your deployment servers will automatically update in the next few hours.

    You can learn more about and install Kitten from the Kitten web site:
    kitten.small-web.org/

    Enjoy!

    :kitten:💕

    #Kitten #KittenRelease #SmallWeb #server #framework #web #dev #kit #markdown

  11. 🥳 New Kitten Release

    • Fixed regression: Since we switched the h() render function to return a generator (for seamless async support in html templates), two other methods that were calling h() directly – `kitten.safelyAddHtml()` and `kitten.js()` – had begun to fail. This was also affecting the fetchiverse, streamiverse, and kitten-chat family of examples.

    Enjoy!

    kitten.small-web.org

    (Run `kitten update` to immediately install the latest version on your development machines. Your production machines will automatically update in the next few hours.)

    :kitten:💕

    #Kitten #SmallWeb #bug #regression #fix #KittenRelease #SmallTech #web #dev

  12. 🥳 New Kitten Release

    • Added support for symlinks

    You can now use symlinks in your sites/apps (but only those that point inside your site/app’s directory for security reasons).

    Change log: codeberg.org/kitten/app/src/br
    Documentation: kitten.small-web.org/reference

    To update Kitten:

    • On your dev machine, run: kitten update
    • On deployed machines, it will automatically update in a few hours.

    Enjoy!

    :kitten:💕

    #Kitten #SmallWeb #SmallTech #symlinks #KittenRelease #web #dev

  13. 🔒 New Kitten & JSDB Releases

    Security fix, JSDB 6.0.1.

    This is a critical update.

    • JSDB¹ versions 6.0.0 and below suffer from potential data corruption/arbitrary code execution as string keys were not being sanitised in the same way string values were² (so this is relevant to you if you’re storing untrusted data as keys in your data structures in JSDB and/or Kitten databases without carrying out any of your own sanitisation at the application level).

    • The latest Kitten release uses JSDB version 6.0.1. Your deployment servers will automatically update in the next few hours. On your development machines, please run `kitten update` in your terminal or use the Update feature in Kitten Settings from your browser.

    • If you are using Kitten’s Database App Modules³ feature in your apps, you will have installed JSDB manually and you should update your installation to version 6.0.1.

    ¹ codeberg.org/small-tech/jsdb/
    ² codeberg.org/small-tech/jsdb/i
    ³ kitten.small-web.org/reference

    #Kitten #SmallWeb #JSDB #JavaScriptDatabase #KittenRelease #JSDBRelease #securityUpdate #criticalUpdate

  14. New Kitten Release 🥳

    To OCSP¹ or not to OCSP…

    • Turns on OCSP support in the server only if the site’s certificate has the OCSP stapling extension.

    This is to support both servers that still have OCSP stapling in their certs as well as new ones that don’t. (Let’s Encrypt sunset OCSP support yesterday and there is a transitionary period where Kitten servers will have both types of certificates. This update is to ensure we support both without issues.)

    kitten.small-web.org

    Also updated, if you’re interested in playing lower in the stack:

    • @small-tech/https: codeberg.org/small-tech/https
    • @small-tech/auto-encrypt: codeberg.org/small-tech/auto-e

    Enjoy!
    :kitten:💕

    ¹ Online Certificate Status Protocol (en.wikipedia.org/wiki/Online_C). Yes, I hate abbreviations too :)

    #Kitten #SmallWeb #SmallTech #KittenRelease #TLS #OCSP #OCSPStapling #LetsEncrypt

  15. New Kitten Release 🎉

    • Improved instructions for adding a git webhook on Codeberg in Kitten Settings → App.

    kitten.small-web.org

    Enjoy!

    :kitten:💕

    #Kitten #KittenRelease #SmallWeb #SmallTech #web #dev #git #webhook #Codeberg #Forgejo

  16. New Kitten Release 🎉

    • Breaking change: `kitten.icons` namespace is now flat (not alphabetically sharded). This should make it much nicer to author with. (The alphabetical sharding was an attempt to work around a size limitation with large objects when using automatic type inference in the TypeScript language server. Since I’m now generating a TypeScript type definition for the entire data structure, the limitation no longer applies and thus the sharding is no longer necessary.) kitten.small-web.org/reference

    • The `tags` and `categories` hash tables on `kitten.icons` – which are included as authoring-time aids to help you find icons using metadata searches in your editor – are now marked as unenumerable properties so they no longer pollute the root icons namespace so you can, for example, safely iterate through all icons with a simple loop.

    • I’ve started a change log even though Kitten is still pre-release so there is a better place to find them than looking through my Mastodon release notification posts :) codeberg.org/kitten/app/src/br

    Enjoy!

    :kitten:💕

    #Kitten #KittenRelease #SmallWeb #SmallTech #icons #svg #PhosphorIcons #web #dev

  17. New Kitten Release 🥳

    kitten.small-web.org

    (Run `kitten update` to update your dev machines. Production machines will automatically update in a couple of hours.)

    • You can now add a generic script block to your markdown pages (see mastodon.ar.al/@aral/114432417)

    • Markdown pages can now be `KittenPage` instances and attach `KittenComponent` instances (so you get a full server-side component hierarchy with an event-based workflow; ideal for authenticated pages where you can be use only the author of the page will be accessing them and thus the additional memory and processing overhead are not issues. Isn’t the Small Web great? Only having instances of one makes it possible to optimise so many things for the human experience instead of vertical scale of the data farming machine.)

    • Two new examples showcase the new features: codeberg.org/kitten/app/src/br and codeberg.org/kitten/app/src/br

    • Attributes with object values are no longer serialised into the DOM (but your components’ render functions will continue to receive them, of course.) This is because only string values make sense for attributes in the context of the HTML DOM. (You can still, of course, have stringified representations of objects in attributes, as used by the `data` attribute to pass data from nodes to event handers on the server.)

    #Kitten #SmallWeb #SmallTech #kittenRelease #markdown #scripting #OOP #eventModel #web #dev

  18. New Kitten Release 🥳

    • New: Any attributes present in a <markdown> tag are now passed to the first rendered element. (This is useful if you want to add some quick inline styles to a <p> that’s rendered from markdown, etc., but for anything more complicated, you should likely just jump into HTML.)

    To learn more about Markdown in Kitten, please see the Markdown reference¹.

    Enjoy!

    :kitten:💕

    ¹ kitten.small-web.org/reference

    #Kitten #SmallWeb #PeerToPeerWeb #KittenRelease #markdown #web #dev

  19. New Kitten Release 🎉

    • Fix: morph attributes¹ now support interpolated values.

    kitten.small-web.org

    Enjoy!

    :kitten:💕

    ¹ The morph attribute is Kitten’s shorthand for the hx-swap-oob attribute of htmx, which Kitten uses – and extends – under the hood. To learn more about it, see Kitten’s Streaming HTML tutorial: kitten.small-web.org/tutorials

    #Kitten #SmallWeb #PeerToPeerWeb #KittenRelease #htmx #hypermedia #web #dev

  20. New Kitten Release 🎉

    kitten.small-web.org

    Added:

    • Support for local redirects and domain redirects (former will eventually have interface in Settings, latter can be programmatically used or, more likely, will be used via a small app I’m about to release next).

    Fixed:

    • Event bubbling in class-based Kitten pages and components is now correctly limited to just the event target if the component’s id starts with Kitten’s automatically generated universally-unique ID for the component.

    • Fixed regular expression matching Kitten components in Markdown pages so it correctly captures self-closing components when followed by components with slotted content.

    • The Kitten-specific trigger() mixin on the client-side WebSocket now correctly adds the contents of the data attribute on the triggering node to the data property received by the server-side event handler. This gives manually-triggered event handlers the same interface as automatically-triggered ones. (Previously it would create a separate `data` object in the received argument.)

    Stay tuned for the a small and useful app release later today for web archiving/combatting link rot :)

    Enjoy!

    #Kitten #SmallWeb #PeerToPeerWeb #KittenRelease #web #dev