Un produit 101 Studios

Les contactsde vos applications.

101 Contacts ajoute à vos applications un carnet d'adresses : des personnes, des organisations, les liens entre elles et des listes. Une fiche naît d'un nom et s'enrichit quand on en sait plus. Chacun voit ce que votre application lui permet de voir, et les données restent sur vos serveurs.

Démonstration interactive

Tout tourne dans votre navigateur : rien n'est envoyé, rien n'est gardé après la visite.

  • Un nom suffit

    Une fiche se crée à partir d'un nom. Le reste s'ajoute quand on le sait, une information à la fois.

  • Une seule fiche

    Une personne dans trois organisations reste une seule fiche, avec une fonction et des coordonnées pour chacune.

  • Un historique factuel

    Qui a changé quoi, quand, avant et après. Jamais le texte d'une note.

  • Trois langues

    Français, anglais et allemand.

01Le carnet au quotidien

Une fiche se crée en tapant un nom puis Entrée, et s'ouvre aussitôt. Chaque information s'ajoute à part : pas de formulaire à remplir, pas de rubrique vide.

  • Des coordonnées structurées

    Téléphones au format international, e-mails, adresses dans l'ordre de leur pays, sites web. Une coordonnée principale par type, si on le souhaite.

  • Des coordonnées professionnelles

    Le lien entre une personne et une organisation a sa fonction et ses propres coordonnées : le numéro chez l'une ne devient jamais celui chez l'autre.

  • Des listes faites à la main

    Des personnes et des organisations réunies sans être copiées. Retirer un membre ou supprimer la liste ne touche à aucune fiche.

  • Une recherche directe

    Par nom, e-mail, chiffres d'un numéro ou ville, avec ou sans accents. Et des filtres par liste et par organisation.

  • Des doublons signalés, jamais fusionnés

    Une fiche qui ressemble à une autre le dit, avec ses raisons. Un standard partagé ne suffit pas à confondre deux personnes. Rien ne bloque.

  • Des notes

    Plusieurs notes par fiche, mises en forme avec l'éditeur de Kali'n T. Aucune n'est principale.

02Vos données restent chez vous

101 Contacts 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 101 Contacts vivent dans votre base Postgres, à côté des vôtres.

  • Vos règles d'accès

    Lecture, écriture, propriétaire : sur le carnet d'une personne, l'annuaire d'une équipe ou celui d'un client. Le reste n'existe pas pour lui.

  • Effacer pour de bon

    Une fiche supprimée emporte ses coordonnées, ses liens, ses notes, sa place dans les listes, et ses valeurs dans tous les historiques.

  • Des renvois qui ne révèlent rien

    Une fiche citée par une autre brique, un élément de votre application lié à une fiche : chacun ne voit que ce qu'il peut ouvrir. Aux autres, ni nom ni coordonnée.

  • Rien ne sort

    Ni envoi, ni synchronisation, ni webhook. Une adresse e-mail sur une fiche n'invite personne. Ce qui se passe ne parvient qu'à votre application.

  • Rapport, export et oubli

    Pour chaque espace, ce qu'il contient et qui y a travaillé. Les données d'un utilisateur s'exportent, et s'effacent à sa demande.

03S'intègre à votre application

Un serveur et son adaptateur AdonisJS, un client, des composants React. Les couleurs suivent vos variables CSS, et la documentation décrit chaque étape.

Côté serveur
// config/contacts.ts
export default defineConfig({
  user: (ctx) => personOf(ctx.auth.user),
  access: (person, owner) => accessTo(person, owner),
  defaultCountry: "LU",
})

// start/routes.ts
router
  .group(() => contactsRoutes())
  .prefix("/contacts")
  .use(middleware.auth())
Côté interface
const service = createHttpService({ baseUrl: "/contacts" })

<ContactsProvider service={service} user={me} lang="fr">
  <Directory owner="workspace:3" tab={tab} onTabChange={setTab}
    onOpenCard={openCard} onOpenList={openList} />
  <CardView id={cardId} onOpenCard={openCard} />
</ContactsProvider>