Framework konsol
Bangun aplikasi React full-stack yang di-render di dalam console.log.
Halaman ini berjalan di konsol Anda. Buka dengan ⌘⌥JCtrl+Shift+J⌘⌥KCtrl+Shift+K⌘⌥C (aktifkan fitur pengembang dahulu), klik pratinjau di bawah, dan tekan ↑ ↓.
1import { useState } from "react";2import { AsciiFont, Box, Text, useInput } from "@textjs/app";34export default function Page() {5 const [count, setCount] = useState(0);6 useInput((e) => {7 if (e.key === "up") setCount((c) => c + 1);8 if (e.key === "down") setCount((c) => c - 1);9 });1011 return (12 <Box className="flex-col gap-1 p-2">13 <AsciiFont text="▼ TEXT.JS" />14 <Text color="muted">React 19 in console.log</Text>15 <Text bold color="accent">count = {count}</Text>16 </Box>17 );18}React 19
Text.js mendukung concurrent rendering, Suspense, dan error boundary.
App Router
Folder di app/ menjadi route dan layout, dan Kembali, Maju serta deep link berfungsi.
Grid responsif
Grid menyesuaikan panel DevTools yang ditambatkan pada tingkat zoom halaman apa pun.
Input keyboard
Tombol, tempelan, dan komposisi IME diteruskan ke aplikasi melalui satu <textarea> tersembunyi.
Tabel, grafik, formulir, dan pintasan
Setiap frame yang berubah adalah satu panggilan console.log
Commit yang tidak mengubah sel tidak pernah mencapai konsol.
- React 19
01Commit
React menjalankan commit lewat reconciler khusus.
- Yoga
02Layout
Yoga menata kotak pada sel utuh.
- CellBuffer
03Gambar
Hanya baris yang berubah digambar ulang.
- Hash baris
04Gerbang perubahan
Frame yang tidak berubah berhenti di sini.
- RLE
05Enkode
3.200 sel menjadi 149 span
%c. - console.log
06Kirim
Frame ditambahkan di akhir dengan jeda minimal 66 ms.
Frame yang ditambahkan di akhir
Mengosongkan konsol sebelum setiap frame membuatnya kosong sampai DevTools menggambar frame berikutnya. Turbolog menambahkan setiap frame di akhir.
Baca artikelclear() + log()70.6% kosonglog(), appended1.0% kosong%c untuk 3.200 selRender route di server
Ekspor runtime = "server" untuk me-render route dan komponen asinkronnya di server. Browser memuat pemutar frame berukuran 21 kB (gzip), bukan aplikasi Anda.
1import { Suspense } from "react";2import { Box, Text } from "@textjs/app";3import { db } from "@/lib/db";45export const runtime = "server";67async function Deploys() {8 const rows = await db.deploys.latest(5);9 return rows.map((d) => (10 <Text key={d.id}>{`${d.state} ${d.branch}`}</Text>11 ));12}1314export default function Page() {15 return (16 <Box className="flex-col p-1">17 <Text bold>Deployments</Text>18 <Suspense fallback={<Text color="muted">Loading…</Text>}>19 <Deploys />20 </Suspense>21 </Box>22 );23}- Prerender parsialFrame pertama setiap route statis disertakan dalam HTML-nya. Konsol menampilkan frame sebelum JavaScript dimuat.
- Middleware
middleware.tsberjalan sebelum permintaan yang cocok, denganNextRequest,NextResponse, danconfig.matcher. - Caching
revalidate,unstable_cache, danrevalidateTagmenyimpan route handler dan data dalam cache, dengan stale-while-revalidate. - Adaptor deploy
text build --adaptermenargetkanstatic,bun,vercelataucloudflare. Route yang di-render di server memerlukanbunatautext start.
Juga berjalan di terminal dan agen
DevToolstext dev
Turbolog menulis setiap frame sebagai span %c dalam satu console.log.
Terminaltext run
text run me-render aplikasi App Router yang sama dalam ANSI truecolor dan menjalankan route handler dalam proses yang sama.
Agen pemrogramantext mcp
Lewat MCP, agen menavigasi route, menekan tombol, dan membaca setiap frame sebagai teks biasa.
Tulis kode dengan OpenCode di DevTools
OpenCode Lite adalah TUI OpenCode yang dibangun ulang dengan Text.js untuk berjalan di konsol browser Anda.
Sandbox
Agen berskrip menjawab prompt apa pun, tanpa perlu instalasi.
Satu perintah
Jalankan bunx @textjs/opencode@latest proxy dan masukkan kode yang ditampilkan. Halaman terhubung ke OpenCode di mesin Anda.
Model dan sesi Anda
Pilih model apa pun yang dikonfigurasi di server Anda dengan /models. Sesi, agen, dan model berasal dari server OpenCode Anda.
Perkakas editor, lint, dan pengujian
Ekstensi DevTools
Menambahkan panel dengan pohon komponen, pemeriksa frame, dan linimasa per frame.
Panel Text.jsVS Code
Menampilkan pratinjau frame di samping kode Anda dan membuat kerangka file App Router.
⌘K VESLint
Mendeteksi tag DOM dalam komponen konsol, kotak dalam teks, dan glif yang tidak tersedia di Menlo.
eslint-plugin-textjsPengujian
Render di luar layar, tekan tombol, dan jalankan asersi pada lastFrame() di test runner apa pun.
Kode kesalahan
Kesalahan dan peringatan berkode TX tertaut ke halaman yang menjelaskan perbaikannya.
REPL konsol
Jeda, ubah ukuran, tampilkan wireframe, dan salin aplikasi yang berjalan dari prompt konsol.
window.textKanan ke kiri
Menerapkan Algoritma Dua Arah Unicode dan lolos semua 770.241 kasus BidiTest.txt.
Font FIGlet
Mengurai file .flf dan mencocokkan 273 keluaran yang direkam dari biner figlet.
Buat dasbor deploy di konsol Anda
Kursus gratis ini memiliki 10 bab dan memakan waktu sekitar 65 menit.