Show HN: TypeScript/React/Vue Window Layout Manager (Tabs, Floating, Popouts)
22 comments
·January 11, 2025samradelie
Wow. Stellar work. The TS looks really proper on first glance. I think you're right on zeitgeist -- we're going to need a lot more fundamental tools like this to build AI apps.
Technically speaking, I've long wondered about mount/unmount of components as panels are dragged about and their visibility changed. Sometimes it's more costly to mount/unmount than to display:none.
Second, you have basically a declarative structure for these panels, are there plans to expose a Vite plugin for example that could export saved TS layouts, where functions (ie: TS imports) map to the panel contents? (trying to think outside of JSX and more vanilla TS)
Fantastic work!
bsnnkv
I maintain a tiling wm written in Rust, and I just cannot imagine having the patience to do this kind of work in JS/TS. My respect to mathuo! One of the coolest things I've seen on HN recently.
mlajtos
Time to rebuild Mosaic. https://github.com/mlajtos/mosaic
diob
How does this compare to golden layout? Inspired by it?
I really enjoyed that project back in the day, but unfortunately support completely stopped (it had some folks take over, but I didn't see a real feasible upgrade path despite their passionate work on updating it).
This looks great! I'd be interested in giving it a try.
karol
Nice project. I would appreciate putting some common content in the demo, such as videos, dropdowns, large amount of text and large size text to show how they can be handled.
Also is there a version without window chrome, just panes?
mlajtos
Instead of content, put there webview/iframe – https://github.com/mlajtos/mosaic
mlajtos
Safari can't handle the demo. https://dockview.dev/demo
dahdum
Kept getting this error when navigating: This page crashed Try again Right side of assignment cannot be destructured
The video looks awesome, but I couldn’t get the demo to work using an iPad, so I assume mobile isn’t supported fully? I’d use it for my personal dashboard and for organizing llama.cpp chats if I could.
Jonovono
Looks awesome! I want something like this for managing Electron base windows & Web contents views :)
garbagepatch
Does this use the new moveBefore API to move DOM elements while preserving their state? Or is it going to recreate the elements eitherway due to React/Vue?
lolinder
I'd be surprised if it uses moveBefore for something that seems to have put so much thought into being portable. moveBefore doesn't even have an entry in MDN yet, the only references I can find to it suggest it's still only available behind a flag in Chrome canary.
samhh
It could support it as a progressive enhancement.
lolinder
I personally wouldn't even bother with that yet.
Once it's available in even one browser not behind a flag, sure, but while it's still entirely undocumented and only available to people who both use Chrome Canary and know to go turn on a specific flag?
Onavo
Do you plan to add touch device support? It doesn't work well on tablets and phones.
Looks like a very high quality library, great work! I wonder if it will eventually support auto truncating tab titles when the tabs fill up the horizontal space, just like how chrome display large number of tabs.