🕵️ SicherheitslückenWhat continuous operational resilience looks like under DORA(09.09.2026 um 17:53 Uhr)
🔧 AI Nachrichten OpenAI seeks tougher AI rules. CIOs may feel the ripple effects(10.09.2026 um 12:11 Uhr)
🔧 AI Nachrichten Mistral valued at €21bn after €3bn Series D funding round(08.09.2026 um 10:19 Uhr)
🪟 Windows TippsWindows XP's Cursor Indicator Is Getting a Windows 11 Refresh(25.08.2026 um 13:00 Uhr)
🕵️ SicherheitslückenWhat continuous operational resilience looks like under DORA(09.09.2026 um 17:53 Uhr)
🔧 AI Nachrichten OpenAI seeks tougher AI rules. CIOs may feel the ripple effects(10.09.2026 um 12:11 Uhr)
🔧 AI Nachrichten Mistral valued at €21bn after €3bn Series D funding round(08.09.2026 um 10:19 Uhr)
🪟 Windows TippsWindows XP's Cursor Indicator Is Getting a Windows 11 Refresh(25.08.2026 um 13:00 Uhr)

🔧 Programmierung 🕛 vor 3 Monaten 4 Min Lesezeit
0

I built "Next.js for the terminal" in TypeScript — here's the architecture

↗ Quelle (dev.to)
🗣️ Stimme:
📑 Inhaltsübersicht

A few months ago I started building (React for the terminal), terminaltui is in the same neighborhood but a step further — it ships routing, layout, and themes as defaults instead of "bring your own React patterns."






The file-based router



A terminaltui project is just two things: config.ts and pages/.




CODE
// pages/about.ts
import { card, markdown } from "terminaltui";

export const metadata = {
label: "About",
icon: "",
order: 2,
};

export default function About() {
return [
card({ title: "About me", body: "Developer." }),
markdown("Some markdown here."),
];
}






File paths map to routes the same way Next.js does:




CODE
pages/
index.ts → /
about.ts → /about
projects/
index.ts → /projects
[slug].ts → /projects/:slug






Dynamic routes use bracket syntax. The page function gets { params: { slug: string } }.



Under the hood, the framework walks the pages/ directory at boot, compiles each TS file via esbuild (or imports directly under tsx in dev mode), and builds a route table. Spatial navigation is automatic — arrow keys move to the nearest focusable item by screen position. You never write a tabIndex.



You can read the if you want to see how the multi-session isolation works (it uses Node's AsyncLocalStorage so each session sees its own runtime context).






Why TypeScript instead of Go or Rust?



I get this question a lot. Honest answer: most existing TUI frameworks are written in Go (), or Python ( + the bundled demos (npx terminaltui demo restaurant, etc.) are the manual.


  • No Windows ConPTY fast path. Works on Windows via a fallback, but native ConPTY support would speed it up.


  • No hot-reload for api/ routes in dev. Pages hot-reload fine; API endpoints currently require a restart.



  • If any of those bother you, the . v1.8.1 is .



    If you build something with it, I'd love to see it.

    Vollständiger Original-Bericht
    Ausführliche Details, Code-Beispiele & Hersteller-Stellungnahme auf dev.to.
    ↗ Original-Artikel auf dev.to lesen
    Wie bewertest du diesen Beitrag?
    1 Klick Feedback
    Teilen mit Netzwerk & Team:

    Community-Analysen & Experten-Meinungen 0

    Verfasse deine eigene Analyse, teile Workarounds oder diskutiere diesen Vorfall im Blog.
    Noch keine Community-Analyse verfasst. Markiere einen Textabschnitt oder klicke oben auf Eigene Analyse verfassen“!
    Community Pulse: Relevanz-Einschätzung
    1 Klick Experten-Votum
    🔴 Akute Relevanz 0%
    🟡 In Evaluierung 0%
    🟢 Keine Auswirkung 0%
    Spannende Innovation 0%
    Verwandte Story-Cluster & Quellen (Vektor-KI)
    Port 8095 Engine
    1 Quelle
    Sam Altman calls GPT-6 Astra rollout ‘messy’ as enterprise users wait for access
    1 Quelle
    Swiss government explores replacing Microsoft 365 with open-source software
    1 Quelle
    What continuous operational resilience looks like under DORA
    Ähnliche Beiträge
    🔍 Verwandte News

    Auch interessante Nachrichten I built "Next.js for the terminal" in TypeScript — here's the architecture

    Thematisch verwandte Begriffe: built, Nextjs, terminal, TypeScript · 6 Treffer

    Laden...

    Videos werden geladen ...

    Laden...

    Beiträge werden geladen ...

    Laden...

    Videos werden geladen ...

    Laden...

    Beiträge werden geladen ...

    Laden...

    Videos werden geladen ...

    Laden...

    Beiträge werden geladen ...

    Laden...

    Videos werden geladen ...

    Laden...

    Beiträge werden geladen ...

    Laden...

    Videos werden geladen ...