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

https://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 https://mastodon.ar.al/@aral/115706233541301655) 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

Kitten: Home

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 #AlpineJS #HTMX #SmallWeb #peerToPeerWeb #web #dev #JavaScript #nodeJS #SmallTech #KittenRelease

🥳 New Kitten Release

https://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:
https://codeberg.org/kitten/app/src/branch/main/CHANGELOG.md#2025-12-10

Enjoy!

💕

¹ https://htmx.org/events/
² https://kitten.small-web.org/tutorials/streaming-html/

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

Kitten: Home

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

https://kitten.small-web.org

Enjoy!

💕

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

Kitten: Home

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

 💕

https://kitten.small-web.org

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

Kitten: Home

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

https://kitten.small-web.org

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

Kitten: Home

🎉 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: https://codeberg.org/kitten/app/src/branch/main/CHANGELOG.md#2025-07-29

 💕

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

#Kitten #KittenRelease #SmallWeb #SmallTech

app/CHANGELOG.md at main

app - A web development kit that’s small, purrs, and loves you.

Codeberg.org

🥳 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: https://codeberg.org/kitten/app/src/branch/main/CHANGELOG.md#2025-07-21

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:
https://kitten.small-web.org/

Enjoy!

💕

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

app/CHANGELOG.md at main

app - A web development kit that’s small, purrs, and loves you.

Codeberg.org

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

https://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 #SmallWeb #bug #regression #fix #KittenRelease #SmallTech #web #dev

Kitten: Home

🥳 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: https://codeberg.org/kitten/app/src/branch/main/CHANGELOG.md#2025-05-29
Documentation: https://kitten.small-web.org/reference/#symlinks

To update Kitten:

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

Enjoy!

💕

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

Making sure you're not a bot!