GNU social JP
  • FAQ
  • Login
GNU social JPは日本のGNU socialサーバーです。
Usage/ToS/admin/test/Pleroma FE
  • Public

    • Public
    • Network
    • Groups
    • Featured
    • Popular
    • People

Conversation

Notices

  1. Embed this notice
    Aral Balkan (aral@mastodon.ar.al)'s status on Thursday, 01-Feb-2024 03:41:53 JST Aral Balkan Aral Balkan

    I’m really enjoying this new Streaming HTML workflow in Kitten…

    In this 15 second video, I cycle through the options in a selection box using the keyboard and the rest of the interface updates in response.

    ✨ There’s no custom client-side JavaScript making that happen. ✨

    It’s all server side.

    The changes stream to the client as HTML and are morphed into place via idiomorph.

    So simple and maintainable.

    💕

    https://vimeo.com/908339606

    #Kitten #SmallWeb #StreamingHTML #web #dev #html #JavaScript

    In conversation about a year ago from mastodon.ar.al permalink

    Attachments


    1. Kitten Streaming HTML (with idiomorph)
      from Small Technology Foundation
      I’m in the process of updating parts of (and finishing off) Domain* and so I’m implementing the new Streaming HTML feature/workflow in Kitten where you keep state entirely on the server and stream interface updates in response to events being triggered in the client without writing any custom client-side JavaScript. One issue I ran into immediately when testing this out with a select box that updates other parts of the interface was that the focus/state was being lost after the swap. Thankfully, Carson Gross was, of course, one step ahead and had created the idiomorph htmx extension for just this use case. You can see the result in the video. Every time I’m changing the selected option in the in the selection box, the interface is being updated from the server (you can see the log output scrolling as I make the changes in the terminal pane on the lower-left-hand corner. The code shown on the upper-left-hand corner Terminal pane is the entirety of the change handler on the server that is dealing with those updates. There is no custom client-side JavaScript. (I was able to remove all the Alpine.js code I had that was previously handling all this. It was ugly and hard to maintain and meant that I was keeping state in two places – the client and the server – instead of just one, on the server, as I am doing now.) I haven’t integrated idiomorph seamlessly into Kitten yet, but that’s next. Enjoy! �
    • Embed this notice
      Aral Balkan (aral@mastodon.ar.al)'s status on Thursday, 01-Feb-2024 03:51:59 JST Aral Balkan Aral Balkan
      in reply to

      I mean, if there is a simpler way to build web apps, I haven’t seen it.

      I can’t wait for more folks to start playing with this. One of the things I’m hugely looking forward to is writing up a web development curriculum that teaches you how to build web apps and sites using #Kitten.

      You’ll be learning the foundations of the web – HTML, CSS, and JavaScript – and making useful web apps with persisted data, etc. (not to mention peer-to-peer #SmallWeb apps) without the bloat of Big Tech.

      #web #dev

      In conversation about a year ago permalink
    • Embed this notice
      Aral Balkan (aral@mastodon.ar.al)'s status on Thursday, 01-Feb-2024 04:03:02 JST Aral Balkan Aral Balkan
      in reply to
      • Miaourt ✨

      @Miaourt I won’t be getting rid of htmx but abstracting some of it away. My approach is one of progressive enhancement and paving the cow paths.

      In terms of the former, you throw Kitten a static site from 1993 and it’ll serve it. Everything else is layered on top of the foundational technology of the web. Similarly, htmx is an optional layer on top of that and any Kitten helpers are a layer of abstraction on top of that. At any point all lower layers are accessible/fully intact.

      In conversation about a year ago permalink
    • Embed this notice
      Miaourt ✨ (miaourt@raru.re)'s status on Thursday, 01-Feb-2024 04:03:05 JST Miaourt ✨ Miaourt ✨
      in reply to

      @aral that's looking great! You only mention idiomorph did you tried to get rid of HTMX and implement your own helpers ?

      In conversation about a year ago permalink
    • Embed this notice
      Aral Balkan (aral@mastodon.ar.al)'s status on Thursday, 01-Feb-2024 04:06:00 JST Aral Balkan Aral Balkan
      in reply to
      • Miaourt ✨

      @Miaourt (This also means you that you can reuse your knowledge – both what you gain from Kitten and what you already have – and that each layer is already well documented elsewhere so we only need to document the bits introduced by Kitten. Ditto for tooling. Use any editor with language servers for HTML, CSS, and JS and you have a modern development environment and I don’t have to write or maintain any tooling.) :)

      In conversation about a year ago permalink
    • Embed this notice
      Aral Balkan (aral@mastodon.ar.al)'s status on Thursday, 01-Feb-2024 04:06:49 JST Aral Balkan Aral Balkan
      in reply to
      • Miaourt ✨

      @Miaourt (And thank you for the initial compliment, by the way, appreciate it.)

      :kitten: 💕

      In conversation about a year ago permalink
    • Embed this notice
      Aral Balkan (aral@mastodon.ar.al)'s status on Thursday, 01-Feb-2024 04:08:17 JST Aral Balkan Aral Balkan
      in reply to

      PS. Isiomorph isn’t seamlessly integrated into Kitten yet. I plan to integrate it tomorrow. (I’m basically sharing with you stuff that I got running minutes prior to recording a video. So expect a little time between what you see on my screen and a polished version you can use on yours.) :)

      :kitten: 💕

      In conversation about a year ago permalink
    • Embed this notice
      Aral Balkan (aral@mastodon.ar.al)'s status on Thursday, 01-Feb-2024 08:11:20 JST Aral Balkan Aral Balkan
      in reply to
      • fuzzyface

      @fuzzyface That’d be me.

      And the reason you can’t find any tutorials is because they don’t yet exist. Because I’m still working on the first stable release.

      In conversation about a year ago permalink
    • Embed this notice
      fuzzyface (fuzzyface@mastodonapp.uk)'s status on Thursday, 01-Feb-2024 08:11:21 JST fuzzyface fuzzyface
      in reply to

      @aral I'd love to learn this but currently I'm having real issues finding any #kitten web dev tutorials because someone choose the most popular entirely unrelated word on the internet for its name. Which moron did that?

      In conversation about a year ago permalink
    • Embed this notice
      shom 🐧📷🤿🏔️🪚✊🏽 (shom@fosstodon.org)'s status on Thursday, 01-Feb-2024 08:11:55 JST shom 🐧📷🤿🏔️🪚✊🏽 shom 🐧📷🤿🏔️🪚✊🏽
      in reply to

      @aral that would be really cool! As someone with a programming background but not Javascript and little HTML/CSS knowledge a foundational course would be very helpful for getting started.

      In conversation about a year ago permalink
    • Embed this notice
      Aral Balkan (aral@mastodon.ar.al)'s status on Thursday, 01-Feb-2024 08:11:55 JST Aral Balkan Aral Balkan
      in reply to
      • shom 🐧📷🤿🏔️🪚✊🏽

      @shom 💕

      In conversation about a year ago permalink
    • Embed this notice
      Aral Balkan (aral@mastodon.ar.al)'s status on Thursday, 01-Feb-2024 08:15:21 JST Aral Balkan Aral Balkan
      in reply to
      • Miaourt ✨
      • gwil

      @Miaourt @gwil Will check it out, thanks. From a quick glance, looks like a replicated data type? Ala hypercore? If so, it’s not the sort of thing that’s at the core of the Small Web protocols I’m working on but there’s nothing to stop it being layered on top of a growing network of easily addressable and always on web nodes.

      In conversation about a year ago permalink
    • Embed this notice
      Miaourt ✨ (miaourt@raru.re)'s status on Thursday, 01-Feb-2024 08:15:22 JST Miaourt ✨ Miaourt ✨
      in reply to
      • gwil

      @aral that's some great goals, haven't really followed all your Kitten adventure since back then I had moved out of disgust of the waste of thousands hours of managing abstraction webdev have become, up to recently getting back to it thanks to HTMX + Go's pretty std lib, so seeing that your project did also made use of the same pattern make me regret not taking a look sooner ahah, that's awesome work.

      Still, I'd miss types too much for getting back on JS.
      I'll have a look on your p2p work tho 👀 just noticed that

      (on this topic did you had the chance to look at https://willowprotocol.org ? As far as I'm aware, @gwil & Aljoscha's philosophy is really close to what you also promote thru ur Smol' Tech)

      In conversation about a year ago permalink

      Attachments

      1. Domain not in remote thumbnail source whitelist: willowprotocol.org
        Willow Specifications - Willow
        A protocol for peer-to-peer data stores. The best parts? Fine-grained permissions, a keen approach to privacy, destructive edits, and a dainty bandwidth and memory footprint.
    • Embed this notice
      Sofia ☭🇧🇷☭ (sofiav@mastodon.online)'s status on Thursday, 01-Feb-2024 08:17:14 JST Sofia ☭🇧🇷☭ Sofia ☭🇧🇷☭
      in reply to

      @aral ooh, I'd be interested in that!

      In conversation about a year ago permalink
    • Embed this notice
      Aral Balkan (aral@mastodon.ar.al)'s status on Thursday, 01-Feb-2024 08:17:14 JST Aral Balkan Aral Balkan
      in reply to
      • Sofia ☭🇧🇷☭

      @sofiav Yay, will definitely make noise about it when it happens :) 💕

      In conversation about a year ago permalink
    • Embed this notice
      Aral Balkan (aral@mastodon.ar.al)'s status on Thursday, 01-Feb-2024 08:31:16 JST Aral Balkan Aral Balkan
      in reply to
      • fuzzyface

      @fuzzyface I quite like the name, actually. I’m not trying to win any SEO contests; word of mouth will do me just fine :)

      In conversation about a year ago permalink
    • Embed this notice
      fuzzyface (fuzzyface@mastodonapp.uk)'s status on Thursday, 01-Feb-2024 08:31:17 JST fuzzyface fuzzyface
      in reply to

      @aral Whilst I respect your technical abilities, your effort, your motives and just about everything else I've seen from you, please don't name anything else without checking with us first. 😉

      In conversation about a year ago permalink
    • Embed this notice
      Aral Balkan (aral@mastodon.ar.al)'s status on Thursday, 01-Feb-2024 20:20:23 JST Aral Balkan Aral Balkan
      in reply to

      Right, #idiomorph¹ is now integrated into #Kitten² and enjoys first-class support via the <page> tag like #htmx itself, the htmx #WebSocket extension, Alpine.js, and Water semantic #CSS library.

      It’s auto-loaded for you if you expose `onConnect()` handlers in your pages when using the new Streaming HTML workflow.

      (You must still manually add `htmx-swap-oob='morph'` to elements you want to morph. I might add syntactic sugar for this later.)

      ¹ https://github.com/bigskysoftware/idiomorph/tree/main?tab=readme-ov-file#%EF%B8%8F-idiomorph

      ² https://codeberg.org/kitten/app

      In conversation about a year ago permalink

      Attachments

      1. No result found on File_thumbnail lookup.
        http://library.It/
      2. Domain not in remote thumbnail source whitelist: codeberg.org
        app
        from kitten
        A web development kit that’s small, purrs, and loves you.
      3. Domain not in remote thumbnail source whitelist: opengraph.githubassets.com
        GitHub - bigskysoftware/idiomorph: A DOM-merging algorithm
        A DOM-merging algorithm. Contribute to bigskysoftware/idiomorph development by creating an account on GitHub.

Feeds

  • Activity Streams
  • RSS 2.0
  • Atom
  • Help
  • About
  • FAQ
  • TOS
  • Privacy
  • Source
  • Version
  • Contact

GNU social JP is a social network, courtesy of GNU social JP管理人. It runs on GNU social, version 2.0.2-dev, available under the GNU Affero General Public License.

Creative Commons Attribution 3.0 All GNU social JP content and data are available under the Creative Commons Attribution 3.0 license.