Case StudyÉtude de cas · Farmpal (independent project) · 2026 · 14 min read 14 min de lecture

What farmers know but never write down Ce que les agriculteurs savent mais n'écrivent jamais

Farmpal is a mobile-first AI note taker that turns a farmer's daily observations into a structured log and a contextual farming advisor. Farmpal est un carnet de notes IA mobile qui transforme les observations quotidiennes d'un agriculteur en journal structuré et en conseiller agricole contextuel.

Client
Farmpal (independent project)
RoleRôle
Product & UX Design
with A sustainable agriculture domain partner (ex-LiteFarm) avec Un partenaire expert en agriculture durable (ex-LiteFarm)
YearAnnée
2026
DisciplinesDisciplines
R&DAI ProductUX & InteractionMobile UXAgriculturePrototype

The smartest line in a Jira ticket

At LiteFarm — an open-source farm management platform used by thousands of farms globally — users asked for a simple way to share observations across the team. Not tasks. Not formal records. A barn whiteboard, digital. I designed the feature. Tightened the spec. And buried in the "for later" section was a single line: "Depending on success of the feature, we could have AI join the chat and auto-create custom tasks from notes." That line never shipped. LiteFarm had no AI infrastructure. Resources were tight. But the idea didn't let go, and it was never mine alone. It took shape with a former LiteFarm colleague, a sustainable agriculture expert whose domain knowledge grounds everything Farmpal claims to understand about a farm. What if the AI-powered note taker was its own product — not retrofitted onto a platform, but designed from scratch around the intelligence layer? That became Farmpal: a mobile-first note taker that turns a quick farm observation into a structured log entry and a piece of contextual farming advice. Fast to capture. Smart to receive. Built for someone with mud on their hands. A note on scope. Farmpal is an R&D project, not a product launch, at least for now, this may change. The work is about the UX, how capture, structure, and advice actually fit a farmer's conditions, and where an AI loop earns trust or loses it. The visual layer is deliberately provisional, a vehicle for testing the thinking, not a finished skin. Read the screens as interaction studies, not as final UI.

La ligne la plus intelligente d'un ticket Jira

À LiteFarm — une plateforme open-source de gestion agricole utilisée par des milliers de fermes dans le monde — les utilisateurs demandaient un moyen simple de partager des observations en équipe. Pas des tâches. Pas des rapports formels. Un tableau blanc de grange, numérique. J'ai conçu la fonctionnalité. Affiné les specs. Et enfoui dans la section "pour plus tard" se trouvait une seule ligne : "Selon le succès de la fonctionnalité, l'IA pourrait rejoindre le chat et créer automatiquement des tâches à partir des notes." Cette ligne n'a jamais été livrée. LiteFarm n'avait pas d'infrastructure IA. Mais l'idée n'a pas lâché prise, et elle n'a jamais été la mienne seule. Elle a pris forme avec un ancien collègue de LiteFarm, un expert en agriculture durable dont la connaissance du domaine ancre tout ce que Farmpal prétend comprendre d'une ferme. Et si le carnet de notes propulsé par IA était son propre produit ? C'est ainsi qu'est né Farmpal : un carnet de notes mobile qui transforme une observation rapide en entrée de journal structurée et en conseil agricole contextuel. Une note sur le périmètre. Farmpal est un projet de R&D, pas un lancement produit, du moins pour l'instant, cela pourrait changer. Le travail porte sur l'UX, la façon dont la capture, la structuration et le conseil s'adaptent réellement aux conditions d'un agriculteur, et l'endroit où une boucle IA gagne la confiance ou la perd. La couche visuelle est volontairement provisoire, un véhicule pour tester la réflexion, pas une peau finie. Les écrans sont des études d'interaction, pas une UI finale.

The org reality La réalité de l'organisation

Farmpal didn't emerge from a design sprint or an investor brief. It emerged from constraint. At LiteFarm, I had spent real time with farmers across geographies, languages, and connectivity conditions — talking to people who manage land for a living, in places where a confusing UI isn't a minor friction but a real barrier to adoption. The resource reality at LiteFarm was clear: no AI team, no AI infrastructure, a tight engineering roadmap, and a governance structure that moved carefully. The AI hook buried in the Farm Notes ticket was the right idea at the wrong address. Advocating for it internally hit a ceiling. Spinning Farmpal out as an independent product wasn't a rebellion — it was a design decision. Remove the institutional ceiling. Build AI-first from day zero. Own every decision without committee approval. The constraint became the brief.

Farmpal n'est pas né d'un design sprint ou d'un brief investisseur. Il est né d'une contrainte. À LiteFarm, j'avais passé du temps réel avec des agriculteurs de différentes géographies, langues et conditions de connectivité — des personnes qui gèrent des terres pour vivre, dans des endroits où une interface confuse n'est pas une friction mineure mais une vraie barrière à l'adoption. La réalité des ressources chez LiteFarm était claire : pas d'équipe IA, pas d'infrastructure IA, une feuille de route engineering serrée et une structure de gouvernance prudente. Le crochet IA enfoui dans le ticket Farm Notes était la bonne idée à la mauvaise adresse. Séparer Farmpal en tant que produit indépendant n'était pas une rébellion — c'était une décision de design. Supprimer le plafond institutionnel. Construire IA-first dès le premier jour. La contrainte est devenue le brief.

LITEFARM FARM NOTES · PRODUCT SPEC
2023
ORIGINAL TICKET

"As a user I want to be able to share some observations or take quick notes around the farm"

As requested by multiple users, this is the feature for a separate section on the sidebar that works like a farm noticeboard. The minimizable sidebar could exist alongside the new planned insights dashboard. Please use existing free libraries wherever relevant to avoid building from scratch.

Eg: Broken fence, Goat Dolly due for vaccination next Thur, Coyote sightings in the area - keep the goats locked after 5pm, Researcher Dave visiting Mon, Fill fuel

These may or may not be actionable, so they need not necessarily have an owner or a due date.

Must have: It is a simple note publish feature with a simple long text, upload media and publish. It is largely like a whiteboard one might have in their barn or shed, with an additional ability to add notes to self. This is not intended as a 1-1 chat, nor a task, but we might potentially expand it based on how the feature is working out.

Enabled functions: to begin with: For author — delete. For others, just view.

Initially, the notes can just be private (note to self) or public (like a noticeboard in barn). All published notes must appear in reverse chronological order along with the author's name and date.

To begin with, we can support historical notes up to a month, with archiving possible for up to 6 months in the past. If the notes are beyond 25MB or over a month, we encourage owner to archive to be able to continue using the notice board.

Open point: Not sure if it makes sense to associate a field / location to a note?

Great to have: When someone publishes a note to the noticeboard, a notification goes to all the members of the farm. Ability to delete posted note. Members can react with basic few emojis. A note can also be accompanied by one picture (jpeg / png). On mobile, can upload or open camera.

Unsure of — Download content of noticeboard.

Success criteria: %Usage = Number of farms using the farm noticeboard / Total number of true farms. If the % of farms using noticeboard is ≥15% of active farms, then the feature is considered successful.

For later scope: Based on user feedback, we can plan for specifically tagging people, creating tasks or custom tasks from notes. Depending on success of the feature, we could have AI join the chat and auto-create custom tasks from notes. For example, someone notices broken fence, AI can create a custom task "Fix fence". Possibility of moderation of posted content. Possibility to respond 1-1.

Text note + optional photo
Public noticeboard or private note
Reverse chrono · author + date
Author deletes · others view only
Not a task. Not a chat.
≥15% farm adoption = success
FOR LATER SCOPE — THE SEED

"Depending on success of the feature, we could have AI join the chat and auto-create custom tasks from notes. For example, someone notices a broken fence — AI creates a custom task 'Fix fence'."

The diagnosis Le diagnostic

The real problem wasn't that farmers lacked a digital noticeboard. It was that the most valuable farm knowledge — what they observed, noticed, and learned every day — was evaporating before it could be useful. A farmer spots aphids on the carrot bed. They mention it verbally to a colleague. Three days later, no one remembers when it started. A week later, it's an infestation. That observation, if logged, could have triggered an intervention. The barrier wasn't motivation — it was friction. Logging tools are built for managers behind desks, not for people working in a field with gloves on and intermittent connectivity. The deeper opportunity: what if logging gave something back? Not just archived the observation, but responded to it. The farmer tells the app what they saw; the app structures it into a record and returns relevant, specific advice. Logging stops being a chore and starts being a conversation.

Le vrai problème n'était pas que les agriculteurs manquaient d'un tableau d'affichage numérique. C'était que les connaissances agricoles les plus précieuses — ce qu'ils observaient, remarquaient et apprenaient chaque jour — s'évaporaient avant de pouvoir être utiles. Un agriculteur repère des pucerons sur le lit de carottes. Il le mentionne verbalement à un collègue. Trois jours plus tard, personne ne se souvient quand ça a commencé. Une semaine plus tard, c'est une infestation. La barrière n'était pas la motivation — c'était la friction. L'opportunité plus profonde : et si la journalisation donnait quelque chose en retour ? L'agriculteur dit à l'app ce qu'il a vu ; l'app structure la note et retourne des conseils pertinents et spécifiques. La journalisation cesse d'être une corvée et devient une conversation.

The AI-enhanced pipeline Le pipeline amélioré par l'IA

Five stages. One principle: earn the right to add complexity before adding it.

Cinq étapes. Un principe : mériter le droit d'ajouter de la complexité avant de l'ajouter.

STAGEÉTAPE 01

Origin & Framing Origine et cadrage

The problemLe problème
A real feature at LiteFarm contained the seed of a different product. The challenge was seeing it — and separating what was genuinely valuable from the institutional noise around it. Une vraie fonctionnalité chez LiteFarm contenait le germe d'un produit différent. Le défi était de le voir — et de séparer ce qui avait de la valeur du bruit institutionnel.
The methodLa méthode
Starting from the original user-requested Jira ticket, I refined it into a production-ready Farm Notes spec. Through that process, the "for later" section revealed the real product brief. I then mapped the AI augmentation surface: what could a single LLM call per note unlock? Task extraction from note content surfaced as the highest-value, lowest-cost starting point — already hinted at by the original ticket authors, never prioritised. En partant du ticket Jira original, j'ai affiné la spec Farm Notes. Ce faisant, la section "pour plus tard" a révélé le vrai brief produit. J'ai ensuite cartographié la surface d'augmentation IA : qu'est-ce qu'un seul appel LLM par note pourrait débloquer ? L'extraction de tâches a émergé comme le point de départ le plus précieux et le moins coûteux.
AI handlesL'IA gère
Claude helped refine the spec, identify contradictions in scope, surface edge cases in the data model, and pressure-test the value proposition — faster than solo desk research. Claude a aidé à affiner la spec, identifier les contradictions de périmètre, faire ressortir les cas limites dans le modèle de données et tester la proposition de valeur.
I ownJe maîtrise
The decision to spin Farmpal out as an independent product. The judgment that task extraction was the right first AI hook over summarisation, moderation, or pattern detection. The product strategy that follows from fifteen years of farming UX context. La décision de séparer Farmpal en produit indépendant. Le jugement que l'extraction de tâches était le bon premier crochet IA. La stratégie produit issue de quinze ans de contexte UX agricole.
The resultLe résultat
A clean problem statement, a validated value proposition, and an unambiguous strategic decision: Farmpal is a standalone product, not a feature. Un énoncé de problème clair, une proposition de valeur validée et une décision stratégique sans ambiguïté : Farmpal est un produit autonome, pas une fonctionnalité.
The original LiteFarm Farm Notes Jira ticket alongside the refined spec — the before and after of the problem framing.
The original LiteFarm Farm Notes Jira ticket alongside the refined spec — the before and after of the problem framing. Le ticket Jira LiteFarm original à côté de la spec affinée — l'avant et l'après du cadrage du problème.
STAGEÉTAPE 02

Scoping Cadrage du périmètre

The problemLe problème
Early exploration produced three user flows covering a full farm management platform — activity logging, task delegation, intelligent onboarding. Scope kept expanding. Every new flow added complexity before the core loop had been proven. The product was becoming a company before it had a reason to exist. L'exploration précoce a produit trois flux utilisateurs couvrant une plateforme complète. Le périmètre ne cessait de s'étendre. Chaque nouveau flux ajoutait de la complexité avant que la boucle centrale n'ait été prouvée.
The methodLa méthode
Applied a strict earned-right principle: cut everything that couldn't be justified by the core loop. Three flows became one. Platform ambitions became Phase 2. The MVP was reduced to capture, structure, advise, save, review — nothing more. A decisions log was maintained in real time, recording not just what stayed but what was cut and why. LiteFarm Farm Notes patterns were explicitly identified as inherited foundations, avoiding reinvention of proven UX. Application d'un principe strict de droit mérité : couper tout ce qui ne pouvait pas être justifié par la boucle centrale. Trois flux sont devenus un. Les ambitions de plateforme sont devenues la Phase 2. Le MVP a été réduit à capturer, structurer, conseiller, sauvegarder, réviser.
AI handlesL'IA gère
Claude pressure-tested scope decisions, flagged the offline-plus-AI contradiction as an unresolved tension, and identified auto-detection of farm workers as a trust liability worth removing from MVP scope. Claude a testé les décisions de périmètre, signalé la contradiction hors-ligne + IA et identifié la détection automatique des travailleurs comme une responsabilité de confiance à supprimer du MVP.
I ownJe maîtrise
Every cut. Knowing which features farmers actually need first versus which ones look good in a pitch requires domain knowledge that doesn't come from a prompt. The judgment calls were mine. Chaque coupe. Savoir quelles fonctionnalités les agriculteurs ont réellement besoin en premier versus celles qui sont belles dans un pitch nécessite une connaissance du domaine qui ne vient pas d'un prompt.
The resultLe résultat
A focused MVP scope with a living decisions log — including rejected alternatives and rationale. Product brief and design document created as portfolio artifacts from day one, not written retrospectively. Un périmètre MVP focalisé avec un journal de décisions vivant — incluant les alternatives rejetées et les justifications. Brief produit et document de design créés comme artefacts portfolio dès le premier jour.
Three early FigJam user flows versus the single focused core loop that replaced them.
Three early FigJam user flows versus the single focused core loop that replaced them. Trois flux FigJam précoces versus la boucle centrale unique et focalisée qui les a remplacés.
STAGEÉTAPE 03

Design System & Principles Système de design et principes

The problemLe problème
With scope defined, the design work needed to produce more than screens. It needed a visual language, a documented rationale for every UX decision, and a set of principles that would hold up under scrutiny — from investors, contributors, or future collaborators. Avec le périmètre défini, le travail de design devait produire plus que des écrans — un langage visuel, une justification documentée de chaque décision UX et un ensemble de principes.
The methodLa méthode
Established five design principles before touching a single screen: field-first, speed over completeness, AI as assistant never gatekeeper, offline by default, advice as reward. Defined the core user flow and four MVP screens. Built a visual language grounded in the use context: deep teal for stability and agricultural grounding, warm amber for action and visibility in outdoor light, a distinct AI accent colour to make AI-generated content visually honest rather than invisible. Mapped every component with its rationale, and documented open design questions explicitly rather than leaving them implicit. Établissement de cinq principes de design avant de toucher un seul écran. Définition du flux central et quatre écrans MVP. Construction d'un langage visuel ancré dans le contexte d'utilisation : vert foncé pour la stabilité, ambre chaud pour l'action et la visibilité en plein air, une couleur d'accent IA distincte pour rendre le contenu généré par IA visuellement honnête.
AI handlesL'IA gère
Claude helped draft and structure the design.md living document, populate the decisions log with rationale for each UX call, and surface open design questions requiring resolution before prototyping. Claude a aidé à rédiger le document design.md vivant, à renseigner le journal de décisions et à faire ressortir les questions de design ouvertes nécessitant une résolution avant le prototypage.
I ownJe maîtrise
The design principles — rooted in fifteen years of designing for field workers, not derived from a framework. The colour rationale. The decision to surface AI advice after publish, inline in the feed rather than gating the compose flow, which required knowing how farmers actually interact with logging tools under time pressure. Every visual and interaction decision. Les principes de design — enracinés dans quinze ans de conception pour les travailleurs de terrain. La justification des couleurs. La décision de faire apparaître les conseils IA après publication, en ligne dans le fil plutôt qu'en bloquant le flux de composition. Chaque décision visuelle et d'interaction.
The resultLe résultat
A documented design direction across colour, type, and components. Four MVP screen specifications. A decisions log with rejected alternatives. A living design document updated as the product evolves. Une direction de design documentée sur les couleurs, la typographie et les composants. Quatre spécifications d'écrans MVP. Un journal de décisions avec les alternatives rejetées. Un document de design vivant.
Farmpal design principles, colour system, and core screen breakdown.
Farmpal design principles, colour system, and core screen breakdown. Principes de design Farmpal, système de couleurs et décomposition des écrans centraux.
STAGEÉTAPE 04

Prototype Prototype

The problemLe problème
Turning the design spec into something testable — a working prototype that demonstrates the core AI loop without requiring a production backend. Transformer la spec de design en quelque chose de testable — un prototype fonctionnel qui démontre la boucle IA centrale sans nécessiter un backend de production.
The methodLa méthode
Built the whole loop as a single self-contained React file — no backend, no dependencies — so it could be tested and shown without standing up infrastructure. Capture in three modes: type, one-tap voice (record, transcribe, publish), or photo. Publish-first AI saves the note instantly and resolves advice plus a suggested task into the feed, inside a shared team log where every note is attributed to whoever wrote it. A suggested task becomes a real task that always carries its originating note as context, and opens into a detail screen for crop or field (a live map pin), start date, duration, assigned workers, and a bill of inputs and outputs — filterable down to just mine. Onboarding now captures the farm's location — address search, GPS, or a dropped pin, with an optional drawn boundary and its area — because location is the backbone for advice that actually fits the place. The two model touchpoints, advice and speech-to-text, sit behind single functions: a one-line swap to go live. Construction de toute la boucle dans un seul fichier React autonome — pas de backend, pas de dépendances — testable et montrable sans monter d'infrastructure. Capture en trois modes : taper, voix en un geste (enregistrer, transcrire, publier) ou photo. L'IA publish-first sauvegarde la note instantanément et fait apparaître le conseil et une tâche suggérée dans le fil, au sein d'un journal d'équipe partagé où chaque note est attribuée à son auteur. Une tâche suggérée devient une vraie tâche qui porte toujours sa note d'origine comme contexte, et s'ouvre sur un écran de détail : culture ou champ (un point sur une carte vivante), date de début, durée, travailleurs assignés, et une nomenclature d'intrants et de produits — filtrable jusqu'aux miennes. L'onboarding capture désormais la localisation de la ferme — recherche d'adresse, GPS ou point posé, avec un périmètre dessiné optionnel et sa surface — car la localisation est le socle d'un conseil qui colle vraiment au lieu. Les deux points de contact modèle, conseil et transcription, sont isolés derrière des fonctions uniques : un changement d'une ligne pour passer en réel.
AI handlesL'IA gère
Claude wrote and iterated the React prototype from the design spec, kept the build clean as the screens multiplied, and stood up the mocked advice, transcription, and map layers. It pushed back where it mattered: flagging the integrity risk of auto-publishing a raw transcript into a shared log, naming the scope creep as tasks grew an eight-field detail screen, and re-surfacing — every time the map came up — the same offline-versus-feature tension that required location and live tiles keep sharpening. Claude a écrit et itéré le prototype React à partir de la spec, gardé le build propre à mesure que les écrans se multipliaient, et mis en place les couches simulées de conseil, de transcription et de carte. Il a contredit là où il le fallait : signaler le risque à publier automatiquement une transcription brute dans un journal partagé, nommer la dérive de périmètre quand les tâches se sont dotées d'un écran de détail à huit champs, et refaire surgir — à chaque apparition de la carte — la même tension hors-ligne contre fonctionnalité que la localisation obligatoire et les tuiles en direct ne cessent d'aiguiser.
I ownJe maîtrise
The product calls no model makes for you. Making voice the hero path — field-first means hands full of soil, not a keyboard. Publish-first sequencing, and the judgment that a misheard transcript in a shared log needs a review step. Collapsing "note" and "task" into one model so every task traces back to the observation that spawned it. Making farm location required even though it strains the offline-first promise — because advice without a place is just a wiki. And killing a logo that looked sharp but read as a generic AI to-do app with no soil under its nails. Les décisions produit qu'aucun modèle ne prend à votre place. Faire de la voix le chemin principal — penser terrain, c'est penser mains pleines de terre, pas clavier. Le séquencement publish-first, et le jugement qu'une transcription mal entendue dans un journal partagé exige une étape de relecture. Fusionner "note" et "tâche" en un seul modèle pour que chaque tâche remonte à l'observation qui l'a fait naître. Rendre la localisation de la ferme obligatoire même si cela tend la promesse hors-ligne — parce qu'un conseil sans lieu n'est qu'un wiki. Et écarter un logo qui claquait mais sonnait comme une appli de tâches IA générique, sans terre sous les ongles.
The resultLe résultat
An interactive prototype that runs the whole loop end to end — voice or text in; structured note, contextual advice, and a fully-specced, actionable task out — across a shared, multi-user farm log with real location onboarding. A second run of passes took it from core loop toward a real product: note priority and a tappable detail view, a deferred local-first account gated on a free-insight quota, a farm team joined by invite code, and an AI that parses a whole task sentence into fields. Clean model seams ready for a live integration, deployed behind the portfolio domain. And one tension it forced honestly into the open: a required map, an account, and a parse model all want connectivity, pulling against the offline-first promise — logged rather than smoothed over. The actual prototype can be tested on request. Un prototype interactif qui fait tourner toute la boucle de bout en bout — voix ou texte en entrée ; note structurée, conseil contextuel et tâche actionnable entièrement spécifiée en sortie — dans un journal de ferme partagé et multi-utilisateurs avec un véritable onboarding de localisation. Un second cycle de passes l'a fait passer de la boucle centrale vers un vrai produit : priorité de note et vue détail cliquable, compte différé local d'abord conditionné à un quota d'analyses gratuites, équipe de ferme rejointe par code d'invitation, et une IA qui décompose toute une phrase de tâche en champs. Des coutures de modèle propres, prêtes pour une intégration réelle, déployées derrière le domaine du portfolio. Et une tension mise honnêtement au jour : une carte obligatoire, un compte et un modèle d'analyse veulent tous de la connectivité, à contre-courant de la promesse hors-ligne d'abord — consignée plutôt que lissée. The actual prototype can be tested on request.
Farmpal working prototype — voice/text/photo capture, publish-first AI advice, a task detail screen with a field map, and a shared team log. Prototype fonctionnel Farmpal — capture voix/texte/photo, conseil IA publish-first, un écran de détail de tâche avec carte de champ, et un journal d'équipe partagé.

When the research changed everything Quand la recherche a tout changé

Farmpal · AI Note Taker · 2026

There is a line buried in a Jira ticket that started this whole thing. The Farm Notes feature at LiteFarm had been designed, refined, scoped, and handed to engineering. A straightforward noticeboard — text, photo, reverse chronological feed, offline support. Solid work. Useful. Shippable. Then I reread the "for later" section. And there it was: "Depending on success of the feature, we could have AI join the chat and auto-create custom tasks from notes." Twenty-two words. Not a spec, not a strategy — a throwaway thought from someone thinking aloud. But it named something real: the gap between what farmers write and what they mean to do about it. "Broken fence by north gate" isn't just a note. It's an unborn task, waiting for someone to decide it matters enough to act on. I sat with that line. The question it raised wasn't "can AI create tasks from notes?" — the answer is trivially yes, one API call. The question was: what changes about the product if you design around that intelligence from the start? Not retrofitted onto a form-based system. Not a smart feature bolted onto a noticeboard. Built from zero with the AI loop as the core. That reframing changed everything. And the single most consequential design decision that followed — where to surface AI advice — became the question the whole experience hinges on. During compose, or after? Inline, or in a detail view? Blocking, or additive? The answer: after. Never during. Advice is a reward for logging, not a gate before saving. The farmer captures their observation in under ten seconds. The AI responds when it's ready. That sequence — action first, intelligence second — is the whole product in a sentence.

Il y a une ligne enfouie dans un ticket Jira qui a tout déclenché. La fonctionnalité Farm Notes chez LiteFarm avait été conçue, affinée, cadrée et transmise à l'ingénierie. Un tableau d'affichage simple — texte, photo, flux chronologique inversé, support hors ligne. Bon travail. Utile. Livrable. Puis j'ai relu la section "pour plus tard". Et là : "Selon le succès de la fonctionnalité, l'IA pourrait rejoindre le chat et créer automatiquement des tâches à partir des notes." Vingt-deux mots. Pas une spec, pas une stratégie — une pensée jetable. Mais elle nommait quelque chose de réel : l'écart entre ce que les agriculteurs écrivent et ce qu'ils ont l'intention de faire à ce sujet. Cette reformulation a tout changé. Et la décision de design la plus conséquente qui a suivi — où placer les conseils IA — est devenue la question dont toute l'expérience dépend. La réponse : après. Jamais pendant. Le conseil est une récompense pour la journalisation, pas un portail avant la sauvegarde.

The original LiteFarm Farm Notes Jira ticket with the buried AI hook in the "for later" section.
The original LiteFarm Farm Notes Jira ticket with the buried AI hook in the "for later" section. Le ticket Jira LiteFarm original avec le crochet IA enfoui dans la section "pour plus tard".
The core Farmpal loop — capture, structure, advise, save — distilled from three early user flows.
The core Farmpal loop — capture, structure, advise, save — distilled from three early user flows. La boucle centrale Farmpal distillée de trois flux utilisateurs précoces.

Where AI ends and judgment begins Là où l'IA s'arrête et le jugement commence

Farmpal is an AI product, designed with an AI assistant. The meta-layer is real and worth being honest about. Claude helped with the structural work throughout this process: refining specs, identifying contradictions, surfacing edge cases, drafting documents, stress-testing scope decisions. It was fast and genuinely useful for that layer of the work. But every time the conversation touched actual design — where does AI advice live in the UI, what does the compose screen feel like, how do you build trust with a sceptical farmer in a low-connectivity region — the AI offered options, not answers. Those decisions required fifteen years of designing for field workers. They required knowing that a wizard feels like a form, that farmers don't read labels, that "offline" isn't an edge case but a baseline condition for much of the target user base. No prompt carries that. The same applies to the product itself. Farmpal's AI can structure a note and return farming advice. But it cannot know whether that advice applies to this specific farm, this specific climate, this specific soil — not without the farm profile as context. And even with that context, the line between useful farming advice and a generic wiki response is a judgment call the model often gets wrong without careful, intentional prompt design. Shaping what the AI says, how it says it, and when it stays silent — that design work is the craft that matters most, and it is entirely human.

Farmpal est un produit IA, conçu avec un assistant IA. La méta-couche est réelle et mérite d'être honnête. Claude a aidé avec le travail structurel tout au long de ce processus : affiner les specs, identifier les contradictions, faire ressortir les cas limites, rédiger des documents. C'était rapide et utile pour cette couche du travail. Mais chaque fois que la conversation touchait au design réel — où placer les conseils IA dans l'UI, comment construire la confiance avec un agriculteur sceptique — l'IA offrait des options, pas des réponses. Ces décisions nécessitaient quinze ans de conception pour les travailleurs de terrain. La même chose s'applique au produit lui-même. L'IA de Farmpal peut structurer une note et retourner des conseils agricoles. Mais elle ne peut pas savoir si ces conseils s'appliquent à cette ferme spécifique sans le profil de la ferme comme contexte. Façonner ce que l'IA dit, comment elle le dit, et quand elle reste silencieuse — ce travail de design est l'artisanat qui compte le plus, et il est entièrement humain.

What it delivered Ce que ça a livré

Working prototype Prototype fonctionnel

A fully interactive prototype running the whole loop — voice, text, or photo capture; publish-first AI advice with a suggested, overridable priority; tappable notes with edit/delete; tasks whose fields the AI parses from a single sentence, plus a detail screen and field map; a shared multi-user log with a deferred local-first account, a free-insight gate, and a farm team joined by invite code; and required location onboarding with an optional drawn boundary. Built for validation and portfolio presentation, and deployed behind the portfolio domain. Un prototype entièrement interactif faisant tourner toute la boucle — capture voix, texte ou photo ; conseil IA publish-first avec une priorité suggérée et corrigeable ; notes cliquables avec édition/suppression ; tâches dont l'IA déduit les champs d'une seule phrase, plus un écran de détail et une carte de champ ; journal partagé multi-utilisateurs avec un compte différé local d'abord, une limite d'analyses gratuites et une équipe de ferme rejointe par code d'invitation ; et onboarding de localisation obligatoire avec périmètre dessiné optionnel. Construit pour la validation et la présentation portfolio, et déployé derrière le domaine du portfolio.

Two clean model seams Deux coutures de modèle propres

Advice generation and speech-to-text each sit behind a single function with a mocked body — a one-line swap to a live Claude or STT call, so the whole prototype runs offline and keyless today. La génération de conseils et la transcription vocale sont chacune isolées derrière une fonction unique au corps simulé — un changement d'une ligne vers un appel Claude ou STT réel, si bien que tout le prototype tourne aujourd'hui hors-ligne et sans clé.

Decisions logged, reversals included Décisions consignées, revirements compris

Living product, design, and case-study documents kept current as the build evolved — including the honest reversals (voice and tasks pulled in from "later," location made required) and the tensions they opened, like a required map against an offline-first promise. Des documents produit, design et case-study vivants tenus à jour au fil du build — y compris les revirements assumés (voix et tâches ramenées du "plus tard", localisation rendue obligatoire) et les tensions qu'ils ouvrent, comme une carte obligatoire face à une promesse hors-ligne d'abord.

Three screens from the working prototype — the welcome, one-tap voice capture, and a note carrying Farmpal's AI advice and a suggested task.
Three screens from the working prototype — the welcome, one-tap voice capture, and a note carrying Farmpal's AI advice and a suggested task. Trois écrans du prototype fonctionnel — l'accueil, la capture vocale en un geste, et une note portant le conseil IA de Farmpal et une tâche suggérée.

Decisions log Journal des décisions

Every meaningful call, with what it beat and why. The reversals are kept on purpose — in an R&D project the changes of mind are the work, not something to tidy away. Chaque décision qui compte, avec ce qu'elle a écarté et pourquoi. Les revirements sont gardés volontairement — dans un projet de R&D, les changements d'avis sont le travail, pas quelque chose à ranger.

01
Spin Farmpal out of LiteFarm as a standalone product Séparer Farmpal de LiteFarm comme produit autonome

Instead of: Remain a feature inside LiteFarm Au lieu de : Rester une fonctionnalité dans LiteFarm

LiteFarm's resource constraints blocked the AI layer; going standalone removes the ceiling. Les contraintes de ressources de LiteFarm bloquaient la couche IA ; l'autonomie supprime le plafond.

02
Conceived with a sustainable-agriculture domain partner; product & UX design stays mine Conçu avec un partenaire expert en agriculture durable ; le design produit & UX reste le mien

Instead of: A solo, lone-genius framing Au lieu de : Un cadrage solo, génie solitaire

The idea and the domain depth were shared. Credibility comes from naming that honestly. L'idée et la profondeur du domaine étaient partagées. La crédibilité vient de le dire honnêtement.

03
Frame it as an R&D project — accent on UX, not finished visual design Le cadrer comme un projet de R&D — l'accent sur l'UX, pas le design visuel fini

Honest about the stage; the screens read as interaction studies, not a launch. Honnête sur l'étape ; les écrans se lisent comme des études d'interaction, pas un lancement.

04
Focus the MVP on the note-taker core loop; cut the platform vision Concentrer le MVP sur la boucle centrale du carnet ; couper la vision plateforme

Instead of: Build a full farm-management platform Au lieu de : Construire une plateforme complète de gestion agricole

Earn the right to add complexity by proving the core loop first. Mériter le droit d'ajouter de la complexité en prouvant d'abord la boucle centrale.

05
Two onboarding paths — a conversational chat and a stepped form Deux parcours d'onboarding — un chat conversationnel et un formulaire par étapes

Instead of: A single onboarding path Au lieu de : Un parcours d'onboarding unique

Both collect the same farm profile; meet different user preferences. Les deux collectent le même profil de ferme ; s'adapter aux préférences des utilisateurs.

06
Inherit the proven Farm Notes patterns from LiteFarm Hériter des modèles éprouvés de Farm Notes de LiteFarm

Instead of: Reinvent the feed and visibility model from scratch Au lieu de : Réinventer le fil et le modèle de visibilité de zéro

Same designer, same user base — reuse the reverse-chronological feed, the shared/private model, and the offline sync queue. Même designer, même base d'utilisateurs — réutiliser le fil anté-chronologique, le modèle partagé/privé et la file de synchro hors-ligne.

07
Shared notes by default, private as the exception Notes partagées par défaut, privé en exception

Instead of: Private by default Au lieu de : Privé par défaut

Mirrors the barn noticeboard and reduces friction. Reflète le tableau d'affichage de grange et réduit la friction.

08
Audience is a simple two-way switch — Shared with farm or Just me L'audience est un simple choix binaire — Partagé avec la ferme ou Moi seul

Instead of: A granular per-member audience selector Au lieu de : Un sélecteur d'audience granulaire par membre

Keep capture fast; granular targeting is a Phase 2 concern. Garder la capture rapide ; le ciblage fin est une question de Phase 2.

09
Notes are immutable after posting; tasks are editable Les notes sont immuables après publication ; les tâches sont modifiables

Instead of: Editable notes with version history Au lieu de : Notes modifiables avec historique de versions

Avoids audit complexity and confusion over the source of truth in a shared log. Évite la complexité d'audit et la confusion sur la source de vérité dans un journal partagé.

10
Publish-first, suggest-second — note saves instantly, advice resolves after Publier d'abord, suggérer ensuite — la note se sauvegarde, le conseil suit

Instead of: AI during compose, blocking the save Au lieu de : IA pendant la composition, bloquant la sauvegarde

Preserves barn-whiteboard speed; the AI is additive, never a gate. Préserve la vitesse du tableau de grange ; l'IA est additive, jamais un portail.

11
Surface AI advice inline in the feed Faire apparaître le conseil IA en ligne dans le fil Refined Affiné

Instead of: Advice only in a separate detail view Au lieu de : Conseil uniquement dans une vue détail séparée

The feed is where the farmer already is; a detail view stays a later round-trip. Le fil est là où l'agriculteur se trouve déjà ; la vue détail reste un aller-retour ultérieur.

12
One AI call per note, mocked behind a single function seam Un appel IA par note, simulé derrière une couture unique

Instead of: Build AI infrastructure first Au lieu de : Construire l'infrastructure IA d'abord

Makes the AI feature viable solo; a one-line swap to go live. Rend la fonction IA viable en solo ; un changement d'une ligne pour passer en réel.

13
Add one-tap voice as the hero capture path Ajouter la voix en un geste comme chemin de capture principal Reversed Inversé

Instead of: Text + photo only, voice deferred to Phase 2 Au lieu de : Texte + photo seulement, voix repoussée en Phase 2

Field-first means hands full of soil — voice is the fast lane, not a nicety. Penser terrain, c'est mains pleines de terre — la voix est la voie rapide, pas un luxe.

14
A voice note auto-publishes its transcript (publish-first) Une note vocale publie automatiquement sa transcription (publier d'abord)

Instead of: Force a review/confirm step before publishing Au lieu de : Imposer une étape de relecture/confirmation avant publication

Honours the one-tap promise; a transcript-review step is flagged as a recommended safeguard. Respecte la promesse en un geste ; une étape de relecture est signalée comme garde-fou recommandé.

15
Bring tasks into scope Faire entrer les tâches dans le périmètre Reversed Inversé

Instead of: Task management out of scope for MVP Au lieu de : Gestion des tâches hors périmètre du MVP

A note you commit to acting on is a task; collapsing the two kills orphan tasks. Une note sur laquelle on s'engage est une tâche ; fusionner les deux supprime les tâches orphelines.

16
Tasks quick-create, then enrich (description is the only required field) Tâches créées vite, puis enrichies (la description est le seul champ requis)

Instead of: Open the full metadata form on create Au lieu de : Ouvrir le formulaire complet à la création

Field-first capture; metadata is optional and added on tap. Capture pensée terrain ; les métadonnées sont optionnelles et ajoutées au toucher.

17
Rich optional task metadata — crop/field, dates, workers, inputs & outputs, media Métadonnées de tâche riches et optionnelles — culture/champ, dates, travailleurs, intrants & produits, médias

Instead of: A minimal task (title + due only) Au lieu de : Une tâche minimale (titre + échéance)

Real farm planning needs the context — but none of it blocks capture. La vraie planification agricole a besoin du contexte — mais rien ne bloque la capture.

18
Pick a field on a real map (Leaflet pin) Choisir un champ sur une vraie carte (point Leaflet)

Instead of: A list of fields, a single pin, or a radius circle Au lieu de : Une liste de champs, un seul point, ou un cercle de rayon

A pin on a map is how a farmer actually thinks about a field. Un point sur une carte, c'est ainsi qu'un agriculteur pense un champ.

19
Every task carries its origin note (text, media, author, time) Chaque tâche porte sa note d'origine (texte, médias, auteur, heure)

Instead of: A bare task with no provenance Au lieu de : Une tâche nue sans provenance

A task without its observation loses its meaning. Une tâche sans son observation perd son sens.

20
The suggested-task button toggles — add and undo Le bouton de tâche suggérée bascule — ajouter et annuler

Instead of: An irreversible "Add task" Au lieu de : Un "Ajouter la tâche" irréversible

Mis-taps happen in the field; undo is one tap. Les fausses manips arrivent au champ ; annuler est à un toucher.

21
Multi-user from the start — notes have an author, tasks an owner, with an All-farm / Mine filter Multi-utilisateur dès le départ — les notes ont un auteur, les tâches un propriétaire, avec un filtre Toute la ferme / Les miennes

Instead of: A single-user notebook Au lieu de : Un carnet mono-utilisateur

Farms are teams; the shared log only works if you can see who said what. Les fermes sont des équipes ; le journal partagé ne marche que si on voit qui a dit quoi.

22
Navigation = hamburger drawer (extensible) and a bottom tab bar (quick access) Navigation = tiroir hamburger (extensible) et barre d'onglets en bas (accès rapide)

Instead of: One or the other Au lieu de : L'un ou l'autre

The drawer grows into a full nav; the tabs give fast Notes/Tasks switching. Le tiroir devient une nav complète ; les onglets offrent un basculement rapide Notes/Tâches.

23
Add-a-task (typed or spoken) also logs a note and auto-creates the linked task Ajouter une tâche (tapée ou dictée) journalise aussi une note et crée la tâche liée

Instead of: Standalone tasks with no note behind them Au lieu de : Des tâches autonomes sans note derrière

Unifies the model so every task traces back to an observation. Unifie le modèle pour que chaque tâche remonte à une observation.

24
Make farm location required in both onboarding paths Rendre la localisation de la ferme obligatoire dans les deux parcours d'onboarding Reversed Inversé

Instead of: Location optional / skippable Au lieu de : Localisation optionnelle / ignorable

It's the backbone for location-aware advice and the field map — at the cost of new tension with offline-first. C'est le socle du conseil géolocalisé et de la carte de champ — au prix d'une tension nouvelle avec le hors-ligne d'abord.

25
Location entry by address search, coordinates, or GPS Saisie de la localisation par recherche d'adresse, coordonnées ou GPS

Instead of: Coordinates-only or drop-a-pin-only Au lieu de : Coordonnées seules ou seulement poser un point

The phrase "enter the address" has to actually resolve to a place. La formule "saisir l'adresse" doit réellement aboutir à un lieu.

26
Draw the farm boundary as a polygon with a hectare readout (optional) Tracer le périmètre de la ferme en polygone avec une surface en hectares (optionnel)

Instead of: A centre pin + radius, or skipping boundaries Au lieu de : Un point central + rayon, ou ignorer le périmètre

Outlines an irregular farm accurately, without blocking onboarding. Trace fidèlement une ferme irrégulière, sans bloquer l'onboarding.

27
Keep the leaf-and-notes Mark; reject a phone/tap/sparkle logo Garder la marque feuille-et-notes ; écarter un logo téléphone/tap/étincelle

Instead of: Adopt the alternate badge Au lieu de : Adopter le badge alternatif

It read as a generic AI to-do app, carried no farm signal, fought the voice/field-first thesis, and broke below ~40px. The leaf stays — later refined to a single path with veins as negative space, at a lighter weight so it reads cleaner small. Il sonnait comme une appli de tâches IA générique, sans signal agricole, à contre-courant de la thèse voix/terrain, et cassait sous ~40px. La feuille reste — ensuite affinée en un seul tracé, nervures en réserve, à un poids plus léger pour mieux se lire en petit.

28
Two model seams only (advice + speech-to-text), each a one-line swap to live Seulement deux coutures de modèle (conseil + transcription), chacune un changement d'une ligne vers le réel

Instead of: Couple the model deeper into the UI Au lieu de : Coupler le modèle plus profondément à l'UI

Keeps the prototype runnable offline and keyless, with a clean path to production. Garde le prototype exécutable hors-ligne et sans clé, avec un chemin propre vers la production.

29
Single primary nav — bottom tabs plus a top-right account menu; the hamburger drawer is removed Une seule nav principale — onglets en bas plus un menu compte en haut à droite ; le tiroir hamburger est supprimé Reversed Inversé

Instead of: The hamburger drawer + tabs decided a week earlier Au lieu de : Le tiroir hamburger + onglets décidé une semaine plus tôt

Drawer and tabs both led to Notes and Tasks — two competing mental models. Bottom = the work; the top-right avatar = the farm and account. Le tiroir et les onglets menaient tous deux à Notes et Tâches — deux modèles mentaux concurrents. En bas = le travail ; l'avatar en haut à droite = la ferme et le compte.

30
Labeled FAB pills instead of icon-only buttons Boutons d'action étiquetés plutôt qu'icônes seules

Instead of: Bare mic / pencil icons with a one-time hint Au lieu de : Icônes micro / crayon nues avec une astuce ponctuelle

Field, multilingual, and low-literacy users can't decode bare icons; a hint that vanishes fails returning and empty-state users. The affordance carries its own label. Les utilisateurs de terrain, multilingues ou peu lettrés ne décodent pas des icônes nues ; une astuce qui disparaît échoue pour les revenants et l'état vide. L'élément porte son propre libellé.

31
The empty feed is three tap-to-fill starter prompts Le fil vide propose trois amorces à remplir d'un toucher

Instead of: A generic "write something" call to action Au lieu de : Un appel à l'action générique "écrivez quelque chose"

A pre-written prompt is a faster first note than a blank box. Une amorce pré-écrite donne une première note plus rapide qu'une boîte vide.

32
Notes get a tappable detail view with full round-trip navigation Les notes ont une vue détail cliquable avec navigation aller-retour complète

Instead of: Feed-only notes / a read-only origin link Au lieu de : Notes uniquement dans le fil / un lien d'origine en lecture seule

Edit, delete, linked tasks, and the task → note → back loop all need a real screen. Éditer, supprimer, les tâches liées et la boucle tâche → note → retour exigent un véritable écran.

33
Note edit/delete model — own notes editable; delete blocked while active linked tasks exist; the cascade keeps done tasks Modèle d'édition/suppression — ses propres notes modifiables ; suppression bloquée tant que des tâches liées sont actives ; la cascade garde les tâches terminées

Instead of: Free deletion / a hard cascade that drops everything Au lieu de : Suppression libre / une cascade dure qui efface tout

Protects task provenance — you can't destroy a note someone is still working; done tasks stay as history. Protège la provenance des tâches — on ne peut pas détruire une note encore en cours ; les tâches terminées restent comme historique.

34
AI suggests a note priority; the farmer overrides L'IA suggère une priorité de note ; l'agriculteur la corrige

Instead of: No priority, or a priority the user must set Au lieu de : Pas de priorité, ou une priorité que l'utilisateur doit définir

Same publish-first/suggest-second model; the override is recoverable and the suggestion stays marked. Colours are an earthy traffic-light (sage to clay), contrast-checked, not neon. Même modèle publier-d'abord/suggérer-ensuite ; la correction est réversible et la suggestion reste marquée. Les couleurs sont un feu tricolore terreux (sauge à argile), contraste vérifié, pas du néon.

35
A deferred, local-first account Un compte différé, local d'abord

Instead of: The "no account needed" promise forever, or sign-up up front Au lieu de : La promesse "aucun compte requis" pour toujours, ou inscription d'emblée

Capture works with no sign-up; the account is asked for only when it earns its keep. "No account" couldn't survive AI cost, sync, and sharing — so the pitch became "your data, your control," deferred to the first value moment. La capture marche sans inscription ; le compte n'est demandé que lorsqu'il le mérite. "Aucun compte" ne survivait pas au coût de l'IA, à la synchro et au partage — le discours est devenu "vos données, votre contrôle", différé au premier vrai moment de valeur.

36
The free-insight quota is the account trigger Le quota d'analyses gratuites déclenche le compte

Instead of: A time wall or a feature wall Au lieu de : Un mur temporel ou un mur de fonctionnalité

After three free insights the note still publishes — only the advice locks. The farmer has felt the value, and signing up unlocks the very note they were just denied. Après trois analyses gratuites la note se publie encore — seul le conseil se verrouille. L'agriculteur a senti la valeur, et l'inscription débloque la note qu'on venait de lui refuser.

37
Team is gated behind an account L'équipe est conditionnée à un compte

Instead of: Team features for anonymous users Au lieu de : Des fonctions d'équipe pour les utilisateurs anonymes

Inviting and syncing a team needs the farm backed up; anonymous users see the teaser in the create-account prompt instead. Inviter et synchroniser une équipe suppose la ferme sauvegardée ; les anonymes voient l'aperçu dans l'invite de création de compte.

38
Farm team by a 6-character invite code; join at first run from Welcome Équipe par un code d'invitation à 6 caractères ; rejoindre au premier lancement depuis l'accueil

Instead of: Email invites or in-app account switching Au lieu de : Invitations par e-mail ou bascule de compte dans l'app

A short, ambiguity-free code is the lowest-friction share for field/low-literacy users; joining lives on Welcome — the honest home for a worker invited by their boss. Un code court et sans ambiguïté est le partage le moins friction pour des utilisateurs de terrain/peu lettrés ; rejoindre vit sur l'Accueil — la place honnête pour un ouvrier invité par son patron.

39
AI parses a task sentence into fields L'IA décompose une phrase de tâche en champs

Instead of: Manual entry of each field Au lieu de : Saisie manuelle de chaque champ

One sentence becomes title, crop, field, people, due and amounts — pre-filled and editable. Unmatched items stay as editable text, so nothing needs pre-defining first. Une phrase devient titre, culture, champ, personnes, échéance et quantités — pré-rempli et modifiable. Les éléments non reconnus restent en texte modifiable, donc rien à définir au préalable.

40
Split crop and field into two slots Séparer culture et champ en deux emplacements Refined Affiné

Instead of: The earlier single crop-or-field slot Au lieu de : L'ancien emplacement unique culture-ou-champ

A real task needs a crop AND a field at once; the either/or couldn't hold both. Une vraie tâche a besoin d'une culture ET d'un champ à la fois ; le ou-exclusif ne pouvait tenir les deux.

41
Offline-first as a foundational pillar Le hors-ligne d'abord comme pilier fondateur

Instead of: Assume connectivity is always there Au lieu de : Supposer la connectivité toujours présente

Variable connectivity in the field is the default, not the edge case. (Now in real tension with maps, geocoding, and the account — logged honestly rather than denied.) La connectivité variable au champ est le cas par défaut, pas l'exception. (Désormais en vraie tension avec les cartes, le géocodage et le compte — consigné honnêtement plutôt que nié.)

The reusable playbook Le guide réutilisable

01
Find the buried line Trouver la ligne enfouie

The most interesting product idea in a ticket is rarely the headline feature. It is the throwaway thought in "for later" that nobody had time to develop. Train yourself to find it. L'idée de produit la plus intéressante dans un ticket est rarement la fonctionnalité principale. C'est la pensée jetable dans "pour plus tard" que personne n'a eu le temps de développer. Apprenez à la trouver.

02
Earn the right to add complexity Mériter le droit d'ajouter de la complexité

When scope expands before the core loop is proven, you are building on sand. Cut everything that cannot be justified by the one thing the product must do well. Phase 2 is a promise, not a plan. Quand le périmètre s'étend avant que la boucle centrale ne soit prouvée, vous construisez sur du sable. Coupez tout ce qui ne peut pas être justifié par la seule chose que le produit doit bien faire.

03
Action first, intelligence second Action d'abord, intelligence ensuite

AI that gates actions loses trust fast. AI that responds to completed actions builds it slowly. The sequence matters as much as the capability. Never block the farmer while the model thinks. L'IA qui bloque les actions perd la confiance rapidement. L'IA qui répond aux actions complétées la construit lentement. La séquence compte autant que la capacité. Ne jamais bloquer l'agriculteur pendant que le modèle réfléchit.

04
Document the rejects Documenter les rejets

A decisions log without rejected alternatives is just a list of what you did. The craft is visible in what you chose not to do and why. That is what makes a case study a case study. Un journal de décisions sans alternatives rejetées n'est qu'une liste de ce que vous avez fait. L'artisanat est visible dans ce que vous avez choisi de ne pas faire et pourquoi.

05
Constraint is a brief La contrainte est un brief

Farmpal exists because LiteFarm could not fund AI. The institutional ceiling that blocked the feature became the reason to build the product. Constraints do not just shape what you build — they reveal what is worth building. Farmpal existe parce que LiteFarm ne pouvait pas financer l'IA. Le plafond institutionnel qui bloquait la fonctionnalité est devenu la raison de construire le produit. Les contraintes ne façonnent pas seulement ce que vous construisez — elles révèlent ce qui mérite d'être construit.

I have spent fifteen years designing for people who do not have time for bad software — farmers, field workers, NGO staff operating in low-connectivity regions where a confusing flow is a real problem, not a UX metric. Farmpal is what happens when all of that context meets an AI layer designed to respect the user's time rather than consume it. This case study is written as the product is built. Nothing is cleaned up after the fact. J'ai passé quinze ans à concevoir pour des personnes qui n'ont pas le temps pour les mauvais logiciels — agriculteurs, travailleurs de terrain, personnel d'ONG opérant dans des régions à faible connectivité où un flux confus est un vrai problème. Farmpal est ce qui se produit quand tout ce contexte rencontre une couche IA conçue pour respecter le temps de l'utilisateur plutôt que de le consommer. Cette étude de cas est écrite au fur et à mesure que le produit est construit. Rien n'est nettoyé après coup.