[{"data":1,"prerenderedAt":435},["ShallowReactive",2],{"site-settings":3,"article-details-users-feel":77,"blog-archive":107,"article-related-project-details-users-feel":10},{"global":4,"header":11,"footer":27},{"brandName":5,"brandStamp":6,"brandTagline":7,"communityUrl":8,"defaultSeoDescription":9,"defaultOgImage":10},"Useful Labs","est. 2025 · UK","Serious software, built out loud.","https:\u002F\u002Fapps.usefullabs.io","A product-led lab building production-grade platforms in the open — Sonic Artistes, Castora and more. A few times a year we take that same craft to a client build. Real software, shipped at product-team pace, shared honestly.",null,{"navLinks":12,"scarcityPulse":10,"showClock":25,"ctaLabel":26,"ctaUrl":8},[13,17,20,23],{"label":14,"url":15,"external":16},"Projects","\u002Fprojects",false,{"label":18,"url":19,"external":16},"Writing","\u002Fblog",{"label":21,"url":22,"external":16},"Tools","\u002Ftools",{"label":24,"url":8,"external":25},"The Hub",true,"Join the community",{"tagline":7,"aboutParagraph":28,"copyrightLine":29,"columns":30,"legalLinks":64},"A UK product lab, built in the open. Real production software, documented honestly — no hype, no highlights reel.","© Useful Labs {year} · Made in the UK with unusual patience.",[31,41,50],{"heading":14,"links":32},[33,36,39],{"label":34,"url":35,"external":25},"Sonic Artistes","https:\u002F\u002Fapp.sonicartistes.com",{"label":37,"url":38,"external":25},"Castora","https:\u002F\u002Fgetcastora.com",{"label":40,"url":15,"external":16},"Archive",{"heading":18,"links":42},[43,44,47],{"label":18,"url":19,"external":16},{"label":45,"url":46,"external":16},"RSS feed","\u002Frss.xml",{"label":48,"url":49,"external":16},"Newsletter","#newsletter",{"heading":51,"links":52},"Elsewhere",[53,55,58,61],{"label":24,"url":54,"external":25},"https:\u002F\u002Fcommunity.usefullabs.io",{"label":56,"url":57,"external":25},"GitHub","https:\u002F\u002Fgithub.com\u002Fpaulwilliams-us",{"label":59,"url":60,"external":25},"X \u002F Twitter","https:\u002F\u002Fx.com",{"label":62,"url":63,"external":16},"Email","mailto:hello@usefullabs.io",[65,68,71,74],{"label":66,"url":67,"external":16},"Privacy","\u002Fprivacy",{"label":69,"url":70,"external":16},"Terms","\u002Fterms",{"label":72,"url":73,"external":16},"AI Policy","\u002Fai-policy",{"label":75,"url":76,"external":16},"Colophon","\u002Fcolophon",{"index":78,"slug":79,"title":80,"excerpt":81,"category":82,"categorySlug":85,"tags":86,"dateLabel":90,"readingLabel":91,"readingMinutes":92,"publishedIso":93,"href":94,"isFeatured":16,"relatedProjectIds":95,"featuredImage":96,"contentHtml":101,"ogImage":10,"modifiedIso":102,"author":103,"wordCount":106},"#0006","details-users-feel","The details users never notice are the ones they feel","Microcopy, empty states, the message when something breaks — the small stuff no one points to is exactly what makes an app feel trustworthy or cheap. A short case for sweating the details.",{"label":83,"tone":84},"Digital Experience","violet","digital-experience",[87],{"name":88,"slug":89},"Productivity","productivity","1mo ago","3 min read",3,"2026-07-10T12:00:00","\u002Fblog\u002Fdetails-users-feel",[],{"src":97,"alt":98,"width":99,"height":100},"https:\u002F\u002Foffice.usefullabs.io\u002Fassets\u002F9ffe7485-0a5b-4e16-a2da-8f5016af1fd3","Details Users Feel",1672,941,"\u003Cp>Ask someone why they trust a piece of software and they will struggle to tell you. They will say it “feels solid” or “just works.” Push a little and you find the reasons are tiny: the error message that told them exactly what to fix, the empty screen that explained what to do next, the confirmation that used their words instead of the system’s. None of it is the sort of thing anyone notices on purpose. All of it is the sort of thing everyone feels.\u003C\u002Fp>\u003Ch2>Microcopy is the interface talking to you\u003C\u002Fh2>\u003Cp>The words in a product do more emotional work than the layout. “Something went wrong” tells a worried person nothing and leaves them stuck. “We couldn’t save that because your session expired — sign back in and we’ll keep your changes” tells them what happened, why, and that they are not about to lose an hour of work. Same failure, completely different experience. The pixels did not change. The words did.\u003C\u002Fp>\u003Ch2>Empty states are first impressions\u003C\u002Fh2>\u003Cp>The first time someone opens a new section, it is usually empty, and most software treats that moment as nothing: a blank panel, maybe a sad little “No items.” That blank screen is the worst possible first impression, shown at the exact moment a new user is deciding whether this was worth it. An empty state should do a job: say what lives here, why it is useful, and exactly how to add the first one. It is the cheapest onboarding you will ever build.\u003C\u002Fp>\u003Ch2>The details that quietly say “we care”\u003C\u002Fh2>\u003Cul>\u003Cli>A delete that asks you to confirm by typing the name, so you cannot wipe the wrong thing on autopilot.\u003C\u002Fli>\u003Cli>A form that keeps your input when validation fails, instead of making you start again.\u003C\u002Fli>\u003Cli>A status that reads “Sent” in plain English, not a colour-coded dot you have to decode.\u003C\u002Fli>\u003Cli>A loading state that holds the layout in place, so the page does not jump under your thumb just as you tap.\u003C\u002Fli>\u003Cli>Numbers and dates formatted the way a person writes them, not the way a database stores them.\u003C\u002Fli>\u003C\u002Ful>\u003Cp>Each of these is small enough to skip, and most products skip most of them. That is exactly why doing them sets you apart. The gap between “fine” and “trustworthy” is not one big feature. It is fifty small kindnesses that no roadmap will ever list.\u003C\u002Fp>\u003Ch2>Why it is worth the time\u003C\u002Fh2>\u003Cp>People cannot audit your architecture. They cannot see your test coverage or your uptime. So they judge the things they can see, and they reason outward: if the error messages are thoughtful, the rest is probably thoughtful too. The details are not decoration on top of the trust. They are the evidence people use to decide whether to trust you at all.\u003C\u002Fp>\u003Cp>You will never get a thank-you for the empty state you wrote carefully or the error message you rewrote three times. You will get something better: a quiet sense, on the other side of the screen, that whoever built this was paying attention. People feel that. It is most of the reason they stay.\u003C\u002Fp>","",{"name":104,"slug":105},"Paul Williams","paul-williams",519,[108,131,151,170,188,207,224,241,259,275,289,303,320,326,341,356,385,412],{"index":109,"slug":110,"title":111,"excerpt":112,"category":113,"categorySlug":116,"tags":117,"dateLabel":122,"readingLabel":123,"readingMinutes":124,"publishedIso":125,"href":126,"isFeatured":16,"relatedProjectIds":127,"featuredImage":128},"#0018","the-zero-build-myth","The £0-build myth: what AI-assisted software really costs you","You can build software with AI faster and cheaper than ever. That does not make it free. The costs just moved somewhere less obvious — and pretending they vanished is how projects quietly go wrong.",{"label":114,"tone":115},"Digital Transformation","accent","digital-transformation",[118,121],{"name":119,"slug":120},"Developer Advice","developer-advice",{"name":114,"slug":116},"today","4 min read",4,"2026-08-24T08:00:00","\u002Fblog\u002Fthe-zero-build-myth",[],{"src":129,"alt":130,"width":99,"height":100},"https:\u002F\u002Foffice.usefullabs.io\u002Fassets\u002F90a617ed-ca25-4824-8ca5-f689ee1ea9ec","The Zero Build Myth",{"index":132,"slug":133,"title":134,"excerpt":135,"category":136,"categorySlug":116,"tags":137,"dateLabel":144,"readingLabel":123,"readingMinutes":124,"publishedIso":145,"href":146,"isFeatured":16,"relatedProjectIds":147,"featuredImage":148},"#0017","what-ai-is-actually-good-at","What AI is genuinely good at in a small business (and what it still isn't)","Past the hype and the doom, there is a practical question most businesses never get a straight answer to: what is AI actually useful for right now, and what should you still keep well away from it? Here is an honest map.",{"label":114,"tone":115},[138,141],{"name":139,"slug":140},"AI","ai",{"name":142,"slug":143},"Small Business","small-business","2d ago","2026-08-21T16:05:26","\u002Fblog\u002Fwhat-ai-is-actually-good-at",[],{"src":149,"alt":150,"width":99,"height":100},"https:\u002F\u002Foffice.usefullabs.io\u002Fassets\u002F4ca0fcb2-caec-45d0-b5b2-c1aa0f61830e","What AI Is Actually Good At",{"index":152,"slug":153,"title":154,"excerpt":155,"category":156,"categorySlug":116,"tags":157,"dateLabel":163,"readingLabel":123,"readingMinutes":124,"publishedIso":164,"href":165,"isFeatured":16,"relatedProjectIds":166,"featuredImage":167},"#0016","off-the-shelf-or-build-it","Off-the-shelf or build it? A decision framework for non-technical founders","Build it or buy it is one of the most consequential decisions a founder makes, and it is usually made on instinct. Here is a simple framework for making it on purpose.",{"label":114,"tone":115},[158,160],{"name":21,"slug":159},"tools",{"name":161,"slug":162},"Workflows","workflows","6d ago","2026-08-17T07:58:07","\u002Fblog\u002Foff-the-shelf-or-build-it",[],{"src":168,"alt":169,"width":99,"height":100},"https:\u002F\u002Foffice.usefullabs.io\u002Fassets\u002F7a4d7dd3-34f8-452e-89ce-01ec323fdaaf","Off the Shelf or Build It",{"index":171,"slug":172,"title":173,"excerpt":174,"category":175,"categorySlug":116,"tags":176,"dateLabel":181,"readingLabel":123,"readingMinutes":124,"publishedIso":182,"href":183,"isFeatured":16,"relatedProjectIds":184,"featuredImage":185},"#0015","spreadsheet-is-a-strategy","“We'll just use a spreadsheet” is a strategy — until it isn't","The humble spreadsheet runs more of the business world than any SaaS platform. That is fine, right up to the point where it quietly becomes the thing holding you back. Here is how to spot the moment to graduate.",{"label":114,"tone":115},[177,178],{"name":21,"slug":159},{"name":179,"slug":180},"Strategy","strategy","1w ago","2026-08-14T09:00:00","\u002Fblog\u002Fspreadsheet-is-a-strategy",[],{"src":186,"alt":187,"width":99,"height":100},"https:\u002F\u002Foffice.usefullabs.io\u002Fassets\u002F4830ede4-ee87-4a90-bb79-e839a375bcdb","Spreadsheet Is a Strategy",{"index":189,"slug":190,"title":191,"excerpt":192,"category":193,"categorySlug":194,"tags":195,"dateLabel":181,"readingLabel":91,"readingMinutes":92,"publishedIso":200,"href":201,"isFeatured":16,"relatedProjectIds":202,"featuredImage":204},"#0014","what-cruise-crews-taught-me","What managing cruise-ship crews taught me about building software people use","Build for the best case and your software works in the demo. Build for a tired person on bad Wi-Fi in the middle of the ocean, and you end up building something that works for everyone.",{"label":34,"tone":115},"sonic-artistes",[196,199],{"name":197,"slug":198},"User Experience","ux",{"name":161,"slug":162},"2026-08-10T08:00:00","\u002Fblog\u002Fwhat-cruise-crews-taught-me",[203],"sonic-artistes-agency-app",{"src":205,"alt":206,"width":99,"height":100},"https:\u002F\u002Foffice.usefullabs.io\u002Fassets\u002Ff9e0e871-829d-418a-b95e-26fbde64f162","What Cruise Crews Taught Me",{"index":208,"slug":209,"title":210,"excerpt":211,"category":212,"categorySlug":213,"tags":214,"dateLabel":217,"readingLabel":91,"readingMinutes":92,"publishedIso":218,"href":219,"isFeatured":16,"relatedProjectIds":220,"featuredImage":221},"#0013","casting-industry-runs-on-email","The casting industry runs on email. It shouldn't.","Auditions are coordinated through a chaos of email threads, spreadsheets and lost attachments. It works, barely. Here is what the casting world taught us about the cost of ‘it works, barely.’",{"label":37,"tone":213},"castora",[215,216],{"name":88,"slug":89},{"name":197,"slug":198},"2w ago","2026-08-07T09:00:00","\u002Fblog\u002Fcasting-industry-runs-on-email",[213],{"src":222,"alt":223,"width":99,"height":100},"https:\u002F\u002Foffice.usefullabs.io\u002Fassets\u002F911ddf3a-0a0b-473c-98e8-326b3bc5cc26","Casting Industry Runs on Email",{"index":225,"slug":226,"title":227,"excerpt":228,"category":229,"categorySlug":194,"tags":230,"dateLabel":217,"readingLabel":91,"readingMinutes":92,"publishedIso":235,"href":236,"isFeatured":16,"relatedProjectIds":237,"featuredImage":238},"#0012","compliance-is-a-ux-problem","Compliance is a UX problem","Crew compliance sounds like a paperwork problem. Spend time with the people doing it and you find it is really a design problem — and the design was making it far harder than it needed to be.",{"label":34,"tone":115},[231,234],{"name":232,"slug":233},"Security","security",{"name":179,"slug":180},"2026-08-03T08:00:00","\u002Fblog\u002Fcompliance-is-a-ux-problem",[203],{"src":239,"alt":240,"width":99,"height":100},"https:\u002F\u002Foffice.usefullabs.io\u002Fassets\u002F99662110-4912-4693-8084-b2f3e6b2c493","Compliance Is a Ux Problem",{"index":242,"slug":243,"title":244,"excerpt":245,"category":246,"categorySlug":116,"tags":247,"dateLabel":252,"readingLabel":123,"readingMinutes":124,"publishedIso":253,"href":254,"isFeatured":16,"relatedProjectIds":255,"featuredImage":256},"#0011","stop-prompting-start-specifying","Stop prompting, start specifying: clarity is the new moat","The skill that gets the most out of AI is not clever prompting — it is the old, unfashionable ability to say exactly what you want. As building gets cheaper, clear thinking becomes the thing that is actually scarce.",{"label":114,"tone":115},[248,249],{"name":88,"slug":89},{"name":250,"slug":251},"AI Agents","ai-agents","3w ago","2026-07-31T09:00:00","\u002Fblog\u002Fstop-prompting-start-specifying",[],{"src":257,"alt":258,"width":99,"height":100},"https:\u002F\u002Foffice.usefullabs.io\u002Fassets\u002Fc89691a6-afee-4123-b7e2-839dff7ae565","Stop Prompting Start Specifying",{"index":260,"slug":261,"title":262,"excerpt":263,"category":264,"categorySlug":116,"tags":265,"dateLabel":252,"readingLabel":123,"readingMinutes":124,"publishedIso":269,"href":270,"isFeatured":16,"relatedProjectIds":271,"featuredImage":272},"#0010","ai-wont-fix-a-broken-process","AI won't fix a broken process. It'll just make the mess faster.","Bolting AI onto a process you have not fixed does not remove the problem — it accelerates it. The teams getting real value from AI did the boring work first. Here is the order that actually works.",{"label":114,"tone":115},[266,267,268],{"name":88,"slug":89},{"name":161,"slug":162},{"name":139,"slug":140},"2026-07-31T08:00:00","\u002Fblog\u002Fai-wont-fix-a-broken-process",[],{"src":273,"alt":274,"width":99,"height":100},"https:\u002F\u002Foffice.usefullabs.io\u002Fassets\u002F5e4ee153-09d1-4252-b990-2404d45096d6","AI Wont Fix a Broken Process",{"index":276,"slug":277,"title":278,"excerpt":279,"category":280,"categorySlug":116,"tags":281,"dateLabel":252,"readingLabel":123,"readingMinutes":124,"publishedIso":283,"href":284,"isFeatured":16,"relatedProjectIds":285,"featuredImage":286},"#0009","tribal-knowledge-is-the-risk","Your business runs on tribal knowledge. That's the real risk.","The most important systems in most companies are not software — they are things a few key people simply know. It works, until someone leaves. Here is why writing it down is the cheapest transformation you can make.",{"label":114,"tone":115},[282],{"name":114,"slug":116},"2026-07-27T08:00:00","\u002Fblog\u002Ftribal-knowledge-is-the-risk",[],{"src":287,"alt":288,"width":99,"height":100},"https:\u002F\u002Foffice.usefullabs.io\u002Fassets\u002F21890385-048e-452a-a2ca-72baa7b98531","Tribal Knowledge Is the Risk",{"index":290,"slug":291,"title":292,"excerpt":293,"category":294,"categorySlug":85,"tags":295,"dateLabel":90,"readingLabel":91,"readingMinutes":92,"publishedIso":297,"href":298,"isFeatured":16,"relatedProjectIds":299,"featuredImage":300},"#0008","defaults-are-decisions","Defaults are decisions","Most people never change a default. That makes the default the most powerful design decision you'll ever make — and the one most often left to chance. A short case for choosing them on purpose.",{"label":83,"tone":84},[296],{"name":197,"slug":198},"2026-07-20T08:00:00","\u002Fblog\u002Fdefaults-are-decisions",[],{"src":301,"alt":302,"width":99,"height":100},"https:\u002F\u002Foffice.usefullabs.io\u002Fassets\u002F47c8520e-8f24-41ad-ab31-6d057cdb105f","Defaults Are Decisions",{"index":304,"slug":305,"title":306,"excerpt":307,"category":308,"categorySlug":116,"tags":309,"dateLabel":90,"readingLabel":312,"readingMinutes":313,"publishedIso":314,"href":315,"isFeatured":16,"relatedProjectIds":316,"featuredImage":317},"#0007","digital-transformation-starts-with-clarity","Digital transformation doesn't start with software — it starts with clarity","Most transformation projects begin by choosing a tool. That is why so many of them fail. The work that actually changes a business happens before any software is bought, and it is not technical at all.",{"label":114,"tone":115},[310,311],{"name":88,"slug":89},{"name":114,"slug":116},"5 min read",5,"2026-07-13T08:00:00","\u002Fblog\u002Fdigital-transformation-starts-with-clarity",[],{"src":318,"alt":319,"width":99,"height":100},"https:\u002F\u002Foffice.usefullabs.io\u002Fassets\u002F1ee6baa7-749c-490a-b421-1e62ec6bfc41","Digital Transformation Starts With Clarity",{"index":78,"slug":79,"title":80,"excerpt":81,"category":321,"categorySlug":85,"tags":322,"dateLabel":90,"readingLabel":91,"readingMinutes":92,"publishedIso":93,"href":94,"isFeatured":16,"relatedProjectIds":324,"featuredImage":325},{"label":83,"tone":84},[323],{"name":88,"slug":89},[],{"src":97,"alt":98,"width":99,"height":100},{"index":327,"slug":328,"title":329,"excerpt":330,"category":331,"categorySlug":85,"tags":332,"dateLabel":90,"readingLabel":91,"readingMinutes":92,"publishedIso":335,"href":336,"isFeatured":25,"relatedProjectIds":337,"featuredImage":338},"#0005","speed-is-a-feature","Speed is a feature (and other things users never thank you for)","No one writes a five-star review because a page loaded quickly. But slowness quietly drains trust, attention and money. Speed is the feature you only notice when it is gone.",{"label":83,"tone":84},[333,334],{"name":197,"slug":198},{"name":119,"slug":120},"2026-07-09T00:00:00","\u002Fblog\u002Fspeed-is-a-feature",[],{"src":339,"alt":340,"width":99,"height":100},"https:\u002F\u002Foffice.usefullabs.io\u002Fassets\u002F382de299-00ac-45da-96c2-2ddd2603fe1d","Speed Is a Feature",{"index":342,"slug":343,"title":344,"excerpt":345,"category":346,"categorySlug":85,"tags":347,"dateLabel":90,"readingLabel":91,"readingMinutes":92,"publishedIso":350,"href":351,"isFeatured":16,"relatedProjectIds":352,"featuredImage":353},"#0004","boring-software-wins","Boring software wins","The software people love rarely dazzles them. It just works, every time, and gets out of the way. Here is why we build for boring on purpose.",{"label":83,"tone":84},[348,349],{"name":114,"slug":116},{"name":197,"slug":198},"2026-07-01T08:00:00","\u002Fblog\u002Fboring-software-wins",[],{"src":354,"alt":355,"width":99,"height":100},"https:\u002F\u002Foffice.usefullabs.io\u002Fassets\u002Fb0023846-0ab7-4fa6-ba08-6d2ced2b50c2","Boring Software Wins",{"index":357,"slug":358,"title":359,"excerpt":360,"category":361,"categorySlug":194,"tags":362,"dateLabel":375,"readingLabel":91,"readingMinutes":92,"publishedIso":376,"href":377,"isFeatured":16,"relatedProjectIds":378,"featuredImage":380},"#0003","why-we-built-a-stem-player-in-the-browser-and-not-in-logic","Why we built a stem player in the browser (and not in Logic)","The brief was simple: let performers isolate and solo any instrument in a backing track, anywhere, on any device. The obvious answer was a DAW plugin. We went the other way — and the browser turned out to be the right call.",{"label":34,"tone":115},[363,366,369,372],{"name":364,"slug":365},"Cloudflare Pages","cloudflare-pages",{"name":367,"slug":368},"Offline-First","offline-first",{"name":370,"slug":371},"PocketBase","pocketbase",{"name":373,"slug":374},"Web Audio API","web-audio-api","4mo ago","2026-04-23T10:20:14","\u002Fblog\u002Fwhy-we-built-a-stem-player-in-the-browser-and-not-in-logic",[379],"multi-track-player",{"src":381,"alt":382,"width":383,"height":384},"https:\u002F\u002Foffice.usefullabs.io\u002Fassets\u002Fb45187b9-0bd7-4784-b7f3-51471b895a21","Sonic Artistes Multi-Track Player",1920,1281,{"index":386,"slug":387,"title":388,"excerpt":389,"category":390,"categorySlug":392,"tags":393,"dateLabel":402,"readingLabel":403,"readingMinutes":404,"publishedIso":405,"href":406,"isFeatured":16,"relatedProjectIds":407,"featuredImage":408},"#0002","openclaw-changed-everything-then-the-security-alarms-went-off","OpenClaw: The Agentic AI Revolution Is Here (And So Are the Security Nightmares)","You have probably seen it by now. Your Twitter feed. Your YouTube recommendations. That one person in your no-code community who will not stop talking about it. OpenClaw — the AI agent that lets you message your computer like it is a colleague and watch it actually do things. “It negotiated a £3,300 discount on […]",{"label":391,"tone":84},"Claude Code","claude-code",[394,395,398,401],{"name":250,"slug":251},{"name":396,"slug":397},"Automation","automation",{"name":399,"slug":400},"MCP","mcp",{"name":232,"slug":233},"6mo ago","16 min read",16,"2026-02-08T13:08:02","\u002Fblog\u002Fopenclaw-changed-everything-then-the-security-alarms-went-off",[],{"src":409,"alt":410,"width":383,"height":411},"https:\u002F\u002Foffice.usefullabs.io\u002Fassets\u002F7d0de0ff-ef2d-4853-b79e-d3abc3211454","OpenClaw Article 01 Featured Image",1072,{"index":413,"slug":414,"title":415,"excerpt":416,"category":417,"categorySlug":420,"tags":421,"dateLabel":425,"readingLabel":426,"readingMinutes":427,"publishedIso":428,"href":429,"isFeatured":16,"relatedProjectIds":430,"featuredImage":431},"#0001","logic-over-hype-how-to-choose-digital-tools-without-the-noise","Logic Over Hype: How to Choose Digital Tools Without the Noise","Open YouTube right now. What do you see? Likely a grid of thumbnails featuring people making shocked faces, overlaid with text that screams: “This new AI model is INSANE,” “Next.js 16 changes EVERYTHING,” or “Use this tool to become a millionaire by Tuesday.” If you are a creator, developer, or business owner, this constant barrage […]",{"label":418,"tone":419},"General","neutral","general",[422,423,424],{"name":119,"slug":120},{"name":88,"slug":89},{"name":21,"slug":159},"7mo ago","7 min read",7,"2026-01-01T22:28:25","\u002Fblog\u002Flogic-over-hype-how-to-choose-digital-tools-without-the-noise",[],{"src":432,"alt":433,"width":383,"height":434},"https:\u002F\u002Foffice.usefullabs.io\u002Fassets\u002Fd36b230a-aafe-49b5-be98-8c9570cf2523","Logic Over Hype Featured Image",1047,1787555778945]