[{"data":1,"prerenderedAt":229},["ShallowReactive",2],{"work-\u002Fwork\u002Fnoori":3,"work-nav":168},{"id":4,"title":5,"anonymised":6,"architecture":7,"body":30,"client":104,"description":98,"extension":105,"featured":106,"headline":107,"industry":108,"meta":109,"metrics":110,"navigation":106,"order":120,"path":121,"practice":122,"role":123,"screens":124,"seo":154,"stack":155,"status":164,"stem":165,"url":166,"year":166,"__hash__":167},"work\u002Fwork\u002Fnoori.md","Noori Health, an iPhone app for tracking symptoms",false,[8,13,19,24],{"name":9,"items":10},"Apps",[11,12],"iPhone app (Ionic + Capacitor)","Web app (Nuxt 4)",{"name":14,"items":15},"Safety",[16,17,18],"Consent capture","Red-flag routing to NHS 111 \u002F 999","Educational-only AI labels",{"name":20,"items":21},"AI",[22,23],"Assistant chat","Retrieval service",{"name":25,"items":26},"Data",[27,28,29],"Supabase Postgres","Default-deny row-level security","Drizzle for server writes",{"type":31,"value":32,"toc":97},"minimark",[33,38,42,46,87,91,94],[34,35,37],"h2",{"id":36},"why-we-built-it","Why we built it",[39,40,41],"p",{},"People living with ongoing symptoms often arrive at appointments without a clear picture of how they've been. Noori is a private record between appointments: log how you feel, see the pattern and walk in prepared.",[34,43,45],{"id":44},"what-it-does","What it does",[47,48,49,57,63,69,75,81],"ul",{},[50,51,52,56],"li",{},[53,54,55],"strong",{},"Intake."," A short, guided intake covering focus areas and symptoms, which tailors what Noori tracks.",[50,58,59,62],{},[53,60,61],{},"Daily check-in."," About 30 seconds to rate the symptoms being tracked, pre-filled from the last log.",[50,64,65,68],{},[53,66,67],{},"Timeline."," Trends over 30 days, 90 days or all time, with a breakdown by symptom.",[50,70,71,74],{},[53,72,73],{},"Noori assistant."," A chat assistant that asks for consent first, keeps data private and flags when someone should contact NHS 111 or 999.",[50,76,77,80],{},[53,78,79],{},"Find a nutritionist."," A directory of registered nutritionists, with requests, saved profiles and in-app chat.",[50,82,83,86],{},[53,84,85],{},"For nutritionists."," A dashboard of requests and clients, intake snapshots, shared check-in ratings and notes.",[34,88,90],{"id":89},"how-its-built","How it's built",[39,92,93],{},"The iPhone app is built with Ionic, Vue and Capacitor, sharing design tokens, content and types with a Nuxt 4 web app through a pnpm workspace. Supabase provides Postgres and auth: client reads go through row-level security that denies by default, and all writes go through server routes using Drizzle.",[39,95,96],{},"Safety is designed in rather than added later. Every AI-derived screen carries an \"educational, not diagnostic\" label, red-flag routing lives in one place in code, and consent is captured before anything is shared with a nutritionist.",{"title":98,"searchDepth":99,"depth":99,"links":100},"",2,[101,102,103],{"id":36,"depth":99,"text":37},{"id":44,"depth":99,"text":45},{"id":89,"depth":99,"text":90},"Noori Health","md",true,"A health companion that helps people log symptoms between appointments, see patterns over time and connect with a registered nutritionist.","Digital health",{},[111,114,117],{"value":112,"label":113},"2","Sides: patients and nutritionists",{"value":115,"label":116},"30s","Daily check-in",{"value":118,"label":119},"Not diagnostic","Every AI surface clearly labelled as educational",13,"\u002Fwork\u002Fnoori","product","Founder, design and build",[125,128,131,134,136,139,142,145,148,151],{"src":126,"alt":127},"\u002Fimages\u002Fwork\u002Fnoori\u002F01-signed-out-welcome.webp","Welcome",{"src":129,"alt":130},"\u002Fimages\u002Fwork\u002Fnoori\u002F04-intake-symptoms.webp","Intake: symptoms",{"src":132,"alt":133},"\u002Fimages\u002Fwork\u002Fnoori\u002F02-patient-home.webp","Home",{"src":135,"alt":116},"\u002Fimages\u002Fwork\u002Fnoori\u002F02-patient-check-in.webp",{"src":137,"alt":138},"\u002Fimages\u002Fwork\u002Fnoori\u002F02-patient-timeline.webp","Symptom timeline",{"src":140,"alt":141},"\u002Fimages\u002Fwork\u002Fnoori\u002F02-patient-noori.webp","Noori assistant, with consent",{"src":143,"alt":144},"\u002Fimages\u002Fwork\u002Fnoori\u002F02-patient-chat-thread.webp","Chat with a nutritionist",{"src":146,"alt":147},"\u002Fimages\u002Fwork\u002Fnoori\u002F02-patient-directory.webp","Find a nutritionist",{"src":149,"alt":150},"\u002Fimages\u002Fwork\u002Fnoori\u002F03-practitioner-dashboard.webp","Nutritionist dashboard",{"src":152,"alt":153},"\u002Fimages\u002Fwork\u002Fnoori\u002F03-practitioner-client-detail.webp","Client request and intake",{"title":5,"description":98},[156,157,158,159,160,161,162,163],"Ionic","Vue 3","Capacitor","Nuxt 4","Supabase","Drizzle ORM","TypeScript","Tailwind CSS","iPhone app in development","work\u002Fnoori",null,"hOqyYyo3JOduUpUpbdKdK0iHwyL-Uy3YHTXMAc-3Yy8",[169,174,178,183,188,193,198,203,208,213,218,223,228],{"path":170,"title":171,"client":172,"order":173},"\u002Fwork\u002Fstarbucks","Starbucks' first Shopify store","Starbucks",1,{"path":175,"title":176,"client":177,"order":99},"\u002Fwork\u002Fgood-beams","In-store and online retail for Good Beams","Good Beams",{"path":179,"title":180,"client":181,"order":182},"\u002Fwork\u002Fhebtroco","Moving HebTroCo from WooCommerce to Shopify","HebTroCo",3,{"path":184,"title":185,"client":186,"order":187},"\u002Fwork\u002Fbrimm","Membership, store credit and a Planet Fund for BRiMM","BRiMM",4,{"path":189,"title":190,"client":191,"order":192},"\u002Fwork\u002Fdbco","Native Shopify loyalty for premium fashion brands","DBCO",5,{"path":194,"title":195,"client":196,"order":197},"\u002Fwork\u002Fmyom","AI search visibility for MYOM Oat Drinks","MYOM",6,{"path":199,"title":200,"client":201,"order":202},"\u002Fwork\u002Fbleach-london","Platform build for Bleach London","Bleach London",7,{"path":204,"title":205,"client":206,"order":207},"\u002Fwork\u002Fviaduct","Re-platforming Viaduct Furniture","Viaduct Furniture",8,{"path":209,"title":210,"client":211,"order":212},"\u002Fwork\u002Fcubitts","Stabilising the Cubitts tech stack","Cubitts",9,{"path":214,"title":215,"client":216,"order":217},"\u002Fwork\u002Fbirl","Engineering process for an AI resale startup","Birl Technology",10,{"path":219,"title":220,"client":221,"order":222},"\u002Fwork\u002Fpluro","Closing the gap between founder and team at Pluro","Pluro",11,{"path":224,"title":225,"client":226,"order":227},"\u002Fwork\u002Fmuro","Muro, a social app for padel players","Muro",12,{"path":121,"title":5,"client":104,"order":120},1790883139393]