Web Components
Custom elements purs (Stencil). Aucune dépendance de framework.
bun add @streamline-pulse/formkrafter-wcUn builder de formulaires drag & drop et son renderer, utilisables en HTML pur, React, Vue ou React Native — avec validation, règles dynamiques, formulaires imbriqués et i18n intégrés.
$ bun add @streamline-pulse/formkrafter-react
Chaque formulaire est un arbre JSON de bricks — champs, panels, validations, règles. Exportable, diffable, stockable où vous voulez.
{ id: 'email', validations: [required] }Le même spec compile un schéma Ajv — côté client en temps réel, côté serveur avec exactement le même verdict.
validateFormData(spec, data, 'fr')Un seul spec, quatre renderers : Web Components nus, React, Vue ou React Native — au choix par app, une seule source de vérité.
<FkFormRender spec={spec} />Custom elements purs (Stencil). Aucune dépendance de framework.
bun add @streamline-pulse/formkrafter-wcWrappers fins générés depuis les web components — props et événements typés.
bun add @streamline-pulse/formkrafter-reactMême surface, composants Vue natifs.
bun add @streamline-pulse/formkrafter-vueRenderer en primitives natives pour React Native et Expo. Mêmes specs, mêmes règles, même validation.
bun add @streamline-pulse/formkrafter-react-nativeWeb Components à la base ; wrappers React et Vue générés depuis la même source.
~130 Ko gzippés pour une page qui fait tourner le builder complet. Éditeur de code en lazy, zéro framework CSS.
JSON Logic ou JS sandboxé par un interpréteur AST : compatible CSP, budget d’exécution.
Formulaires en JSON portable. Patches RFC 6902 bidirectionnels, undo/redo intégré.
convertFormioForm migre champs, wizards, validations et uploads — et signale le reste.
Contenu et chrome du builder localisés ; anglais et français fournis, extensible.
import { useState } from 'react'
import { FkFormBuilder, FkFormRender } from '@streamline-pulse/formkrafter-react'
import '@streamline-pulse/formkrafter-wc/styles.css'
export function FormStudio() {
const [spec, setSpec] = useState()
return (
<>
<FkFormBuilder onSpecChange={(e) => setSpec(e.detail.spec)} />
{spec && (
<FkFormRender
spec={spec}
onFormSubmit={(e) => console.log(e.detail.data)}
/>
)}
</>
)
}Divisez par ~3,5 le poids gzippé de votre stack, abandonnez Bootstrap, et voyez vos définitions stockées fondre de 3 à 5,5× sur des exports de production réels.
Gestion de dossiers, approbations, consoles d'admin — les formulaires que votre équipe ops touche chaque jour.
Formulaires publics multilingues, documents officiels, règles d’éligibilité conditionnelles.
KYC, onboarding produit, feedback — des wizards avec validation par étape.
Donnez à vos propres clients un builder de formulaires — palette en marque blanche, votre modèle de données.
Ajoutez FormKrafter à l’app que vous avez déjà.
$ bun add @streamline-pulse/formkrafter-react