Retour aux projetsÉtude de casApplication mobile et plateforme web

Manywalls

Les artistes qui travaillent avec des médiums physiques -- peintres, sculpteurs, artistes d'installation -- sont mal servis par les outils de portfolio conçus pour les graphistes et les photographes. Les galeries en grille aplatissent leurs oeuvres en miniatures. Les flux sociaux les réduisent à du contenu. J'ai construit manywalls pour leur donner quelque chose de plus proche de ce dont ils ont vraiment besoin : une façon de présenter leur travail comme une exposition, mur après mur, avec intention.

Étude de casPRJ/MANYWALLS
Application mobile et plateforme web

Manywalls est une plateforme d'exposition numérique pour artistes, combinant un outil de création mobile et une expérience web plein écran pensée autour des murs, du rythme et de la mise en scène.

Système en ligne

manywalls.art

Type
App Mobile + Web
Stack
Expo, Convex, TanStack
Plateformes
iOS, Android, Web
Statut
En ligne sur manywalls.art

Le problème

Lorsqu'un peintre candidate à une résidence, soumet un travail à un jury ou partage un portfolio avec une galerie, il envoie un lien vers un site web. Ce site est généralement une grille d'images sur Squarespace, Format ou Cargo. Le visiteur scrolle, clique sur une miniature, regarde une version plus grande, puis passe à la suite. La séquence voulue par l'artiste disparaît. La relation entre les pièces devient invisible. Le contexte -- le texte qui devrait se placer entre deux oeuvres, la respiration, le rythme volontaire -- n'existe pas.

Ce n'est pas une frustration marginale. C'est l'expérience par défaut des artistes visuels en ligne. Et cela se dégrade encore : plus de 60 % des artistes professionnels ont commencé à retirer des oeuvres du web parce que des entreprises d'IA aspirent les images publiées pour entraîner des générateurs -- sans permission, sans rémunération et sans crédit. Les plateformes de portfolio sur lesquelles ils comptent ignorent soit complètement ce sujet, soit reportent la charge sur chaque artiste en leur demandant de configurer des tags image par image.

J'ai construit manywalls parce que je pensais que le format lui-même était mauvais, et parce que les artistes méritaient une plateforme qui prenne au sérieux, par défaut, leurs enjeux de présentation et de protection.

Le concept

L'idée centrale de manywalls est d'une simplicité radicale : une exposition est une séquence de murs, et un mur est un seul moment plein écran. Un mur peut contenir une oeuvre, affichée à la bonne échelle, un bloc de texte comme une note d'artiste, une description ou une citation, ou un vide intentionnel. C'est tout. Pas de grilles, pas de sidebars, pas de miniatures.

Chaque mur a une tonalité -- une couleur de fond choisie dans une palette, avec texture optionnelle -- qui influence la lecture de l'oeuvre. Le même tableau ne se lit pas pareil sur un fond charcoal que sur un fond bone. C'est volontaire : le mur n'est pas seulement un décor, il fait partie du sens de l'exposition. Les artistes choisissent parmi une palette nommée, pas des couleurs hex libres, parce que la contrainte crée l'intention.

L'expérience de consultation est linéaire. On parcourt les murs un par un, en plein écran, comme dans une galerie. Il n'y a ni navigation aléatoire, ni saut en avant, ni distraction. L'artiste contrôle le rythme, la séquence et la tension.

La philosophie produit en une phrase :

"L'art doit être rencontré, pas consommé." Cela a guidé chaque décision technique et design, depuis l'expérience de lecture scroll-snap jusqu'au refus d'ajouter des likes, des commentaires ou des métriques d'engagement.

Ce que j'ai construit

Manywalls est un produit bi-plateforme. L'application mobile sur iOS et Android, construite avec Expo, est l'outil de création où les artistes photographient leurs oeuvres, composent des murs, organisent les séquences et publient des expositions. L'expérience web sur manywalls.art et les sous-domaines artistes est la couche de contemplation, où visiteurs, galeries et jurys découvrent les expositions dans un format linéaire et plein écran.

Chaque artiste obtient une page publique à l'adresse yourname.manywalls.art avec ses expositions, sa bio et ses liens sociaux. Cela charge vite, fonctionne sur tous les appareils et ne demande aucune inscription pour consulter. Toute la chaîne création-partage passe par le téléphone -- il n'y a ni éditeur web, ni template builder, ni constructeur de pages. On compose une exposition comme on accrocherait des oeuvres sur un mur.

Derrière les deux applications se trouve Convex comme backend -- une base temps réel serverless qui m'a donné des queries et des mutations type-safe sans infrastructure à gérer. Au-dessus, j'ai construit un pipeline de traitement d'image pour la photographie d'oeuvres, une fonction de suppression d'arrière-plan assistée par IA, un système d'abonnement via RevenueCat, et une couche analytics qui donne aux artistes une vision de la façon dont leurs expositions sont parcourues.

La stack technique

Application Mobile

Expo SDK 55, React Native, Expo Router, Reanimated pour les gestes et les animations, et une bibliothèque drag-and-drop sur mesure pour réordonner les murs.

Web / Marketing

TanStack Start avec React 19, Vite 7, Tailwind CSS 4, déployée sur Cloudflare Workers pour des performances edge.

Backend

Convex pour un backend temps réel serverless, Cloudflare R2 pour le stockage d'images, Resend pour les emails transactionnels, et Better Auth avec Google, Apple et email.

IA & Traitement d'Image

Google Gemini pour la suppression d'arrière-plan, Cloudflare Workers AI en fallback, Fast OpenCV pour la détection d'image sur appareil, et expo-image-manipulator.

Monétisation

RevenueCat pour les abonnements iOS et Android, ainsi qu'un système de monnaie virtuelle pour les fonctions IA facturées à l'usage, comme les crédits de suppression d'arrière-plan.

Infrastructure

Monorepo Turborepo, workspaces pnpm, Sentry, PostHog, Paraglide JS pour l'i18n en anglais, français et espagnol, et EAS pour la CI/CD mobile.

// Structure du monorepo
apps/
  mobile            # Expo -- outil de creation iOS/Android
  marketing         # TanStack Start -- manywalls.art + viewer d'expositions
  admin             # Dashboard interne (palettes, cadres, annonces)
packages/
  backend           # Schema Convex, queries, mutations, actions
  core              # Value objects (Slug, Handle, Color, WallTone, Frame)
  web-ui            # Bibliotheque React partagee
  painting-lens-editor # Edition d'image sur mesure (crop, perspective, bg removal)
  react-native-reanimated-dnd # Drag-and-drop sur mesure pour reordonner les murs
  video-editor      # Generation video marketing basee sur Remotion
  markdoc           # Rendu du contenu blog/docs
  # ...et plus encore

Les défis techniques qui méritent d'être mentionnés

Construire un pipeline d'image pensé pour la peinture. La plupart des flux d'upload d'image sont conçus pour des photographies ou des assets design. Les artistes qui travaillent avec des peintures physiques ont besoin d'autre chose : correction de perspective, parce que les appareils photo de téléphone déforment les bords de toile, recadrage précis, et possibilité de supprimer l'arrière-plan derrière une oeuvre encadrée. J'ai construit @manywalls/painting-lens-editor, un package React Native sur mesure qui gère la correction de perspective quadrilatère avec Fast OpenCV sur appareil, puis propose une suppression d'arrière-plan assistée par IA via Google Gemini, avec Cloudflare Workers AI en fallback. Cette suppression d'arrière-plan est facturée via un système de crédits virtuels géré par RevenueCat, ce qui garde les coûts prévisibles sans ajouter de friction de paiement dans l'application.

Un réordonnancement des murs qui paraît physique. Réorganiser des murs dans une exposition doit donner l'impression de déplacer des toiles sur le sol d'un atelier -- direct, tactile, immédiat. Les bibliothèques drag-and-drop React Native existantes ne répondaient pas à mon niveau d'exigence en performance, donc j'ai écrit @manywalls/react-native-reanimated-dnd depuis zéro, construit sur Reanimated pour des animations pilotées par geste à 60 fps. Il gère la contrainte d'une liste ordonnée, parce que les murs doivent garder une séquence stricte, tout en donnant à l'interaction le poids et la réactivité que les bibliothèques génériques de tri ne pouvaient pas offrir.

La protection contre l'IA comme comportement par défaut de la plateforme. Soixante pour cent des artistes professionnels ont réduit ce qu'ils partagent en ligne à cause du scraping IA. Je me suis associé à Cloudflare pour bloquer les crawlers IA reconnus, GPTBot, Google-Extended, CCBot et d'autres, au niveau de l'infrastructure réseau avant qu'un bot n'atteigne une page. Ce n'est ni une option artiste par artiste, ni une balise d'opt-out. C'est une politique de plateforme appliquée automatiquement à chaque page artiste et à chaque fichier d'oeuvre dès leur mise en ligne. Je reste lucide sur les limites, captures d'écran et bots déguisés, mais le comportement par défaut compte.

Un modèle de domaine construit autour de la sémantique de l'exposition. Le modèle de données reflète la philosophie du produit. Une Exhibition est une séquence ordonnée de Walls. Un Wall a un type -- oeuvre, texte ou vide -- une position et une tonalité. Une Artwork appartient à un Wall -- une seule par mur, jamais comparée côte à côte. Les tonalités de mur proviennent d'ensembles sélectionnés avec gating d'entitlements pour les tonalités premium. Les cadres sont configurables avec couleur de face, couleur de tranche, composition des highlights et des ombres, padding et texture. Chaque entité porte des contraintes délibérées qui imposent la vision très opinionated du produit sur la façon de présenter l'art.

Pourquoi Convex ?

Pour un produit temps réel avec des données relationnelles relativement simples et aucun héritage SQL à migrer, Convex m'a apporté des queries type-safe, une réactivité automatique, un stockage de fichiers intégré et zéro infrastructure à gérer. Le compromis, c'est le couplage fournisseur, mais pour la vitesse d'itération que cela a permise, surtout en solo, c'était le bon choix.

Le système de rendu des cadres

Une fonctionnalité dont la complexité m'a surpris est le système de cadres. Les artistes peuvent appliquer un cadre personnalisable à n'importe quel mur contenant une oeuvre -- en choisissant parmi des familles comme painted, wood ou metal, chacune avec couleur de face, couleur de tranche, couleurs de highlight et d'ombre, couleur de lèvre interne, padding et épaisseur configurables. Le cadre n'est pas une simple image superposée. Il est rendu dynamiquement, en composant couleur, texture et bevel pour produire un cadre réaliste autour de l'oeuvre, quel que soit son ratio. Le dashboard admin inclut un véritable éditeur de cadres avec preview live, color pickers prenant en charge l'alpha, et gestion des textures appuyée sur Cloudflare R2.

Ce que j'ai livré

Manywalls a été lancé sur l'App Store et Google Play, avec une expérience web complète sur manywalls.art. Le produit inclut un outil mobile de création, un viewer web d'expositions avec murs plein écran en scroll-snap, des pages portfolio artistes avec sous-domaines personnalisés, un dashboard admin pour le contenu et la gestion du catalogue, la suppression d'arrière-plan assistée par IA, une offre premium avec RevenueCat, des analytics pour les artistes incluant vues d'exposition, taux de complétion et temps passé par mur, une protection intégrée contre le scraping IA, et l'internationalisation en anglais, français et espagnol.

Le codebase fonctionne comme un monorepo Turborepo avec plus d'une dizaine de packages partageant du code entre mobile, web et backend. J'ai construit deux packages React Native sur mesure depuis zéro, le painting lens editor et la bibliothèque de drag-and-drop, un éditeur vidéo marketing basé sur Remotion, et un système d'annonces qui diffuse du contenu riche sur mobile et web avec planification, suivi des révisions et reçus de fermeture par utilisateur.

Manywalls est un exemple de ce qui se produit lorsque le concept produit guide l'architecture plutôt que l'inverse. Chaque décision technique -- le modèle de mur, la palette contrainte, le viewer linéaire, le pipeline d'image -- existe parce que le produit l'exigeait.

Ce que cela signifie pour votre projet

Construire manywalls a demandé de naviguer à l'intersection entre design produit très opinionated et ingénierie cross-platform complexe. Un pipeline de traitement d'image sur mesure avec intégration IA. Des performances mobiles natives pour des interactions guidées par le geste. Un backend serverless temps réel avec monétisation par abonnement. Un déploiement edge sur Cloudflare. Des sorties App Store et Play Store avec CI/CD automatisée.

Si vous construisez un produit qui exige une vraie attention au craft -- où l'expérience utilisateur n'est pas seulement fonctionnelle mais intentionnelle -- je sais transformer cette vision en logiciel qui sort sur plusieurs plateformes et passe à l'échelle.

Construire avec Basaltbytes

Vous construisez un produit avec de vraies opinions ? Tant mieux.

Je conçois des applications mobiles, des plateformes web et des produits cross-platform pour des équipes qui se soucient des détails.

Réserver un appel de cadrage

Parlons de votre logiciel

Réservez un appel de cadrage de 30 minutes, sans engagement.

À propos de Basaltbytes

Basaltbytes est le cabinet de CTO externalisé de Philippe L'ATTENTION : un diagnostic technique indépendant, à prix fixe, pour reprendre la main sur votre logiciel.