ElementaryUI – Swift, in the Browser

(elementary.codes)

121 points | by frizlab 1 day ago

12 comments

  • adrusi 1 day ago
    Reminiscent of the now 18-year-old Cappuccino project https://www.cappuccino.dev/
    • frizlab 23 hours ago
      Project that is still alive, amazingly.
    • sapphire4 21 hours ago
      The web version of Keynote with it was amazing.
    • sampton 23 hours ago
      I paid $20 for their interface builder and never got it.
    • indstinctdialog 20 hours ago
      Objective-J is something I entirely forgot existed.
    • larodi 12 hours ago
      cause there was Coffee Script, also, right?
    • pipeline_peak 23 hours ago
      I’d say this is closer to Blazor
  • gosen 15 hours ago
    It would be interesting to see any benchmarks / comparisons to understand what are the benefits of having Swift in the browser. Is it faster? Easier to maintain? Or is it based more on the sympathy to the programming language in general?

    But great job anyway!

    • simonleeb 12 hours ago
      ElementaryUI author here:

      It is listed in the js framework benchmark (as elementaryui), so you can check where it lands performancewise ATM: https://krausest.github.io/js-framework-benchmark/current.ht...

      I am convinced we can keep it "fast enough" for most everything. Bundle size still is a weak spot, and proper bundling/splitting of wasm modules has to be willed into existence, but I see no blockers for a pretty smooth experience.

      Honestly, it mostly started as a "I like Swift, can I use it everywhere?" challenge. But there is a real benefit about fully staying in a modern language and tooling environment. Swift, imho, is a very clean and powerful language that fits this space well, might as well build a comfortable way to use it for web projects.

      • gosen 8 hours ago
        Cool, thanks for details and answer! I guess it would be hard to convince JS/TS lovers to try Swift but it's worth a shot :D
  • pjmlp 14 hours ago
    Bit by bit, we are having our beloved browser plugins back, at least for some of us.
  • leecommamichael 8 hours ago
    Fun project, an aside; Apple please fix the Swift compiler. It is so slow. It is so very slow.
  • jan_m_savage 21 hours ago
    sooner or later this was gonna happen. Swift is like Haskell, but nicer and more programmer-friendly.
    • isodev 15 hours ago
      I wouldn’t fly so close to Apple if I have the choice. Apple could pivot at any moment - “New versions of Swift start at $99,99” /s
      • simonleeb 13 hours ago
        ElementaryUI author here (so biased):

        I agree that is a real risk, but imho past behavior suggests that "Apple" Apple and open-source Apple both can exist and it's likely going to be just fine.

        On the plus side: Apple is paying many many real people to progress the language and tooling mostly in the open with solid community work.

      • jan_m_savage 7 hours ago
        you're ignoring the economic context. Languages don't exist in a vacuum.

        Apple would never do that, since a lot of free alternatives are always there. Scala and Kotlin are both very close.

      • earthnail 13 hours ago
        New versions of Swift are truly cross-platform. We support iOS, iPadOS, MacOS, HomeOS, VisionOS, WatchOS as well as BodyOS, BrainOS and iThinkOS.

        To help developers focus on the future, Swift 9 drops support for deprecated platforms such as Linux, Windows and the web.

        /s

        I'm actually a Swift developer; it's a great language, but I'm also married to the Apple ecosystem and wouldn't choose it outside of it.

  • brailsafe 21 hours ago
    Looks a bit like jQuery mixed with jsx and ember or angular
  • beans6543 1 day ago
    Their demo is flakey and sometimes fails to hydrate in Firefox latest
  • maxdo 22 hours ago
    Any reason/motivation why ?
    • simonleeb 13 hours ago
      ElementaryUI author here.

      The honest original motivation was mostly "Swift for websites, can I do it?". But underneath, I really want to use one capable and modern language (+ ecosystem and tooling) for all my dev needs. That includes having a native, "in-ecosystem" solution for creating web apps of any kind. Somebody's gotta build it...

      I recently wrote a bit about that on the swift.org blog: https://www.swift.org/blog/whats-new-in-swift-august-2026/

  • kamisori-daijin 23 hours ago
    Nice!
  • nibbo_dev 10 hours ago
    [flagged]
  • MichaelTestGrid 14 hours ago
    [flagged]
  • pipeline_peak 23 hours ago
    We already have Typescript, I don’t see the purpose.
    • frizlab 23 hours ago
      ‘cause Swift is great, I guess! And more seriously, probably for a shared logic with an iOS & android app.
      • alsetmusic 22 hours ago
        Just wait until they rewrite Swift with Rust.
        • frizlab 12 hours ago
          They will more likely rewrite Swift with Swift (actually they have done a small bit of it already).
          • monster_truck 12 hours ago
            Swift is not very good. An entire generation of developers are slowly discovering this as they have LLMs rewrite their apps in ObjC & UIKit and see it yield 3x perf improvements without even getting all that far deep into the weeds on optimization.
            • frizlab 11 hours ago
              Properly written, Swift can beat rust[1]. (Obviously the rust project could probably catch up by using the same optimization techniques than the Swift project did, but my point is Swift has nothing to envy from rust in terms of performance.)

              Swift’s philosophy is “easy to use first but you can go lower if you need performance.” Rust’s philosophy is kind of the opposite. I think Swift’s philosophy is a valid, and even a more interesting philosophy than rust’s, but to each his own.

              wrt. migrating to ObjC/UIKit please do post references when issuing statements like these. Possibly migrating from SwiftUI to UIKit would give performance improvements, but that has nothing to do with Swift itself. SwiftUI is actually written mostly in C++ IIRC.

              [1] https://news.ycombinator.com/item?id=50178103

        • monster_truck 21 hours ago
          I'd rather use Slopjective-C 3.0 tbh
    • astafrig 21 hours ago
      This sentiment is sorely missing from the endless Rust re-writes.
    • vips7L 15 hours ago
      Typescript isn’t that good of a language.