Project ideas from Hacker News discussions.

Ghostty compiled to WASM with xterm.js API compatibility

📝 Discussion Summary (Click to expand)

Here are the three most prevalent themes from the Hacker News discussion:

1. Significant Interest in Browser-Based Terminal Capabilities and Demos

The core of the discussion revolves around deploying and interacting with Ghostty via WebAssembly (WASM) in a browser environment. Users are actively seeking and creating hosted demos to try the technology without local setup.

  • Supporting Quote: Regarding the difficulty of getting a full shell experience online, Kyle stated, "It's tricky to do without a compute environment. We can easily make a browser shell that let's people run basic commands, but presumably most want to try vim and other commands they'd typically invoke."
  • Supporting Quote: This was resolved by community effort: "Here's v86 running in your browser with ghostty-web: https://bow-wrinkle-13326.ondis.co/" (gregsadetsky).

2. Performance Optimization and Comparison with xterm.js

A major technical tangent explores the performance characteristics of Ghostty-Web compared to the incumbent, xterm.js. Key areas of scrutiny include rendering speed and the adoption of high-performance APIs.

  • Supporting Quote: Mitchellh questioned the current state: "I'm guessing that performance of this relative to xterm right now isn't... the best, mainly because the way you're grabbing the viewport seems expensive. I'm curious though if you did any benchmarks?"
  • Supporting Quote: The author acknowledged this initial focus: "We spent little time on performance so far, this is more of a POC that will hopefully become a drop-in replacement for xterm.js over time." (kylecarbs). Mitchellh then suggested using the "RenderState API" for better results.

3. Integration into Existing Web/Editor Ecosystems

Users are keenly interested in using Ghostty Web as a drop-in replacement for terminals within existing applications, particularly IDEs and web-based coding environments like VS Code server installations.

  • Supporting Quote: VikingCoder asked directly about integration: "So, could someone now make a Visual Studio Code (and specifically code-server) that has ghostty-web as the Terminal?"
  • Supporting Quote: The author confirmed this was the intention: "Yup, that's the idea!" (kylecarbs). Separately, thoughtfulchris noted success integrating it into their own project: "I got ghostty-web working with this and it is great."

🚀 Project Ideas

Ghostty-Compatible Desktop/IDE Terminal Plugin Generator

Summary

  • A tool that automates the creation of IDE/Editor plugins (e.g., VS Code, Zed) designed to instantly substitute their default, often JavaScript-based terminals (like xterm.js) with ghostty-web compiled for native/renderer integration.
  • The core value proposition is simplifying the integration of Ghostty's promised high performance and better VT100/rendering quality directly into existing desktop development environments, capitalizing on the libghostty API.

Details

Key Value
Target Audience Developers using IDEs like VS Code (code-server) or Zed who want superior terminal performance/rendering fidelity.
Core Feature CLI tool or Wizard that uses configured native bindings (via Zig/C API exposure from libghostty) to scaffold a plugin structure that hooks into the host application's terminal viewport management.
Tech Stack TypeScript/Node.js (for IDE plugin scaffolding), Rust/Zig/C (for linking against libghostty components or using pre-compiled WASM binaries if applicable across platform wrappers).
Difficulty Medium
Monetization Hobby

Notes

  • Relates directly to user desires: "So, could someone now make a Visual Studio Code (and specifically code-server) that has ghostty-web as the Terminal" and similar interest for Zed ("Would love to be able to use Ghostty as my Zed terminal").
  • This addresses the "how-to" problem after the core library is proven, turning the concept into a practical, usable ecosystem extension.

Shader Injection Utility for WebGL/WebGPU Terminals

Summary

  • A utility or standardized configuration layer that simplifies the injection and transformation of custom/retro GPU shaders (like those used in cool-retro-term or ShaderGlass) into rendering pipelines exposed by ghostty-web (when running in the browser).
  • The core value proposition is unlocking high aesthetic customization for the browser terminal, building on the discussion around custom GPU shaders.

Details

Key Value
Target Audience Users who want "cool-retro-term aesthetics" in their hosted web terminals.
Core Feature A small wrapper library around ghostty-web that handles WebGL/WebGPU shader compilation/transpilation logic, targeting the documented RenderState API output or similar drawing hooks.
Tech Stack JavaScript/TypeScript, WebGL/WebGPU APIs, potentially integrating lightweight GLSL transpilation tools mentioned in the discussion (like spire-cross).
Difficulty High
Monetization Hobby

Notes

  • Directly addresses the request: "I wonder if ... ShaderGlass and this to have a baby, so we can have cool-retro-term in the browser."
  • This is a strong talking point for HN users interested in low-level rendering and customization, moving beyond basic correctness towards advanced visual features.

Backend-Agnostic Terminal Session Persistence Broker (Ghostty Edition)

Summary

  • A lightweight service, inspired by zmx and ttyd, specifically designed to leverage libghostty's rendering capabilities to provide session management (spawning processes, persisting state across disconnects) that works seamlessly with any ghostty-web frontend.
  • The core value proposition is providing robust, language/OS-agnostic terminal session management with superior stability and potentially better rendering fidelity than existing solutions like gotty (which uses xterm.js).

Details

Key Value
Target Audience Users seeking a modern alternative to tmux or ttyd for remote persistent sessions, especially in cloud/browser-based environments.
Core Feature A server component that spawns processes, pipes streams to the client, and handles session state exchange based on the Ghostty protocol/API.
Tech Stack Zig/Rust (for maximum performance and easy linking to libghostty), potentially wrapping standard Unix utilities.
Difficulty Medium
Monetization Hobby

Notes

  • This connects user pain points regarding persistence (zmx user mentions wanting to replace shpool and solve multi-session complexity) with the new high-performance rendering engine.
  • Provides the necessary "compute environment" for hosted demos (gregsadetsky offered to host a demo with a backend), satisfying the need for complex applications like Vim to run reliably in the browser demo.