Un produit 101 Studios
Les liens courtsde vos campagnes.
Pulse ajoute à vos applications des liens courts rangés par campagne et par volet, une variante par canal, et ce que chacun rapporte. Un clic ne nomme personne, et les données restent sur vos serveurs.
Démo interactive
Tout tourne dans votre navigateur : rien n'est envoyé, rien n'est gardé après votre visite.
Une variante par canal
Radio, réseaux, QR code : une URL chacun, une seule destination, les clics de chaque canal.
Des URL qui tiennent
Un code ne passe jamais à un autre lien. Un lien déjà cliqué s'éteint, il ne se supprime pas.
Des chiffres honnêtes
Des clics, jamais des « visiteurs » ; les robots à part ; la période et son fuseau toujours écrits.
Trois langues
Français, anglais et allemand.
01Rangés par campagne
Une campagne pour un client, un projet ou un événement ; des volets pour ses étapes ; dans chaque volet, les liens et leurs variantes. Les résultats se lisent à chaque niveau, et leur somme fait le total.
Un lien en un geste
Collez une adresse, appuyez sur Entrée : l'URL courte est là, prête à copier.
Les clics restent où ils ont eu lieu
Déplacer un lien vers un autre volet ne réécrit pas les résultats passés.
Un historique en phrases
Qui a changé quoi et quand, sans compter les clics.
Le suivi peut tomber
Si l'écriture des clics échoue, les liens répondent toujours ; les clics perdus sont signalés.
02Vos données restent chez vous
Pulse s'installe dans votre application, sur votre base de données. Rien ne passe par 101 Studios, et vous pouvez dire à tout moment où vont les données et qui les voit.
Sur vos serveurs
Les tables de Pulse vivent dans votre base Postgres, à côté des vôtres.
Un clic ne nomme personne
Ni adresse IP, ni navigateur, ni provenance, ni cookie : la date, le lien, la variante, et s'il s'agit d'un robot connu.
25 mois, puis effacés
Les clics sont gardés 25 mois par défaut, puis supprimés par la maintenance de nuit.
Vos règles d'accès
Qui voit quoi suit les droits de votre application : lecture, écriture, gestion. Le reste n'existe pas pour lui.
Un rapport de partage
Pour chaque espace : chaque URL qui répond, où elle mène, qui l'a créée, qui y a accès.
Export et effacement
Les données d'une personne s'exportent, et s'effacent à sa demande ; un espace se purge en une opération.
03Intégré à votre application
Un serveur et son adaptateur AdonisJS, un client, des composants React. Les couleurs suivent vos variables CSS, et la documentation couvre chaque étape.
// config/pulse.ts
export default defineConfig({
user: (ctx) => ({ id: String(ctx.auth.user.id), name: ctx.auth.user.fullName }),
access: (person, owner) => accessTo(person.id, owner),
publicBase: "https://go.example.com/",
timeZone: "Europe/Luxembourg",
})
// start/routes.ts
router.group(() => pulseRoutes()).prefix("/pulse").use(middleware.auth())
router.group(() => pulsePublicRoutes()).domain("go.example.com").use(middleware.throttle())const service = createHttpService({
baseUrl: "/pulse",
headers: () => ({ "X-XSRF-TOKEN": xsrfToken() }),
})
<PulseProvider service={service} user={me} lang="fr">
<QuickLink owner="resource:42" onOpen={(link) => navigate(link.id)} />
<CampaignView id={campaignId} onOpenLink={(link) => navigate(link.id)} />
</PulseProvider>