[{"data":1,"prerenderedAt":222},["ShallowReactive",2],{"site-settings":3,"project-sonic-artistes-website":76,"project-logs-sonic-artistes-website":103,"project-articles-sonic-artistes-website":221},{"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\u002Fcommunity.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":63},"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,54,57,60],{"label":24,"url":8,"external":25},{"label":55,"url":56,"external":25},"GitHub","https:\u002F\u002Fgithub.com\u002Fpaulwilliams-us",{"label":58,"url":59,"external":25},"X \u002F Twitter","https:\u002F\u002Fx.com",{"label":61,"url":62,"external":16},"Email","mailto:hello@usefullabs.io",[64,67,70,73],{"label":65,"url":66,"external":16},"Privacy","\u002Fprivacy",{"label":68,"url":69,"external":16},"Terms","\u002Fterms",{"label":71,"url":72,"external":16},"AI Policy","\u002Fai-policy",{"label":74,"url":75,"external":16},"Colophon","\u002Fcolophon",{"id":77,"slug":77,"name":78,"idLabel":79,"tagText":80,"description":81,"accent":82,"meta":85,"modules":86,"chips":90,"progress":91,"followLabel":94,"followHref":95,"siteUrl":96,"siteLabel":97,"status":98,"isFeatured":16,"isHeroFeatured":16,"publishedIso":99,"modifiedIso":100,"hero":-1,"contentHtml":101,"featuredImage":10,"screenshots":102},"sonic-artistes-website","Sonic Artistes Website","02 \u002F SAW","Staging live","The next-generation Sonic Artistes public website — Astro 6, dark-first design system, Directus CMS, deployed to Cloudflare Pages. Every content collection is editor-managed through a Directus→Markdown sync pipeline.",{"token":83,"rgb":84},"accent","6, 182, 212",[],[87,88,89],"Astro.js","Directus","Wasabi",[],{"label":92,"percent":93},"Build progress",96,"Follow the build","\u002Fprojects\u002Fsonic-artistes-website","https:\u002F\u002Fstaging.sonicartistes.com","sonicartistes.com","building","2026-05-26T09:50:06","2026-05-31T10:32:00","\u003Cp class=\"wp-block-paragraph\">The next-generation Sonic Artistes public website — rebuilt from scratch with Astro 6, a dark-first design system with record-label energy, and a Directus CMS powering every editable collection. Deployed to Cloudflare Pages on a static output model with selective Preact hydration islands for interactive components.\u003C\u002Fp>\r\n\r\n\r\n\r\n\u003Cp class=\"wp-block-paragraph\">Content is managed entirely through Directus: artists, opportunities, team members, testimonials, partners, FAQs, timeline, backstage posts, and singleton page data are all synced to the repo via an automated Directus→Markdown pipeline. The design system is built on CSS custom properties — no Tailwind — with dark and light themes, variable fonts (Hanken Grotesk + JetBrains Mono), and strict WCAG AA accessibility.\u003C\u002Fp>\r\n\r\n\r\n\r\n\u003Cp class=\"wp-block-paragraph\">Pages include the homepage (13 sections), \u002Fopportunities, \u002Fartists archive and individual artist pages, \u002Fapply (multi-step Preact wizard), \u002Fabout, \u002Fmeet-the-team, \u002Fcontact (Cloudflare Pages Function webhook proxy), \u002Fsonic-studios, \u002Fbackstage-pass, \u002Fjobs, and a branded 404. Navigation is &#8220;The Index&#8221; — a full-screen overlay with animated presence. Staging is live at staging.sonicartistes.com on Cloudflare Pages; DNS cutover to the apex domain is pending.\u003C\u002Fp>",[],[104,112,118,124,128,133,138,144,149,154,159,165,170,175,181,186,191,196,201,206,211,216],{"id":105,"slug":106,"projectId":77,"kind":107,"title":108,"contentHtml":109,"dateLabel":110,"publishedIso":111,"commitUrl":-1,"image":-1},"37003bad-73b1-4ffa-bdc5-90aaa6e2ad13","the-nav-pulse-dot-is-now-editor-controllable-tone-and-visibility-set-in-directus-no-deploy","shipped","The nav pulse dot is now editor-controllable — tone and visibility set in Directus, no deploy.","","1mo ago","2026-05-26T09:00:00",{"id":113,"slug":114,"projectId":77,"kind":115,"title":116,"contentHtml":109,"dateLabel":110,"publishedIso":111,"commitUrl":117,"image":-1},"a69d0682-1e73-45bb-ac86-eae71b3176f6","twelve-sticky-elements-were-all-using-hardcoded-pixel-offsets-now-they-track-the-nav-height-in-real-time","fixed","Twelve sticky elements were all using hardcoded pixel offsets. Now they track the nav height in real time.","https:\u002F\u002Fgithub.com\u002Fpaulwilliams-us\u002Fsonic-artistes-website\u002Fcommit\u002Fd441d9eb12ff5f0d3ca2c5eda08ee9d27c23e987",{"id":119,"slug":120,"projectId":77,"kind":107,"title":121,"contentHtml":109,"dateLabel":110,"publishedIso":122,"commitUrl":123,"image":-1},"719c0e19-f103-4c22-bce3-22bd6f0808b9","sonic-studios-gets-its-own-page-production-and-rehearsal-facility-fully-branded","Sonic Studios gets its own page — production and rehearsal facility, fully branded.","2026-05-25T12:00:00","https:\u002F\u002Fgithub.com\u002Fpaulwilliams-us\u002Fsonic-artistes-website\u002Fcommit\u002F6260f30ef0a3a5516fe035a3306a0054a37e91de",{"id":125,"slug":126,"projectId":77,"kind":107,"title":127,"contentHtml":109,"dateLabel":110,"publishedIso":122,"commitUrl":-1,"image":-1},"5b1d5aec-823c-4d1b-994b-ea3d270e4639","there-is-now-a-jobs-board-open-roles-display-in-a-dedicated-filterable-layout","There is now a \u002Fjobs board. Open roles display in a dedicated, filterable layout.",{"id":129,"slug":130,"projectId":77,"kind":107,"title":131,"contentHtml":109,"dateLabel":110,"publishedIso":122,"commitUrl":132,"image":-1},"13d594fa-0698-450f-adef-ecbb39b4d43e","the-backstage-pass-is-open-editor-managed-articles-no-redeploy","The Backstage Pass is open. Editor-managed articles, no redeploy.","https:\u002F\u002Fgithub.com\u002Fpaulwilliams-us\u002Fsonic-artistes-website\u002Fcommit\u002Fd485d7a87765752892689a05974b6df1d1da9f0e",{"id":134,"slug":135,"projectId":77,"kind":107,"title":136,"contentHtml":109,"dateLabel":110,"publishedIso":122,"commitUrl":137,"image":-1},"12cec3d8-e1ea-472f-b7c0-13677fec6d3a","lost-visitors-get-a-branded-404-in-the-studios-visual-vocabulary-instead-of-a-browser-default","Lost visitors get a branded 404 in the studios visual vocabulary instead of a browser default.","https:\u002F\u002Fgithub.com\u002Fpaulwilliams-us\u002Fsonic-artistes-website\u002Fcommit\u002F48e7fbc973672c634add5b8ad2b0af667c62097c",{"id":139,"slug":140,"projectId":77,"kind":107,"title":141,"contentHtml":109,"dateLabel":110,"publishedIso":142,"commitUrl":143,"image":-1},"46111847-83b2-4cb5-9f81-2557f43c9cfa","homepage-hero-copy-and-marquees-are-editable-from-directus-no-deploy-needed","Homepage hero copy and marquees are editable from Directus — no deploy needed.","2026-05-24T12:00:00","https:\u002F\u002Fgithub.com\u002Fpaulwilliams-us\u002Fsonic-artistes-website\u002Fcommit\u002Fb64d1dcd5da164b53b4f6907015ad4f85a2c501d",{"id":145,"slug":146,"projectId":77,"kind":107,"title":147,"contentHtml":109,"dateLabel":110,"publishedIso":142,"commitUrl":148,"image":-1},"863523af-3dc6-4c50-948a-19ca014c10d8","artist-cards-now-show-real-portraits-and-gallery-images-where-they-exist","Artist cards now show real portraits and gallery images where they exist.","https:\u002F\u002Fgithub.com\u002Fpaulwilliams-us\u002Fsonic-artistes-website\u002Fcommit\u002F9305323480ab193609b408a5acf70d639820598c",{"id":150,"slug":151,"projectId":77,"kind":107,"title":152,"contentHtml":109,"dateLabel":110,"publishedIso":142,"commitUrl":153,"image":-1},"5bf33f60-6489-4342-8c31-b9a8c06b8003","site-settings-nav-pulse-and-social-links-now-live-in-a-directus-singleton","Site settings — nav pulse and social links — now live in a Directus singleton.","https:\u002F\u002Fgithub.com\u002Fpaulwilliams-us\u002Fsonic-artistes-website\u002Fcommit\u002Fad05088dcbd753a3a6809c603ee41fe7fe16b681",{"id":155,"slug":156,"projectId":77,"kind":107,"title":157,"contentHtml":109,"dateLabel":110,"publishedIso":142,"commitUrl":158,"image":-1},"cdece995-5c96-4be3-a545-93cae1f8cb29","testimonials-team-and-timeline-are-all-directus-driven-now","Testimonials, team, and timeline are all Directus-driven now.","https:\u002F\u002Fgithub.com\u002Fpaulwilliams-us\u002Fsonic-artistes-website\u002Fcommit\u002Fc540995e74db75d9b8caf798d801d12507f5d37b",{"id":160,"slug":161,"projectId":77,"kind":107,"title":162,"contentHtml":109,"dateLabel":110,"publishedIso":163,"commitUrl":164,"image":-1},"4b5ebe88-7337-44c6-89b7-11dd320d342e","partners-and-faqs-migrated-to-directus-three-collections-down-more-to-go","Partners and FAQs migrated to Directus. Three collections down, more to go.","2026-05-23T12:00:00","https:\u002F\u002Fgithub.com\u002Fpaulwilliams-us\u002Fsonic-artistes-website\u002Fcommit\u002Fcd2d10bfee74c2d6e75b9a3d2483d13ddc9bdea7",{"id":166,"slug":167,"projectId":77,"kind":107,"title":168,"contentHtml":109,"dateLabel":110,"publishedIso":163,"commitUrl":169,"image":-1},"fb38006a-6e52-4217-b30f-5b56056cb7aa","the-directus-sync-now-handles-arrays-nested-objects-and-image-downloads-in-one-pass","The Directus sync now handles arrays, nested objects, and image downloads in one pass.","https:\u002F\u002Fgithub.com\u002Fpaulwilliams-us\u002Fsonic-artistes-website\u002Fcommit\u002Fb8ce35faf9b01dc9533e176f56a2aa982e4873f8",{"id":171,"slug":172,"projectId":77,"kind":107,"title":173,"contentHtml":109,"dateLabel":110,"publishedIso":163,"commitUrl":174,"image":-1},"a686da13-faa1-4d7f-8c08-c2601d1fbb58","opportunities-are-now-driven-by-directus-markdown-is-just-a-sync-artefact","Opportunities are now driven by Directus. Markdown is just a sync artefact.","https:\u002F\u002Fgithub.com\u002Fpaulwilliams-us\u002Fsonic-artistes-website\u002Fcommit\u002F53f8c012f467adfad1f32182a9ecec9590653a4c",{"id":176,"slug":177,"projectId":77,"kind":107,"title":178,"contentHtml":109,"dateLabel":110,"publishedIso":179,"commitUrl":180,"image":-1},"59bff3bd-aee3-4532-bf2a-2f2e270e23f2","the-team-has-faces-and-names-meet-the-team-is-live","The team has faces and names. \u002Fmeet-the-team is live.","2026-05-16T12:00:00","https:\u002F\u002Fgithub.com\u002Fpaulwilliams-us\u002Fsonic-artistes-website\u002Fcommit\u002Ff7cf919bbddbb156f2c8fd6de8b1cf7acec17351",{"id":182,"slug":183,"projectId":77,"kind":107,"title":184,"contentHtml":109,"dateLabel":110,"publishedIso":179,"commitUrl":185,"image":-1},"9da14804-76e2-4804-bb8b-39d3f9155b4e","contact-form-submissions-now-proxy-through-a-cloudflare-pages-function","Contact form submissions now proxy through a Cloudflare Pages Function.","https:\u002F\u002Fgithub.com\u002Fpaulwilliams-us\u002Fsonic-artistes-website\u002Fcommit\u002F96f73c737b8b2c9e4764ad4f0e4da944b5db8673",{"id":187,"slug":188,"projectId":77,"kind":107,"title":189,"contentHtml":109,"dateLabel":110,"publishedIso":179,"commitUrl":190,"image":-1},"1ae69fa3-02a0-4fda-b147-e9a36e103acf","navigation-is-now-a-full-screen-overlay-meet-the-index","Navigation is now a full-screen overlay. Meet The Index.","https:\u002F\u002Fgithub.com\u002Fpaulwilliams-us\u002Fsonic-artistes-website\u002Fcommit\u002F777a9f254749737c16cefc2f62675f998e33f0a9",{"id":192,"slug":193,"projectId":77,"kind":107,"title":194,"contentHtml":109,"dateLabel":110,"publishedIso":179,"commitUrl":195,"image":-1},"1c768a15-7d93-408b-b018-f6ff121b923d","the-story-behind-sonic-artistes-is-now-on-the-about-page","The story behind Sonic Artistes is now on the \u002Fabout page.","https:\u002F\u002Fgithub.com\u002Fpaulwilliams-us\u002Fsonic-artistes-website\u002Fcommit\u002F3f3e9dc2a4a32c956cfcac74c91c071196f74922",{"id":197,"slug":198,"projectId":77,"kind":107,"title":199,"contentHtml":109,"dateLabel":110,"publishedIso":179,"commitUrl":200,"image":-1},"62dbf411-b41c-4f36-bd20-8e535c85c519","the-apply-now-flow-is-a-multi-step-preact-wizard-no-full-page-reloads","The Apply Now flow is a multi-step Preact wizard — no full-page reloads.","https:\u002F\u002Fgithub.com\u002Fpaulwilliams-us\u002Fsonic-artistes-website\u002Fcommit\u002F0e191f123e5e38e542d86b874317db56fdafcd9f",{"id":202,"slug":203,"projectId":77,"kind":107,"title":204,"contentHtml":109,"dateLabel":110,"publishedIso":179,"commitUrl":205,"image":-1},"20bba94c-8446-45f7-90eb-f019a8ad40ed","artists-get-their-own-archive-and-individual-profile-pages","Artists get their own archive and individual profile pages.","https:\u002F\u002Fgithub.com\u002Fpaulwilliams-us\u002Fsonic-artistes-website\u002Fcommit\u002F6a36933d1456ea864b26e58e3ac85cf48372fac6",{"id":207,"slug":208,"projectId":77,"kind":107,"title":209,"contentHtml":109,"dateLabel":110,"publishedIso":179,"commitUrl":210,"image":-1},"58ce04c4-f92a-4f89-bfe0-0b35e68bf859","musicians-can-now-browse-every-live-ship-opportunity-on-one-page","Musicians can now browse every live ship opportunity on one page.","https:\u002F\u002Fgithub.com\u002Fpaulwilliams-us\u002Fsonic-artistes-website\u002Fcommit\u002F0bda4ac5f68c3f304407be7b8ac17211321c9d0b",{"id":212,"slug":213,"projectId":77,"kind":107,"title":214,"contentHtml":109,"dateLabel":110,"publishedIso":179,"commitUrl":215,"image":-1},"d4121d3b-8552-4711-87da-9c489bc1d702","the-homepage-went-from-zero-to-13-sections-in-one-build","The homepage went from zero to 13 sections in one build.","https:\u002F\u002Fgithub.com\u002Fpaulwilliams-us\u002Fsonic-artistes-website\u002Fcommit\u002Fcb5786b1dec15178aba93306351b4ce70a4ff4ee",{"id":217,"slug":218,"projectId":77,"kind":107,"title":219,"contentHtml":109,"dateLabel":110,"publishedIso":179,"commitUrl":220,"image":-1},"b7d61170-b438-415e-acc5-d172ae5cf6b9","the-site-started-as-a-blank-astro-scaffold-now-it-has-tokens-a-nav-a-footer-and-a-theme-toggle","The site started as a blank Astro scaffold. Now it has tokens, a nav, a footer, and a theme toggle.","https:\u002F\u002Fgithub.com\u002Fpaulwilliams-us\u002Fsonic-artistes-website\u002Fcommit\u002F08175822e1443206875052cbe967aa4263b6377a",[],1782519037276]