Choisir un adapter
Où vivent vos feedbacks — Prisma ou SQLite pour la production, memory pour les tests et démos, localStorage pour le tout-client.
Un adapter, c'est la couche de stockage derrière InstaFix. Tous implémentent le même contrat InstaFixStore (6 méthodes), vous pouvez donc les échanger sans toucher au widget.
| Adapter | Où vivent les données | À utiliser pour |
|---|---|---|
@instafix/adapter-prisma | Votre base de données, via Prisma | La production — si Prisma est déjà en place |
@instafix/adapter-sqlite | Un fichier .db local, via better-sqlite3 | La production — sans ORM ni serveur de base de données |
@instafix/adapter-memory | Un tableau en mémoire du processus | Tests, previews, démos jetables |
@instafix/adapter-localstorage | Le navigateur du visiteur | Démos et prototypes côté client — aucun serveur |
Vous hésitez ? Si le projet a déjà Prisma, utilisez-le — sinon SQLite donne un stockage durable réel sans rien d'autre à installer ou faire tourner. npx github:gnoopy/instafix#cli-dist init vous le demande et branche celui que vous choisissez.
Besoin d'un tout autre backend (Postgres sans Prisma, MongoDB, DynamoDB, …) ? Écrivez le vôtre avec @instafix/adapter-kit.
Deux façons de monter un store
Mode serveur — le widget parle à un endpoint HTTP, et l'endpoint parle au store. C'est la forme de production :
// app/api/instafix/route.ts
import { createInstaFixHandler } from "@instafix/adapter-prisma";
import { prisma } from "@/lib/prisma";
export const { GET, POST, PATCH, DELETE, OPTIONS } = createInstaFixHandler({ prisma });Mode côté client — le widget écrit directement dans un store du navigateur, aucun serveur nécessaire :
import { initInstaFix } from "@instafix/widget";
import { LocalStorageStore } from "@instafix/adapter-localstorage";
initInstaFix({ store: new LocalStorageStore(), projectName: "ma-demo" });Vous écrivez votre propre adapter ? Installez
@instafix/adapter-kit: les backends snapshot obtiennent un store complet viacreateCollectionStore, les backends à requêtes implémentent les 6 méthodes, et les deux se vérifient avec la suite de conformité partagée (44 tests). Voir Écrire un adapter.