Konsol framework’ü
console.log içinde render edilen full-stack React uygulamaları geliştirin.
Bu sayfa konsolunuzda çalışıyor. ⌘⌥JCtrl+Shift+J⌘⌥KCtrl+Shift+K⌘⌥C ile açın (önce geliştirici özelliklerini açın), aşağıdaki ön izlemeye tıklayın ve ↑ ↓ tuşlarına basın.
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 eşzamanlı render etmeyi, Suspense’i ve hata sınırlarını destekler.
App Router
app/ içindeki klasörler rota ve layout olur; Geri, İleri ve derin bağlantılar çalışır.
Duyarlı ızgara
Izgara, her sayfa yakınlaştırma düzeyinde sabitlenmiş DevTools paneline sığar.
Klavye girdisi
Tuşlar, yapıştırma ve IME kompozisyonu, tek bir gizli <textarea> üzerinden uygulamaya ulaşır.
Tablolar, grafikler, formlar ve kısayollar
<Box><Stack><Grid><SplitPane><ScrollBox><Center>
<List><Table><Tree><Markdown><Code><Diff>
<LineChart><BarChart><Sparkline><ProgressBar><Gradient><Image>
<Input><Select><Checkbox><Switch><Slider><Dialog>
useKeymap<KeyHelp><KeyHints><CommandPalette><StatusBar>useFocus
Değişen her kare bir console.log çağrısıdır
Hiçbir hücreyi değiştirmeyen bir commit konsola ulaşmaz.
- React 19
01Commit
React, özel bir reconciler ile commit yapar.
- Yoga
02Layout
Yoga kutuları tam hücrelere yerleştirir.
- CellBuffer
03Boyama
Yalnızca değişen satırlar yeniden boyanır.
- Satır hash’i
04Değişiklik kapısı
Değişmeyen kareler burada durur.
- RLE
05Kodlama
3.200 hücre, 149
%cspan’ine dönüşür. - console.log
06Çıktı
Kareler en az 66 ms arayla sona eklenir.
Sona eklenen kareler
Her kareden önce konsolu temizlemek, DevTools bir sonrakini boyayana kadar konsolu boş bırakır. Turbolog bunun yerine her kareyi sona ekler.
Yazıyı okuclear() + log()%70.6 boşlog(), appended%1.0 boş%c argümanlarıRotaları sunucuda render etme
Bir rotayı ve asenkron bileşenlerini sunucuda render etmek için runtime = "server" dışa aktarın. Tarayıcı, uygulamanız yerine 21 kB (gzip) kare oynatıcı yükler.
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}- Kısmi ön renderHer statik rotanın ilk karesi HTML içinde gelir. Konsol, JavaScript yüklenmeden çizilir.
- Ara katman
middleware.ts, eşleşen isteklerden önceNextRequest,NextResponseveconfig.matcherile çalışır. - Önbellekleme
revalidate,unstable_cacheverevalidateTag, stale-while-revalidate ile rota işleyicilerini ve verileri önbelleğe alır. - Dağıtım adaptörleri
text build --adapter,static,bun,vercelveyacloudflarehedefler. Sunucuda render edilen rotalarbunveyatext startgerektirir.
Terminal ve ajanlarda da çalışır
DevToolstext dev
Turbolog her kareyi tek bir console.log içinde %c span’leri olarak yazar.
Terminaltext run
text run aynı App Router uygulamasını truecolor ANSI ile render eder ve rota işleyicilerini aynı işlemde çalıştırır.
Kodlama ajanlarıtext mcp
Ajanlar MCP üzerinden rotalarda gezinir, tuşlara basar ve her kareyi düz metin olarak okur.
DevTools’ta OpenCode ile kodlama
OpenCode Lite, tarayıcı konsolunuzda çalışması için Text.js ile yeniden oluşturulan OpenCode TUI’dır.
Deneme ortamı
Önceden tanımlı bir ajan, kurulum gerektirmeden her prompt’a yanıt verir.
Tek komut
bunx @textjs/opencode@latest proxy komutunu çalıştırın ve yazdırdığı kodu girin. Sayfa, makinenizdeki OpenCode’a bağlanır.
Modelleriniz ve oturumlarınız
/models ile sunucunuzda yapılandırılmış herhangi bir modeli seçin. Oturumlar, ajanlar ve modeller OpenCode sunucunuzdan gelir.
Editör, lint ve test araçları
DevTools uzantısı
Bileşen ağacı, kare inceleyicisi ve kare başına zaman çizelgesi içeren bir panel ekler.
Text.js paneliVS Code
Kareyi kodunuzun yanında önizler ve App Router dosyalarının iskeletini oluşturur.
⌘K VESLint
Konsol bileşenlerindeki DOM etiketlerini, metin içindeki kutuları ve Menlo’da bulunmayan glifleri yakalar.
eslint-plugin-textjsTest
Herhangi bir test çalıştırıcısında ekran dışında render edin, tuşlara basın ve lastFrame() üzerinde doğrulama yapın.
Hata kodları
TX kodlu hata ve uyarılar, çözümü açıklayan bir sayfaya bağlantı verir.
Konsol REPL’i
Çalışan uygulamayı konsol isteminden duraklatın, yeniden boyutlandırın, tel kafes görünümüne geçirin ve kopyalayın.
window.textSağdan sola
Unicode Çift Yönlü Algoritması’nı uygular ve 770.241 BidiTest.txt testinin tümünü geçer.
FIGlet yazı tipleri
.flf dosyalarını ayrıştırır ve figlet ikili dosyasından kaydedilen 273 çıktıyla eşleşir.
Konsolunuzda dağıtım panosu oluşturma
Ücretsiz kurs 10 bölüm içerir ve yaklaşık 65 dakika sürer.