---
title: "Building terminal UIs with HTML and CSS"
publication: "Node Weekly"
issue: 637
published_at: "2026-08-13"
canonical_url: "https://nodeweekly.com/issues/637"
---

Plus Fastify 6 enters alpha, reports of Node 24.19.0 memory issues, and a proposed runtime deprecation for node:domain.        

#​637 — August 13, 2026 

[Read on the Web](https://nodeweekly.com/issues/637)   

🗓️ We're taking a summer break next week, so will be back in your inbox on August 27.
__
_Your editor, Peter Cooper_ 

Together with [![Master.dev\](https://res.cloudinary.com/cpress/image/upload/c_fill,g_auto,w_1280,h_245/co_white,e_outline:17/cgiteem1q7kgf8yoheqo.png)](https://master.dev/courses/agent-harness/?utm_source=nodeweekly&utm_medium=newsletter&utm_campaign=agent-harness)  

![Node.js Weekly](https://res.cloudinary.com/cpress/image/upload/v1653576619/lgfqinzbdqttwmhvljxb.png) 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/k7oreeb8z7biws7m37fb.jpg)](https://termdom.org/)  

[TermDOM: Build Terminal UIs with HTML, CSS and the DOM](https://termdom.org/) — Like the look of [Ink](https://github.com/vadimdemedes/ink) but don't like React? TermDOM implements a DOM, cascade and layout engine that paints to the terminal, so you can write a TUI with HTML and CSS. Pure JS, no native or WASM dependencies, and the official [TodoMVC runs](https://github.com/bikeshaving/termdom/blob/main/examples/todomvc.ts) with only a stylesheet swap. Early days, but I like the idea! 

Brian Kim   [![\](https://res.cloudinary.com/cpress/image/upload/c_limit,w_480,h_480,q_auto/copm/fb37fe8e.png)](https://master.dev/courses/agent-harness/?utm_source=nodeweekly&utm_medium=newsletter&utm_campaign=agent-harness) 

[Harness Engineering: How to Wrangle Your Agents](https://master.dev/courses/agent-harness/?utm_source=nodeweekly&utm_medium=newsletter&utm_campaign=agent-harness) — The models keep changing. The harness is the part you build. Scott Moss (Netflix) shows how: durable execution, sandboxed tool calls, memory systems, and multi-agent handoffs. 

Master.dev sponsor   

[Fastify 6.0 Enters Alpha](https://github.com/fastify/fastify/releases/tag/v6.0.0-alpha.0) — It's been two years since [Fastify](https://fastify.dev/), the popular low overhead web framework, [dropped v5](https://openjsf.org/blog/fastifys-growth-and-success), but v6 is coming into sight. It's largely shaping up as a 'spring clean' release requiring Node 24 at minimum but should be good for initial testing. [More background here](https://github.com/fastify/fastify/issues/6834). 

The Fastify Team   

**IN BRIEF:** 

- Node maintainer Matteo Collina explains [how he 'triages the AI horde'](https://adventures.nodeland.dev/archive/triaging-the-ai-horde/) when it comes to handling 20-40 security reports each week.
- [Bun](https://bun.com/) 1.4's release appears to be _imminent_ with [𝕏 Node.js compatibility teased](https://x.com/bunjavascript/status/2087436767054213517) as the biggest enhancement. It hasn't dropped as we go to press, but keep an eye [on their blog](https://bun.com/blog), as no doubt it'll land minutes after we hit send! 😂
- [`node:domain`](https://nodejs.org/api/domain.html), deprecated in the docs since 2015, [could become _runtime_-deprecated in Node 27](https://github.com/nodejs/node/pull/65074) — if you're still using it, speak up now.
- ⚠️ Several teams are [reporting out-of-memory crashes after upgrading from Node 24.18.1 to 24.19.0](https://github.com/nodejs/node/issues/65110) (and rolling back fixes it). Nothing confirmed yet, so add your data if affected.
- Vercel now offers a [one-click Node.js upgrade mechanism](https://vercel.com/changelog/one-click-upgrade-for-deprecated-node-js-versions) for deprecated Node.js versions (notably new Node 20-based builds will _fail_ after Oct 1).   

[Adding a Second Middleware Broke Our TypeScript Types](https://www.inngest.com/blog/adding-a-second-middleware-broke-our-typescript-types) — A TypeScript detective story in which adding a second middleware could collapse a return type to `{}`. The culprit was a widely used key-filtering idiom that leaks `undefined` when properties are optional. 

Linell Bonnette (Inngest)   

📄 [5 Useful `npx` Helpers](https://meiert.com/blog/5-npx-helpers/) – A reminder that `npx` makes it easy to run one-off tools. Jens shares five he likes for spell checking, cleaning up JS projects, and more. Jens Oliver Meiert 

📄 [Fixing the Dual-Write Problem in Node.js with the Outbox Pattern](https://www.freecodecamp.org/news/how-to-fix-the-dual-write-problem-in-node-js-with-the-outbox-pattern/) – Making your database and message queue agree. Gabor Koos 

📄 [A Deep Dive into How Hono Is Built](https://flaviocopes.com/how-hono-is-built/) Flavio Copes    

🛠 Code & Tools 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/xfcfc6xxiuck4vvkliii.jpg)](https://deepseek.com/harness/en/)  

[DeepSeek Harness: DeepSeek's New Node-Powered Agent Harness](https://deepseek.com/harness/en/) — Today, the popular Chinese model lab unveiled its own Claude Code-alike and already racked up 30k stars. It's not a typical CLI harness, though, but runs through a web UI. Curiously, _everything_ is a plugin, built atop [Cordis](https://github.com/cordiverse/cordis), an existing Node plugin system whose author DeepSeek has hired. [GitHub repo](https://github.com/deepseek-ai/deepseek-harness). 

DeepSeek   

[unbash: Fast 0-Dependency Bash Parsing Library](https://github.com/webpro-nl/unbash) — The parser [Knip](https://knip.dev) uses to make sense of shell scripts, as a standalone library. It turns bash code into a typed AST that can then be used for classification, permission checks, rewriting commands, and more. 

Lars Kappert   

[Full-Text Search in Drizzle Without a Second System](https://github.com/paradedb/drizzle-paradedb) — Try the official ParadeDB integration for Drizzle. Search your live Postgres tables. No ETL, no Elasticsearch cluster. 

ParadeDB sponsor   

[njsscan 1.0: A Semantic-Aware SAST Tool for Node](https://github.com/ajinabraham/njsscan) — A `pip`-installable, zero-config security scanner that finds insecure patterns in Node apps using ~70 `semgrep`-powered rules for XSS, SSRF, `eval`, JWT and NoSQL injection. 

Ajin Abraham (OpenSecurity)   

[Hucre 1.0: A Zero-Dependency Spreadsheet Engine](https://github.com/productdevbook/hucre) — A library for reading and writing common spreadsheet formats, including things like embedded images, hyperlinks, password protection, and tables. 

Wind   

- [NodeBB 4.15.0](https://github.com/NodeBB/NodeBB/releases/tag/v4.15.0) – The Node-powered forum software ([demo site here](https://try.nodebb.org/)) gets lots of bug fixes and enhances fediverse support.
- [smol-toml 1.8](https://github.com/squirrelchat/smol-toml) – Small, fast, spec-compliant TOML 1.1 parser/serializer.
- [BullMQ 6.1](https://github.com/taskforcesh/bullmq) – Fast, reliable Redis- or Postgres-based distributed queue.
- [swift-node 0.1.2](https://github.com/biw/swift-node) – Write the native part of a Node module in Swift.
- [Vitest 5.0 Release Candidate](https://github.com/vitest-dev/vitest/releases/tag/v5.0.0-rc.1)    

We'll be back in two weeks on August 27 – see you then! Unless you're a [React Status](https://react.statuscode.com/) subscriber too, in which case… see you tomorrow ;-)    

**Got a link for us?** Reply and tell us. We can't include everything but we'll look at anything you send. _Thanks!_ 

--- 

**Sponsorship:** Email `[kristina@cooperpress.com](mailto:kristina@cooperpress.com)` for details. 

--- 

Published by Cooper Press Ltd.
Fairfield Enterprise Centre, Louth, LN11 0LS, United Kingdom 

[Cancel your subscription](https://nodeweekly.com/leave/*|UID|*) or [change your address](https://nodeweekly.com/edit_subscription/*|UID|*).
