Tenderdex

Rôle

Conceptrice et développeuse ⁠— produit, direction visuelle, design system, front-end et chaîne de données ; développé avec Claude Code

Client

SVP Consulting ⁠— cabinet de conseil en IA & data science à Anvers

Disciplines

Design produit · Design systems · Data · Full-stack · Accessibilité

Année

2026

Une liste hebdomadaire des appels d’offres logiciels de Find a Tender (Royaume-Uni) et TED (UE), classés selon ce que vend un petit fournisseur. Le projet a commencé en mai 2026 comme outil de veille des marchés publics pour SVP Consulting, un cabinet de conseil en IA à Anvers ; en octobre, je l’ai redessiné autour d’une seule métaphore, des archives de chemises cartonnées, je lui ai donné une page d’accueil et je l’ai lancé sur son propre domaine pour tout petit fournisseur. Anciennement « UK & EU Procurement Radar »

Problème
Les avis britanniques sont sur Find a Tender, les avis européens sur TED, dans deux formats de données et une vingtaine de langues. Une entreprise de logiciels de dix personnes n’a personne payé pour surveiller les deux
Constat
On ne peut plus répondre à la plupart de ce que publient les portails : le 11 octobre 2026, 1 900 des 11 190 avis en base étaient des appels d’offres ouverts. La liste doit partir de là et dire pourquoi chacun convient
Solution
Une seule liste pour les deux sources, notée de 0 à 100 par cinq règles visibles face à un profil gardé dans le navigateur, dans une interface de chemises d’archives choisie parmi dix concepts
Résultat
En ligne sur tenderdex.com et app.tenderdex.com depuis les 8 et 9 octobre 2026, après des tours de revue qui ont fermé une faille de path traversal et un audit qui a corrigé un bug d’échéances

Deux portails, deux formats, et personne pour les surveiller

Les pouvoirs publics britanniques publient leurs marchés sur Find a Tender en JSON OCDS ; dans l’UE, ils passent par TED au format eForms, dans la langue de l’acheteur. Les deux ne partagent ni recherche ni listes de codes. La Pologne, l’Allemagne et l’Espagne fournissaient à elles seules 7 075 des 11 190 avis de Tenderdex au 11 octobre 2026, surtout en polonais, en allemand et en espagnol. Une recherche en anglais sur « imaging software » ne trouvera donc jamais l’hôpital polonais qui achète un logiciel PACS.

Pour la version publique, j’ai conçu l’outil pour les fondateurs et responsables commerciaux d’entreprises de logiciels, de services informatiques et d’e-learning de 1 à 50 personnes, sans équipe dédiée aux appels d’offres. Leurs difficultés, dans le brief, viennent d’une recherche documentaire et sont marquées comme hypothèses, et la page d’accueil montre des données là où l’on mettrait d’habitude des témoignages.

Avant : le prototype de données en juin 2026. La notation et le modèle de données ont survécu à la refonte, pas l’interface

Conçu et dirigé par moi, développé avec une IA en binôme

L’outil est né chez SVP Consulting ; j’ai choisi le public auquel il s’est ouvert et le périmètre : trouver et trier, sans rédaction d’offres, sans CRM, sans comptes et sans page de tarifs. J’ai choisi la métaphore, le concept, la direction typographique et la composition du hero, écarté les options décrites plus bas et relu les écrans tour après tour. Une partie de ces relectures figure, dans mes mots, dans les pull requests : des lignes alignées sur la première ligne du titre, la chemise qui descend jusqu’aux intercalaires CPV, une même grille pour l’en-tête de l’app et la page.

Développé avec Claude Code : j’ai fixé le cadre et les contraintes et relu chaque modification avant qu’elle soit intégrée.

Un mur de pixels de tous les avis et un tableau des départs à palettes sont revenus avec les chemises. J’ai supprimé les deux : une seule métaphore

Cette règle est entrée dans le journal des décisions le 6 octobre, et chaque choix suivant a été mesuré à elle. La même semaine, j’avais demandé pour le hero la composition d’une publicité de Lowe, et j’ai reçu en plus son fond crème et ses caractères à empattements ; le bureau est resté sombre, et seule la mise en place a été reprise.

Mai : d’abord le modèle de données

La première version date de fin mai 2026, pour SVP Consulting, après une phase de recherche qui a vérifié les deux API par des appels anonymes en direct. Chaque source a son propre mapper vers un modèle unique, avec des identifiants préfixés UK: et EU: pour qu’ils ne se percutent jamais, et l’enregistrement d’origine est conservé pour la traçabilité. Le score est une somme pondérée de cinq règles, qu’on peut donc vérifier à la main : correspondance CPV 35 %, mots-clés 25 %, valeur dans la fourchette 15 %, jours avant l’échéance 15 %, historique de l’acheteur 10 %. Chaque composante vient avec une raison en clair, par exemple « Only 1 day left ⁠— less than your 7-day minimum ». Les avis sont récupérés chaque lundi à 6 h UTC.

Dès juin, l’outil tournait sur mon propre serveur, avec l’allure d’un tableau de bord générique. En octobre, j’ai commencé la refonte sans toucher à la notation ni au modèle de données.

Une métaphore, choisie parmi dix

J’ai réuni un moodboard de plus de cent références d’archives : onglets de chemises, fiches, intercalaires de couleur, étiquettes de tiroirs. Il en est sorti dix concepts dans Figma : un registre, des onglets de chemises, un formulaire avec tampon, des tiroirs de classeur, un index de couleurs, un lecteur de microfiches, un dossier ouvert, un Rolodex, un fichier de bibliothèque et un manuel en bleu d’architecte. J’ai choisi les onglets. Dans la version 02d, l’app est un bureau noir, la liste une chemise crème posée dessus, avec des onglets de couleur comme filtres rapides et des intercalaires CPV le long du bord droit.

Les dix concepts, remplis de données fictives. Le numéro 02, les onglets, est devenu l’app

La typographie a pris plus de temps que la mise en page. Le concept 02 est passé par vingt variantes de caractères avant que je retienne Nitti Grotesk pour l’interface, Nitti pour les métadonnées et Newsreader pour les titres des marchés, le schéma d’iA Writer Pro. J’ai demandé que les tailles soient mesurées sur des sites donneurs plutôt que choisies à l’œil : l’échelle vient d’ia.net en 2016, les tailles d’affichage du hero d’ia.net/writer et de Brainport Eindhoven, composé dans une variante de Nitti Grotesk. Les titres prennent 19/⁠32 au lieu du 24/⁠32 d’iA, qui les étalait sur quatre lignes dans une colonne de tableau. Le thème clair a été abandonné : un seul thème, le bureau avec du papier dessus.

Avant toute Hi-Fi, l’app en ligne a été dessinée en gris : 28 écrans construits à partir de composants, sur des variables qui basculent vers un mode Hi-Fi. La Hi-Fi couvre tout le plan des écrans, 23 écrans desktop et 6 mobiles, et DESIGN.md documente le système pour le code.

Une rangée de vrais avis, et une chemise tirée du lot

Le hero de la page d’accueil reprend la composition de la publicité de Lowe de mon moodboard : une rangée de chemises traverse l’écran d’un coin à l’autre, le titre est en haut à gauche, les boutons et une ligne de faits en bas à droite. Chaque chemise de la rangée est un vrai avis ouvert du dernier instantané, colorée selon le pays, avec sa catégorie et son titre dans la langue d’origine. Une chemise violette est tirée de la rangée. Au défilement, la rangée s’écarte, la chemise violette se tourne vers vous et s’ouvre sur la première section ; les chemises 02 à 07 s’empilent ensuite.

tenderdex.com : les chiffres de la ligne de faits sont lus dans les données à chaque build

Au défilement, la rangée s’écarte et la chemise violette se redresse

Elle s’ouvre sur la chemise 01, qui porte le problème en trois lignes

Le texte suit les données. Le premier titre promettait « every public tender » ; un comptage avait alors montré que 99,8 % des avis portent bien les codes logiciels et informatiques, mais que seuls 1 719 des 11 090 avis alors en base étaient ouverts, et Find a Tender comme TED ne publient qu’au-dessus des seuils de marchés publics. Le titre est devenu « Public software tenders from the UK and EU. One weekly list. », et la ligne de faits commence désormais par les appels d’offres ouverts. La page est prérendue, son texte arrive donc en HTML ; sur téléphone et avec les animations réduites, les chemises restent en pile fixe.

Page d’accueil, 375 px

La page 404 : la chemise 404 tirée du tiroir et tamponnée « Not on file »

D’abord les marchés ouverts, un profil en trente secondes

L’app s’ouvre sur les seuls appels d’offres ouverts, triés par échéance. Il n’y a pas de comptes : le navigateur garde un identifiant aléatoire, et le profil qui s’y rattache contient des codes CPV, des mots-clés, des pays, une fourchette de valeur et le nombre minimal de jours pour répondre. À la première visite, une fiche de papier apparaît sur la chemise, « Rank these notices for your firm », avec trois préréglages (Software & IT, E-learning, R&D & analytics) et un lien pour tout régler soi-même. Chaque code des préréglages a été vérifié dans la liste officielle et avait des avis ouverts le jour de la mise en ligne. Dès qu’un profil est enregistré, la liste passe au tri par pertinence.

app.tenderdex.com à la première visite : 1 763 avis ouverts, dont 230 se clôturent dans la semaine

C’est sur les codes CPV que les nouveaux venus décrochent, alors chaque code s’affiche avec son nom tiré du vocabulaire officiel CPV 2008 : les 9 454 libellés, chargés seulement quand il le faut. Dans le profil, le champ de texte séparé par des virgules est devenu une liste déroulante avec recherche, qui accepte des mots ou un début de code. La visite guidée ne démarre plus toute seule ; un indice d’une ligne la propose.

Un avis : l’échéance avec l’heure locale réelle, les codes CPV avec leurs noms officiels et un lien direct vers la source

Le profil : chercher dans la liste CPV par mot ou par code

Comment un score s’explique : un exemple travaillé sur la page d’accueil, pas un score en direct

Vue d’ensemble : ce qui est ouvert, par source, catégorie et pays

App, 375 px

Relu et audité, pas encore testé avec des utilisateurs

Toutes les vérifications à ce jour sont des tours d’audit IA suivant une checklist, plus mes propres tours de relecture visuelle. Cinq tours de revue ont eu lieu avant le lancement et cinq autres sur la production le 9 octobre : code, sécurité, WCAG 2.2 AA, QA fonctionnelle et performance. Un audit complet a suivi les 9 et 10 octobre, et chaque constat a d’abord été reproduit dans le code avant d’être corrigé.

Le pire constat est venu du tour de sécurité du 9 octobre, dans le code le plus ancien : depuis mai, une barre oblique encodée dans l’URL pouvait faire servir par l’app n’importe quel fichier de son conteneur, y compris son propre code source. La faille a été fermée, un test ajouté, et la CI démarre désormais l’image pour la tenter. L’audit a ensuite trouvé que les échéances données comme une date sans heure étaient lues comme le début de cette journée, ce qui fermait des avis 10 à 20 heures trop tôt ; que des valeurs de 0 ou −1 comptaient comme de vrais montants ; que TED publiait un même marché sous plusieurs numéros, si bien que 88 lignes en double sont désormais masquées et que les anciennes versions d’un marché republié s’effacent devant la plus récente ; et que le décompte des avis ouverts incluait les attributions, 2 367 au lieu de 1 727 ce jour-là. Les requêtes de plus de 64 Ko sont maintenant refusées, et les lectures, les lectures notées et les nouveaux profils sont limités en débit.

Le passage sur le design system a laissé un seul vocabulaire de tokens pour l’app et la page d’accueil, supprimé l’ancienne palette et la couche de correspondance (la feuille de style principale est passée de 758 à 230 lignes), fixé un plancher typographique de 15 px sur desktop et 13 px sur téléphone, et réservé la place pour que rien ne saute : le défilement du hero décalait la mise en page de 0,097, c’est désormais 0. axe-core n’a trouvé aucune violation dans les états vérifiés à 1440 et 375 px, et Lighthouse donne 100 à l’accessibilité de l’app sur mobile.

En ligne sur son propre domaine, avec les chiffres qu’il peut assumer

Tenderdex est en ligne : la page d’accueil sur tenderdex.com, l’app sur app.tenderdex.com, toutes deux depuis les 8 et 9 octobre 2026, et les anciennes adresses de préversion y redirigent. Le 11 octobre, la base contenait 11 190 avis de 15 pays, dont 1 900 appels d’offres ouverts, actualisés chaque lundi. Le backend compte 297 tests, le front-end 79, et la CI rejoue chaque migration de base de données sur Postgres 17.

app.tenderdex.com — aperçu en ligne
Démo en ligne
app.tenderdex.com
Ouvrir

Live ⁠— app.tenderdex.com

Ce qui reste ouvert

Un e-mail hebdomadaire des nouvelles correspondances, que le modèle de données prévoit déjà. La langue des titres dans les données TED n’est pas fiable, donc l’attribut lang des titres vient du pays de l’acheteur et est omis pour la Belgique et le Luxembourg. Sur un téléphone à connexion bridée, la page d’accueil obtient 79 en performance, freinée par la feuille de style des polices qui bloque le rendu. La vérification de marque pour le nom n’a pas encore été faite.

Projet suivant
Systèmes d’icônes 3D