I built it because I was running 8-10 Claude Code / Codex shells in parallel and tabbed terminal apps kept losing my place. I wanted to see every shell at once and drag them around like Post-its. And have my browsers and notes in there too.
Implementation choices that might be interesting:
• AppKit, not SwiftUI. I needed manual frame control during drag/zoom to avoid AppKit's display-cycle re-entrancy guard, and got it more reliably out of straight NSView land.
• SwiftTerm (Miguel de Icaza's emulator) for VT100 + real PTYs (fork + openpty). One `LocalProcessTerminalView` per tab. OSC 7 → cwd → tab title.
• `NSScrollView.magnification` for canvas zoom. Cmd+wheel events are coalesced to one mag-update per display frame and the resync broadcast is hopped to the next runloop tick. Earlier versions used to SIGTRAP inside `_postWindowNeedsLayoutUnlessPostingDisabled` because the broadcast was re-entering AppKit's layout pass under aggressive zooming.
• Intentionally human-grep-able. No SQLite, no proprietary format.
• NSPasteboard drag-and-drop. Finder→canvas drops a folder and spawns a new stack with that folder as cwd. File-panel→terminal drag inserts the absolute path at the cursor.
•`NSTextStorageDelegate.processEditing` for syntax highlighting in the editor panels. 22 languages, extension auto-detect, plus a Sublime-style status-bar language picker.
* macOS only.
Install:
brew install --cask vbario/staxide/staxide
Site / DMG releases: https://staxide.comBuilt solo, used daily, lots of rough edges. Bug reports and corrections both welcome.
I'm building a map tool - Tasmap. It combines the functions of articles, maps, and design. The goal is let people can easily build beautiful maps without design/engineering effort. There are many demo and use-cases on landing page, take a look and give it a try :)
- Eddie Hsu
I have about 2000+ bookmarks that I will never read. Probably you do too. I keep collecting new stuff to read, the list grows longer each day, but I barely get around to reading them, and the problem, as I realised, is more to do with the analysis paralysis on what to read. Sort of like how we spend so much time figuring out what movie to watch on Netflix.
So I made a simple Chrome extension: it picks one bookmark at random, drops you on the page, and gives you two buttons on a floating toolbar - Stumble (next random one) or Done (mark read and move to the next random one). That's it. It takes away the burden of decision altogether, and it's sort of fun to engage with because of the variability (and novelty) of what it loads next, while still being within the universe of things I've been wanting to get to. Also, I've added daily goal and streaks to keep me motivated to get through the list and turn it into a daily habit.
You can simply Right-click -> Add to Stumbleback for new saves, otherwise it just reads your existing Chrome bookmarks, or you can paste URLs as well, no separate database.
It's free. Would love feedback from anyone who's tried to get through their reading list of things and failed.
I don't think I quite understand what computing has become at this point. I keep encountering situations where the SWEs, who write and maintain software that I assumed to be trustworthy, decide that superficial considerations are more important than data integrity or user control of critical decisions. It keeps happening, so it's not a mistake or an oversight. Some of you genuinely think that this is how software should work.
Low system storage causes a write error which corrupts the database which houses the history