HNNewShowAskJobs
Built with Tanstack Start
Show HN: Bonsplit – Tabs and splits for native macOS apps(bonsplit.alasdairmonk.com)
242 points by sgottit 2 days ago | 33 comments
  • publicdebates2 days ago

    This is excessively beautiful, both the website and the library's UI.

    But I have to ask: what's the rationale on dedicating such an elaborate and gorgeous website for just a library? Are you hoping to get hired for web design? Are you seeking fame and repute? Do you merely do it for the love of the game? Why, for the love of all that's good, pray tell why put all this effort into mere documentation?

    • chris_st2 days ago |parent

      To set the bar for other websites, to show how it should be done?

      Or maybe just "for the love of all that's good"?

    • drewradcliff2 days ago |parent

      Just look at his website and you'll see why.

      https://www.alasdairmonk.com/

      • port1121 hours ago |parent

        I’m jealous of how prolific they are, with a good taste for design and number of side projects. Well done.

      • Hnus2 days ago |parent

        Author seems to be one of the colleagues you are like I wish to be more like him.

    • jitla day ago |parent

      Why make good things? I guess we should make bad things. Or no things.

    • dozerly2 days ago |parent

      I don’t think he needs the experience on his resume lmao. He’s an experienced design professional that’s worked at a bunch of big name companies as a lead designer.

  • goranmoomin2 days ago

    This is very interesting, I haven’t touched macOS development for quite a while but it’s good to know that libraries are still being written for both AppKit and SwiftUI on macOS.

    I do feel that this library would benefit from an explanation on why this was needed. AFAIR AppKit already provides a native tabbing API where you can “just” (that “just” is doing a lot of heavy lifting) implement a few delegate methods and you get tabbing behavior for free, especially on document-based apps. (Sorry, I do not remember the specifics, it might have been a tad more difficult)

    I’m not updated on the SwiftUI equivalent, but I would imagine that a similar API would exist much alike API for multiple windows or multiple documents.

    I think everyone would benefit from a “why” explanation (which I definitely think would exist, since I’ve used too many AppKit APIs in pain), and also some screenshots for a demo app (so that we can expect how it would look and how much the look and feel would deviate from the native counterparts).

    • atombendera day ago |parent

      I've tried the native tab support several times, and my impression is that it's good for very little.

      It may be OK for certain types of document-oriented apps, but there's a reason most apps (Chrome, iTerm, even Safari uses its own native tabs, I believe) don't use it. It's underbaked and awkward to fit into a model where your "tab data model" doesn't neatly fit the document data model that the framework wants.

      I recently made an app where I wanted tabs, and I just ended up abandoning tab support for this reason, and adding a todo item to use an off-the-shelf tab UI library in the future.

    • zapzupnz2 days ago |parent

      The website already has a demonstration of what this does that native tabs don’t do and how they look.

      • goranmoomina day ago |parent

        Yeah I realized that only now, for some reason when I was on mobile and I was looking into this the demo video was not loading at all. I would love to retract my comment :(

        • brianfryera day ago |parent

          I totally missed the video on mobile too.

          • msephtona day ago |parent

            Yes, just blank space instead of video on mobile. Edit: opening in Safari worked

    • saagarjha2 days ago |parent

      Native tabs work at the window level.

  • jofzar2 days ago

    I don't know why, but I thought this was going to sandbox style tab/split support for the all the baselines macos apps.

    This is very cool, but somehow got myself disappointed that something I didn't know I wanted doesn't exist.

    • ziml772 days ago |parent

      You're not the only one. I first assumed it was a library when I was scanning the headlines, but then when I started opening up tabs moments later I thought it added tabs and splits to existing apps. I remember something that brought tabs system-wide to Windows so it's not even too crazy of an idea.

      • krispyfi2 days ago |parent

        Yes, I assumed it was a macos equivalent to suckless-tabbed. https://tools.suckless.org/tabbed/

  • w10-1a day ago

    Fantastic! Managing views in eclipse like this is one of the things that keeps me using eclipse.

    From looking at the demo and the docs...

    What I didn't see in the demo was changing the order of a tab within a panel via drag-and-drop (no "allowIntraPaneTabMove"?). Also presuming you can close tabs to left, right, or all other tabs (would need tabs as list to implement this in application). Also might like to somehow manage title elision when there are multiple tabs. Also want to change pane proportions on the fly. Also assuming one can have two views of the same document in different tabs.

    So many possibilities! I'll try it in some app...

  • iamcalledrob2 days ago

    Love the attention to detail here.

    Getting drag and drop right is hard, it's so much more complex than you might think.

  • ahmadyana day ago

    This is an awesome library, thank you so much for making it. I just ported it to my IDE, agentastic.dev, and works like a charm.

    https://assets.agentastic.ai/agentastic-dev-assets/videos/0....

  • loceng2 days ago

    Easter egg: Click the logo!

  • rob_2 days ago

    My favourite window manager in linux was always ion3 that then became known as notion. I'm not sure if it was one of the first tiling/tab/split window managers but I started using it around the year 2000 and loved it. One feature that it seemed to have that a lot of other tiling windowmanagers didn't have is tabbed splits. Really nice to see this.

  • dmoose2 days ago

    This is quite beautiful. I had a somewhat similar use case last year and built something that wasn't this polished. The only feature that seems to be missing for what I needed then is the ability to tear off tabs into new windows that could also be dragged back into the frame to reattach. Will definitely be keeping this project in mind for future needs.

  • bartvka day ago

    What was the thinking of putting the close button on the right of the tab?

  • 0xb0565e4862 days ago

    I love how beautiful and creative the website header is while being a fragment of what it does. Fantastic work!

  • jbverschoor2 days ago

    “Tabs and splits” should be something the window manager takes care of

    • ggoo2 days ago |parent

      Really depends on the application, no? I wouldn't want my IDE opening every file in a new window.

      • jbverschoor2 days ago |parent

        That’s why the windows manager and user should be in control

        I’d love to be able to arrange different tabs of different apps in one window

  • treetalker2 days ago

    - library

    - functionality/effect looks like Sublime Text origami mode

  • jen20a day ago

    This looks like a great library, and I'm happy to see focus on proper native Mac apps over Electron.

    One odd thing, the library doesn't have a license associated with it (in the repo, at least).

  • iLoveOncall2 days ago

    The title really should include "library"...

    • publicdebates2 days ago |parent

      Honestly yeah.

      I clicked it thinking it was an MDI app.

  • kocialnewsa day ago

    This is interesting