Le framework de rendu natif de bext

TSX rendu côté serveur,
propulsé par le moteur.

PRISM est le framework TSX server-first de bext — un runtime JSX natif sans React, un compile pass, des signaux fins et des îlots dans le runtime de votre choix. Il compile votre TSX en bundles V8 et les exécute dans le même processus bext qui gère TLS, routage et cache.

DémarrerVoir toutes les fonctionnalités
.tsxbextHTML streamIslandsRSC / FlightISR cacheOG imagesFonts + assets
En contexte

La place de PRISM dans une requête

bext est le moteur. PRISM est l'étape de rendu à l'intérieur — pas un outil séparé à lancer ou déployer.

Requête

  • HTTP/1.1 · 2 · 3
  • N'importe quel domaine

bext

  • Terminaison TLS
  • Routage + proxy inverse
  • Cache · compression · WAF

PRISM render

  • TSX natif → HTML
  • Pool d'isolats V8
  • Sortie vers ISR · cache · HTTP
Deux façons de construire

PRISM natif, ou l’adaptateur React de bext

PRISM est le chemin TSX → HTML natif. Pour une app React ou Next.js existante, bext fournit un adaptateur séparé ; les mesures de cette page concernent uniquement PRISM natif.

Adaptateur bext distinct

React / Next.js existant

Choisissez [framework] type = "nextjs" pour conserver React, RSC et les conventions App Router. Ce chemin n’utilise pas le renderer PRISM natif.

  • Async server components, <Suspense> and the use(promise) hook
  • "use client" islands hydrated automatically
  • React Server Components & server actions
  • next/font, next/image, next/link
  • Most Next.js App Router apps migrate with minimal changes
PRISM natif

Aller tout-en-PRISM

Abandonnez React et utilisez les primitives propres de PRISM pour une stack plus légère, server-first.

  • Its own h() JSX runtime — light, server-first, no React required
  • Fine-grained signals + <List> / <Show> / <Switch>
  • Bext Query, server-action <Form>s, native Tailwind
  • Signed sessions, OAuth, role gating, object storage, SSE, MDX
  • Islands in React, Preact, Solid, or signals — your choice per component
Fonctionnement

De page.tsx à HTML streamé

1

Écrire un page.tsx

Routage par fichiers, server components async, layouts, loaders et route handlers — les conventions que vous connaissez déjà.

2

Le compile pass plie le TSX

Les balises et sous-arbres statiques deviennent des fragments HTML ; les listes deviennent des boucles avec un seul accumulateur.

3

Rendu dans V8

Le bundle mis en cache s’exécute dans un isolat V8 chaud. Le runtime JSX automatique gère les parties dynamiques non pliées, sans React ni DOM virtuel.

4

HTML + cache

Le HTML sûr et validé est transmis au pipeline ISR et HTTP ; les îlots interactifs optionnels s’hydratent séparément dans le navigateur.

Le code

TSX natif, îlots optionnels

Le rendu serveur n’utilise pas React. Un îlot client peut toutefois choisir React, Preact, Solid ou les signaux PRISM.

app/page.tsx
'use server';

// async server component
export default async function Page() {
  const posts = await db.posts.all();
  return (
    <Suspense fallback={<Spinner />}>
      <Feed posts={posts} />
    </Suspense>
  );
}
app/counter.tsx
'use client';

import { useState } from 'react';

// auto-detected island
export function Counter() {
  const [n, setN] = useState(0);
  return (
    <button onClick={() => setN(n + 1)}>
      count: {n}
    </button>
  );
}
app/api/route.ts
export async function GET(req) {
  const data = await load();
  return Response.json(data, {
    headers: {
      'cache-control': 's-maxage=60',
    },
  });
}
Capacités

Un framework complet, intégré

SSR streamé

Les composants async, les générateurs et le Suspense PRISM produisent des fragments HTML au fil de leur disponibilité.

Îlots, n'importe quel runtime

Les îlots React « use client » sont détectés automatiquement ; l’API d’îlots permet aussi Preact, Solid ou les signaux natifs de PRISM.

Signaux fins

Un runtime réactif intégré — signal / computed / effect avec <List>, <Show> et <Switch> à clé. Réactivité Solid-style, rendue côté serveur et hydratée.

Bext Query

Une couche de données façon TanStack Query, construite sur les signaux — createQuery / createMutation avec cache, état et revalidation en arrière-plan.

Formulaires server action

<Form> poste vers une action « use server » et fonctionne sans JavaScript — amélioration progressive, UI optimiste et validation intégrées.

Compile pass

Les sous-arbres TSX statiques, les attributs sûrs et les listes reconnues deviennent des concaténations et boucles directes avant l'exécution V8.

ISR + cache fragment

ISR au niveau page avec stale-while-revalidate et protection anti-stampede, plus un composant <ISR> pour mettre en cache des fragments avec leur propre TTL.

Tailwind natif

Les classes utilitaires sont extraites du HTML rendu et inlinées en feuille de style par route — sans PostCSS, sans build step, zéro CPU quand inutilisé.

Object storage

Uploads et downloads S3 / R2 / MinIO présignés depuis un seul import — presignPut, presignGet, uploadDirect — configurés dans bext.config.toml.

Génération d'images OG

Images Open Graph dynamiques rendues côté serveur avec un moteur CSS Taffy et rastérisation de texte. Aucun service externe.

Cold starts par snapshot

Des isolats préchauffés par heap-snapshot rendent un nouveau worker immédiatement prêt — pas de warm-up JIT, pas de pénalité de cold start.

Dans le binaire

Pas de Node.js, pas de service SSR séparé, pas de sidecar. PRISM s'exécute dans le même processus bext qui termine TLS, route, met en cache et protège.

15,7 µs
rendu PRISM compilé · moyenne
75,3 µs
runtime JSX automatique · moyenne
~116×
plus rapide que React 19, compilé
0
processus Node.js
Parité

Les conventions que vous connaissez déjà

PRISM reprend les conventions de fichiers et de routage familières d’App Router, tout en utilisant son propre renderer TSX.

page.tsxlayout.tsxloading.tsxerror.tsxnot-found.tsxtemplate.tsxroute.tsmiddleware.tsgenerateMetadatagenerateStaticParams[dynamic][...catch-all]route groups (…)parallel @slotsintercepting routesnext/linknext/imagenext/fontmetadata filessitemap + robots
56

exemples exécutables, en direct

Chaque primitive de cette page est câblée et tourne sur demo.bext.dev — signaux, server actions, streaming, cache, auth, storage et plus. Lisez le code source, observez le résultat.

signalsserver actionsstreamingISR + fragment cachesessionsOAuthSSEMDXi18nstorageoptimistic UIvalidation
Explorer les démos

Livrez du TSX sans React ni Node.js

PRISM compile, rend, streame et met en cache votre TSX natif — depuis le même processus bext.

Lire la documentationVoir toutes les fonctionnalités