veilletech.fr
30 août Feed du jour
#05 WEB Article

Typebase : un back-end dans un dossier TypeScript

L'autorisation relue en revue, pas cachée en console.

Typebase propose de décrire tout un back-end — schéma, actions serveur, authentification — dans un dossier de TypeScript, puis de le déployer chez soi. L'argument tient en une phrase : l'autorisation redevient du code que le compilateur vérifie, au lieu de politiques RLS écrites en SQL et invisibles à la revue. Sous licence MIT, en version 0.1.15.

2 min de lecturevidéo 1:19
Partager
Sommaire4 sections
  1. Ce qui se passe
  2. Le vrai argument : l'autorisation
  3. Ce qu'il y a sous le capot
  4. Avant d'y poser un projet

Ce qui se passe

Typebase crée un dossier typebase/ dans votre application existante : le schéma de base dans db/schema.ts, les actions exportées depuis actions/, puis auth.ts, env.ts et publisher.ts pour le temps réel. Une commande déploie un serveur entièrement typé que le front appelle comme des fonctions locales.

Terminal
npm i typebase-io && npm i -D typebase-io-cli
npx typebase-io-cli init
npx typebase-io-cli deploy

Le déploiement vise Vercel, Cloudflare Workers ou Deno Deploy, avec Postgres sur Neon — ou la génération du code serveur pour l'héberger ailleurs. Le projet revendique de ne posséder aucun serveur.

Le vrai argument : l'autorisation

Le positionnement n'est pas « encore un BaaS », c'est une critique frontale de RLS, et elle mérite d'être entendue même si vous n'adoptez pas l'outil.

Une politique RLS est implicite et vit dans un dialecte SQL que votre éditeur ne typecheck pas. Une seule policy UPDATE ouvre l'écriture sur toutes les colonnes de la table — y compris celles que vous ajouterez demain. Une clause trop permissive passe la revue sans encombre, puisqu'aucun compilateur ne la signale.

Chez Typebase, l'action déclare les colonnes qu'elle accepte et le contrôle d'accès s'exécute en code avant que la donnée n'atteigne la base. Ajoutez une colonne : le compilateur vous dit qui peut y écrire. Formulation de la page d'accueil, qui vise juste à l'heure des agents : le code que votre agent écrit est le code que votre compilateur vérifie.

Ce qu'il y a sous le capot

Rien d'exotique, et c'est le point fort — chaque brique est connue et remplaçable. D'après le package.json publié sur npm (typebase-io 0.1.15, licence MIT) :

Rôle Dépendance
ORM drizzle-orm 1.0.0-beta.22
RPC typé @orpc/client et @orpc/server 1.14.3
Authentification better-auth 1.6.11 (+ adaptateur Drizzle)
Variables d'environnement @t3-oss/env-core 0.13.11
Base PostgreSQL standard

Guides fournis pour Next.js (≥ 15), SvelteKit (≥ 2.20), Nuxt et Expo, avec les idiomes de chacun : Server Components, load functions, plugins Nuxt, SecureStore. Le temps réel passe par des actions en streaming sur SSE.

Avant d'y poser un projet

Le compromis revendiqué — l'expérience de développement de Convex, l'ouverture de Supabase — est le bon axe de comparaison. Reste à vérifier ce que coûte la sortie : une couche d'abstraction de plus est une dépendance de plus, même lorsqu'elle promet qu'on peut éjecter à tout moment.

Source : typebase.io (en anglais).