[{"data":1,"prerenderedAt":117},["ShallowReactive",2],{"case-study-module-builder":3},{"id":4,"title":5,"accent":6,"body":7,"description":82,"extension":90,"liveUrl":91,"meta":92,"metrics":93,"navigation":103,"order":104,"path":105,"role":106,"seo":107,"stem":108,"summary":109,"tech":110,"year":115,"__hash__":116},"caseStudies\u002Fcase-studies\u002Fmodule-builder.md","PEARS Module Builder","cyan",{"type":8,"value":9,"toc":81},"minimark",[10,13,18,22,30,34,37,60,64,67,71,74,78],[11,12],"module-builder-video",{},[14,15,17],"h2",{"id":16},"context","Context",[19,20,21],"p",{},"PEARS is a production platform that 191 organizations, from university extension programs to public-health departments, use to track, measure, and improve community outreach. For most of its life its greatest strength was also its ceiling: a curated set of data-collection forms, reports, and workflows purpose-built for cooperative extension and nutrition education. Excellent for the programs it was designed around, rigid for anyone whose data did not fit that mold.",[19,23,24,25,29],{},"Module Builder answers that ceiling. It lets an organization build ",[26,27,28],"em",{},"any"," data-collection tool it needs while inheriting the structure, reporting, and workflow that make PEARS trustworthy. This case study covers the public launch of that work; Canopy released the walkthrough above on its own channel.",[14,31,33],{"id":32},"from-fixed-forms-to-a-no-code-builder","From fixed forms to a no-code builder",[19,35,36],{},"The whole design challenge here is making a tool flexible without letting \"flexible\" collapse into \"unstructured.\" A blank form builder is easy; one that keeps every organization's improvised data clean and reportable is not.",[38,39,40,48,54],"ul",{},[41,42,43,47],"li",{},[44,45,46],"strong",{},"Sections and a field palette."," A module starts from a general-information section, then administrators add their own sections and drag in fields from a palette: checkboxes, radio groups, dropdowns, numbers, and dates, alongside heavier building blocks like sub-forms (many records inside one section), file uploads, and related modules that link records across the platform.",[41,49,50,53],{},[44,51,52],{},"Structure that survives."," Every field carries a stable identifier, because a builder is only worth anything if what you collect stays reportable later. Fields layer on help text, option lists, required toggles, and conditional display rules that show or hide fields based on other answers.",[41,55,56,59],{},[44,57,58],{},"Test before you publish."," Preview a module in a new window, then publish it now or schedule it for later. Once it is live, a custom module behaves like any native PEARS module: section-by-section data entry, sub-forms, mark-as-complete, and export.",[14,61,63],{"id":62},"the-data-has-to-go-somewhere","The data has to go somewhere",[19,65,66],{},"A form builder that traps its data is just a form. Module Builder is data-first: custom modules flow straight into Data Mart as their own tables, sub-forms and uploaded files included, with API access on the roadmap. That is the line between \"a form tool\" and a genuinely new way to collect data without losing the structure that makes the platform effective.",[14,68,70],{"id":69},"an-ai-assist-for-the-tedious-part","An AI assist for the tedious part",[19,72,73],{},"Building a module from a blank canvas is tedious, so there is an AI helper built into the builder. You describe the tool you want in plain English, it generates a solid first draft, and then it does the thing most generators skip: it asks clarifying questions (\"how often will staff create these records? what should this field's type be?\") and refines from your answers. It gets you to a strong starting point; you stay in control of the details.",[14,75,77],{"id":76},"why-its-here","Why it's here",[19,79,80],{},"This is my favorite kind of product problem. The hard part was never adding flexibility, it was adding flexibility without surrendering the rigor that made the product worth trusting in the first place. Getting the underlying data structures right, so that anything an administrator dreams up stays clean, connected, and reportable, is exactly the work I care most about. For a long time this was the piece of my job I could only walk through in an interview. Now that Canopy has launched it publicly, I can finally show it.",{"title":82,"searchDepth":83,"depth":83,"links":84},"",2,[85,86,87,88,89],{"id":16,"depth":83,"text":17},{"id":32,"depth":83,"text":33},{"id":62,"depth":83,"text":63},{"id":69,"depth":83,"text":70},{"id":76,"depth":83,"text":77},"md",null,{},[94,97,100],{"label":95,"value":96},"Interface","No-code",{"label":98,"value":99},"AI assist","Prompt to draft",{"label":101,"value":102},"Data path","Data Mart",true,3,"\u002Fcase-studies\u002Fmodule-builder","Senior Software Engineer, Canopy",{"title":5,"description":82},"case-studies\u002Fmodule-builder","A no-code builder that lets any organization compose its own data-collection tools inside PEARS, without losing the structure and reporting that make the platform worth trusting. Plus an AI assistant that drafts a module from a plain-English description.",[111,112,113,96,114],"Vue","TypeScript","Design systems","AI","2024–26","m-1GU0Z_qVtnZaQAZ-G7XgxVczPvPX4pxq7wMxnShKY",1792537541225]