POUR LE HTML/JS VANILLA

Le cloud aussi simple que localStorage.

Vibe codeurs, débutants, petits projets : arrêtez de tout casser dès qu'il faut plusieurs utilisateurs ou plusieurs appareils. Même API, vraie persistance.

<!-- 1. Ajoutez le SDK -->
<script src="/loko-sdk.js"></script>

<script>
  // 2. Initialisez avec l'URL et la clé du projet
  const loko = new Loko({
    serverUrl: 'https://votre-serveur-loko.example',
    projectId: 'votre-project-id'
  });
  await loko.authWithPassword(email, password);

  // 3. Stockez comme avec localStorage
  await loko.setItem('theme', 'dark');
  const theme = await loko.getItem('theme');
</script>
0
CONFIG BACKEND
1
TAG SCRIPT
20
PROJETS / COMPTE
50Mo
PAR PROJET

Vous connaissez déjà l'API. On la rend juste cloud.

Vous laissez l'IA coder, et soudain vos données doivent survivre au rechargement, au changement d'appareil, ou à plusieurs utilisateurs. Firebase et Supabase sont puissants, mais leur courbe d'apprentissage tue le vibe.

01

Même API, vraie persistance

Gardez setItem / getItem. Les données suivent vos utilisateurs partout.

02

Utilisateurs par projet

Chaque projet a ses propres utilisateurs finaux, email + mot de passe, isolés des autres.

03

Zéro build step

Un tag <script> suffit. Compatible Vite si vous préférez les imports ES modules.

CLOUD LOCALSTORAGE

Stockez des clés-valeurs comme vous le faites déjà.

Pas de nouvelle API à apprendre. Mêmes méthodes que localStorage, mais la valeur survit au navigateur.

  • loko.setItem(key, value)
  • loko.getItem(key)
  • loko.removeItem(key)
// Avant : reste sur l'appareil
localStorage.setItem('theme', 'dark');

// Après : suit l'utilisateur
await loko.setItem('theme', 'dark');
const theme = await loko.getItem('theme');
// Cloud IndexedDB
const tasks = loko.store('tasks');

const id = await tasks.add({
  title: 'Acheter du lait',
  done: false
});

const all = await tasks.getAll();
await tasks.update(id, { done: true });
CLOUD INDEXEDDB

Des stores JSON sans schéma rigide.

Besoin de données structurées ? Créez des stores nommés et manipulez des documents JSON : add, get, update, delete, getAll.

  • Pas de schéma imposé
  • CRUD complet sur chaque store
  • Données isolées par utilisateur

Un prix simple. 14 jours gratuits pour commencer.

Créez votre compte, testez Loko pendant 14 jours avec un projet. Sans clé, sans carte bancaire. Passez au forfait payant quand vous êtes prêt.

Commencez ici

Essai gratuit

0 FCFA
pendant 14 jours
  • 1 projet inclus
  • 100 utilisateurs finaux / projet
  • 10 000 KV + 10 000 documents
  • 50 Mo de données / projet
Commencer gratuitement

Mensuel

990 FCFA
par mois
  • Jusqu'à 20 projets
  • 100 utilisateurs finaux / projet
  • 10 000 KV + 10 000 documents
  • 50 Mo de données / projet
Choisir mensuel

Besoin de plus ? Contactez le service client pour augmenter vos limites.

Intégrer Loko en quelques étapes.

Le dashboard vous donne les valeurs exactes de votre projet. Copiez le snippet généré, puis choisissez le type de données adapté à votre application.

01
Créez votre compte et votre projet.

Le projet isole les utilisateurs et les données de votre application.

02
Récupérez vos deux paramètres.

serverUrl est l’URL publique de votre serveur Loko. projectId est la clé publique d’identification de votre projet, visible dans le dashboard.

03
Ajoutez le SDK et initialisez Loko.

Le SDK utilise fetch, sans dépendance au SDK JavaScript PocketBase.

04
Authentifiez chaque utilisateur final.

Les données sont liées à l’utilisateur connecté et restent disponibles après rechargement.

<script src="https://votre-serveur-loko.example/loko-sdk.js"></script>
<script>
  const loko = new Loko({
    serverUrl: 'https://votre-serveur-loko.example',
    projectId: 'votre-project-id'
  });

  await loko.authWithPassword(email, password);
</script>

KV : des clés-valeurs simples

Utilisez KV pour les préférences et petites valeurs liées à l’utilisateur.

  • setItem('theme', 'dark')
  • getItem('theme')
  • removeItem('theme')

Store : des documents structurés

Utilisez un Store pour des listes et objets JSON avec plusieurs champs. Chaque document est stocké dans le champ data du record retourné.

  • const tasks = loko.store('tasks')
  • tasks.add(data) et tasks.update(id, data)
  • tasks.getAll() retourne des records avec record.data pour accéder au contenu
Sécurité CORS optionnelle : dans le dashboard, ouvrez la section « Sécurité CORS » du projet, activez-la et ajoutez une origine par ligne, par exemple https://mon-app.com. Tant qu’elle reste désactivée, Loko conserve le comportement ouvert par défaut.