Show HN: Gridland: make terminal apps that also run in the browser
73 points
11 hours ago
| 4 comments
| gridland.io
| HN
Hi everyone,

Gridland is a runtime + ShadCN UI registry that makes it possible to build terminal apps that run in the browser as well as the native terminal. This is useful for demoing TUIs so that users know what they're getting before they are invested enough to install them. And, tbh, it's also just super fun!

Gridland is the successor to Ink Web (ink-web.dev) which is the same concept, but using Ink + xterm.js. After building Ink Web, we continued experimenting and found that using OpenTUI and a canvas renderer performed better with less flickering and nearly instant load times.

We're excited to continue iterating on this. I expect a lot of criticism from the "why does this need to exist" angle, and tbh, it probably doesn't - it's really mostly just for fun, but we still think the demo use case mentioned previously has potential.

- Chris + Jess

kamens
7 hours ago
[-]
I love this. It needs to exist because it's fun.
reply
rothific
7 hours ago
[-]
Thank you! I'm glad you think so. It's all about fun.
reply
oDot
4 hours ago
[-]
Very nice

Could I use OpenTUI Core with this?

I'd like to replace the hero at https://blisswriter.app with the actual app

reply
rothific
4 hours ago
[-]
You should be able to. We forked OpenTUI in order to avoid having to shim a bunch of native stuff. I'd like to make it compatible - email me at hi@cjroth.com if you find a way or want any help making it work
reply
oDot
1 hour ago
[-]
Thanks. Will be a while before I could give this a shot...
reply
theturtletalks
5 hours ago
[-]
Can I replace xterm.js with this?
reply
rothific
5 hours ago
[-]
Yes (if you're also down to use React)
reply
theturtletalks
5 hours ago
[-]
Cool I’ll try it out. I recently replaced xterm with Ghostty-web for my terminal in the browser app, but this looks even better. I’m using Next.js and I see you have an example.
reply
rothific
4 hours ago
[-]
Nice! I made a proof-of-concept of using Ink + Ghostty Web a few months back - we didn't end up merging it, but it's still an interesting thing that's possible. I think Ghostty Web is also has tons of potential.

https://github.com/cjroth/ink-web/pull/1

reply
rablackburn
1 hour ago
[-]
> Gridland is the successor to Ink Web (ink-web.dev) which is the same concept, but using Ink + xterm.js. After building Ink Web, we continued experimenting and found that using OpenTUI and a canvas renderer performed better with less flickering and nearly instant load times.

Ah, I was wondering how this was different to xterm.js embedded in a page. It's just the performance angle? I've been teaching the kids programming from the terminal and I've been planning to make the jump from the terminal to a terminal in the browser as we hit graphical limitations (and as they want to be able to share their games). I'll take it for a spin.

(and if nothing else, I'm going to steal that ripple effect for them ;) )*

* obligatory https://xkcd.com/541/

reply
rothific
1 hour ago
[-]
Yep, mainly performance - specifically page load time (near instant for Gridland vs ~2-3s for Ink Web). The other issue was flickering. Tbh rendering directly into a canvas is just a better approach and OpenTUI's architect is more modern.

I love that xkcd, I never know what to do, so I'll just :))

reply