Aller au contenu

Corda

Un service de mise en relation que je construis : un site vitrine et une application avec un tableau de bord pour chaque rôle.

Rôle
Fondateur, conception et développement
Ma part
Chaque décision de conception et de technique était la mienne.
Technologies
HTML, CSS, JavaScript, Canvas 2D, Next.js, TypeScript, Supabase
corda-nu.vercel.app
La page d’accueil de Corda : un fond noir, le titre « You know you need help », deux boutons et un globe de points blancs montrant les Amériques et une partie de l’Afrique.
Fig. 01La page d’accueil : le globe tourne.

01 / 08

L’idée

Dites ce dont vous avez besoin et soyez mis en relation avec une vraie personne qui peut vous aider.

corda-nu.vercel.app
La section « Three steps. No noise. » : trois colonnes encadrées numérotées de 01 à 03, celle du milieu surélevée et son numéro cerclé parce que le pointeur la survole.
Fig. 02Trois étapes.

02 / 08

Le problème

C’est mon entreprise, j’ai donc écrit le cahier des charges. Un client envoie une demande, un administrateur affecte un professionnel, le professionnel traite la demande.

Deux questions en ont façonné l’essentiel : comment encaisser un paiement sur un site sans serveur, et comment garder privées les demandes de chacun dès qu’il y a des comptes.

corda-nu.vercel.app
Le haut de la page « connect » : le titre « Need something done? Start here. », un bouton « Find someone », des exemples de demandes et une rangée de quatre badges.
Fig. 03Là où commence un client.
Le formulaire de demande vide de la page connect : nom, e-mail ou WhatsApp, une liste déroulante de catégories, lieu, détails et un bouton « Request a connection ».
Fig. 04Le formulaire de demande.

03 / 08

L’approche

Deux parties qui n’en font qu’une : huit pages statiques qui expliquent l’idée et recueillent les demandes, et une application qui gère les comptes.

04 / 08

Les décisions

J’ai gardé le site vitrine statique : du HTML, du CSS et du JavaScript simples, sans étape de build ni serveur, toutes les pages partageant une seule feuille de style et un seul script.

Les paiements passent par les liens de paiement hébergés de Flutterwave : les données de carte ne touchent jamais le site et aucun script ni exception de politique de sécurité n’est nécessaire, chaque bouton de paiement n’étant qu’un lien.

Tant qu’il n’existe pas de vrai lien de paiement, un bouton reste cliquable mais annonce que le service arrive bientôt et renvoie vers WhatsApp, et un lien de test oublié compte comme non défini : rien de cassé ne peut donc passer en ligne par erreur.

Les deux premières demandes d’un client sont gratuites. Les formules hébergées de Flutterwave n’ont pas d’essai gratuit et le site n’a pas de comptes sur lesquels compter, donc le décompte est gardé dans le navigateur du visiteur. Il repart de zéro si la personne efface ses données ou change d’appareil, et chaque demande arrive quand même dans ma boîte de réception : je peux donc honorer ou ajuster l’offre moi-même.

Les professionnels s’inscrivent gratuitement pour de bon ; Pro coûte ₦7 500 par mois ; après les deux premières, un client paie un forfait de ₦1 500 par demande.

Dans l’application, la frontière de sécurité est la base de données, pas la page : les règles d’accès sont des politiques de sécurité au niveau des lignes, de sorte qu’un client ne peut pas lire la demande d’un autre, même si une requête de la page était erronée.

Le rôle choisi à l’inscription est copié dans un profil par un déclencheur, et le formulaire ne propose que client et professionnel. Une option administrateur permettrait à n’importe qui de la revendiquer, car les données du formulaire viennent d’un navigateur que personne n’a vérifié : je crée donc les administrateurs à la main.

Un client ne peut modifier sa propre demande que tant qu’elle est en attente, pour l’annuler ; la politique l’empêche de la marquer comme terminée ou de la confier à quelqu’un d’autre.

Les redirections par rôle consultent le rôle à chaque requête vers un tableau de bord. C’est acceptable à cette taille ; si cela ralentit, l’étape suivante est de faire porter le rôle par le jeton de connexion.

05 / 08

Le design

Un fond noir, une encre blanche et des lueurs discrètes. Le site vitrine est en niveaux de gris, et son image est un globe de points blancs.

corda-nu.vercel.app
Un schéma en étoile : un cadre « CORDA » relié par de fins traits à huit cadres en contour (Designer, Developer, Photographer, Caterer et d’autres).
Fig. 05La page du réseau.
Le globe de l’en-tête de près : des rangées de points blancs formant les Amériques, l’Europe et l’Afrique sur une sphère sombre, plus petits et plus ternes vers le bord.
Fig. 06Le globe, de près.

06 / 08

La réalisation

Du HTML, du CSS et du JavaScript simples pour le site ; Next.js et Supabase pour l’application.

Le globe est un canvas 2D sans aucune bibliothèque. Dans l’application, les règles d’accès sont dans la base de données, pas dans l’interface.

Le site vitrine a demandé 44 commits en onze jours, du 4 au 15 septembre 2026 ; l’application est une première tranche de sept commits, les 14 et 15 septembre.

L’application propose l’inscription avec un rôle, la connexion par mot de passe ou par lien magique (Google une fois activé), la réinitialisation du mot de passe, et un tableau de bord des demandes pour les clients, les professionnels et les administrateurs.

Site
8 pages statiques, HTML, CSS et JavaScript simples
Globe
Canvas 2D, aucune bibliothèque
Application
Next.js 14, TypeScript, Supabase
Connexion
Mot de passe, lien magique ; Google lorsqu’il est activé
Rôles
Client, professionnel, administrateur
Code source
Dépôts privés
La page d’accueil de Corda sur téléphone : le titre, les boutons pleine largeur « Find a connection » et « Join the network », et un bouton flottant « Chat with us ».
Fig. 07Téléphone, premier écran.
La navigation mobile de Corda ouverte sur un panneau noir : How it works, Network, FAQ, Pricing, About, Contact et Create account, avec un bouton « Find a connection ».
Fig. 08Le menu sur téléphone.
Les cartes des offres Free et Pro côte à côte sur la page des tarifs, à la largeur d’un téléphone, avec leurs listes de fonctionnalités et leurs boutons.
Fig. 09Les tarifs sur téléphone.

07 / 08

Les détails

Les trois étapes s’illuminent sous le pointeur. La FAQ n’ouvre qu’une réponse à la fois.

08 / 08

État actuel

Le site vitrine est construit. Les paiements ne sont pas encore activés. L’application est une première tranche : l’inscription et un tableau de bord pour chaque rôle.

Les tableaux de bord affichent des données fictives pour l’instant. Ce qu’il faut pour passer en ligne, c’est à moi de le faire : créer les deux liens de paiement et les points de réception des formulaires, et brancher de vraies données derrière les tableaux de bord.

corda-nu.vercel.app
Les cartes des offres Free (0 naira) et Pro (7 500 nairas par mois) côte à côte, avec les boutons « Join Corda for Free » et « Go Pro » ; « Go Pro » indique « Coming soon ».
Fig. 10Tarifs : l’offre Pro indique « Coming soon ».
Six catégories du réseau (Technology, Creative, Food & Hospitality et d’autres) ; Food & Hospitality est sélectionnée et son panneau indique que personne ne l’a encore rejointe.
Fig. 11Personne n’a encore rejoint cette catégorie.

Projet suivant

Z3N

Victor Ohiri