PageSourceSearch

https://remicorson.com/projects

html remicorson.com collected 2026-10-02 04:51:57 UTC 69,852 bytes, 1 lines download raw bytes

1<!DOCTYPE html><html lang="en" class="h-full antialiased __variable_ec6dc7 __variable_9c618b __variable_3c557b"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" href="/_next/static/media/313510e2713fb214-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="preload" href="/_next/static/media/62c97acc3aa63787-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="preload" href="/_next/static/media/bb3ef058b751a6ad-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="stylesheet" href="/_next/static/css/142bdd90a3ea0d06.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-cdc4369611b472ce.js"/>
1<script src="/_next/static/chunks/fd9d1056-4584c0e65d6268c4.js" async=""></script>
1<script src="/_next/static/chunks/7023-1b676287187d85a6.js" async=""></script>
1<script src="/_next/static/chunks/main-app-29df8f3907056ab2.js" async=""></script>
1<script src="/_next/static/chunks/8173-432b1a061bb39560.js" async=""></script>
1<script src="/_next/static/chunks/231-e67afce969bc6eb9.js" async=""></script>
1<script src="/_next/static/chunks/app/projects/page-aaded008feb9ce9f.js" async=""></script>
1<script src="/_next/static/chunks/c16f53c3-36c12976cfe26629.js" async=""></script>
1<script src="/_next/static/chunks/6463-ebbe95039890d0ba.js" async=""></script>
1<script src="/_next/static/chunks/app/layout-933d4ab6dcb0a96c.js" async=""></script>
1<title>Projects - Rémi Corson</title><meta name="description" content="I’ve worked on tons of little projects over the years but these are the ones that I’m most proud of."/><link rel="alternate" type="application/rss+xml" href="https://remicorson.com/feed.xml"/><meta property="og:title" content="Rémi Corson - Software engineer, founder &amp; leather craftsman"/><meta property="og:description" content="Rémi Corson&#x27;s atelier: software engineering, WordPress, WooCommerce, side projects and hand-cut leather craft. Code &amp; leather."/><meta property="og:url" content="https://remicorson.com"/><meta property="og:site_name" content="Rémi Corson"/><meta property="og:locale" content="en_US"/><meta property="og:image" content="https://remicorson.com/og"/><meta property="og:image:width" content="1200"/><meta property="og:image:height" content="630"/><meta property="og:image:alt" content="Rémi Corson - Software engineer, founder &amp; leather craftsman"/><meta property="og:type" content="website"/><meta name="twitter:card" content="summary_large_image"/><meta name="twitter:site" content="@remicorson"/><meta name="twitter:creator" content="@remicorson"/><meta name="twitter:title" content="Rémi Corson - Software engineer, founder &amp; leather craftsman"/><meta name="twitter:description" content="Rémi Corson&#x27;s atelier: software engineering, WordPress, WooCommerce, side projects and hand-cut leather craft. Code &amp; leather."/><meta name="twitter:image" content="https://remicorson.com/og"/><link rel="icon" href="/favicon.ico" type="image/x-icon" sizes="16x16"/><meta name="next-size-adjust"/><!--$!--><template data-dgst="BAILOUT_TO_CLIENT_SIDE_RENDERING"></template><!--/$-->
1<script src="/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js" noModule=""></script>
1</head><body class="flex h-full flex-col font-sans">
1<script>!function(){try{var d=document.documentElement,c=d.classList;c.remove('light','dark');var e=localStorage.getItem('theme');if('system'===e||(!e&&false)){var t='(prefers-color-scheme: dark)',m=window.matchMedia(t);if(m.media!==t||m.matches){d.style.colorScheme = 'dark';c.add('dark')}else{d.style.colorScheme = 'light';c.add('light')}}else if(e){c.add(e|| '')}else{c.add('dark')}if(e==='light'||e==='dark'||!e)d.style.colorScheme=e||'dark'}catch(e){}}()</script>
1<div class="flex w-full flex-col"><div class="relative flex min-h-full w-full flex-col"><div aria-hidden="true" class="atelier-halo pointer-events-none fixed inset-x-0 top-0 z-0 h-[70vh]"></div><div aria-hidden="true" class="atelier-grain pointer-events-none fixed inset-0 z-0"></div><div class="relative z-10 flex min-h-full w-full flex-col"><header class="sticky top-0 z-40"><div class="transition-colors duration-300 border-b border-transparent"><div class="sm:px-8"><div class="mx-auto w-full max-w-7xl lg:px-8"><div class="relative px-4 sm:px-8 lg:px-12"><div class="mx-auto max-w-2xl lg:max-w-5xl"><div class="flex h-[4.5rem] items-center justify-between gap-4"><a aria-label="Home" class="group flex items-center gap-3" href="/"><span class="grid h-10 w-10 place-items-center border border-line font-display text-lg leading-none text-ink transition group-hover:border-accent group-hover:text-accent">RC</span><span class="hidden flex-col leading-none sm:flex"><span class="font-display text-sm tracking-wide text-ink uppercase">Rémi Corson</span><span class="mt-1 flex items-center gap-1.5 font-mono text-[0.62rem] tracking-[0.15em] text-muted uppercase"><span class="inline-block h-1.5 w-1.5 rounded-full bg-spark blink"></span>Code &amp; Leather</span></span></a><div class="flex items-center gap-6"><nav class="hidden items-center gap-6 md:flex"><a class="group flex items-center gap-1.5 font-mono text-[0.72rem] tracking-[0.14em] uppercase transition text-muted hover:text-ink" href="/about"><span class="text-[0.6rem] text-line">0<!-- -->1</span><span class="stitch">About</span></a><a class="group flex items-center gap-1.5 font-mono text-[0.72rem] tracking-[0.14em] uppercase transition text-muted hover:text-ink" href="/articles"><span class="text-[0.6rem] text-line">0<!-- -->2</span><span class="stitch">Articles</span></a><a class="group flex items-center gap-1.5 font-mono text-[0.72rem] tracking-[0.14em] uppercase transition text-accent" href="/projects"><span class="text-[0.6rem] text-line">0<!-- -->3</span><span class="stitch">Projects</span></a><a class="group flex items-center gap-1.5 font-mono text-[0.72rem] tracking-[0.14em] uppercase transition text-muted hover:text-ink" href="/speaking"><span class="text-[0.6rem] text-line">0<!-- -->4</span><span class="stitch">Speaking</span></a><a class="group flex items-center gap-1.5 font-mono text-[0.72rem] tracking-[0.14em] uppercase transition text-muted hover:text-ink" href="/uses"><span class="text-[0.6rem] text-line">0<!-- -->5</span><span class="stitch">Uses</span></a></nav><div class="hidden h-5 w-px bg-line md:block"></div><button type="button" aria-label="Toggle theme" class="grid h-9 w-9 place-items-center rounded-full border border-line text-muted transition hover:border-accent hover:text-accent"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" class="h-4.5 w-4.5"><path d="M21 12.8A9 9 0 1 1 11.2 3a7 7 0 0 0 9.8 9.8Z"></path></svg></button><div class="md:hidden" data-headlessui-state=""><button aria-label="Open menu" class="flex h-9 w-9 items-center justify-center text-ink" type="button" aria-expanded="false" data-headlessui-state=""><svg viewBox="0 0 24 24" fill="none" aria-hidden="true" class="h-6 w-6"><path d="M3 7h18M3 12h18M3 17h18" stroke="currentColor" stroke-width="1.6" stroke-linecap="round"></path></svg></button></div><div hidden="" style="position:fixed;top:1px;left:1px;width:1px;height:0;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;border-width:0;display:none"></div></div></div></div></div></div></div></div></header><main class="flex-auto"><div class="sm:px-8 pt-14 sm:pt-20"><div class="mx-auto w-full max-w-7xl lg:px-8"><div class="relative px-4 sm:px-8 lg:px-12"><div class="mx-auto max-w-2xl lg:max-w-5xl"><header class="max-w-3xl"><p class="font-mono text-[0.7rem] tracking-[0.2em] text-accent uppercase">Projects</p><h1 class="mt-3 font-display text-4xl leading-[0.95] tracking-tight text-ink uppercase sm:text-6xl">I’ve worked on tons of little projects over the years but these are the ones that I’m most proud of.</h1><div class="stitch-line mt-6 max-w-xs opacity-50"></div><p class="mt-6 max-w-2xl text-lg leading-relaxed text-muted">Many of them are open-source, so if you see something that piques your interest, check out the code and contribute if you have ideas for how it can be improved.</p></header><div class="mt-16 sm:mt-20"><ul role="list" class="grid grid-cols-1 gap-x-12 gap-y-16 sm:grid-cols-2 lg:grid-cols-3"><li class="group relative flex flex-col items-start"><div class="relative z-10 grid h-12 w-12 place-items-center border border-line bg-surface transition-colors group-hover:border-accent"><svg viewBox="0 0 248 149" fill="currentColor" aria-hidden="true" class="h-4 w-auto text-ink transition-colors group-hover:text-accent"><path fill-rule="evenodd" clip-rule="evenodd" d="M229.478 0C239.7 -4.46802e-07 247.987 8.28689 247.987 18.5088V129.562C247.987 139.783 239.7 148.069 229.478 148.069C219.256 148.069 210.97 139.783 210.97 129.562V64.6641L137.702 142.059C134.572 145.364 130.524 147.277 126.332 147.779C125.268 147.969 124.173 148.069 
1123.054 148.069C112.832 148.069 104.546 139.782 104.545 129.561V65.791L32.3452 142.057C25.2307 149.572 13.3712 149.896 5.85596 142.782C-1.65919 135.668 -1.98407 123.808 5.13037 116.293L108.378 7.22949C111.762 2.83306 117.077 2.61236e-07 123.054 0C133.276 0.000239104 141.562 8.2861 141.562 18.5078V83.4688L214.27 6.66699C216.09 4.74496 218.22 3.29356 220.508 2.31641C223.165 0.841285 226.223 8.14087e-05 229.478 0Z"></path></svg></div><h2 class="mt-6 text-lg font-semibold text-ink transition-colors group-hover:text-accent"><div class="absolute -inset-x-4 -inset-y-5 z-0 scale-95 border border-transparent bg-surface/0 opacity-0 transition duration-300 group-hover:scale-100 group-hover:border-line group-hover:bg-surface/50 group-hover:opacity-100"></div><a href="https://milosubscriptions.com"><span class="absolute -inset-x-4 -inset-y-5 z-20"></span><span class="relative z-10"><span class="stitch">Milo</span></span></a></h2><p class="relative z-10 mt-2 text-base text-muted">The free subscriptions ecosystem for WordPress. A subscriptions plugin with no paywall on the core - everything essential stays free and open.</p><p class="relative z-10 mt-6 flex items-center font-mono text-xs tracking-[0.12em] text-muted uppercase transition group-hover:text-accent"><svg viewBox="0 0 24 24" aria-hidden="true" class="h-5 w-5 flex-none"><path d="M15.712 11.823a.75.75 0 1 0 1.06 1.06l-1.06-1.06Zm-4.95 1.768a.75.75 0 0 0 1.06-1.06l-1.06 1.06Zm-2.475-1.414a.75.75 0 1 0-1.06-1.06l1.06 1.06Zm4.95-1.768a.75.75 0 1 0-1.06 1.06l1.06-1.06Zm3.359.53-.884.884 1.06 1.06.885-.883-1.061-1.06Zm-4.95-2.12 1.414-1.415L12 6.344l-1.415 1.413 1.061 1.061Zm0 3.535a2.5 2.5 0 0 1 0-3.536l-1.06-1.06a4 4 0 0 0 0 5.656l1.06-1.06Zm4.95-4.95a2.5 2.5 0 0 1 0 3.535L17.656 12a4 4 0 0 0 0-5.657l-1.06 1.06Zm1.06-1.06a4 4 0 0 0-5.656 0l1.06 1.06a2.5 2.5 0 0 1 3.536 0l1.06-1.06Zm-7.07 7.07.176.177 1.06-1.06-.176-.177-1.06 1.06Zm-3.183-.353.884-.884-1.06-1.06-.884.883 1.06 1.06Zm4.95 2.121-1.414 1.414 1.06 1.06 1.415-1.413-1.06-1.061Zm0-3.536a2.5 2.5 0 0 1 0 3.536l1.06 1.06a4 4 0 0 0 0-5.656l-1.06 1.06Zm-4.95 4.95a2.5 2.5 0 0 1 0-3.535L6.344 12a4 4 0 0 0 0 5.656l1.06-1.06Zm-1.06 1.06a4 4 0 0 0 5.657 0l-1.061-1.06a2.5 2.5 0 0 1-3.535 0l-1.061 1.06Zm7.07-7.07-.176-.177-1.06 1.06.176.178 1.06-1.061Z" fill="currentColor"></path></svg><span class="ml-2">milosubscriptions.com</span></p></li><li class="group relative flex flex-col items-start"><div class="relative z-10 grid h-12 w-12 place-items-center border border-line bg-surface transition-colors group-hover:border-accent"><svg viewBox="0 0 256 256" aria-hidden="true" class="h-7 w-auto text-ink transition-colors group-hover:text-accent"><rect width="256" height="256" rx="60" class="fill-[#17151c] dark:fill-[#f2efe6]"></rect><path d="M86 88 L128 152" stroke-width="32" stroke-linecap="round" fill="none" class="stroke-[#f2efe6] dark:stroke-[#17151c]"></path><path d="M162 90 L108 192" stroke="#c9f158" stroke-width="32" stroke-linecap="round" fill="none"></path><path d="M194 38c1.4 15.5 13.5 27.6 29 29-15.5 1.4-27.6 13.5-29 29-1.4-15.5-13.5-27.6-29-29 15.5-1.4 27.6-13.5 29-29Z" fill="#ff5bb5"></path></svg></div><h2 class="mt-6 text-lg font-semibold text-ink transition-colors group-hover:text-accent"><div class="absolute -inset-x-4 -inset-y-5 z-0 scale-95 border border-transparent bg-surface/0 opacity-0 transition duration-300 group-hover:scale-100 group-hover:border-line group-hover:bg-surface/50 group-hover:opacity-100"></div><a href="https://youmanize.me"><span class="absolute -inset-x-4 -inset-y-5 z-20"></span><span class="relative z-10"><span class="stitch">Youmanize</span></span></a></h2><p class="relative z-10 mt-2 text-base text-muted">AI wrote it, we make it sound like you. Two routes to get there: an engine built to strip the tells out of machine-written text, or human editors who rewrite it from scratch, no model involved.</p><p class="relative z-10 mt-6 flex items-center font-mono text-xs tracking-[0.12em] text-muted uppercase transition group-hover:text-accent"><svg viewBox="0 0 24 24" aria-hidden="true" class="h-5 w-5 flex-none"><path d="M15.712 11.823a.75.75 0 1 0 1.06 1.06l-1.06-1.06Zm-4.95 1.768a.75.75 0 0 0 1.06-1.06l-1.
106 1.06Zm-2.475-1.414a.75.75 0 1 0-1.06-1.06l1.06 1.06Zm4.95-1.768a.75.75 0 1 0-1.06 1.06l1.06-1.06Zm3.359.53-.884.884 1.06 1.06.885-.883-1.061-1.06Zm-4.95-2.12 1.414-1.415L12 6.344l-1.415 1.413 1.061 1.061Zm0 3.535a2.5 2.5 0 0 1 0-3.536l-1.06-1.06a4 4 0 0 0 0 5.656l1.06-1.06Zm4.95-4.95a2.5 2.5 0 0 1 0 3.535L17.656 12a4 4 0 0 0 0-5.657l-1.06 1.06Zm1.06-1.06a4 4 0 0 0-5.656 0l1.06 1.06a2.5 2.5 0 0 1 3.536 0l1.06-1.06Zm-7.07 7.07.176.177 1.06-1.06-.176-.177-1.06 1.06Zm-3.183-.353.884-.884-1.06-1.06-.884.883 1.06 1.06Zm4.95 2.121-1.414 1.414 1.06 1.06 1.415-1.413-1.06-1.061Zm0-3.536a2.5 2.5 0 0 1 0 3.536l1.06 1.06a4 4 0 0 0 0-5.656l-1.06 1.06Zm-4.95 4.95a2.5 2.5 0 0 1 0-3.535L6.344 12a4 4 0 0 0 0 5.656l1.06-1.06Zm-1.06 1.06a4 4 0 0 0 5.657 0l-1.061-1.06a2.5 2.5 0 0 1-3.535 0l-1.061 1.06Zm7.07-7.07-.176-.177-1.06 1.06.176.178 1.06-1.061Z" fill="currentColor"></path></svg><span class="ml-2">youmanize.me</span></p></li><li class="group relative flex flex-col items-start"><div class="relative z-10 grid h-12 w-12 place-items-center border border-line bg-surface transition-colors group-hover:border-accent"><svg viewBox="0 0 24 16" aria-hidden="true" class="h-6 w-auto text-ink transition-colors group-hover:text-accent"><rect x="0" y="0" width="8" height="16" fill="#000091"></rect><rect x="8" y="0" width="8" height="16" fill="#ffffff"></rect><rect x="16" y="0" width="8" height="16" fill="#e1000f"></rect></svg></div><h2 class="mt-6 text-lg font-semibold text-ink transition-colors group-hover:text-accent"><div class="absolute -inset-x-4 -inset-y-5 z-0 scale-95 border border-transparent bg-surface/0 opacity-0 transition duration-300 group-hover:scale-100 group-hover:border-line group-hover:bg-surface/50 group-hover:opacity-100"></div><a href="https://aidesfrance.com"><span class="absolute -inset-x-4 -inset-y-5 z-20"></span><span class="relative z-10"><span class="stitch">AidesFrance</span></span></a></h2><p class="relative z-10 mt-2 text-base text-muted">An estimated 10 billion euros of French social benefits go unclaimed every year. Answer a few questions, find out which of 86 aids you qualify for, and get the steps to claim them. Computed in the browser, nothing stored.</p><p class="relative z-10 mt-6 flex items-center font-mono text-xs tracking-[0.12em] text-muted uppercase transition group-hover:text-accent"><svg viewBox="0 0 24 24" aria-hidden="true" class="h-5 w-5 flex-none"><path d="M15.712 11.823a.75.75 0 1 0 1.06 1.06l-1.06-1.06Zm-4.95 1.768a.75.75 0 0 0 1.06-1.06l-1.06 1.06Zm-2.475-1.414a.75.75 0 1 0-1.06-1.06l1.06 1.06Zm4.95-1.768a.75.75 0 1 0-1.06 1.06l1.06-1.06Zm3.359.53-.884.884 1.06 1.06.885-.883-1.061-1.06Zm-4.95-2.12 1.414-1.415L12 6.344l-1.415 1.413 1.061 1.061Zm0 3.535a2.5 2.5 0 0 1 0-3.536l-1.06-1.06a4 4 0 0 0 0 5.656l1.06-1.06Zm4.95-4.95a2.5 2.5 0 0 1 0 3.535L17.656 12a4 4 0 0 0 0-5.657l-1.06 1.06Zm1.06-1.06a4 4 0 0 0-5.656 0l1.06 1.06a2.5 2.5 0 0 1 3.536 0l1.06-1.06Zm-7.07 7.07.176.177 1.06-1.06-.176-.177-1.06 1.06Zm-3.183-.353.884-.884-1.06-1.06-.884.883 1.06 1.06Zm4.95 2.121-1.414 1.414 1.06 1.06 1.415-1.413-1.06-1.061Zm0-3.536a2.5 2.5 0 0 1 0 3.536l1.06 1.06a4 4 0 0 0 0-5.656l-1.06 1.06Zm-4.95 4.95a2.5 2.5 0 0 1 0-3.535L6.344 12a4 4 0 0 0 0 5.656l1.06-1.06Zm-1.06 1.06a4 4 0 0 0 5.657 0l-1.061-1.06a2.5 2.5 0 0 1-3.535 0l-1.061 1.06Zm7.07-7.07-.176-.177-1.06 1.06.176.178 1.06-1.061Z" fill="currentColor"></path></svg><span class="ml-2">aidesfrance.com</span></p></li><li class="group relative flex flex-col items-start"><div class="relative z-10 grid h-12 w-12 place-items-center border border-line bg-surface transition-colors group-hover:border-accent"><img alt="" loading="lazy" width="100" height="100" decoding="async" data-nimg="1" class="h-7 w-7" style="color:transparent" src="/_next/static/media/some-might-play.9e2ae757.svg"/></div><h2 class="mt-6 text-lg font-semibold text-ink transition-colors group-hover:text-accent"><div class="absolute -inset-x-4 -inset-y-5 z-0 scale-95 border border-transparent bg-surface/0 opacity-0 transition duration-300 group-hover:scale-100 group-hover:border-line group-hover:bg-surface/50 group-hover:opacity-100"></div><a href="https://somemightplay.app"><span class="absolute -inset-x-4 -inset-y-5 z-20"></span><span class="relative z-10"><span class="stitch">Some Might Play</span></span></a></h2><p class="relative z-10 mt-2 text-base text-muted">A songwriting companion for guitarists. Pick a mood, melancholic, britpop, dreamy, and get progressions that sound like it, with real fingerings, drums and bass underneath, and the scales to solo over them. iPhone, no account.</p><p class="relative z-10 mt-6 flex items-center font-mono text-xs tracking-[0.12em] text-muted uppercase transition group-hover:text-accent"><svg viewBox="0 0 24 24" aria-hidden="true" class="h-5 w-5 flex-none"><path d="M15.712 11.823a.75.75 0 1 0 1.06 1.06l-1.06-1.06Zm-4.95 1.768a.75.75 0 0 0 1.06-1.06l-1.
106 1.06Zm-2.475-1.414a.75.75 0 1 0-1.06-1.06l1.06 1.06Zm4.95-1.768a.75.75 0 1 0-1.06 1.06l1.06-1.06Zm3.359.53-.884.884 1.06 1.06.885-.883-1.061-1.06Zm-4.95-2.12 1.414-1.415L12 6.344l-1.415 1.413 1.061 1.061Zm0 3.535a2.5 2.5 0 0 1 0-3.536l-1.06-1.06a4 4 0 0 0 0 5.656l1.06-1.06Zm4.95-4.95a2.5 2.5 0 0 1 0 3.535L17.656 12a4 4 0 0 0 0-5.657l-1.06 1.06Zm1.06-1.06a4 4 0 0 0-5.656 0l1.06 1.06a2.5 2.5 0 0 1 3.536 0l1.06-1.06Zm-7.07 7.07.176.177 1.06-1.06-.176-.177-1.06 1.06Zm-3.183-.353.884-.884-1.06-1.06-.884.883 1.06 1.06Zm4.95 2.121-1.414 1.414 1.06 1.06 1.415-1.413-1.06-1.061Zm0-3.536a2.5 2.5 0 0 1 0 3.536l1.06 1.06a4 4 0 0 0 0-5.656l-1.06 1.06Zm-4.95 4.95a2.5 2.5 0 0 1 0-3.535L6.344 12a4 4 0 0 0 0 5.656l1.06-1.06Zm-1.06 1.06a4 4 0 0 0 5.657 0l-1.061-1.06a2.5 2.5 0 0 1-3.535 0l-1.061 1.06Zm7.07-7.07-.176-.177-1.06 1.06.176.178 1.06-1.061Z" fill="currentColor"></path></svg><span class="ml-2">somemightplay.app</span></p></li><li class="group relative flex flex-col items-start"><div class="relative z-10 grid h-12 w-12 place-items-center border border-line bg-surface transition-colors group-hover:border-accent"><img alt="" loading="lazy" width="128" height="128" decoding="async" data-nimg="1" class="h-7 w-7" style="color:transparent" src="/_next/static/media/anychord.689f3bc2.webp"/></div><h2 class="mt-6 text-lg font-semibold text-ink transition-colors group-hover:text-accent"><div class="absolute -inset-x-4 -inset-y-5 z-0 scale-95 border border-transparent bg-surface/0 opacity-0 transition duration-300 group-hover:scale-100 group-hover:border-line group-hover:bg-surface/50 group-hover:opacity-100"></div><a href="https://anychord.app"><span class="absolute -inset-x-4 -inset-y-5 z-20"></span><span class="relative z-10"><span class="stitch">AnyChord</span></span></a></h2><p class="relative z-10 mt-2 text-base text-muted">Hear a song, play it tonight. It works out the chords of any song on YouTube and scrolls them in time with the video, bar by bar. When the machine gets one wrong, you correct it in two taps. iPhone and iPad.</p><p class="relative z-10 mt-6 flex items-center font-mono text-xs tracking-[0.12em] text-muted uppercase transition group-hover:text-accent"><svg viewBox="0 0 24 24" aria-hidden="true" class="h-5 w-5 flex-none"><path d="M15.712 11.823a.75.75 0 1 0 1.06 1.06l-1.06-1.06Zm-4.95 1.768a.75.75 0 0 0 1.06-1.06l-1.06 1.06Zm-2.475-1.414a.75.75 0 1 0-1.06-1.06l1.06 1.06Zm4.95-1.768a.75.75 0 1 0-1.06 1.06l1.06-1.06Zm3.359.53-.884.884 1.06 1.06.885-.883-1.061-1.06Zm-4.95-2.12 1.414-1.415L12 6.344l-1.415 1.413 1.061 1.061Zm0 3.535a2.5 2.5 0 0 1 0-3.536l-1.06-1.06a4 4 0 0 0 0 5.656l1.06-1.06Zm4.95-4.95a2.5 2.5 0 0 1 0 3.535L17.656 12a4 4 0 0 0 0-5.657l-1.06 1.06Zm1.06-1.06a4 4 0 0 0-5.656 0l1.06 1.06a2.5 2.5 0 0 1 3.536 0l1.06-1.06Zm-7.07 7.07.176.177 1.06-1.06-.176-.177-1.06 1.06Zm-3.183-.353.884-.884-1.06-1.06-.884.883 1.06 1.06Zm4.95 2.121-1.414 1.414 1.06 1.06 1.415-1.413-1.06-1.061Zm0-3.536a2.5 2.5 0 0 1 0 3.536l1.06 1.06a4 4 0 0 0 0-5.656l-1.06 1.06Zm-4.95 4.95a2.5 2.5 0 0 1 0-3.535L6.344 12a4 4 0 0 0 0 5.656l1.06-1.06Zm-1.06 1.06a4 4 0 0 0 5.657 0l-1.061-1.06a2.5 2.5 0 0 1-3.535 0l-1.061 1.06Zm7.07-7.07-.176-.177-1.06 1.06.176.178 1.06-1.061Z" fill="currentColor"></path></svg><span class="ml-2">anychord.app</span></p></li><li class="group relative flex flex-col items-start"><div class="relative z-10 grid h-12 w-12 place-items-center border border-line bg-surface transition-colors group-hover:border-accent"><img alt="" loading="lazy" width="28" height="28" decoding="async" data-nimg="1" class="h-7 w-7" style="color:transparent" src="/_next/static/media/storeui.e5f482bd.svg"/></div><h2 class="mt-6 text-lg font-semibold text-ink transition-colors group-hover:text-accent"><div class="absolute -inset-x-4 -inset-y-5 z-0 scale-95 border border-transparent bg-surface/0 opacity-0 transition duration-300 group-hover:scale-100 group-hover:border-line group-hover:bg-surface/50 group-hover:opacity-100"></div><a href="https://storeui.net"><span class="absolute -inset-x-4 -inset-y-5 z-20"></span><span class="relative z-10"><span class="stitch">StoreUI.net</span></span></a></h2><p class="relative z-10 mt-2 text-base text-muted">A React-powered interface layer designed to streamline the creation of beautiful, fast, and feature-rich WooCommerce front-ends.</p><p class="relative z-10 mt-6 flex items-center font-mono text-xs tracking-[0.12em] text-muted uppercase transition group-hover:text-accent"><svg viewBox="0 0 24 24" aria-hidden="true" class="h-5 w-5 flex-none"><path d="M15.712 11.823a.75.75 0 1 0 1.06 1.06l-1.06-1.06Zm-4.95 1.768a.75.75 0 0 0 1.06-1.06l-1.
106 1.06Zm-2.475-1.414a.75.75 0 1 0-1.06-1.06l1.06 1.06Zm4.95-1.768a.75.75 0 1 0-1.06 1.06l1.06-1.06Zm3.359.53-.884.884 1.06 1.06.885-.883-1.061-1.06Zm-4.95-2.12 1.414-1.415L12 6.344l-1.415 1.413 1.061 1.061Zm0 3.535a2.5 2.5 0 0 1 0-3.536l-1.06-1.06a4 4 0 0 0 0 5.656l1.06-1.06Zm4.95-4.95a2.5 2.5 0 0 1 0 3.535L17.656 12a4 4 0 0 0 0-5.657l-1.06 1.06Zm1.06-1.06a4 4 0 0 0-5.656 0l1.06 1.06a2.5 2.5 0 0 1 3.536 0l1.06-1.06Zm-7.07 7.07.176.177 1.06-1.06-.176-.177-1.06 1.06Zm-3.183-.353.884-.884-1.06-1.06-.884.883 1.06 1.06Zm4.95 2.121-1.414 1.414 1.06 1.06 1.415-1.413-1.06-1.061Zm0-3.536a2.5 2.5 0 0 1 0 3.536l1.06 1.06a4 4 0 0 0 0-5.656l-1.06 1.06Zm-4.95 4.95a2.5 2.5 0 0 1 0-3.535L6.344 12a4 4 0 0 0 0 5.656l1.06-1.06Zm-1.06 1.06a4 4 0 0 0 5.657 0l-1.061-1.06a2.5 2.5 0 0 1-3.535 0l-1.061 1.06Zm7.07-7.07-.176-.177-1.06 1.06.176.178 1.06-1.061Z" fill="currentColor"></path></svg><span class="ml-2">storeui.net</span></p></li><li class="group relative flex flex-col items-start"><div class="relative z-10 grid h-12 w-12 place-items-center border border-line bg-surface transition-colors group-hover:border-accent"><span class="font-display text-xl leading-none text-ink transition-colors group-hover:text-accent">À</span></div><h2 class="mt-6 text-lg font-semibold text-ink transition-colors group-hover:text-accent"><div class="absolute -inset-x-4 -inset-y-5 z-0 scale-95 border border-transparent bg-surface/0 opacity-0 transition duration-300 group-hover:scale-100 group-hover:border-line group-hover:bg-surface/50 group-hover:opacity-100"></div><a href="https://alafrancaise.net"><span class="absolute -inset-x-4 -inset-y-5 z-20"></span><span class="relative z-10"><span class="stitch">À la Française</span></span></a></h2><p class="relative z-10 mt-2 text-base text-muted">My hand-crafted leather brand, made in France one piece at a time. A community of 14K on Instagram (@alafrancaiseshop).</p><p class="relative z-10 mt-6 flex items-center font-mono text-xs tracking-[0.12em] text-muted uppercase transition group-hover:text-accent"><svg viewBox="0 0 24 24" aria-hidden="true" class="h-5 w-5 flex-none"><path d="M15.712 11.823a.75.75 0 1 0 1.06 1.06l-1.06-1.06Zm-4.95 1.768a.75.75 0 0 0 1.06-1.06l-1.06 1.06Zm-2.475-1.414a.75.75 0 1 0-1.06-1.06l1.06 1.06Zm4.95-1.768a.75.75 0 1 0-1.06 1.06l1.06-1.06Zm3.359.53-.884.884 1.06 1.06.885-.883-1.061-1.06Zm-4.95-2.12 1.414-1.415L12 6.344l-1.415 1.413 1.061 1.061Zm0 3.535a2.5 2.5 0 0 1 0-3.536l-1.06-1.06a4 4 0 0 0 0 5.656l1.06-1.06Zm4.95-4.95a2.5 2.5 0 0 1 0 3.535L17.656 12a4 4 0 0 0 0-5.657l-1.06 1.06Zm1.06-1.06a4 4 0 0 0-5.656 0l1.06 1.06a2.5 2.5 0 0 1 3.536 0l1.06-1.06Zm-7.07 7.07.176.177 1.06-1.06-.176-.177-1.06 1.06Zm-3.183-.353.884-.884-1.06-1.06-.884.883 1.06 1.06Zm4.95 2.121-1.414 1.414 1.06 1.06 1.415-1.413-1.06-1.061Zm0-3.536a2.5 2.5 0 0 1 0 3.536l1.06 1.06a4 4 0 0 0 0-5.656l-1.06 1.06Zm-4.95 4.95a2.5 2.5 0 0 1 0-3.535L6.344 12a4 4 0 0 0 0 5.656l1.06-1.06Zm-1.06 1.06a4 4 0 0 0 5.657 0l-1.061-1.06a2.5 2.5 0 0 1-3.535 0l-1.061 1.06Zm7.07-7.07-.176-.177-1.06 1.06.176.178 1.06-1.061Z" fill="currentColor"></path></svg><span class="ml-2">alafrancaise.net</span></p></li><li class="group relative flex flex-col items-start"><div class="relative z-10 grid h-12 w-12 place-items-center border border-line bg-surface transition-colors group-hover:border-accent"><span class="font-display text-xl leading-none text-ink transition-colors group-hover:text-accent">B</span></div><h2 class="mt-6 text-lg font-semibold text-ink transition-colors group-hover:text-accent"><div class="absolute -inset-x-4 -inset-y-5 z-0 scale-95 border border-transparent bg-surface/0 opacity-0 transition duration-300 group-hover:scale-100 group-hover:border-line group-hover:bg-surface/50 group-hover:opacity-100"></div><a href="https://brudstraps.com"><span class="absolute -inset-x-4 -inset-y-5 z-20"></span><span class="relative z-10"><span class="stitch">BrudStraps</span></span></a></h2><p class="relative z-10 mt-2 text-base text-muted">Handmade leather guitar straps, built to age well and last a lifetime. Follow the workshop on Instagram (@brudstraps).</p><p class="relative z-10 mt-6 flex items-center font-mono text-xs tracking-[0.12em] text-muted uppercase transition group-hover:text-accent"><svg viewBox="0 0 24 24" aria-hidden="true" class="h-5 w-5 flex-none"><path d="M15.712 11.823a.75.75 0 1 0 1.06 1.06l-1.06-1.06Zm-4.95 1.768a.75.75 0 0 0 1.06-1.06l-1.
106 1.06Zm-2.475-1.414a.75.75 0 1 0-1.06-1.06l1.06 1.06Zm4.95-1.768a.75.75 0 1 0-1.06 1.06l1.06-1.06Zm3.359.53-.884.884 1.06 1.06.885-.883-1.061-1.06Zm-4.95-2.12 1.414-1.415L12 6.344l-1.415 1.413 1.061 1.061Zm0 3.535a2.5 2.5 0 0 1 0-3.536l-1.06-1.06a4 4 0 0 0 0 5.656l1.06-1.06Zm4.95-4.95a2.5 2.5 0 0 1 0 3.535L17.656 12a4 4 0 0 0 0-5.657l-1.06 1.06Zm1.06-1.06a4 4 0 0 0-5.656 0l1.06 1.06a2.5 2.5 0 0 1 3.536 0l1.06-1.06Zm-7.07 7.07.176.177 1.06-1.06-.176-.177-1.06 1.06Zm-3.183-.353.884-.884-1.06-1.06-.884.883 1.06 1.06Zm4.95 2.121-1.414 1.414 1.06 1.06 1.415-1.413-1.06-1.061Zm0-3.536a2.5 2.5 0 0 1 0 3.536l1.06 1.06a4 4 0 0 0 0-5.656l-1.06 1.06Zm-4.95 4.95a2.5 2.5 0 0 1 0-3.535L6.344 12a4 4 0 0 0 0 5.656l1.06-1.06Zm-1.06 1.06a4 4 0 0 0 5.657 0l-1.061-1.06a2.5 2.5 0 0 1-3.535 0l-1.061 1.06Zm7.07-7.07-.176-.177-1.06 1.06.176.178 1.06-1.061Z" fill="currentColor"></path></svg><span class="ml-2">brudstraps.com</span></p></li><li class="group relative flex flex-col items-start"><div class="relative z-10 grid h-12 w-12 place-items-center border border-line bg-surface transition-colors group-hover:border-accent"><img alt="" loading="lazy" width="78" height="131" decoding="async" data-nimg="1" class="h-7 w-7" style="color:transparent" src="/_next/static/media/guttypress.1ccf6064.svg"/></div><h2 class="mt-6 text-lg font-semibold text-ink transition-colors group-hover:text-accent">GuttyPress.com</h2><p class="relative z-10 mt-2 text-base text-muted">A site I co-founded to explore what the Gutenberg editor could do, with advanced blocks, tools and write-ups for developers building modern WordPress sites. Retired, and the domain is no longer online.</p><p class="relative z-10 mt-6 font-mono text-xs tracking-[0.12em] text-muted uppercase">Archived</p></li></ul></div></div></div></div></div></main><footer class="mt-28 flex-none"><div class="sm:px-8"><div class="mx-auto w-full max-w-7xl lg:px-8"><div class="stitch-line opacity-40"></div><div class="relative px-4 sm:px-8 lg:px-12 pt-14 pb-16"><div class="mx-auto max-w-2xl lg:max-w-5xl"><div class="flex flex-col gap-10 lg:flex-row lg:items-end lg:justify-between"><div><p class="font-mono text-[0.7rem] tracking-[0.2em] text-accent uppercase">Code &amp; Leather</p><p class="mt-3 max-w-md font-display text-4xl leading-[0.95] tracking-tight text-ink uppercase sm:text-5xl">Let&#x27;s build<br/>something good.</p><a href="https://x.com/remicorson" target="_blank" rel="noopener noreferrer" class="mt-6 inline-flex items-center gap-2 border border-line px-5 py-3 font-mono text-xs tracking-[0.14em] text-ink uppercase transition hover:border-accent hover:text-accent">Get in touch →</a></div><nav class="grid grid-cols-2 gap-x-10 gap-y-3"><a class="group inline-flex items-center font-mono text-[0.72rem] uppercase tracking-[0.14em] text-muted transition hover:text-ink" href="/about"><span class="stitch">About</span></a><a class="group inline-flex items-center font-mono text-[0.72rem] uppercase tracking-[0.14em] text-muted transition hover:text-ink" href="/articles"><span class="stitch">Articles</span></a><a class="group inline-flex items-center font-mono text-[0.72rem] uppercase tracking-[0.14em] text-muted transition hover:text-ink" href="/projects"><span class="stitch">Projects</span></a><a class="group inline-flex items-center font-mono text-[0.72rem] uppercase tracking-[0.14em] text-muted transition hover:text-ink" href="/speaking"><span class="stitch">Speaking</span></a><a class="group inline-flex items-center font-mono text-[0.72rem] uppercase tracking-[0.14em] text-muted transition hover:text-ink" href="/uses"><span class="stitch">Uses</span></a><a href="https://paypal.me/remicorson" target="_blank" rel="noopener noreferrer" class="group inline-flex items-center font-mono text-[0.72rem] uppercase tracking-[0.14em] text-muted transition hover:text-ink"><span class="stitch">Buy me a coffee</span></a></nav></div><div class="mt-14 flex flex-col gap-2 border-t border-line pt-6 font-mono text-[0.68rem] tracking-[0.12em] text-muted uppercase sm:flex-row sm:items-center sm:justify-between"><span>© <!-- -->2026<!-- --> Rémi Corson</span><span>Paris · France - Built with Next.js</span></div></div></div></div></div></footer></div></div></div>
1<script src="/_next/static/chunks/webpack-cdc4369611b472ce.js" async=""></script>
1<script>(self.__next_f=self.__next_f||[]).push([0]);self.__next_f.push([2,null])</script>
1<script>self.__next_f.push([1,"1:HL[\"/_next/static/media/313510e2713fb214-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n2:HL[\"/_next/static/media/62c97acc3aa63787-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n3:HL[\"/_next/static/media/bb3ef058b751a6ad-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n4:HL[\"/_next/static/css/142bdd90a3ea0d06.css\",\"style\"]\n"])</script>
1<script>self.__next_f.push([1,"5:I[95751,[],\"\"]\n7:I[231,[\"8173\",\"static/chunks/8173-432b1a061bb39560.js\",\"231\",\"static/chunks/231-e67afce969bc6eb9.js\",\"2895\",\"static/chunks/app/projects/page-aaded008feb9ce9f.js\"],\"\"]\n8:I[38173,[\"8173\",\"static/chunks/8173-432b1a061bb39560.js\",\"231\",\"static/chunks/231-e67afce969bc6eb9.js\",\"2895\",\"static/chunks/app/projects/page-aaded008feb9ce9f.js\"],\"Image\"]\n9:I[39275,[],\"\"]\na:I[61343,[],\"\"]\nb:\"$Sreact.suspense\"\nc:I[10912,[\"5501\",\"static/chunks/c16f53c3-36c12976cfe26629.js\",\"231\",\"static/chunks/231-e67afce969bc6eb9.js\",\"6463\",\"static/chunks/6463-ebbe95039890d0ba.js\",\"3185\",\"static/chunks/app/layout-933d4ab6dcb0a96c.js\"],\"BailoutToCSR\"]\nd:I[81981,[\"5501\",\"static/chunks/c16f53c3-36c12976cfe26629.js\",\"231\",\"static/chunks/231-e67afce969bc6eb9.js\",\"6463\",\"static/chunks/6463-ebbe95039890d0ba.js\",\"3185\",\"static/chunks/app/layout-933d4ab6dcb0a96c.js\"],\"default\"]\ne:I[11747,[\"5501\",\"static/chunks/c16f53c3-36c12976cfe26629.js\",\"231\",\"static/chunks/231-e67afce969bc6eb9.js\",\"6463\",\"static/chunks/6463-ebbe95039890d0ba.js\",\"3185\",\"static/chunks/app/layout-933d4ab6dcb0a96c.js\"],\"Providers\"]\nf:I[42905,[\"5501\",\"static/chunks/c16f53c3-36c12976cfe26629.js\",\"231\",\"static/chunks/231-e67afce969bc6eb9.js\",\"6463\",\"static/chunks/6463-ebbe95039890d0ba.js\",\"3185\",\"static/chunks/app/layout-933d4ab6dcb0a96c.js\"],\"Header\"]\n11:I[76130,[],\"\"]\n12:[]\n"])</script>
1<script>self.__next_f.push([1,"0:[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/142bdd90a3ea0d06.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\"}]],[\"$\",\"$L5\",null,{\"buildId\":\"f5JEr_s_NHKRCaI7-8SAW\",\"assetPrefix\":\"\",\"initialCanonicalUrl\":\"/projects\",\"initialTree\":[\"\",{\"children\":[\"projects\",{\"children\":[\"__PAGE__\",{}]}]},\"$undefined\",\"$undefined\",true],\"initialSeedData\":[\"\",{\"children\":[\"projects\",{\"children\":[\"__PAGE__\",{},[[\"$L6\",[\"$\",\"div\",null,{\"className\":\"sm:px-8 pt-14 sm:pt-20\",\"children\":[\"$\",\"div\",null,{\"className\":\"mx-auto w-full max-w-7xl lg:px-8\",\"children\":[\"$\",\"div\",null,{\"className\":\"relative px-4 sm:px-8 lg:px-12\",\"children\":[\"$\",\"div\",null,{\"className\":\"mx-auto max-w-2xl lg:max-w-5xl\",\"children\":[[\"$\",\"header\",null,{\"className\":\"max-w-3xl\",\"children\":[[\"$\",\"p\",null,{\"className\":\"font-mono text-[0.7rem] tracking-[0.2em] text-accent uppercase\",\"children\":\"Projects\"}],[\"$\",\"h1\",null,{\"className\":\"mt-3 font-display text-4xl leading-[0.95] tracking-tight text-ink uppercase sm:text-6xl\",\"children\":\"I’ve worked on tons of little projects over the years but these are the ones that I’m most proud of.\"}],[\"$\",\"div\",null,{\"className\":\"stitch-line mt-6 max-w-xs opacity-50\"}],[\"$\",\"p\",null,{\"className\":\"mt-6 max-w-2xl text-lg leading-relaxed text-muted\",\"children\":\"Many of them are open-source, so if you see something that piques your interest, check out the code and contribute if you have ideas for how it can be improved.\"}]]}],[\"$\",\"div\",null,{\"className\":\"mt-16 sm:mt-20\",\"children\":[\"$\",\"ul\",null,{\"role\":\"list\",\"className\":\"grid grid-cols-1 gap-x-12 gap-y-16 sm:grid-cols-2 lg:grid-cols-3\",\"children\":[[\"$\",\"li\",null,{\"className\":\"group relative flex flex-col items-start\",\"children\":[[\"$\",\"div\",null,{\"className\":\"relative z-10 grid h-12 w-12 place-items-center border border-line bg-surface transition-colors group-hover:border-accent\",\"children\":[\"$\",\"svg\",null,{\"viewBox\":\"0 0 248 149\",\"fill\":\"currentColor\",\"aria-hidden\":\"true\",\"className\":\"h-4 w-auto text-ink transition-colors group-hover:text-accent\",\"children\":[\"$\",\"path\",null,{\"fillRule\":\"evenodd\",\"clipRule\":\"evenodd\",\"d\":\"M229.478 0C239.7 -4.46802e-07 247.987 8.28689 247.987 18.5088V129.562C247.987 139.783 239.7 148.069 229.478 148.069C219.256 148.069 210.97 139.783 210.97 129.562V64.6641L137.702 142.059C134.572 145.364 130.524 147.277 126.332 147.779C125.268 147.969 124.173 148.069 123.054 148.069C112.832 148.069 104.546 139.782 104.545 129.561V65.791L32.3452 142.057C25.2307 149.572 13.3712 149.896 5.85596 142.782C-1.65919 135.668 -1.98407 123.808 5.13037 116.293L108.378 7.22949C111.762 2.83306 117.077 2.61236e-07 123.054 0C133.276 0.000239104 141.562 8.2861 141.562 18.5078V83.4688L214.27 6.66699C216.
109 4.74496 218.22 3.29356 220.508 2.31641C223.165 0.841285 226.223 8.14087e-05 229.478 0Z\"}]}]}],[\"$\",\"h2\",null,{\"className\":\"mt-6 text-lg font-semibold text-ink transition-colors group-hover:text-accent\",\"children\":[[\"$\",\"div\",null,{\"className\":\"absolute -inset-x-4 -inset-y-5 z-0 scale-95 border border-transparent bg-surface/0 opacity-0 transition duration-300 group-hover:scale-100 group-hover:border-line group-hover:bg-surface/50 group-hover:opacity-100\"}],[\"$\",\"$L7\",null,{\"href\":\"https://milosubscriptions.com\",\"children\":[[\"$\",\"span\",null,{\"className\":\"absolute -inset-x-4 -inset-y-5 z-20\"}],[\"$\",\"span\",null,{\"className\":\"relative z-10\",\"children\":[\"$\",\"span\",null,{\"className\":\"stitch\",\"children\":\"Milo\"}]}]]}]]}],[\"$\",\"p\",null,{\"className\":\"relative z-10 mt-2 text-base text-muted\",\"children\":\"The free subscriptions ecosystem for WordPress. A subscriptions plugin with no paywall on the core - everything essential stays free and open.\"}],[\"$\",\"p\",null,{\"className\":\"relative z-10 mt-6 flex items-center font-mono text-xs tracking-[0.12em] text-muted uppercase transition group-hover:text-accent\",\"children\":[[\"$\",\"svg\",null,{\"viewBox\":\"0 0 24 24\",\"aria-hidden\":\"true\",\"className\":\"h-5 w-5 flex-none\",\"children\":[\"$\",\"path\",null,{\"d\":\"M15.712 11.823a.75.75 0 1 0 1.06 1.06l-1.06-1.06Zm-4.95 1.768a.75.75 0 0 0 1.06-1.06l-1.06 1.06Zm-2.475-1.414a.75.75 0 1 0-1.06-1.06l1.06 1.06Zm4.95-1.768a.75.75 0 1 0-1.06 1.06l1.06-1.06Zm3.359.53-.884.884 1.06 1.06.885-.883-1.061-1.06Zm-4.95-2.12 1.414-1.415L12 6.344l-1.415 1.413 1.061 1.061Zm0 3.535a2.5 2.5 0 0 1 0-3.536l-1.06-1.06a4 4 0 0 0 0 5.656l1.06-1.06Zm4.95-4.95a2.5 2.5 0 0 1 0 3.535L17.656 12a4 4 0 0 0 0-5.657l-1.06 1.06Zm1.06-1.06a4 4 0 0 0-5.656 0l1.06 1.06a2.5 2.5 0 0 1 3.536 0l1.06-1.06Zm-7.07 7.07.176.177 1.06-1.06-.176-.177-1.06 1.06Zm-3.183-.353.884-.884-1.06-1.06-.884.883 1.06 1.06Zm4.95 2.121-1.414 1.414 1.06 1.06 1.415-1.413-1.06-1.061Zm0-3.536a2.5 2.5 0 0 1 0 3.536l1.06 1.06a4 4 0 0 0 0-5.656l-1.06 1.06Zm-4.95 4.95a2.5 2.5 0 0 1 0-3.535L6.344 12a4 4 0 0 0 0 5.656l1.06-1.06Zm-1.06 1.06a4 4 0 0 0 5.657 0l-1.061-1.06a2.5 2.5 0 0 1-3.535 0l-1.061 1.06Zm7.07-7.07-.176-.177-1.06 1.06.176.178 1.06-1.061Z\",\"fill\":\"currentColor\"}]}],[\"$\",\"span\",null,{\"className\":\"ml-2\",\"children\":\"milosubscriptions.com\"}]]}]]}],[\"$\",\"li\",null,{\"className\":\"group relative flex flex-col items-start\",\"children\":[[\"$\",\"div\",null,{\"className\":\"relative z-10 grid h-12 w-12 place-items-center border border-line bg-surface transition-colors group-hover:border-accent\",\"children\":[\"$\",\"svg\",null,{\"viewBox\":\"0 0 256 256\",\"aria-hidden\":\"true\",\"className\":\"h-7 w-auto text-ink transition-colors group-hover:text-accent\",\"children\":[[\"$\",\"rect\",null,{\"width\":\"256\",\"height\":\"256\",\"rx\":\"60\",\"className\":\"fill-[#17151c] dark:fill-[#f2efe6]\"}],[\"$\",\"path\",null,{\"d\":\"M86 88 L128 152\",\"strokeWidth\":\"32\",\"strokeLinecap\":\"round\",\"fill\":\"none\",\"className\":\"stroke-[#f2efe6] dark:stroke-[#17151c]\"}],[\"$\",\"path\",null,{\"d\":\"M162 90 L108 192\",\"stroke\":\"#c9f158\",\"strokeWidth\":\"32\",\"strokeLinecap\":\"round\",\"fill\":\"none\"}],[\"$\",\"path\",null,{\"d\":\"M194 38c1.4 15.5 13.5 27.6 29 29-15.5 1.4-27.6 13.5-29 29-1.4-15.5-13.5-27.6-29-29 15.5-1.4 27.6-13.5 29-29Z\",\"fill\":\"#ff5bb5\"}]]}]}],[\"$\",\"h2\",null,{\"className\":\"mt-6 text-lg font-semibold text-ink transition-colors group-hover:text-accent\",\"children\":[[\"$\",\"div\",null,{\"className\":\"absolute -inset-x-4 -inset-y-5 z-0 scale-95 border border-transparent bg-surface/0 opacity-0 transition duration-300 group-hover:scale-100 group-hover:border-line group-hover:bg-surface/50 group-hover:opacity-100\"}],[\"$\",\"$L7\",null,{\"href\":\"https://youmanize.me\",\"children\":[[\"$\",\"span\",null,{\"className\":\"absolute -inset-x-4 -inset-y-5 z-20\"}],[\"$\",\"span\",null,{\"className\":\"relative z-10\",\"children\":[\"$\",\"span\",null,{\"className\":\"stitch\",\"children\":\"Youmanize\"}]}]]}]]}],[\"$\",\"p\",null,{\"className\":\"relative z-10 mt-2 text-base text-muted\",\"children\":\"AI wrote it, we make it sound like you. Two routes to get there: an engine built to strip the tells out of machine-written text, or human editors who rewrite it from scratch, no model involved.\"}],[\"$\",\"p\",null,{\"className\":\"relative z-10 mt-6 flex items-center font-mono text-xs tracking-[0.12em] text-muted uppercase transition group-hover:text-accent\",\"children\":[[\"$\",\"svg\",null,{\"viewBox\":\"0 0 24 24\",\"aria-hidden\":\"true\",\"className\":\"h-5 w-5 flex-none\",\"children\":[\"$\",\"path\",null,{\"d\":\"M15.712 11.823a.75.75 0 1 0 1.06 1.06l-1.06-1.06Zm-4.95 1.768a.75.75 0 0 0 1.06-1.06l-1.
106 1.06Zm-2.475-1.414a.75.75 0 1 0-1.06-1.06l1.06 1.06Zm4.95-1.768a.75.75 0 1 0-1.06 1.06l1.06-1.06Zm3.359.53-.884.884 1.06 1.06.885-.883-1.061-1.06Zm-4.95-2.12 1.414-1.415L12 6.344l-1.415 1.413 1.061 1.061Zm0 3.535a2.5 2.5 0 0 1 0-3.536l-1.06-1.06a4 4 0 0 0 0 5.656l1.06-1.06Zm4.95-4.95a2.5 2.5 0 0 1 0 3.535L17.656 12a4 4 0 0 0 0-5.657l-1.06 1.06Zm1.06-1.06a4 4 0 0 0-5.656 0l1.06 1.06a2.5 2.5 0 0 1 3.536 0l1.06-1.06Zm-7.07 7.07.176.177 1.06-1.06-.176-.177-1.06 1.06Zm-3.183-.353.884-.884-1.06-1.06-.884.883 1.06 1.06Zm4.95 2.121-1.414 1.414 1.06 1.06 1.415-1.413-1.06-1.061Zm0-3.536a2.5 2.5 0 0 1 0 3.536l1.06 1.06a4 4 0 0 0 0-5.656l-1.06 1.06Zm-4.95 4.95a2.5 2.5 0 0 1 0-3.535L6.344 12a4 4 0 0 0 0 5.656l1.06-1.06Zm-1.06 1.06a4 4 0 0 0 5.657 0l-1.061-1.06a2.5 2.5 0 0 1-3.535 0l-1.061 1.06Zm7.07-7.07-.176-.177-1.06 1.06.176.178 1.06-1.061Z\",\"fill\":\"currentColor\"}]}],[\"$\",\"span\",null,{\"className\":\"ml-2\",\"children\":\"youmanize.me\"}]]}]]}],[\"$\",\"li\",null,{\"className\":\"group relative flex flex-col items-start\",\"children\":[[\"$\",\"div\",null,{\"className\":\"relative z-10 grid h-12 w-12 place-items-center border border-line bg-surface transition-colors group-hover:border-accent\",\"children\":[\"$\",\"svg\",null,{\"viewBox\":\"0 0 24 16\",\"aria-hidden\":\"true\",\"className\":\"h-6 w-auto text-ink transition-colors group-hover:text-accent\",\"children\":[[\"$\",\"rect\",null,{\"x\":\"0\",\"y\":\"0\",\"width\":\"8\",\"height\":\"16\",\"fill\":\"#000091\"}],[\"$\",\"rect\",null,{\"x\":\"8\",\"y\":\"0\",\"width\":\"8\",\"height\":\"16\",\"fill\":\"#ffffff\"}],[\"$\",\"rect\",null,{\"x\":\"16\",\"y\":\"0\",\"width\":\"8\",\"height\":\"16\",\"fill\":\"#e1000f\"}]]}]}],[\"$\",\"h2\",null,{\"className\":\"mt-6 text-lg font-semibold text-ink transition-colors group-hover:text-accent\",\"children\":[[\"$\",\"div\",null,{\"className\":\"absolute -inset-x-4 -inset-y-5 z-0 scale-95 border border-transparent bg-surface/0 opacity-0 transition duration-300 group-hover:scale-100 group-hover:border-line group-hover:bg-surface/50 group-hover:opacity-100\"}],[\"$\",\"$L7\",null,{\"href\":\"https://aidesfrance.com\",\"children\":[[\"$\",\"span\",null,{\"className\":\"absolute -inset-x-4 -inset-y-5 z-20\"}],[\"$\",\"span\",null,{\"className\":\"relative z-10\",\"children\":[\"$\",\"span\",null,{\"className\":\"stitch\",\"children\":\"AidesFrance\"}]}]]}]]}],[\"$\",\"p\",null,{\"className\":\"relative z-10 mt-2 text-base text-muted\",\"children\":\"An estimated 10 billion euros of French social benefits go unclaimed every year. Answer a few questions, find out which of 86 aids you qualify for, and get the steps to claim them. Computed in the browser, nothing stored.\"}],[\"$\",\"p\",null,{\"className\":\"relative z-10 mt-6 flex items-center font-mono text-xs tracking-[0.12em] text-muted uppercase transition group-hover:text-accent\",\"children\":[[\"$\",\"svg\",null,{\"viewBox\":\"0 0 24 24\",\"aria-hidden\":\"true\",\"className\":\"h-5 w-5 flex-none\",\"children\":[\"$\",\"path\",null,{\"d\":\"M15.712 11.823a.75.75 0 1 0 1.06 1.06l-1.06-1.06Zm-4.95 1.768a.75.75 0 0 0 1.06-1.06l-1.06 1.06Zm-2.475-1.414a.75.75 0 1 0-1.06-1.06l1.06 1.06Zm4.95-1.768a.75.75 0 1 0-1.06 1.06l1.06-1.06Zm3.359.53-.884.884 1.06 1.06.885-.883-1.061-1.06Zm-4.95-2.12 1.414-1.415L12 6.344l-1.415 1.413 1.061 1.061Zm0 3.535a2.5 2.5 0 0 1 0-3.536l-1.06-1.06a4 4 0 0 0 0 5.656l1.06-1.06Zm4.95-4.95a2.5 2.5 0 0 1 0 3.535L17.656 12a4 4 0 0 0 0-5.657l-1.06 1.06Zm1.06-1.06a4 4 0 0 0-5.656 0l1.06 1.06a2.5 2.5 0 0 1 3.536 0l1.06-1.06Zm-7.07 7.07.176.177 1.06-1.06-.176-.177-1.06 1.06Zm-3.183-.353.884-.884-1.06-1.06-.884.883 1.06 1.06Zm4.95 2.121-1.414 1.414 1.06 1.06 1.415-1.413-1.06-1.061Zm0-3.536a2.5 2.5 0 0 1 0 3.536l1.06 1.06a4 4 0 0 0 0-5.656l-1.06 1.06Zm-4.95 4.95a2.5 2.5 0 0 1 0-3.535L6.344 12a4 4 0 0 0 0 5.656l1.06-1.06Zm-1.06 1.06a4 4 0 0 0 5.657 0l-1.061-1.06a2.5 2.5 0 0 1-3.535 0l-1.061 1.06Zm7.07-7.07-.176-.177-1.06 1.06.176.178 1.06-1.061Z\",\"fill\":\"currentColor\"}]}],[\"$\",\"span\",null,{\"className\":\"ml-2\",\"children\":\"aidesfrance.com\"}]]}]]}],[\"$\",\"li\",null,{\"className\":\"group relative flex flex-col items-start\",\"children\":[[\"$\",\"div\",null,{\"className\":\"relative z-10 grid h-12 w-12 place-items-center border border-line bg-surface transition-colors group-hover:border-accent\",\"children\":[\"$\",\"$L8\",null,{\"src\":{\"src\":\"/_next/static/media/some-might-play.9e2ae757.svg\",\"height\"
1:100,\"width\":100,\"blurWidth\":0,\"blurHeight\":0},\"alt\":\"\",\"className\":\"h-7 w-7\",\"unoptimized\":true}]}],[\"$\",\"h2\",null,{\"className\":\"mt-6 text-lg font-semibold text-ink transition-colors group-hover:text-accent\",\"children\":[[\"$\",\"div\",null,{\"className\":\"absolute -inset-x-4 -inset-y-5 z-0 scale-95 border border-transparent bg-surface/0 opacity-0 transition duration-300 group-hover:scale-100 group-hover:border-line group-hover:bg-surface/50 group-hover:opacity-100\"}],[\"$\",\"$L7\",null,{\"href\":\"https://somemightplay.app\",\"children\":[[\"$\",\"span\",null,{\"className\":\"absolute -inset-x-4 -inset-y-5 z-20\"}],[\"$\",\"span\",null,{\"className\":\"relative z-10\",\"children\":[\"$\",\"span\",null,{\"className\":\"stitch\",\"children\":\"Some Might Play\"}]}]]}]]}],[\"$\",\"p\",null,{\"className\":\"relative z-10 mt-2 text-base text-muted\",\"children\":\"A songwriting companion for guitarists. Pick a mood, melancholic, britpop, dreamy, and get progressions that sound like it, with real fingerings, drums and bass underneath, and the scales to solo over them. iPhone, no account.\"}],[\"$\",\"p\",null,{\"className\":\"relative z-10 mt-6 flex items-center font-mono text-xs tracking-[0.12em] text-muted uppercase transition group-hover:text-accent\",\"children\":[[\"$\",\"svg\",null,{\"viewBox\":\"0 0 24 24\",\"aria-hidden\":\"true\",\"className\":\"h-5 w-5 flex-none\",\"children\":[\"$\",\"path\",null,{\"d\":\"M15.712 11.823a.75.75 0 1 0 1.06 1.06l-1.06-1.06Zm-4.95 1.768a.75.75 0 0 0 1.06-1.06l-1.06 1.06Zm-2.475-1.414a.75.75 0 1 0-1.06-1.06l1.06 1.06Zm4.95-1.768a.75.75 0 1 0-1.06 1.06l1.06-1.06Zm3.359.53-.884.884 1.06 1.06.885-.883-1.061-1.06Zm-4.95-2.12 1.414-1.415L12 6.344l-1.415 1.413 1.061 1.061Zm0 3.535a2.5 2.5 0 0 1 0-3.536l-1.06-1.06a4 4 0 0 0 0 5.656l1.06-1.06Zm4.95-4.95a2.5 2.5 0 0 1 0 3.535L17.656 12a4 4 0 0 0 0-5.657l-1.06 1.06Zm1.06-1.06a4 4 0 0 0-5.656 0l1.06 1.06a2.5 2.5 0 0 1 3.536 0l1.06-1.06Zm-7.07 7.07.176.177 1.06-1.06-.176-.177-1.06 1.06Zm-3.183-.353.884-.884-1.06-1.06-.884.883 1.06 1.06Zm4.95 2.121-1.414 1.414 1.06 1.06 1.415-1.413-1.06-1.061Zm0-3.536a2.5 2.5 0 0 1 0 3.536l1.06 1.06a4 4 0 0 0 0-5.656l-1.06 1.06Zm-4.95 4.95a2.5 2.5 0 0 1 0-3.535L6.344 12a4 4 0 0 0 0 5.656l1.06-1.06Zm-1.06 1.06a4 4 0 0 0 5.657 0l-1.061-1.06a2.5 2.5 0 0 1-3.535 0l-1.061 1.06Zm7.07-7.07-.176-.177-1.06 1.06.176.178 1.06-1.061Z\",\"fill\":\"currentColor\"}]}],[\"$\",\"span\",null,{\"className\":\"ml-2\",\"children\":\"somemightplay.app\"}]]}]]}],[\"$\",\"li\",null,{\"className\":\"group relative flex flex-col items-start\",\"children\":[[\"$\",\"div\",null,{\"className\":\"relative z-10 grid h-12 w-12 place-items-center border border-line bg-surface transition-colors group-hover:border-accent\",\"children\":[\"$\",\"$L8\",null,{\"src\":{\"src\":\"/_next/static/media/anychord.689f3bc2.webp\",\"height\":128,\"width\":128,\"blurDataURL\":\"data:image/webp;base64,UklGRlgAAABXRUJQVlA4IEwAAADQAQCdASoIAAgAAkA4JagAAxZgP9fisgD+3gSVKKKjPrDIlw5EyfpDXLtOkogI0Ng3U/pR3aqnXdxKRQ3//4YkCIVH/9jX+knc0AAA\",\"blurWidth\":8,\"blurHeight\":8},\"alt\":\"\",\"className\":\"h-7 w-7\",\"unoptimized\":true}]}],[\"$\",\"h2\",null,{\"className\":\"mt-6 text-lg font-semibold text-ink transition-colors group-hover:text-accent\",\"children\":[[\"$\",\"div\",null,{\"className\":\"absolute -inset-x-4 -inset-y-5 z-0 scale-95 border border-transparent bg-surface/0 opacity-0 transition duration-300 group-hover:scale-100 group-hover:border-line group-hover:bg-surface/50 group-hover:opacity-100\"}],[\"$\",\"$L7\",null,{\"href\":\"https://anychord.app\",\"children\":[[\"$\",\"span\",null,{\"className\":\"absolute -inset-x-4 -inset-y-5 z-20\"}],[\"$\",\"span\",null,{\"className\":\"relative z-10\",\"children\":[\"$\",\"span\",null,{\"className\":\"stitch\",\"children\":\"AnyChord\"}]}]]}]]}],[\"$\",\"p\",null,{\"className\":\"relative z-10 mt-2 text-base text-muted\",\"children\":\"Hear a song, play it tonight. It works out the chords of any song on YouTube and scrolls them in time with the video, bar by bar. When the machine gets one wrong, you correct it in two taps. iPhone and iPad.\"}],[\"$\",\"p\",null,{\"className\":\"relative z-10 mt-6 flex items-center font-mono text-xs tracking-[0.12em] text-muted uppercase transition group-hover:text-accent\",\"children\":[[\"$\",\"svg\",null,{\"viewBox\":\"0 0 24 24\",\"aria-hidden\":\"true\",\"className\":\"h-5 w-5 flex-none\",\"children\":[\"$\",\"path\",null,{\"d\":\"M15.712 11.823a.75.75 0 1 0 1.06 1.06l-1.06-1.06Zm-4.95 1.768a.75.75 0 0 0 1.06-1.06l-1.
106 1.06Zm-2.475-1.414a.75.75 0 1 0-1.06-1.06l1.06 1.06Zm4.95-1.768a.75.75 0 1 0-1.06 1.06l1.06-1.06Zm3.359.53-.884.884 1.06 1.06.885-.883-1.061-1.06Zm-4.95-2.12 1.414-1.415L12 6.344l-1.415 1.413 1.061 1.061Zm0 3.535a2.5 2.5 0 0 1 0-3.536l-1.06-1.06a4 4 0 0 0 0 5.656l1.06-1.06Zm4.95-4.95a2.5 2.5 0 0 1 0 3.535L17.656 12a4 4 0 0 0 0-5.657l-1.06 1.06Zm1.06-1.06a4 4 0 0 0-5.656 0l1.06 1.06a2.5 2.5 0 0 1 3.536 0l1.06-1.06Zm-7.07 7.07.176.177 1.06-1.06-.176-.177-1.06 1.06Zm-3.183-.353.884-.884-1.06-1.06-.884.883 1.06 1.06Zm4.95 2.121-1.414 1.414 1.06 1.06 1.415-1.413-1.06-1.061Zm0-3.536a2.5 2.5 0 0 1 0 3.536l1.06 1.06a4 4 0 0 0 0-5.656l-1.06 1.06Zm-4.95 4.95a2.5 2.5 0 0 1 0-3.535L6.344 12a4 4 0 0 0 0 5.656l1.06-1.06Zm-1.06 1.06a4 4 0 0 0 5.657 0l-1.061-1.06a2.5 2.5 0 0 1-3.535 0l-1.061 1.06Zm7.07-7.07-.176-.177-1.06 1.06.176.178 1.06-1.061Z\",\"fill\":\"currentColor\"}]}],[\"$\",\"span\",null,{\"className\":\"ml-2\",\"children\":\"anychord.app\"}]]}]]}],[\"$\",\"li\",null,{\"className\":\"group relative flex flex-col items-start\",\"children\":[[\"$\",\"div\",null,{\"className\":\"relative z-10 grid h-12 w-12 place-items-center border border-line bg-surface transition-colors group-hover:border-accent\",\"children\":[\"$\",\"$L8\",null,{\"src\":{\"src\":\"/_next/static/media/storeui.e5f482bd.svg\",\"height\":28,\"width\":28,\"blurWidth\":0,\"blurHeight\":0},\"alt\":\"\",\"className\":\"h-7 w-7\",\"unoptimized\":true}]}],[\"$\",\"h2\",null,{\"className\":\"mt-6 text-lg font-semibold text-ink transition-colors group-hover:text-accent\",\"children\":[[\"$\",\"div\",null,{\"className\":\"absolute -inset-x-4 -inset-y-5 z-0 scale-95 border border-transparent bg-surface/0 opacity-0 transition duration-300 group-hover:scale-100 group-hover:border-line group-hover:bg-surface/50 group-hover:opacity-100\"}],[\"$\",\"$L7\",null,{\"href\":\"https://storeui.net\",\"children\":[[\"$\",\"span\",null,{\"className\":\"absolute -inset-x-4 -inset-y-5 z-20\"}],[\"$\",\"span\",null,{\"className\":\"relative z-10\",\"children\":[\"$\",\"span\",null,{\"className\":\"stitch\",\"children\":\"StoreUI.net\"}]}]]}]]}],[\"$\",\"p\",null,{\"className\":\"relative z-10 mt-2 text-base text-muted\",\"children\":\"A React-powered interface layer designed to streamline the creation of beautiful, fast, and feature-rich WooCommerce front-ends.\"}],[\"$\",\"p\",null,{\"className\":\"relative z-10 mt-6 flex items-center font-mono text-xs tracking-[0.12em] text-muted uppercase transition group-hover:text-accent\",\"children\":[[\"$\",\"svg\",null,{\"viewBox\":\"0 0 24 24\",\"aria-hidden\":\"true\",\"className\":\"h-5 w-5 flex-none\",\"children\":[\"$\",\"path\",null,{\"d\":\"M15.712 11.823a.75.75 0 1 0 1.06 1.06l-1.06-1.06Zm-4.95 1.768a.75.75 0 0 0 1.06-1.06l-1.06 1.06Zm-2.475-1.414a.75.75 0 1 0-1.06-1.06l1.06 1.06Zm4.95-1.768a.75.75 0 1 0-1.06 1.06l1.06-1.06Zm3.359.53-.884.884 1.06 1.06.885-.883-1.061-1.06Zm-4.95-2.12 1.414-1.415L12 6.344l-1.415 1.413 1.061 1.061Zm0 3.535a2.5 2.5 0 0 1 0-3.536l-1.06-1.06a4 4 0 0 0 0 5.656l1.06-1.06Zm4.95-4.95a2.5 2.5 0 0 1 0 3.535L17.656 12a4 4 0 0 0 0-5.657l-1.06 1.06Zm1.06-1.06a4 4 0 0 0-5.656 0l1.06 1.06a2.5 2.5 0 0 1 3.536 0l1.06-1.06Zm-7.07 7.07.176.177 1.06-1.06-.176-.177-1.06 1.06Zm-3.183-.353.884-.884-1.06-1.06-.884.883 1.06 1.06Zm4.95 2.121-1.414 1.414 1.06 1.06 1.415-1.413-1.06-1.061Zm0-3.536a2.5 2.5 0 0 1 0 3.536l1.06 1.06a4 4 0 0 0 0-5.656l-1.06 1.06Zm-4.95 4.95a2.5 2.5 0 0 1 0-3.535L6.344 12a4 4 0 0 0 0 5.656l1.06-1.06Zm-1.06 1.06a4 4 0 0 0 5.657 0l-1.061-1.06a2.5 2.5 0 0 1-3.535 0l-1.061 1.06Zm7.07-7.07-.176-.177-1.06 1.06.176.178 1.06-1.061Z\",\"fill\":\"currentColor\"}]}],[\"$\",\"span\",null,{\"className\":\"ml-2\",\"children\":\"storeui.net\"}]]}]]}],[\"$\",\"li\",null,{\"className\":\"group relative flex flex-col items-start\",\"children\":[[\"$\",\"div\",null,{\"className\":\"relative z-10 grid h-12 w-12 place-items-center border border-line bg-surface transition-colors group-hover:border-accent\",\"children\":[\"$\",\"span\",null,{\"className\":\"font-display text-xl leading-none text-ink transition-colors group-hover:text-accent\",\"children\":\"À\"}]}],[\"$\",\"h2\",null,{\"className\":\"mt-6 text-lg font-semibold text-ink transition-colors group-hover:text-accent\",\"children\":[[\"$\",\"div\",null,{\"className\":\"absolute -inset-x-4 -inset-y-5 z-0 scale-95 border border-transparent bg-surface/0 opacity-0 transition duration-300 group-hover:scale-100 group-hover:border-line group-hover:bg-surface/50 group-hover:opacity-100\"}],[\"$\",\"$L7\",null,{\"href\":\"https://alafrancaise.net\",\"children\":[[\"$\",\"span\",null,{\"className\":\"absolute -inset-x-4 -inset-y-5 z-20\"}],[\"$\",\"span\",null,{\"className\":\"relative z-10\",\"children\":[\"$\",\"span\",null,{\"className\":\"stitch\",\"children\":\"À la Française\"}]}]]}]]}],[\"$\",\"p\",null,{\"className\":\"relative z-10 mt-2 text-base text-muted\",\"children\":\"My hand-crafted leather brand, made in France one piece at a time. A community of 14K on Instagram (@alafrancaiseshop).\"}],[\"$\",\"p\",null,{\"className\":\"relative z-10 mt-6 flex items-center font-mono text-xs tracking-[0.12em] text-muted uppercase transition group-hover:text-accent\",\"children\":[[\"$\",\"svg\",null,{\"viewBox\":\"0 0 24 24\",\"aria-hidden\":\"true\",\"className\":\"h-5 w-5 flex-none\",\"children\":[\"$\",\"path\",null,{\"d\":\"M15.712 11.823a.75.75 0 1 0 1.06 1.06l-1.06-1.06Zm-4.95 1.768a.75.75 0 0 0 1.06-1.06l-1.
106 1.06Zm-2.475-1.414a.75.75 0 1 0-1.06-1.06l1.06 1.06Zm4.95-1.768a.75.75 0 1 0-1.06 1.06l1.06-1.06Zm3.359.53-.884.884 1.06 1.06.885-.883-1.061-1.06Zm-4.95-2.12 1.414-1.415L12 6.344l-1.415 1.413 1.061 1.061Zm0 3.535a2.5 2.5 0 0 1 0-3.536l-1.06-1.06a4 4 0 0 0 0 5.656l1.06-1.06Zm4.95-4.95a2.5 2.5 0 0 1 0 3.535L17.656 12a4 4 0 0 0 0-5.657l-1.06 1.06Zm1.06-1.06a4 4 0 0 0-5.656 0l1.06 1.06a2.5 2.5 0 0 1 3.536 0l1.06-1.06Zm-7.07 7.07.176.177 1.06-1.06-.176-.177-1.06 1.06Zm-3.183-.353.884-.884-1.06-1.06-.884.883 1.06 1.06Zm4.95 2.121-1.414 1.414 1.06 1.06 1.415-1.413-1.06-1.061Zm0-3.536a2.5 2.5 0 0 1 0 3.536l1.06 1.06a4 4 0 0 0 0-5.656l-1.06 1.06Zm-4.95 4.95a2.5 2.5 0 0 1 0-3.535L6.344 12a4 4 0 0 0 0 5.656l1.06-1.06Zm-1.06 1.06a4 4 0 0 0 5.657 0l-1.061-1.06a2.5 2.5 0 0 1-3.535 0l-1.061 1.06Zm7.07-7.07-.176-.177-1.06 1.06.176.178 1.06-1.061Z\",\"fill\":\"currentColor\"}]}],[\"$\",\"span\",null,{\"className\":\"ml-2\",\"children\":\"alafrancaise.net\"}]]}]]}],[\"$\",\"li\",null,{\"className\":\"group relative flex flex-col items-start\",\"children\":[[\"$\",\"div\",null,{\"className\":\"relative z-10 grid h-12 w-12 place-items-center border border-line bg-surface transition-colors group-hover:border-accent\",\"children\":[\"$\",\"span\",null,{\"className\":\"font-display text-xl leading-none text-ink transition-colors group-hover:text-accent\",\"children\":\"B\"}]}],[\"$\",\"h2\",null,{\"className\":\"mt-6 text-lg font-semibold text-ink transition-colors group-hover:text-accent\",\"children\":[[\"$\",\"div\",null,{\"className\":\"absolute -inset-x-4 -inset-y-5 z-0 scale-95 border border-transparent bg-surface/0 opacity-0 transition duration-300 group-hover:scale-100 group-hover:border-line group-hover:bg-surface/50 group-hover:opacity-100\"}],[\"$\",\"$L7\",null,{\"href\":\"https://brudstraps.com\",\"children\":[[\"$\",\"span\",null,{\"className\":\"absolute -inset-x-4 -inset-y-5 z-20\"}],[\"$\",\"span\",null,{\"className\":\"relative z-10\",\"children\":[\"$\",\"span\",null,{\"className\":\"stitch\",\"children\":\"BrudStraps\"}]}]]}]]}],[\"$\",\"p\",null,{\"className\":\"relative z-10 mt-2 text-base text-muted\",\"children\":\"Handmade leather guitar straps, built to age well and last a lifetime. Follow the workshop on Instagram (@brudstraps).\"}],[\"$\",\"p\",null,{\"className\":\"relative z-10 mt-6 flex items-center font-mono text-xs tracking-[0.12em] text-muted uppercase transition group-hover:text-accent\",\"children\":[[\"$\",\"svg\",null,{\"viewBox\":\"0 0 24 24\",\"aria-hidden\":\"true\",\"className\":\"h-5 w-5 flex-none\",\"children\":[\"$\",\"path\",null,{\"d\":\"M15.712 11.823a.75.75 0 1 0 1.06 1.06l-1.06-1.06Zm-4.95 1.768a.75.75 0 0 0 1.06-1.06l-1.06 1.06Zm-2.475-1.414a.75.75 0 1 0-1.06-1.06l1.06 1.06Zm4.95-1.768a.75.75 0 1 0-1.06 1.06l1.06-1.06Zm3.359.53-.884.884 1.06 1.06.885-.883-1.061-1.06Zm-4.95-2.12 1.414-1.415L12 6.344l-1.415 1.413 1.061 1.061Zm0 3.535a2.5 2.5 0 0 1 0-3.536l-1.06-1.06a4 4 0 0 0 0 5.656l1.06-1.06Zm4.95-4.95a2.5 2.5 0 0 1 0 3.535L17.656 12a4 4 0 0 0 0-5.657l-1.06 1.06Zm1.06-1.06a4 4 0 0 0-5.656 0l1.06 1.06a2.5 2.5 0 0 1 3.536 0l1.06-1.06Zm-7.07 7.07.176.177 1.06-1.06-.176-.177-1.06 1.06Zm-3.183-.353.884-.884-1.06-1.06-.884.883 1.06 1.06Zm4.95 2.121-1.414 1.414 1.06 1.06 1.415-1.413-1.06-1.061Zm0-3.536a2.5 2.5 0 0 1 0 3.536l1.06 1.06a4 4 0 0 0 0-5.656l-1.06 1.06Zm-4.95 4.95a2.5 2.5 0 0 1 0-3.535L6.344 12a4 4 0 0 0 0 5.656l1.06-1.06Zm-1.06 1.06a4 4 0 0 0 5.657 0l-1.061-1.06a2.5 2.5 0 0 1-3.535 0l-1.061 1.06Zm7.07-7.07-.176-.177-1.06 1.06.176.178 1.06-1.061Z\",\"fill\":\"currentColor\"}]}],[\"$\",\"span\",null,{\"className\":\"ml-2\",\"children\":\"brudstraps.com\"}]]}]]}],[\"$\",\"li\",null,{\"className\":\"group relative flex flex-col items-start\",\"children\":[[\"$\",\"div\",null,{\"className\":\"relative z-10 grid h-12 w-12 place-items-center border border-line bg-surface transition-colors group-hover:border-accent\",\"children\":[\"$\",\"$L8\",null,{\"src\":{\"src\":\"/_next/static/media/guttypress.1ccf6064.svg\",\"height\":131,\"width\":78,\"blurWidth\":0,\"blurHeight\":0},\"alt\":\"\",\"className\":\"h-7 w-7\",\"unoptimized\":true}]}],[\"$\",\"h2\",null,{\"className\":\"mt-6 text-lg font-semibold text-ink transition-colors group-hover:text-accent\",\"children\":\"GuttyPress.com\"}],[\"$\",\"p\",null,{\"className\":\"relative z-10 mt-2 text-base text-muted\",\"children\":\"A site I co-founded to explore what the Gutenberg editor could do, with advanced blocks, tools and write-ups for developers building modern WordPress sites. Retired, and the domain is no longer online.\"}],[\"$\",\"p\",null,{\"className\":\"relative z-10 mt-6 font-mono text-xs tracking-[0.12em] text-muted uppercase\",\"children\":\"Archived\"}]]}]]}]}]]}]}]}]}]],null],null]},[\"$\",\"$L9\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\",\"projects\",\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$La\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"notFoundStyles\":\"$undefined\",\"styles\":null}],null]},[[\"$\",\"html\",null,{\"lang\":\"en\",\"className\":\"h-full antialiased __variable_ec6dc7 __variable_9c618b __variable_3c557b\",\"suppressHydrationWarning\":true,\"children\":[[\"$\",\"head\",null,{\"children\":[\"$\",\"$b\",null,{\"fallback\":null,\"children\":[\"$\",\"$Lc\",null,{\"reason\":\"next/dynamic\",\"children\":[\"$\",\"$Ld\",null,{\"GA_MEASUREMENT_ID\":\"G-14LMWDQL7R\"}]}]}]}],[\"$\",\"body\",null,{\"className\":\"flex h-full flex-col font-sans\",\"children\":[\"$\",\"$Le\",null,{\"children\":[\"$\",\"div\",null,{\"className\":\"flex w-full flex-col\",\"children\":[\"$\",\"div\",null,{\"className\":\"relative flex min-h-full w-full flex-col\",\"children\":[[\"$\",\"div\",null,{\"aria-hidden\":\"true\",\"className\":\"atelier-halo pointer-events-none fixed inset-x-0 top-0 z-0 h-[70vh]\"}],[\"$\",\"div\",null,{\"aria-hidden\":\"true\",\"className\":\"atelier-grain pointer-events-none fixed inset-0 z-0\"}],[\"$\",\"div\",null,{\"className\":\"relative z-10 flex min-h-full w-full flex-col\",\"children\":[[\"$\",\"$Lf\",null,{}],[\"$\",\"main\",null,{\"className\":\"flex-auto\",\"children\":[\"$\",\"$L9\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$La\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[\"$\",\"div\",null,{\"className\":\"sm:px-8 flex h-full items-center pt-16 sm:pt-32\",\"children\":[\"$\",\"div\",null,{\"className\":\"mx-auto w-full max-w-7xl lg:px-8\",\"children\":[\"$\",\"div\",null,{\"className\":\"relative px-4 sm:px-8 lg:px-12\",\"children\":[\"$\",\"div\",null,{\"className\":\"mx-auto max-w-2xl lg:max-w-5xl\",\"children\":[\"$\",\"div\",null,{\"className\":\"flex flex-col items-center\",\"children\":[[\"$\",\"p\",null,{\"className\":\"text-base font-semibold text-zinc-400 dark:text-zinc-500\",\"children\":\"404\"}],[\"$\",\"h1\",null,{\"className\":\"mt-4 text-4xl font-bold tracking-tight text-zinc-800 sm:text-5xl dark:text-zinc-100\",\"children\":\"Page not found\"}],[\"$\",\"p\",null,{\"className\":\"mt-4 text-base text-zinc-600 dark:text-zinc-400\",\"children\":\"Sorry, we couldn’t find the page you’re looking for.\"}],[\"$\",\"$L7\",null,{\"className\":\"inline-flex items-center gap-2 justify-center px-5 py-3 font-mono text-xs uppercase tracking-[0.14em] outline-offset-2 transition active:transition-none border border-line text-ink hover:border-accent hover:text-accent mt-4\",\"href\":\"/\",\"children\":\"Go back home\"}]]}]}]}]}]}],\"notFoundStyles\":[],\"styles\":null}]}],[\"$\",\"footer\",null,{\"className\":\"mt-28 flex-none\",\"children\":[\"$\",\"div\",null,{\"className\":\"sm:px-8\",\"children\":[\"$\",\"div\",null,{\"className\":\"mx-auto w-full max-w-7xl lg:px-8\",\"children\":[[\"$\",\"div\",null,{\"className\":\"stitch-line opacity-40\"}],[\"$\",\"div\",null,{\"className\":\"relative px-4 sm:px-8 lg:px-12 pt-14 pb-16\",\"children\":[\"$\",\"div\",null,{\"className\":\"mx-auto max-w-2xl lg:max-w-5xl\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex flex-col gap-10 lg:flex-row lg:items-end lg:justify-between\",\"children\":[[\"$\",\"div\",null,{\"children\":[[\"$\",\"p\",null,{\"className\":\"font-mono text-[0.7rem] tracking-[0.2em] text-accent uppercase\",\"children\":\"Code \u0026 Leather\"}],[\"$\",\"p\",null,{\"className\":\"mt-3 max-w-md font-display text-4xl leading-[0.95] tracking-tight text-ink uppercase sm:text-5xl\",\"children\":[\"Let's build\",[\"$\",\"br\",null,{}],\"something good.\"]}],[\"$\",\"a\",null,{\"href\":\"https://x.com/remicorson\",\"target\":\"_blank\",\"rel\":\"noopener noreferrer\",\"className\":\"mt-6 inline-flex items-center gap-2 border border-line px-5 py-3 font-mono text-xs tracking-[0.14em] text-ink uppercase transition hover:border-accent hover:text-accent\",\"children\":\"Get in touch →\"}]]}],[\"$\",\"nav\",null,{\"className\":\"grid grid-cols-2 gap-x-10 gap-y-3\",\"children\":[[\"$\",\"$L7\",null,{\"href\":\"/about\",\"className\":\"group inline-flex items-center font-mono text-[0.72rem] uppercase tracking-[0.14em] text-muted transition hover:text-ink\",\"children\":[\"$\",\"span\",null,{\"className\":\"stitch\",\"children\":\"About\"}]}],[\"$\",\"$L7\",null,{\"href\":\"/articles\",\"className\":\"group inline-flex items-center font-mono text-[0.72rem] uppercase tracking-[0.14em] text-muted transition hover:text-ink\",\"children\":[\"$\",\"span\",null,{\"className\":\"stitch\",\"children\":\"Articles\"}]}],[\"$\",\"$L7\",null,{\"href\":\"/projects\",\"className\":\"group inline-flex items-center font-mono text-[0.72rem] uppercase tracking-[0.14em] text-muted transition hover:text-ink\",\"children\":[\"$\",\"span\",null,{\"className\":\"stitch\",\"children\":\"Projects\"}]}],[\"$\",\"$L7\",null,{\"href\":\"/speaking\",\"className\":\"group inline-flex items-center font-mono text-[0.72rem] uppercase tracking-[0.14em] text-muted transition hover:text-ink\",\"children\":[\"$\",\"span\",null,{\"className\":\"stitch\",\"children\":\"Speaking\"}]}],[\"$\",\"$L7\",null,{\"href\":\"/uses\",\"className\":\"group inline-flex items-center font-mono text-[0.72rem] uppercase tracking-[0.14em] text-muted transition hover:text-ink\",\"children\":[\"$\",\"span\",null,{\"className\":\"stitch\",\"children\":\"Uses\"}]}],[\"$\",\"a\",null,{\"href\":\"https://paypal.me/remicorson\",\"target\":\"_blank\",\"rel\":\"noopener noreferrer\",\"className\":\"group inline-flex items-center font-mono text-[0.72rem] uppercase tracking-[0.14em] text-muted transition hover:text-ink\",\"children\":[\"$\",\"span\",null,{\"className\":\"stitch\",\"children\":\"Buy me a coffee\"}]}]]}]]}],[\"$\",\"div\",null,{\"className\":\"mt-14 flex flex-col gap-2 border-t border-line pt-6 font-mono text-[0.68rem] tracking-[0.12em] text-muted uppercase sm:flex-row sm:items-center sm:justify-between\",\"children\":[[\"$\",\"span\",null,{\"children\":[\"© \",2026,\" Rémi Corson\"]}],[\"$\",\"span\",null,{\"children\":\"Paris · France - Built with Next.js\"}]]}]]}]}]]}]}]}]]}]]}]}]}]}]]}],null],null],\"couldBeIntercepted\":false,\"initialHead\":[false,\"$L10\"],\"globalErrorComponent\":\"$11\",\"missingSlots\":\"$W12\"}]]\n"])</script>
1<script>self.__next_f.push([1,"10:[[\"$\",\"meta\",\"0\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}],[\"$\",\"meta\",\"1\",{\"charSet\":\"utf-8\"}],[\"$\",\"title\",\"2\",{\"children\":\"Projects - Rémi Corson\"}],[\"$\",\"meta\",\"3\",{\"name\":\"description\",\"content\":\"I’ve worked on tons of little projects over the years but these are the ones that I’m most proud of.\"}],[\"$\",\"link\",\"4\",{\"rel\":\"alternate\",\"type\":\"application/rss+xml\",\"href\":\"https://remicorson.com/feed.xml\"}],[\"$\",\"meta\",\"5\",{\"property\":\"og:title\",\"content\":\"Rémi Corson - Software engineer, founder \u0026 leather craftsman\"}],[\"$\",\"meta\",\"6\",{\"property\":\"og:description\",\"content\":\"Rémi Corson's atelier: software engineering, WordPress, WooCommerce, side projects and hand-cut leather craft. Code \u0026 leather.\"}],[\"$\",\"meta\",\"7\",{\"property\":\"og:url\",\"content\":\"https://remicorson.com\"}],[\"$\",\"meta\",\"8\",{\"property\":\"og:site_name\",\"content\":\"Rémi Corson\"}],[\"$\",\"meta\",\"9\",{\"property\":\"og:locale\",\"content\":\"en_US\"}],[\"$\",\"meta\",\"10\",{\"property\":\"og:image\",\"content\":\"https://remicorson.com/og\"}],[\"$\",\"meta\",\"11\",{\"property\":\"og:image:width\",\"content\":\"1200\"}],[\"$\",\"meta\",\"12\",{\"property\":\"og:image:height\",\"content\":\"630\"}],[\"$\",\"meta\",\"13\",{\"property\":\"og:image:alt\",\"content\":\"Rémi Corson - Software engineer, founder \u0026 leather craftsman\"}],[\"$\",\"meta\",\"14\",{\"property\":\"og:type\",\"content\":\"website\"}],[\"$\",\"meta\",\"15\",{\"name\":\"twitter:card\",\"content\":\"summary_large_image\"}],[\"$\",\"meta\",\"16\",{\"name\":\"twitter:site\",\"content\":\"@remicorson\"}],[\"$\",\"meta\",\"17\",{\"name\":\"twitter:creator\",\"content\":\"@remicorson\"}],[\"$\",\"meta\",\"18\",{\"name\":\"twitter:title\",\"content\":\"Rémi Corson - Software engineer, founder \u0026 leather craftsman\"}],[\"$\",\"meta\",\"19\",{\"name\":\"twitter:description\",\"content\":\"Rémi Corson's atelier: software engineering, WordPress, WooCommerce, side projects and hand-cut leather craft. Code \u0026 leather.\"}],[\"$\",\"meta\",\"20\",{\"name\":\"twitter:image\",\"content\":\"https://remicorson.com/og\"}],[\"$\",\"link\",\"21\",{\"rel\":\"icon\",\"href\":\"/favicon.ico\",\"type\":\"image/x-icon\",\"sizes\":\"16x16\"}],[\"$\",\"meta\",\"22\",{\"name\":\"next-size-adjust\"}]]\n"])</script>
1<script>self.__next_f.push([1,"6:null\n"])</script>
1</body></html>

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.