home.social

#streaminghtml — Public Fediverse posts

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

fetched live
  1. And here’s a real-world example of the lifecycle of an action performed on a local copy of the Gaza Verified web site¹ showing the event from the toggle button on the client being automatically mapped to the relevant event handler on the SignUpsSwitch Kitten component instance on the server and that handler setting a boolean on a JavaScript object in memory, which is automatically persisted to disk via Kitten’s default JSDB² database.

    Note that Kitten is smart enough to automatically redact fields in the log output that look like they might be secrets.

    All this is in the stateful-components-api-breaking-change branch³ at the moment and will be in the next release.

    ¹ gaza-verified.org
    ² codeberg.org/small-tech/jsdb
    ³ codeberg.org/kitten/app/src/br

    #SmallWeb #Kitten #web #dev #statefulComponents #streamingHTML #hypertext #GazaVerified

  2. And here’s a real-world example of the lifecycle of an action performed on a local copy of the Gaza Verified web site¹ showing the event from the toggle button on the client being automatically mapped to the relevant event handler on the SignUpsSwitch Kitten component instance on the server and that handler setting a boolean on a JavaScript object in memory, which is automatically persisted to disk via Kitten’s default JSDB² database.

    Note that Kitten is smart enough to automatically redact fields in the log output that look like they might be secrets.

    All this is in the stateful-components-api-breaking-change branch³ at the moment and will be in the next release.

    ¹ gaza-verified.org
    ² codeberg.org/small-tech/jsdb
    ³ codeberg.org/kitten/app/src/br

    #SmallWeb #Kitten #web #dev #statefulComponents #streamingHTML #hypertext #GazaVerified

  3. And here’s a real-world example of the lifecycle of an action performed on a local copy of the Gaza Verified web site¹ showing the event from the toggle button on the client being automatically mapped to the relevant event handler on the SignUpsSwitch Kitten component instance on the server and that handler setting a boolean on a JavaScript object in memory, which is automatically persisted to disk via Kitten’s default JSDB² database.

    Note that Kitten is smart enough to automatically redact fields in the log output that look like they might be secrets.

    All this is in the stateful-components-api-breaking-change branch³ at the moment and will be in the next release.

    ¹ gaza-verified.org
    ² codeberg.org/small-tech/jsdb
    ³ codeberg.org/kitten/app/src/br

    #SmallWeb #Kitten #web #dev #statefulComponents #streamingHTML #hypertext #GazaVerified

  4. And here’s a real-world example of the lifecycle of an action performed on a local copy of the Gaza Verified web site¹ showing the event from the toggle button on the client being automatically mapped to the relevant event handler on the SignUpsSwitch Kitten component instance on the server and that handler setting a boolean on a JavaScript object in memory, which is automatically persisted to disk via Kitten’s default JSDB² database.

    Note that Kitten is smart enough to automatically redact fields in the log output that look like they might be secrets.

    All this is in the stateful-components-api-breaking-change branch³ at the moment and will be in the next release.

    ¹ gaza-verified.org
    ² codeberg.org/small-tech/jsdb
    ³ codeberg.org/kitten/app/src/br

    #SmallWeb #Kitten #web #dev #statefulComponents #streamingHTML #hypertext #GazaVerified

  5. And here’s a real-world example of the lifecycle of an action performed on a local copy of the Gaza Verified web site¹ showing the event from the toggle button on the client being automatically mapped to the relevant event handler on the SignUpsSwitch Kitten component instance on the server and that handler setting a boolean on a JavaScript object in memory, which is automatically persisted to disk via Kitten’s default JSDB² database.

    Note that Kitten is smart enough to automatically redact fields in the log output that look like they might be secrets.

    All this is in the stateful-components-api-breaking-change branch³ at the moment and will be in the next release.

    ¹ gaza-verified.org
    ² codeberg.org/small-tech/jsdb
    ³ codeberg.org/kitten/app/src/br

    #SmallWeb #Kitten #web #dev #statefulComponents #streamingHTML #hypertext #GazaVerified

  6. PS. The updated component render you’re seeing streamed to the browser in the previous screenshot is the code rendered by Kitten (showing the underlying HTMX internals, etc.)

    The code you write in Kitten is considerably less complicated.

    The attached screenshot is all the code in the simple counter example (all in one file, index.page.ts). To run it, you’d just run `kitten` in the directory that file is in and then hit https://localhost.

    #SmallWeb #Kitten #web #dev #statefulComponents #streamingHTML #hypertext #webSockets

  7. PS. The updated component render you’re seeing streamed to the browser in the previous screenshot is the code rendered by Kitten (showing the underlying HTMX internals, etc.)

    The code you write in Kitten is considerably less complicated.

    The attached screenshot is all the code in the simple counter example (all in one file, index.page.ts). To run it, you’d just run `kitten` in the directory that file is in and then hit https://localhost.

    #SmallWeb #Kitten #web #dev #statefulComponents #streamingHTML #hypertext #webSockets

  8. PS. The updated component render you’re seeing streamed to the browser in the previous screenshot is the code rendered by Kitten (showing the underlying HTMX internals, etc.)

    The code you write in Kitten is considerably less complicated.

    The attached screenshot is all the code in the simple counter example (all in one file, index.page.ts). To run it, you’d just run `kitten` in the directory that file is in and then hit https://localhost.

    #SmallWeb #Kitten #web #dev #statefulComponents #streamingHTML #hypertext #webSockets

  9. PS. The updated component render you’re seeing streamed to the browser in the previous screenshot is the code rendered by Kitten (showing the underlying HTMX internals, etc.)

    The code you write in Kitten is considerably less complicated.

    The attached screenshot is all the code in the simple counter example (all in one file, index.page.ts). To run it, you’d just run `kitten` in the directory that file is in and then hit https://localhost.

    #SmallWeb #Kitten #web #dev #statefulComponents #streamingHTML #hypertext #webSockets

  10. PS. The updated component render you’re seeing streamed to the browser in the previous screenshot is the code rendered by Kitten (showing the underlying HTMX internals, etc.)

    The code you write in Kitten is considerably less complicated.

    The attached screenshot is all the code in the simple counter example (all in one file, index.page.ts). To run it, you’d just run `kitten` in the directory that file is in and then hit https://localhost.

    #SmallWeb #Kitten #web #dev #statefulComponents #streamingHTML #hypertext #webSockets

  11. Very excited about the new stateful components model in Kitten¹ that I’m looking forward to releasing this week (finally) and the amount of visibility you can now get into the flow of your Kitten apps in the Kitten Interactive Shell (REPL)².

    Since the new model is a breaking change (Kitten is prerelease) I’m in the middle of updating our own apps/sites and I still need to document everything. So it will take me a few days to do all that but then I’m very much looking forward to focussing on finishing up Catalyst and Yarn³ for launch this year.

    It’s been a six year trek to reach what will essentially be the starting point of the Small Web :)

    💕

    PS. If you want to support our work, please see small-tech.org/fund-us/

    ¹ kitten.small-web.org
    ² kitten.small-web.org/tutorials
    ³ ar.al/2024/06/24/small-web-com

    #SmallWeb #Kitten #web #dev #statefulComponents #streamingHTML #hypertext #webSockets

  12. Very excited about the new stateful components model in Kitten¹ that I’m looking forward to releasing this week (finally) and the amount of visibility you can now get into the flow of your Kitten apps in the Kitten Interactive Shell (REPL)².

    Since the new model is a breaking change (Kitten is prerelease) I’m in the middle of updating our own apps/sites and I still need to document everything. So it will take me a few days to do all that but then I’m very much looking forward to focussing on finishing up Catalyst and Yarn³ for launch this year.

    It’s been a six year trek to reach what will essentially be the starting point of the Small Web :)

    💕

    PS. If you want to support our work, please see small-tech.org/fund-us/

    ¹ kitten.small-web.org
    ² kitten.small-web.org/tutorials
    ³ ar.al/2024/06/24/small-web-com

    #SmallWeb #Kitten #web #dev #statefulComponents #streamingHTML #hypertext #webSockets

  13. Very excited about the new stateful components model in Kitten¹ that I’m looking forward to releasing this week (finally) and the amount of visibility you can now get into the flow of your Kitten apps in the Kitten Interactive Shell (REPL)².

    Since the new model is a breaking change (Kitten is prerelease) I’m in the middle of updating our own apps/sites and I still need to document everything. So it will take me a few days to do all that but then I’m very much looking forward to focussing on finishing up Catalyst and Yarn³ for launch this year.

    It’s been a six year trek to reach what will essentially be the starting point of the Small Web :)

    💕

    PS. If you want to support our work, please see small-tech.org/fund-us/

    ¹ kitten.small-web.org
    ² kitten.small-web.org/tutorials
    ³ ar.al/2024/06/24/small-web-com

    #SmallWeb #Kitten #web #dev #statefulComponents #streamingHTML #hypertext #webSockets

  14. Very excited about the new stateful components model in Kitten¹ that I’m looking forward to releasing this week (finally) and the amount of visibility you can now get into the flow of your Kitten apps in the Kitten Interactive Shell (REPL)².

    Since the new model is a breaking change (Kitten is prerelease) I’m in the middle of updating our own apps/sites and I still need to document everything. So it will take me a few days to do all that but then I’m very much looking forward to focussing on finishing up Catalyst and Yarn³ for launch this year.

    It’s been a six year trek to reach what will essentially be the starting point of the Small Web :)

    💕

    PS. If you want to support our work, please see small-tech.org/fund-us/

    ¹ kitten.small-web.org
    ² kitten.small-web.org/tutorials
    ³ ar.al/2024/06/24/small-web-com

    #SmallWeb #Kitten #web #dev #statefulComponents #streamingHTML #hypertext #webSockets

  15. Very excited about the new stateful components model in Kitten¹ that I’m looking forward to releasing this week (finally) and the amount of visibility you can now get into the flow of your Kitten apps in the Kitten Interactive Shell (REPL)².

    Since the new model is a breaking change (Kitten is prerelease) I’m in the middle of updating our own apps/sites and I still need to document everything. So it will take me a few days to do all that but then I’m very much looking forward to focussing on finishing up Catalyst and Yarn³ for launch this year.

    It’s been a six year trek to reach what will essentially be the starting point of the Small Web :)

    💕

    PS. If you want to support our work, please see small-tech.org/fund-us/

    ¹ kitten.small-web.org
    ² kitten.small-web.org/tutorials
    ³ ar.al/2024/06/24/small-web-com

    #SmallWeb #Kitten #web #dev #statefulComponents #streamingHTML #hypertext #webSockets

  16. 🥳 New Kitten Release

    • Fix: Events on `KittenComponent` hierarchies are now bubbled in reverse (from children down to parents). This provides for predictable event firing in cases where parents might emit events (e.g., a page emitting an event from its `onConnect()` handler). Your existing code should work as before with certain edge cases that might have broken before no longer breaking.

    Enjoy!

    :kitten:💕

    #Kitten #KittenReleases #SmallWeb #SmallTech #web #dev #events #serverSide #eventBased #components #hypermedia #streamingHTML

  17. 🥳 New Kitten Release

    • Fix: Events on `KittenComponent` hierarchies are now bubbled in reverse (from children down to parents). This provides for predictable event firing in cases where parents might emit events (e.g., a page emitting an event from its `onConnect()` handler). Your existing code should work as before with certain edge cases that might have broken before no longer breaking.

    Enjoy!

    :kitten:💕

    #Kitten #KittenReleases #SmallWeb #SmallTech #web #dev #events #serverSide #eventBased #components #hypermedia #streamingHTML

  18. 🥳 New Kitten Release

    • Fix: Events on `KittenComponent` hierarchies are now bubbled in reverse (from children down to parents). This provides for predictable event firing in cases where parents might emit events (e.g., a page emitting an event from its `onConnect()` handler). Your existing code should work as before with certain edge cases that might have broken before no longer breaking.

    Enjoy!

    :kitten:💕

    #Kitten #KittenReleases #SmallWeb #SmallTech #web #dev #events #serverSide #eventBased #components #hypermedia #streamingHTML

  19. 🥳 New Kitten Release

    • Fix: Events on `KittenComponent` hierarchies are now bubbled in reverse (from children down to parents). This provides for predictable event firing in cases where parents might emit events (e.g., a page emitting an event from its `onConnect()` handler). Your existing code should work as before with certain edge cases that might have broken before no longer breaking.

    Enjoy!

    :kitten:💕

    #Kitten #KittenReleases #SmallWeb #SmallTech #web #dev #events #serverSide #eventBased #components #hypermedia #streamingHTML

  20. 🥳 New Kitten Release

    • Fix: Events on `KittenComponent` hierarchies are now bubbled in reverse (from children down to parents). This provides for predictable event firing in cases where parents might emit events (e.g., a page emitting an event from its `onConnect()` handler). Your existing code should work as before with certain edge cases that might have broken before no longer breaking.

    Enjoy!

    :kitten:💕

    #Kitten #KittenReleases #SmallWeb #SmallTech #web #dev #events #serverSide #eventBased #components #hypermedia #streamingHTML

  21. 🥳 New Kitten Release

    • `KittenComponent` (and thereby `KittenPage`) gains an `emit()` method.

    Use this to bubble events from your page to all child components or from any component to all of its child components.

    This is useful, for example, for setting the state of a page or a component where each child component knows how to present itself for that state.

    (That, in turn, is useful if you want to be able to restore state based on URLs.)

    The naming convention-based mapping of event names to event handler names is the same as for the events you receive from the client. So an event called `myEvent` will result in `onMyEvent` handlers on child components being called.

    (Also update @small-web/kitten to version 7.1.0 to get language intelligence for the new method.)

    Enjoy!

    :kitten:💕

    #Kitten #KittenReleases #SmallWeb #SmallTech #web #dev #events #serverSide #eventBased #components #hypermedia #streamingHTML

  22. 🥳 New Kitten Release

    • `KittenComponent` (and thereby `KittenPage`) gains an `emit()` method.

    Use this to bubble events from your page to all child components or from any component to all of its child components.

    This is useful, for example, for setting the state of a page or a component where each child component knows how to present itself for that state.

    (That, in turn, is useful if you want to be able to restore state based on URLs.)

    The naming convention-based mapping of event names to event handler names is the same as for the events you receive from the client. So an event called `myEvent` will result in `onMyEvent` handlers on child components being called.

    (Also update @small-web/kitten to version 7.1.0 to get language intelligence for the new method.)

    Enjoy!

    :kitten:💕

    #Kitten #KittenReleases #SmallWeb #SmallTech #web #dev #events #serverSide #eventBased #components #hypermedia #streamingHTML

  23. 🥳 New Kitten Release

    • `KittenComponent` (and thereby `KittenPage`) gains an `emit()` method.

    Use this to bubble events from your page to all child components or from any component to all of its child components.

    This is useful, for example, for setting the state of a page or a component where each child component knows how to present itself for that state.

    (That, in turn, is useful if you want to be able to restore state based on URLs.)

    The naming convention-based mapping of event names to event handler names is the same as for the events you receive from the client. So an event called `myEvent` will result in `onMyEvent` handlers on child components being called.

    (Also update @small-web/kitten to version 7.1.0 to get language intelligence for the new method.)

    Enjoy!

    :kitten:💕

    #Kitten #KittenReleases #SmallWeb #SmallTech #web #dev #events #serverSide #eventBased #components #hypermedia #streamingHTML

  24. 🥳 New Kitten Release

    • `KittenComponent` (and thereby `KittenPage`) gains an `emit()` method.

    Use this to bubble events from your page to all child components or from any component to all of its child components.

    This is useful, for example, for setting the state of a page or a component where each child component knows how to present itself for that state.

    (That, in turn, is useful if you want to be able to restore state based on URLs.)

    The naming convention-based mapping of event names to event handler names is the same as for the events you receive from the client. So an event called `myEvent` will result in `onMyEvent` handlers on child components being called.

    (Also update @small-web/kitten to version 7.1.0 to get language intelligence for the new method.)

    Enjoy!

    :kitten:💕

    #Kitten #KittenReleases #SmallWeb #SmallTech #web #dev #events #serverSide #eventBased #components #hypermedia #streamingHTML

  25. 🥳 New Kitten Release

    • `KittenComponent` (and thereby `KittenPage`) gains an `emit()` method.

    Use this to bubble events from your page to all child components or from any component to all of its child components.

    This is useful, for example, for setting the state of a page or a component where each child component knows how to present itself for that state.

    (That, in turn, is useful if you want to be able to restore state based on URLs.)

    The naming convention-based mapping of event names to event handler names is the same as for the events you receive from the client. So an event called `myEvent` will result in `onMyEvent` handlers on child components being called.

    (Also update @small-web/kitten to version 7.1.0 to get language intelligence for the new method.)

    Enjoy!

    :kitten:💕

    #Kitten #KittenReleases #SmallWeb #SmallTech #web #dev #events #serverSide #eventBased #components #hypermedia #streamingHTML

  26. 🥳 New Kitten release

    ⁃ Bug fix: Kitten no longer awaits events bubbled from the client to the server.

    Kitten’s Streaming HTML workflow¹ transparently bubbles events from the client to the server so you can keep all your code on one tier and stream HTML updates to the page. Anyway, so I was awaiting events while bubbling them instead of just firing them off in parallel which meant that if you had delays, etc., in some of your event handlers, the timing of other event handlers would be affected. This is now fixed so your event handlers should fire independently of each other. (Your async event handlers will continue to work as intended so you can script animations, etc., by awaiting delays within them.)

    Enjoy!

    kitten.small-web.org

    :kitten:💕

    ¹ kitten.small-web.org/tutorials

    #Kitten #KittenReleases #SmallWeb #SmallTech #bugFix #events #StreamingHTML

  27. 🥳 New Kitten release

    ⁃ Bug fix: Kitten no longer awaits events bubbled from the client to the server.

    Kitten’s Streaming HTML workflow¹ transparently bubbles events from the client to the server so you can keep all your code on one tier and stream HTML updates to the page. Anyway, so I was awaiting events while bubbling them instead of just firing them off in parallel which meant that if you had delays, etc., in some of your event handlers, the timing of other event handlers would be affected. This is now fixed so your event handlers should fire independently of each other. (Your async event handlers will continue to work as intended so you can script animations, etc., by awaiting delays within them.)

    Enjoy!

    kitten.small-web.org

    :kitten:💕

    ¹ kitten.small-web.org/tutorials

    #Kitten #KittenReleases #SmallWeb #SmallTech #bugFix #events #StreamingHTML

  28. 🥳 New Kitten release

    ⁃ Bug fix: Kitten no longer awaits events bubbled from the client to the server.

    Kitten’s Streaming HTML workflow¹ transparently bubbles events from the client to the server so you can keep all your code on one tier and stream HTML updates to the page. Anyway, so I was awaiting events while bubbling them instead of just firing them off in parallel which meant that if you had delays, etc., in some of your event handlers, the timing of other event handlers would be affected. This is now fixed so your event handlers should fire independently of each other. (Your async event handlers will continue to work as intended so you can script animations, etc., by awaiting delays within them.)

    Enjoy!

    kitten.small-web.org

    :kitten:💕

    ¹ kitten.small-web.org/tutorials

    #Kitten #KittenReleases #SmallWeb #SmallTech #bugFix #events #StreamingHTML

  29. 🥳 New Kitten release

    ⁃ Bug fix: Kitten no longer awaits events bubbled from the client to the server.

    Kitten’s Streaming HTML workflow¹ transparently bubbles events from the client to the server so you can keep all your code on one tier and stream HTML updates to the page. Anyway, so I was awaiting events while bubbling them instead of just firing them off in parallel which meant that if you had delays, etc., in some of your event handlers, the timing of other event handlers would be affected. This is now fixed so your event handlers should fire independently of each other. (Your async event handlers will continue to work as intended so you can script animations, etc., by awaiting delays within them.)

    Enjoy!

    kitten.small-web.org

    :kitten:💕

    ¹ kitten.small-web.org/tutorials

    #Kitten #KittenReleases #SmallWeb #SmallTech #bugFix #events #StreamingHTML

  30. 🥳 New Kitten release

    ⁃ Bug fix: Kitten no longer awaits events bubbled from the client to the server.

    Kitten’s Streaming HTML workflow¹ transparently bubbles events from the client to the server so you can keep all your code on one tier and stream HTML updates to the page. Anyway, so I was awaiting events while bubbling them instead of just firing them off in parallel which meant that if you had delays, etc., in some of your event handlers, the timing of other event handlers would be affected. This is now fixed so your event handlers should fire independently of each other. (Your async event handlers will continue to work as intended so you can script animations, etc., by awaiting delays within them.)

    Enjoy!

    kitten.small-web.org

    :kitten:💕

    ¹ kitten.small-web.org/tutorials

    #Kitten #KittenReleases #SmallWeb #SmallTech #bugFix #events #StreamingHTML

  31. I love how simple Kitten’s Streaming HTML workflow makes building features like this, especially when using class-based Kitten pages and components :)

    kitten.small-web.org

    :kitten:💕

    #Kitten #SmallWeb #StreamingHTML #EventBasedProgramming #ObjectOrientedProgramming #JavaScript #NodeJS #web #dev #GazaVerified

  32. …And there are more interesting tid-bits in there too:

    • 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): codeberg.org/small-web/look-ov

    • 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): codeberg.org/small-web/look-ov

    • Finally, check out how layout components and slots work: codeberg.org/small-web/look-ov

    I think that’s all the intersting stuff I can spot at the moment.

    Have fun!

    :kitten:💕

    #Kitten #SmallWeb #SmallTech #SmallTechnologyFoundation #LookOverThere #code #StreamingHTML #htmx #websockets #nodeJS #web #dev

  33. …And there are more interesting tid-bits in there too:

    • 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): codeberg.org/small-web/look-ov

    • 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): codeberg.org/small-web/look-ov

    • Finally, check out how layout components and slots work: codeberg.org/small-web/look-ov

    I think that’s all the intersting stuff I can spot at the moment.

    Have fun!

    :kitten:💕

    #Kitten #SmallWeb #SmallTech #SmallTechnologyFoundation #LookOverThere #code #StreamingHTML #htmx #websockets #nodeJS #web #dev

  34. …And there are more interesting tid-bits in there too:

    • 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): codeberg.org/small-web/look-ov

    • 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): codeberg.org/small-web/look-ov

    • Finally, check out how layout components and slots work: codeberg.org/small-web/look-ov

    I think that’s all the intersting stuff I can spot at the moment.

    Have fun!

    :kitten:💕

    #Kitten #SmallWeb #SmallTech #SmallTechnologyFoundation #LookOverThere #code #StreamingHTML #htmx #websockets #nodeJS #web #dev

  35. …And there are more interesting tid-bits in there too:

    • 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): codeberg.org/small-web/look-ov

    • 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): codeberg.org/small-web/look-ov

    • Finally, check out how layout components and slots work: codeberg.org/small-web/look-ov

    I think that’s all the intersting stuff I can spot at the moment.

    Have fun!

    :kitten:💕

    #Kitten #SmallWeb #SmallTech #SmallTechnologyFoundation #LookOverThere #code #StreamingHTML #htmx #websockets #nodeJS #web #dev

  36. …And there are more interesting tid-bits in there too:

    • 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): codeberg.org/small-web/look-ov

    • 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): codeberg.org/small-web/look-ov

    • Finally, check out how layout components and slots work: codeberg.org/small-web/look-ov

    I think that’s all the intersting stuff I can spot at the moment.

    Have fun!

    :kitten:💕

    #Kitten #SmallWeb #SmallTech #SmallTechnologyFoundation #LookOverThere #code #StreamingHTML #htmx #websockets #nodeJS #web #dev

  37. Right, the Kitten icon explorer is now fully functional.

    • Type to filter results (searches component names, categories, and tags).
    • Press the component button to copy the component code to your clipboard.

    kitten.small-web.org/reference

    I quickly whipped this up using the new generic script in Markdown frontmatter feature I added to Kitten. And I’d imagine this is about the most amount of functionality you’d add using it before refactoring to something more maintainable. (Hey, just because I’m the author of Kitten doesn’t mean I’m not also learning how to use it as build it.) :)

    Source: codeberg.org/kitten/site/raw/b

    Enjoy!

    :kitten:💕

    #Kitten #SmallWeb #web #dev #icons #iconExplorer #PhosphorIcons #StreamingHTML #markdown #components #events

  38. Right, the Kitten icon explorer is now fully functional.

    • Type to filter results (searches component names, categories, and tags).
    • Press the component button to copy the component code to your clipboard.

    kitten.small-web.org/reference

    I quickly whipped this up using the new generic script in Markdown frontmatter feature I added to Kitten. And I’d imagine this is about the most amount of functionality you’d add using it before refactoring to something more maintainable. (Hey, just because I’m the author of Kitten doesn’t mean I’m not also learning how to use it as build it.) :)

    Source: codeberg.org/kitten/site/raw/b

    Enjoy!

    :kitten:💕

    #Kitten #SmallWeb #web #dev #icons #iconExplorer #PhosphorIcons #StreamingHTML #markdown #components #events

  39. Right, the Kitten icon explorer is now fully functional.

    • Type to filter results (searches component names, categories, and tags).
    • Press the component button to copy the component code to your clipboard.

    kitten.small-web.org/reference

    I quickly whipped this up using the new generic script in Markdown frontmatter feature I added to Kitten. And I’d imagine this is about the most amount of functionality you’d add using it before refactoring to something more maintainable. (Hey, just because I’m the author of Kitten doesn’t mean I’m not also learning how to use it as build it.) :)

    Source: codeberg.org/kitten/site/raw/b

    Enjoy!

    :kitten:💕

    #Kitten #SmallWeb #web #dev #icons #iconExplorer #PhosphorIcons #StreamingHTML #markdown #components #events

  40. Right, the Kitten icon explorer is now fully functional.

    • Type to filter results (searches component names, categories, and tags).
    • Press the component button to copy the component code to your clipboard.

    kitten.small-web.org/reference

    I quickly whipped this up using the new generic script in Markdown frontmatter feature I added to Kitten. And I’d imagine this is about the most amount of functionality you’d add using it before refactoring to something more maintainable. (Hey, just because I’m the author of Kitten doesn’t mean I’m not also learning how to use it as build it.) :)

    Source: codeberg.org/kitten/site/raw/b

    Enjoy!

    :kitten:💕

    #Kitten #SmallWeb #web #dev #icons #iconExplorer #PhosphorIcons #StreamingHTML #markdown #components #events

  41. Right, the Kitten icon explorer is now fully functional.

    • Type to filter results (searches component names, categories, and tags).
    • Press the component button to copy the component code to your clipboard.

    kitten.small-web.org/reference

    I quickly whipped this up using the new generic script in Markdown frontmatter feature I added to Kitten. And I’d imagine this is about the most amount of functionality you’d add using it before refactoring to something more maintainable. (Hey, just because I’m the author of Kitten doesn’t mean I’m not also learning how to use it as build it.) :)

    Source: codeberg.org/kitten/site/raw/b

    Enjoy!

    :kitten:💕

    #Kitten #SmallWeb #web #dev #icons #iconExplorer #PhosphorIcons #StreamingHTML #markdown #components #events

  42. I just whipped up a simple icon search for Kitten Icons (based on Phosphor Icons). It’s not complete yet – I have a few other things to do before I can get back to it today – but you can play with it here:

    kitten.small-web.org/reference

    And see the code for it here:

    codeberg.org/kitten/site/src/b

    I popped the event handler into the Markdown page itself. Not the cleanest but works in a pinch:

    codeberg.org/kitten/site/raw/b

    #Kitten #icons #PhosphorIcons #iconExplorer #web #dev #markdown #components #StreamingHTML #SmallWeb #SmallTech #reference

  43. I just whipped up a simple icon search for Kitten Icons (based on Phosphor Icons). It’s not complete yet – I have a few other things to do before I can get back to it today – but you can play with it here:

    kitten.small-web.org/reference

    And see the code for it here:

    codeberg.org/kitten/site/src/b

    I popped the event handler into the Markdown page itself. Not the cleanest but works in a pinch:

    codeberg.org/kitten/site/raw/b

    #Kitten #icons #PhosphorIcons #iconExplorer #web #dev #markdown #components #StreamingHTML #SmallWeb #SmallTech #reference

  44. I just whipped up a simple icon search for Kitten Icons (based on Phosphor Icons). It’s not complete yet – I have a few other things to do before I can get back to it today – but you can play with it here:

    kitten.small-web.org/reference

    And see the code for it here:

    codeberg.org/kitten/site/src/b

    I popped the event handler into the Markdown page itself. Not the cleanest but works in a pinch:

    codeberg.org/kitten/site/raw/b

    #Kitten #icons #PhosphorIcons #iconExplorer #web #dev #markdown #components #StreamingHTML #SmallWeb #SmallTech #reference

  45. I just whipped up a simple icon search for Kitten Icons (based on Phosphor Icons). It’s not complete yet – I have a few other things to do before I can get back to it today – but you can play with it here:

    kitten.small-web.org/reference

    And see the code for it here:

    codeberg.org/kitten/site/src/b

    I popped the event handler into the Markdown page itself. Not the cleanest but works in a pinch:

    codeberg.org/kitten/site/raw/b

    #Kitten #icons #PhosphorIcons #iconExplorer #web #dev #markdown #components #StreamingHTML #SmallWeb #SmallTech #reference

  46. I just whipped up a simple icon search for Kitten Icons (based on Phosphor Icons). It’s not complete yet – I have a few other things to do before I can get back to it today – but you can play with it here:

    kitten.small-web.org/reference

    And see the code for it here:

    codeberg.org/kitten/site/src/b

    I popped the event handler into the Markdown page itself. Not the cleanest but works in a pinch:

    codeberg.org/kitten/site/raw/b

    #Kitten #icons #PhosphorIcons #iconExplorer #web #dev #markdown #components #StreamingHTML #SmallWeb #SmallTech #reference

  47. New Kitten release 🎉

    kitten.small-web.org

    • New: Lovely new icons¹ and new callouts in Kitten Settings²

    • New: Markdown now supports attributes and bracketed spans³

    • 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.⁵)

    • 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.)

    Enjoy! :kitten:💕

    ¹ kitten.small-web.org/reference

    ² mastodon.ar.al/@aral/114381983

    ³ kitten.small-web.org/reference (also see mastodon.ar.al/@aral/114381462)

    kitten.small-web.org/tutorials

    ⁵ e.g., See how I use this to implement a copy to clipboard button in the database page of Kitten’s Settings: codeberg.org/kitten/app/src/br 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: codeberg.org/kitten/app/src/br

    #Kitten #SmallWeb #web #dev #markdown #icons #PhosphorIcons #HTML #CSS #JavaScript #StreamingHTML #htmx #WebSocket #NodeJS

  48. New Kitten release 🎉

    kitten.small-web.org

    • New: Lovely new icons¹ and new callouts in Kitten Settings²

    • New: Markdown now supports attributes and bracketed spans³

    • 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.⁵)

    • 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.)

    Enjoy! :kitten:💕

    ¹ kitten.small-web.org/reference

    ² mastodon.ar.al/@aral/114381983

    ³ kitten.small-web.org/reference (also see mastodon.ar.al/@aral/114381462)

    kitten.small-web.org/tutorials

    ⁵ e.g., See how I use this to implement a copy to clipboard button in the database page of Kitten’s Settings: codeberg.org/kitten/app/src/br 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: codeberg.org/kitten/app/src/br

    #Kitten #SmallWeb #web #dev #markdown #icons #PhosphorIcons #HTML #CSS #JavaScript #StreamingHTML #htmx #WebSocket #NodeJS

  49. New Kitten release 🎉

    kitten.small-web.org

    • New: Lovely new icons¹ and new callouts in Kitten Settings²

    • New: Markdown now supports attributes and bracketed spans³

    • 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.⁵)

    • 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.)

    Enjoy! :kitten:💕

    ¹ kitten.small-web.org/reference

    ² mastodon.ar.al/@aral/114381983

    ³ kitten.small-web.org/reference (also see mastodon.ar.al/@aral/114381462)

    kitten.small-web.org/tutorials

    ⁵ e.g., See how I use this to implement a copy to clipboard button in the database page of Kitten’s Settings: codeberg.org/kitten/app/src/br 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: codeberg.org/kitten/app/src/br

    #Kitten #SmallWeb #web #dev #markdown #icons #PhosphorIcons #HTML #CSS #JavaScript #StreamingHTML #htmx #WebSocket #NodeJS

  50. New Kitten release 🎉

    kitten.small-web.org

    • New: Lovely new icons¹ and new callouts in Kitten Settings²

    • New: Markdown now supports attributes and bracketed spans³

    • 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.⁵)

    • 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.)

    Enjoy! :kitten:💕

    ¹ kitten.small-web.org/reference

    ² mastodon.ar.al/@aral/114381983

    ³ kitten.small-web.org/reference (also see mastodon.ar.al/@aral/114381462)

    kitten.small-web.org/tutorials

    ⁵ e.g., See how I use this to implement a copy to clipboard button in the database page of Kitten’s Settings: codeberg.org/kitten/app/src/br 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: codeberg.org/kitten/app/src/br

    #Kitten #SmallWeb #web #dev #markdown #icons #PhosphorIcons #HTML #CSS #JavaScript #StreamingHTML #htmx #WebSocket #NodeJS

  51. New Kitten release 🎉

    kitten.small-web.org

    • New: Lovely new icons¹ and new callouts in Kitten Settings²

    • New: Markdown now supports attributes and bracketed spans³

    • 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.⁵)

    • 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.)

    Enjoy! :kitten:💕

    ¹ kitten.small-web.org/reference

    ² mastodon.ar.al/@aral/114381983

    ³ kitten.small-web.org/reference (also see mastodon.ar.al/@aral/114381462)

    kitten.small-web.org/tutorials

    ⁵ e.g., See how I use this to implement a copy to clipboard button in the database page of Kitten’s Settings: codeberg.org/kitten/app/src/br 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: codeberg.org/kitten/app/src/br

    #Kitten #SmallWeb #web #dev #markdown #icons #PhosphorIcons #HTML #CSS #JavaScript #StreamingHTML #htmx #WebSocket #NodeJS