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 noreferrer" 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 noreferrer" 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 noreferrer" 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 noreferrer" target="_blank">#<span>Kitten</span></a> <a href="https://mastodon.ar.al/tags/SmallWeb" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>SmallWeb</span></a> <a href="https://mastodon.ar.al/tags/SmallTech" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>SmallTech</span></a> <a href="https://mastodon.ar.al/tags/SmallTechnologyFoundation" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>SmallTechnologyFoundation</span></a> <a href="https://mastodon.ar.al/tags/LookOverThere" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>LookOverThere</span></a> <a href="https://mastodon.ar.al/tags/code" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>code</span></a> <a href="https://mastodon.ar.al/tags/StreamingHTML" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>StreamingHTML</span></a> <a href="https://mastodon.ar.al/tags/htmx" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>htmx</span></a> <a href="https://mastodon.ar.al/tags/websockets" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>websockets</span></a> <a href="https://mastodon.ar.al/tags/nodeJS" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>nodeJS</span></a> <a href="https://mastodon.ar.al/tags/web" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>web</span></a> <a href="https://mastodon.ar.al/tags/dev" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>dev</span></a></p>