shakedown.social is one of the many independent Mastodon servers you can use to participate in the fediverse.
A community for live music fans with roots in the jam scene. Shakedown Social is run by a team of volunteers (led by @clifff and @sethadam1) and funded by donations.

Administered by:

Server stats:

270
active users

#htmx

2 posts2 participants0 posts today
JasonPunyon<p>the back button works on all my websites :)</p><p>history maintenance is built-in with <a href="https://hachyderm.io/tags/htmx" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>htmx</span></a>. that's one of the reasons i like it.</p><p><a href="https://hachyderm.io/@lxalln/114872965246368580" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">hachyderm.io/@lxalln/114872965</span><span class="invisible">246368580</span></a></p>
Andreas 🌈 🔜 Liverpool<p>In 2025, <a href="https://mastodon.world/tags/HTMX" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>HTMX</span></a> is still a broken development pattern <a href="https://mastodon.world/tags/europython2025" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>europython2025</span></a></p>
Chad McCullough<p>I have really been enjoying learning HTML and CSS. Working on rebuilding my personal site and moving away from WordPress. It's been quite a few years since I last used HTML in any serious way and I still have a bit to learn and master.<br><br>A few folks have mentioned HTMX so I am going to start looking into this next.<br><br><a href="https://polymaths.social/tags/html" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>html</span></a> <a href="https://polymaths.social/tags/css" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>css</span></a> <a href="https://polymaths.social/tags/htmx" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>htmx</span></a></p>
Piper<p>Put together a pretty cool live <span class="h-card" translate="no"><a href="https://mastodon.social/@ListenBrainz" class="u-url mention" rel="nofollow noopener" target="_blank">@<span>ListenBrainz</span></a></span> widget on my website! Auto-updates every 10 seconds, and shows as much metadata as I can cram into the widget space. All that metadata is the bonus of ListenBrainz being so closely tied to MusicBrainz</p><p>(and don't worry, I have some pretty aggressive caching so I won't hammer the ListenBrainz or MusicBrainz APIs)</p><p><a href="https://www.piperswe.me/#playing-now" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://www.</span><span class="">piperswe.me/#playing-now</span><span class="invisible"></span></a></p><p><a href="https://mastodon.ffcentral.net/tags/htmx" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>htmx</span></a> <a href="https://mastodon.ffcentral.net/tags/listenbrainz" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>listenbrainz</span></a> <a href="https://mastodon.ffcentral.net/tags/indieweb" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>indieweb</span></a></p>
adamghill<p>Colophon for <a href="https://beesocial.dev" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://</span><span class="">beesocial.dev</span><span class="invisible"></span></a> for anyone interested: <a href="https://beesocial.dev/colophon" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://</span><span class="">beesocial.dev/colophon</span><span class="invisible"></span></a>.</p><p>No vibe coding, just good vibes.</p><p><a href="https://indieweb.social/tags/Django" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Django</span></a> <a href="https://indieweb.social/tags/Tailwind" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Tailwind</span></a> <a href="https://indieweb.social/tags/TailwindCSS" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>TailwindCSS</span></a> <a href="https://indieweb.social/tags/HTMX" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>HTMX</span></a> <a href="https://indieweb.social/tags/SQLite" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>SQLite</span></a> <a href="https://indieweb.social/tags/Python" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Python</span></a></p>
silmeth 🇺🇦<p><span class="h-card" translate="no"><a href="https://toot.cafe/@slightlyoff" class="u-url mention" rel="nofollow noopener" target="_blank">@<span>slightlyoff</span></a></span> </p><p>&gt; There is a better way. And it doesn’t require a complete rewrite of the internet or a return to 2005.</p><p>The way’s <a href="https://mstdn.social/tags/HTMX" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>HTMX</span></a> – server-side rendering, clean accessible html, but with interactive controls unavailable in 2005 (or even today in pure html). But no complex “frontend-side logic”.</p>
dilawar<p><a href="https://fosstodon.org/tags/HTMX" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>HTMX</span></a> is growing on me. </p><p>It felt weird at first to generate frontend from the backend. But I gave in because writing more code at the backend was way too tempting. I just can't hold <a href="https://fosstodon.org/tags/javascript" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>javascript</span></a> right.</p><p>Using templates and SQL, creating frontend using <a href="https://fosstodon.org/tags/php" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>php</span></a> and htmx is pretty nice. Kind of feel like doing <a href="https://fosstodon.org/tags/graphql" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>graphql</span></a> and <a href="https://fosstodon.org/tags/Rest" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Rest</span></a> together. </p><p>But at the end of the day, I am writing less javascript and it is great.</p><p><a href="https://fosstodon.org/tags/awesome" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>awesome</span></a> <a href="https://fosstodon.org/tags/hypermedia" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>hypermedia</span></a> <a href="https://fosstodon.org/tags/WebDev" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>WebDev</span></a></p>
Django Chat Podcast<p>Ep182: Event Sourcing with Chris May is now live!</p><p><span class="h-card" translate="no"><a href="https://fosstodon.org/@_chrismay" class="u-url mention" rel="nofollow noopener" target="_blank">@<span>_chrismay</span></a></span> is a Senior Staff Engineer at WellSky, a software company in the health industry. We discuss his background as a graphic designer, learning <a href="https://fosstodon.org/tags/Python" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Python</span></a> (and <a href="https://fosstodon.org/tags/Django" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Django</span></a> as an adult, his multiple conference talks on <a href="https://fosstodon.org/tags/HTMX" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>HTMX</span></a>, why he’s a fan of event sourcing, and more.</p><p><a href="https://djangochat.com/episodes/event-sourcing-chris-may" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">djangochat.com/episodes/event-</span><span class="invisible">sourcing-chris-may</span></a></p>
Matt Layman<p>🐍 <a href="https://mastodon.social/tags/htmx" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>htmx</span></a> is a small JavaScript library that extends HTML markup to make web pages more dynamic. Check out how to add htmx to your <a href="https://mastodon.social/tags/Django" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Django</span></a> project! <a href="https://www.mattlayman.com/blog/2021/how-to-htmx-django/" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://www.</span><span class="ellipsis">mattlayman.com/blog/2021/how-t</span><span class="invisible">o-htmx-django/</span></a></p>
Aral Balkan<p>…And there are more interesting tid-bits in there too:</p><p>• See how I’m pushing Kitten’s Streaming HTML to its logical conclusion and streaming JavaScript from the server to the client to keep all logic on the server while implementing a client-side feature (copy to clipboard): <a href="https://codeberg.org/small-web/look-over-there/src/branch/main/CopyButton.component.js" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">codeberg.org/small-web/look-ov</span><span class="invisible">er-there/src/branch/main/CopyButton.component.js</span></a></p><p>• Following on from that, note how the Toast component that’s triggered when something is copied looks (under the hood, Streaming HTML is htmx + WebSockets + some Kitten-specific magic and glues it all together and adds syntactic sugar): <a href="https://codeberg.org/small-web/look-over-there/src/branch/main/Toast.fragment.js" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">codeberg.org/small-web/look-ov</span><span class="invisible">er-there/src/branch/main/Toast.fragment.js</span></a></p><p>• Finally, check out how layout components and slots work: <a href="https://codeberg.org/small-web/look-over-there/src/branch/main/Site.layout.js" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">codeberg.org/small-web/look-ov</span><span class="invisible">er-there/src/branch/main/Site.layout.js</span></a></p><p>I think that’s all the intersting stuff I can spot at the moment.</p><p>Have fun!</p><p>:kitten:💕</p><p><a href="https://mastodon.ar.al/tags/Kitten" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Kitten</span></a> <a href="https://mastodon.ar.al/tags/SmallWeb" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>SmallWeb</span></a> <a href="https://mastodon.ar.al/tags/SmallTech" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>SmallTech</span></a> <a href="https://mastodon.ar.al/tags/SmallTechnologyFoundation" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>SmallTechnologyFoundation</span></a> <a href="https://mastodon.ar.al/tags/LookOverThere" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>LookOverThere</span></a> <a href="https://mastodon.ar.al/tags/code" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>code</span></a> <a href="https://mastodon.ar.al/tags/StreamingHTML" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>StreamingHTML</span></a> <a href="https://mastodon.ar.al/tags/htmx" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>htmx</span></a> <a href="https://mastodon.ar.al/tags/websockets" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>websockets</span></a> <a href="https://mastodon.ar.al/tags/nodeJS" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>nodeJS</span></a> <a href="https://mastodon.ar.al/tags/web" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>web</span></a> <a href="https://mastodon.ar.al/tags/dev" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>dev</span></a></p>
wakingrufus<p>I made it easier to define <a href="https://bigshoulders.city/tags/HTMX" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>HTMX</span></a> templates in my <a href="https://bigshoulders.city/tags/SpringFunk" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>SpringFunk</span></a> HTMX library: <a href="https://wakingrufus.github.io/spring-funk/htmx.html#templates" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">wakingrufus.github.io/spring-f</span><span class="invisible">unk/htmx.html#templates</span></a></p>
Valentino Gagliardi<p>Progressive enhancement in Django with htmx</p><p><a href="https://www.valentinog.com/blog/django-progressive-enhancement-htmx/" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://www.</span><span class="ellipsis">valentinog.com/blog/django-pro</span><span class="invisible">gressive-enhancement-htmx/</span></a></p><p><a href="https://fosstodon.org/tags/django" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>django</span></a> <a href="https://fosstodon.org/tags/htmx" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>htmx</span></a></p>
Aral Balkan<p>New Kitten Release 🎉</p><p>• Fix: morph attributes¹ now support interpolated values.</p><p><a href="https://kitten.small-web.org" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://</span><span class="">kitten.small-web.org</span><span class="invisible"></span></a></p><p>Enjoy!</p><p>:kitten:💕</p><p>¹ 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: <a href="https://kitten.small-web.org/tutorials/streaming-html/" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">kitten.small-web.org/tutorials</span><span class="invisible">/streaming-html/</span></a></p><p><a href="https://mastodon.ar.al/tags/Kitten" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Kitten</span></a> <a href="https://mastodon.ar.al/tags/SmallWeb" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>SmallWeb</span></a> <a href="https://mastodon.ar.al/tags/PeerToPeerWeb" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>PeerToPeerWeb</span></a> <a href="https://mastodon.ar.al/tags/KittenRelease" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>KittenRelease</span></a> <a href="https://mastodon.ar.al/tags/htmx" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>htmx</span></a> <a href="https://mastodon.ar.al/tags/hypermedia" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>hypermedia</span></a> <a href="https://mastodon.ar.al/tags/web" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>web</span></a> <a href="https://mastodon.ar.al/tags/dev" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>dev</span></a></p>
phildini<p>Because I do a fair amount of frontend work but think most frontend frameworks are overkill, I use <a href="https://wandering.shop/tags/HTMX" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>HTMX</span></a> and <a href="https://wandering.shop/tags/alpinejs" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>alpinejs</span></a> a lot. And <span class="h-card" translate="no"><a href="https://mastodon.social/@glyph" class="u-url mention" rel="nofollow noopener" target="_blank">@<span>glyph</span></a></span>'s <a href="https://wandering.shop/tags/NBPy" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>NBPy</span></a> talk made me think about what a <a href="https://wandering.shop/tags/PyScript" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>PyScript</span></a> package that combines both and provides <a href="https://wandering.shop/tags/python" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>python</span></a> handles to both would look like.</p><p>What could I build if I had a drop-in <a href="https://wandering.shop/tags/django" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>django</span></a> package that gave me all the interaction I wanted while writing python code?</p>
wakingrufus<p>I am working on adding a module to <a href="https://bigshoulders.city/tags/SpringFunk" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>SpringFunk</span></a> that seamlessly integrates <a href="https://bigshoulders.city/tags/HTMX" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>HTMX</span></a>, the <a href="https://bigshoulders.city/tags/Kotlin" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Kotlin</span></a> HTML DSL and <a href="https://bigshoulders.city/tags/SpringBoot" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>SpringBoot</span></a> <a href="https://wakingrufus.github.io/spring-funk/htmx.html" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">wakingrufus.github.io/spring-f</span><span class="invisible">unk/htmx.html</span></a><br>It is in a very early stage right now, but I think this idea has some potential.</p>
Aral Balkan<p>New Kitten release 🎉</p><p><a href="https://kitten.small-web.org" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://</span><span class="">kitten.small-web.org</span><span class="invisible"></span></a></p><p>• New: Lovely new icons¹ and new callouts in Kitten Settings²</p><p>• New: Markdown now supports attributes and bracketed spans³</p><p>• New: client-side `kitten` global with `trigger` function for triggering events on the server from the client. (Useful when streaming client-side JavaScript when using Kitten’s Streaming HTML⁴ workflow. e.g., when you have to use a client-only web API like the Clipboard API but you want to keep all your logic on your server-side page.⁵)</p><p>• Fixed: The bound render function returned by `KittenComponent` class’s `component` getter now correctly awaits asynchronous templates. (In Kitten, you don’t have to care whether your templates contain promises. Kitten handles all that for you.)</p><p>Enjoy! :kitten:💕</p><p>¹ <a href="https://kitten.small-web.org/reference/#icons" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">kitten.small-web.org/reference</span><span class="invisible">/#icons</span></a></p><p>² <a href="https://mastodon.ar.al/@aral/114381983893061099" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">mastodon.ar.al/@aral/114381983</span><span class="invisible">893061099</span></a></p><p>³ <a href="https://kitten.small-web.org/reference/#markdown-support" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">kitten.small-web.org/reference</span><span class="invisible">/#markdown-support</span></a> (also see <a href="https://mastodon.ar.al/@aral/114381462302862256" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">mastodon.ar.al/@aral/114381462</span><span class="invisible">302862256</span></a>)</p><p>⁴ <a href="https://kitten.small-web.org/tutorials/streaming-html/" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">kitten.small-web.org/tutorials</span><span class="invisible">/streaming-html/</span></a></p><p>⁵ e.g., See how I use this to implement a copy to clipboard button in the database page of Kitten’s Settings: <a href="https://codeberg.org/kitten/app/src/branch/main/web/%F0%9F%90%B1/settings%F0%9F%94%92/db/index.page.js#L33" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">codeberg.org/kitten/app/src/br</span><span class="invisible">anch/main/web/%F0%9F%90%B1/settings%F0%9F%94%92/db/index.page.js#L33</span></a> Of course, you don’t have to use this and you can just write client-side JavaScript or use the built-in Alpine.js integration. e.g., how I do it on the (older) settings/identity page: <a href="https://codeberg.org/kitten/app/src/branch/main/web/%F0%9F%90%B1/settings%F0%9F%94%92/identity/index.page.js#L7" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">codeberg.org/kitten/app/src/br</span><span class="invisible">anch/main/web/%F0%9F%90%B1/settings%F0%9F%94%92/identity/index.page.js#L7</span></a></p><p><a href="https://mastodon.ar.al/tags/Kitten" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Kitten</span></a> <a href="https://mastodon.ar.al/tags/SmallWeb" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>SmallWeb</span></a> <a href="https://mastodon.ar.al/tags/web" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>web</span></a> <a href="https://mastodon.ar.al/tags/dev" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>dev</span></a> <a href="https://mastodon.ar.al/tags/markdown" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>markdown</span></a> <a href="https://mastodon.ar.al/tags/icons" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>icons</span></a> <a href="https://mastodon.ar.al/tags/PhosphorIcons" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>PhosphorIcons</span></a> <a href="https://mastodon.ar.al/tags/HTML" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>HTML</span></a> <a href="https://mastodon.ar.al/tags/CSS" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>CSS</span></a> <a href="https://mastodon.ar.al/tags/JavaScript" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>JavaScript</span></a> <a href="https://mastodon.ar.al/tags/StreamingHTML" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>StreamingHTML</span></a> <a href="https://mastodon.ar.al/tags/htmx" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>htmx</span></a> <a href="https://mastodon.ar.al/tags/WebSocket" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>WebSocket</span></a> <a href="https://mastodon.ar.al/tags/NodeJS" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>NodeJS</span></a></p>
Jason Punyon<p>added some more examples to <a href="https://htmx-local.glitch.me" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://</span><span class="">htmx-local.glitch.me</span><span class="invisible"></span></a> <a href="https://fosstodon.org/tags/htmx" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>htmx</span></a></p>
Jason Punyon<p>something i'm working on</p><p>htmx-local: whole-ass web-apps in-browser</p><p><a href="https://htmx-local.glitch.me" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://</span><span class="">htmx-local.glitch.me</span><span class="invisible"></span></a></p><p><a href="https://fosstodon.org/tags/htmx" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>htmx</span></a></p>
Sergi<p>Version 1.8.0 of jinja2-fragments is out!</p><p>Release notes:<br> - Adds support for rendering multiple blocks on Flask, Quart, Sanic and Litestar.<br> - Fixes deprecated Litestar import.</p><p><a href="https://pypi.org/project/jinja2-fragments/1.8.0/" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">pypi.org/project/jinja2-fragme</span><span class="invisible">nts/1.8.0/</span></a></p><p><a href="https://floss.social/tags/jinja" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>jinja</span></a> <a href="https://floss.social/tags/flask" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>flask</span></a> <a href="https://floss.social/tags/quart" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>quart</span></a> <a href="https://floss.social/tags/sanic" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>sanic</span></a> <a href="https://floss.social/tags/litestar" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>litestar</span></a> <a href="https://floss.social/tags/htmx" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>htmx</span></a></p>
Aral Balkan<p>New Kitten Release</p><p>• Automatic message routing: if the element that triggers an event on the client does not have a `name` attribute, Kitten now falls back to using its `id` instead to route the event to the correct server-side event handler on your live Kitten pages. </p><p>If neither attribute exists, Kitten will fail to route the message but no longer crash as it was due to a regression introduced when I implemented support for colons in element names.¹</p><p><a href="https://kitten.small-web.org" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://</span><span class="">kitten.small-web.org</span><span class="invisible"></span></a></p><p>For more details on Kitten’s live pages and automatic message routing, please see the Streaming HTML tutorial:</p><p><a href="https://kitten.small-web.org/tutorials/streaming-html/" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">kitten.small-web.org/tutorials</span><span class="invisible">/streaming-html/</span></a></p><p>Enjoy!</p><p>:kitten:💕</p><p>¹ A colon in an element name is ignored for message routing purposes, letting you, for example, give unique names to &lt;details&gt; elements, allowing more than one to be open at a time, while having their events be handled by the same handler.</p><p><a href="https://mastodon.ar.al/tags/Kitten" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Kitten</span></a> <a href="https://mastodon.ar.al/tags/SmallWeb" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>SmallWeb</span></a> <a href="https://mastodon.ar.al/tags/SmallTech" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>SmallTech</span></a> <a href="https://mastodon.ar.al/tags/web" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>web</span></a> <a href="https://mastodon.ar.al/tags/dev" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>dev</span></a> <a href="https://mastodon.ar.al/tags/JavaScript" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>JavaScript</span></a> <a href="https://mastodon.ar.al/tags/HTML" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>HTML</span></a> <a href="https://mastodon.ar.al/tags/CSS" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>CSS</span></a> <a href="https://mastodon.ar.al/tags/hypermedia" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>hypermedia</span></a> <a href="https://mastodon.ar.al/tags/htmx" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>htmx</span></a> <a href="https://mastodon.ar.al/tags/WebSocket" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>WebSocket</span></a> <a href="https://mastodon.ar.al/tags/beautifulDefaults" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>beautifulDefaults</span></a> <a href="https://mastodon.ar.al/tags/StreamingHTML" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>StreamingHTML</span></a></p>