SMF·SEATABLE-CLOUD
Un prompt peut-il remplacer SeaTable Cloud ?
Bases de données — spreadsheet databases and operational data apps
Bordereau de suivi des pièces
Verdict
La plupart des bases de données-tableurs sont un stockage en lignes avec une jolie interface, et elles ralentissent jusqu’à ramper quelque part dans les dizaines de milliers de lignes. La propriété distinctive de SeaTable, c’est qu’elle a été construite pour en contenir bien plus. La reproduire veut dire poser le même modèle de grille et de vue par-dessus un stockage colonnaire, où filtrer et agréger un million de lignes est instantané — ce qui est un problème d’ingénierie vraiment différent des autres fiches de cette catégorie, et un vrai chantier de deux semaines.
Pièce A — Le prompt
Reçu le31.07.2026Construis une base de données-tableur dont la propriété déterminante est qu’elle reste rapide à un million de lignes.
Stockage : un moteur colonnaire plutôt qu’un stockage en lignes — DuckDB par-dessus des fichiers Parquet, un jeu de fichiers par table, avec un journal d’ajout pour les écritures récentes compacté sur un planning. Champs typés en texte, nombre, date, booléen, liste déroulante simple, liste déroulante multiple, et lien vers une autre table. Le système de types existe pour laisser la couche de stockage faire son travail, donc il est volontairement plus petit que ce qu’un produit à stockage en lignes pourrait se permettre.
Pourquoi ça compte, et quoi tester : filtrer, trier, grouper et agréger sont les opérations qui rendent une table utile et celles qui s’effondrent en premier à l’échelle. Livre une commande de benchmark qui génère une table synthétique d’un, dix et cent millions de lignes et rapporte les temps pour : un scan filtré, un groupement-et-somme, un tri sur une colonne non indexée, et une mise à jour d’une seule cellule. Publie ces chiffres dans le README. Un produit de base de données qui ne déclare pas sa propre performance demande qu’on le croie sur parole.
Grille : rendu virtualisé pour que le défilement d’un million de lignes soit fluide — seules les lignes visibles existent dans le DOM, avec une hauteur de ligne fixe pour garder les calculs de défilement triviaux. Redimensionnement, réordonnancement, gel de colonnes, et édition en ligne. Coller depuis un tableur vers une plage.
Vues : une vue est un filtre, tri, groupement, sous-ensemble de champs et hauteur de ligne enregistrés, nommés et partageables par URL. Grille, kanban groupé par un champ liste déroulante, et galerie. Les vues doivent être calculées par le moteur de stockage, jamais en récupérant chaque ligne et en filtrant dans le navigateur — c’est exactement ce qui casse à l’échelle.
Écrire à l’échelle : une modification d’une seule cellule s’ajoute au journal d’écriture et est visible immédiatement. Une modification en masse sur une sélection filtrée de cent mille lignes tourne comme une seule opération moteur avec un indicateur de progression et est transactionnelle. Importe un CSV d’un million de lignes avec une barre de progression et une déduction de type par colonne que l’utilisateur confirme avant validation.
Barre d’agrégation : des résumés par colonne (compte, somme, moyenne, min, max, compte distinct) calculés sur la vue actuelle, se mettant à jour à mesure que les filtres changent. C’est la fonctionnalité qui sépare le plus visiblement un stockage colonnaire d’un stockage en lignes, donc rends-la toujours visible.
API : un point de terminaison REST par table avec filtre, tri et pagination par curseur, ne retournant que les champs demandés.
Sauvegardes : export planifié des fichiers Parquet de chaque table plus le schéma, avec une restauration documentée et testée.
Hors périmètre : l’édition collaborative en temps réel, un système d’automatisation ou de plugins, une couche de construction d’applications, et tout déploiement multi-locataire hébergé. Note dans le README que la propre édition communautaire de SeaTable est open source et que l’auto-héberger est une alternative légitime à ce projet.
L’ouverture pré-remplit le prompt — il ne reste qu’à appuyer sur entrée.
Pièce B — Ce que tu perds
- B.1 l’édition collaborative en temps réel avec d’autres personnes dans la même table
- B.2 l’écosystème d’automatisation et de plugins
- B.3 les sauvegardes gérées et la disponibilité de quelqu’un d’autre
- B.4 la couche de construction d’applications par-dessus les tables
Alternatives existantes
Pièce C — Pourquoi certains continuent de payer : data model flexibility, collaboration, and integrations
Parce qu’une table opérationnelle partagée n’est utile que si plusieurs personnes peuvent y être en même temps, et l’édition multi-utilisateur avec gestion des conflits est un problème bien plus vaste que le stockage.
Questions
Est-ce que je peux importer ma base SeaTable ?
Oui. SeaTable exporte les tables en CSV et XLSX, et la déduction de type à l’import gère les cas courants. Les vues, formules et liens entre tables doivent être reconstruits, et les formules en particulier ne se transposeront pas parce que le support d’expressions de ce projet est volontairement plus réduit.
Pourquoi un stockage colonnaire pour un tableur ?
Parce que les opérations qui rendent une table utile à l’échelle — filtrer, grouper, agréger — sont exactement ce pour quoi les stockages colonnaires sont construits. Un stockage en lignes doit toucher chaque ligne pour sommer une colonne ; un stockage colonnaire lit une colonne. Cette différence est invisible à dix mille lignes et décisive à dix millions.
Combien ça coûte à faire tourner ?
Un VPS avec assez de disque pour les fichiers Parquet, donc dix à vingt dollars par mois pour un jeu de tables de plusieurs dizaines de gigaoctets. La compression colonnaire est bonne, donc une table d’un million de lignes est généralement plus petite que le CSV dont elle vient.
Quelle est la seule chose qui ne survit pas à la reconstruction ?
Deux personnes dans la table en même temps. L’édition collaborative en temps réel demande des transformées opérationnelles ou des CRDT sur un document partagé, et un stockage colonnaire avec un journal d’ajout est proche de l’architecture opposée. Ce projet est rapide et à écrivain unique ; SeaTable est partagé.
Outils proches
Récépissé