Showing source for: https://tonoid.com/
Duration: 0.244702s
Server: cloudflare
<!DOCTYPE html>
<html class="bricolage_grotesque_1b97ba4b-module__NjNj1a__variable geistsans_d5a4f12f-module__Ur3q_a__variable" lang="en">
<head>
<meta charset="utf-8">
<meta content="width=device-width, initial-scale=1" name="viewport">
<link as="font" crossorigin="" href="/_next/static/media/017d9bea37084d9b-s.p.179.vsfvxa6t5.woff2" rel="preload" type="font/woff2">
<link as="font" crossorigin="" href="/_next/static/media/Geist_Variable-s.p.0-te~ja_gpvcf.woff2" rel="preload" type="font/woff2">
<link as="image" href="/images/tonoid-dark.png" rel="preload">
<link data-precedence="next" href="/_next/static/chunks/003a7.s2~qy_a.css" rel="stylesheet">
<link as="script" fetchpriority="low" href="/_next/static/chunks/10vfgn4v1128_.js" rel="preload">
<script async="" src="/_next/static/chunks/0nligd75l.cy4.js">
</script>
<script async="" src="/_next/static/chunks/02_xf8xz.22jb.js">
</script>
<script async="" src="/_next/static/chunks/0ajqdcbaje98m.js">
</script>
<script async="" src="/_next/static/chunks/turbopack-0f7vpst.txvos.js">
</script>
<script async="" src="/_next/static/chunks/04eklj-7j4aqp.js">
</script>
<script async="" src="/_next/static/chunks/0d3shmwh5_nmn.js">
</script>
<script async="" src="/_next/static/chunks/0ka051yepewro.js">
</script>
<link as="script" href="/plsb/js/script.js" rel="preload">
<meta content="" name="next-size-adjust">
<title>
tonoïd · Microstartup studio
</title>
<meta content="A one-person studio shipping small, profitable software." name="description">
<meta content="tonoïd" name="application-name">
<link href="https://tonoid.com" rel="author">
<meta content="Simo Elalj" name="author">
<meta content="tonoïd,tonoid,Simo Elalj,microstartup,indie software,solo founder,bootstrapped,independent software studio" name="keywords">
<meta content="Simo Elalj" name="creator">
<meta content="tonoïd" name="publisher">
<meta content="index, follow" name="robots">
<meta content="index, follow, max-video-preview:-1, max-image-preview:large, max-snippet:-1" name="googlebot">
<meta content="technology" name="category">
<link href="https://tonoid.com" rel="canonical">
<link href="https://tonoid.com" hreflang="en" rel="alternate">
<link href="https://tonoid.com/fr" hreflang="fr" rel="alternate">
<link href="https://tonoid.com" hreflang="x-default" rel="alternate">
<meta content="tonoïd · Microstartup studio" property="og:title">
<meta content="A one-person studio shipping small, profitable software." property="og:description">
<meta content="https://tonoid.com" property="og:url">
<meta content="tonoïd" property="og:site_name">
<meta content="en_US" property="og:locale">
<meta content="https://tonoid.com/images/tonoid-light.png" property="og:image">
<meta content="tonoïd · Microstartup studio" property="og:image:alt">
<meta content="fr_FR" property="og:locale:alternate">
<meta content="website" property="og:type">
<meta content="summary_large_image" name="twitter:card">
<meta content="tonoïd · Microstartup studio" name="twitter:title">
<meta content="A one-person studio shipping small, profitable software." name="twitter:description">
<meta content="https://tonoid.com/images/tonoid-light.png" name="twitter:image">
<link href="/favicon.png" rel="icon">
<script nomodule="" src="/_next/static/chunks/03~yq9q893hmn.js">
</script>
</head>
<body class="font-sans">
<div hidden="">
<!--$-->
<!--/$-->
</div>
<style>
@keyframes tn-agb-float1 {
0%
{ transform: translate3d(0, 0, 0); }
25%
{ transform: translate3d(6vw, -4vh, 0); }
50%
{ transform: translate3d(-3vw, 5vh, 0); }
75%
{ transform: translate3d(4vw, 2vh, 0); }
100%
{ transform: translate3d(0, 0, 0); }
}
@keyframes tn-agb-float2 {
0%
{ transform: translate3d(0, 0, 0); }
30%
{ transform: translate3d(-5vw, 4vh, 0); }
60%
{ transform: translate3d(4vw, -5vh, 0); }
100%
{ transform: translate3d(0, 0, 0); }
}
@keyframes tn-agb-shift {
0%
{ background-position: 0% 0%, 100% 100%, 50% 0%, 20% 100%; }
50%
{ background-position: 10% 15%, 85% 85%, 55% 10%, 25% 90%; }
100%
{ background-position: 0% 0%, 100% 100%, 50% 0%, 20% 100%; }
}
@keyframes tn-agb-breathe {
0%
,
100%
{ opacity: 0.55; }
50%
{ opacity: 0.85; }
}
@media (prefers-reduced-motion: reduce) {
[data-agb-base]
,
[data-agb-orb]
{ animation: none !important; }
}
</style>
<div aria-hidden="true" class="pointer-events-none fixed inset-0 -z-10 overflow-hidden">
<div class="absolute inset-0" data-agb-base="true" style="background:radial-gradient(ellipse 100% 80% at 20% 15%, rgba(199, 194, 234, 0.22) 0%, transparent 60%),
radial-gradient(ellipse 90% 80% at 85% 35%, rgba(45, 42, 74, 0.55) 0%, transparent 65%),
radial-gradient(ellipse 110% 90% at 50% 100%, rgba(155, 149, 201, 0.18) 0%, transparent 60%),
radial-gradient(ellipse 95% 70% at 10% 90%, rgba(199, 194, 234, 0.10) 0%, transparent 60%);background-size:140% 140%, 140% 140%, 140% 140%, 140% 140%;background-repeat:no-repeat;animation:tn-agb-shift 32s ease-in-out infinite">
</div>
<div class="absolute top-[10vh] left-[15vw] rounded-full will-change-transform" data-agb-orb="true" style="width:80vmax;height:80vmax;background:radial-gradient(closest-side, rgba(199, 194, 234, 0.18) 0%, rgba(199, 194, 234, 0.06) 45%, transparent 100%);filter:blur(120px);animation:tn-agb-float1 22s ease-in-out infinite, tn-agb-breathe 14s ease-in-out infinite">
</div>
<div class="absolute bottom-[5vh] right-[10vw] rounded-full will-change-transform" data-agb-orb="true" style="width:70vmax;height:70vmax;background:radial-gradient(closest-side, rgba(155, 149, 201, 0.14) 0%, rgba(155, 149, 201, 0.05) 45%, transparent 100%);filter:blur(120px);animation:tn-agb-float2 26s ease-in-out infinite">
</div>
<div class="absolute inset-0 opacity-[0.28] mix-blend-overlay" style="background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 120 120' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='1.6' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");background-size:120px 120px">
</div>
</div>
<div class="flex min-h-screen flex-col">
<header class="sticky top-0 z-40 backdrop-blur-xl backdrop-saturate-150 border-b" style="background:color-mix(in oklab, #1f1d2e 40%, transparent);border-color:rgba(228, 224, 243, 0.35)">
<div class="mx-auto max-w-5xl px-5 sm:px-8">
<div class="flex h-16 items-center justify-between gap-4">
<a aria-label="tonoïd home" class="flex items-center" href="/">
<img alt="tonoïd" class="h-7 w-auto select-none" height="38" src="/images/tonoid-dark.png" width="99">
</a>
<nav class="hidden sm:flex items-center gap-8 text-sm">
<a class="text-[color:var(--color-fg-muted)] hover:text-[color:var(--color-fg)] transition" href="/about">
About
</a>
<a class="text-[color:var(--color-fg-muted)] hover:text-[color:var(--color-fg)] transition" href="/projects">
Projects
</a>
<a class="text-[color:var(--color-fg-muted)] hover:text-[color:var(--color-fg)] transition" href="/open-source">
Open source
</a>
<a class="text-[color:var(--color-fg-muted)] hover:text-[color:var(--color-fg)] transition" href="/contact">
Contact
</a>
</nav>
<a class="label-md inline-flex items-center justify-center h-8 min-w-10 px-2.5 rounded-md transition text-[color:var(--color-fg-muted)] hover:text-[color:var(--color-fg)] hover:bg-[color:var(--color-surface-container-high)]" href="/fr" hreflang="fr" title="Switch to French">
FR
</a>
</div>
<nav class="sm:hidden flex gap-6 pb-3 text-sm overflow-x-auto">
<a class="text-[color:var(--color-fg-muted)] hover:text-[color:var(--color-fg)] whitespace-nowrap" href="/about">
About
</a>
<a class="text-[color:var(--color-fg-muted)] hover:text-[color:var(--color-fg)] whitespace-nowrap" href="/projects">
Projects
</a>
<a class="text-[color:var(--color-fg-muted)] hover:text-[color:var(--color-fg)] whitespace-nowrap" href="/open-source">
Open source
</a>
<a class="text-[color:var(--color-fg-muted)] hover:text-[color:var(--color-fg)] whitespace-nowrap" href="/contact">
Contact
</a>
</nav>
</div>
</header>
<main class="mx-auto w-full max-w-5xl flex-1 px-5 sm:px-8 pt-10 sm:pt-14 pb-24">
<section class="pt-16 sm:pt-24 pb-24 sm:pb-32 text-center">
<div class="mx-auto max-w-3xl flex flex-col items-center">
<div class="label-md">
Microstartup studio
</div>
<h1 class="display-lg mt-6 mx-auto">
Independent software, built to last.
</h1>
<p class="mt-10 max-w-lg mx-auto text-lg text-[color:var(--color-fg-muted)]">
tonoïd is Simo Elalj's one-person studio, named after the French tonneau à idées, a barrel of ideas. I pull a few out, build them lean, and run them for years. No investors, no roadmap theatre, no rush.
</p>
<div class="mt-10 flex flex-wrap justify-center gap-4">
<a class="btn-primary" href="/projects">
See the projects
<svg aria-hidden="true" fill="currentColor" height="18" role="presentation" viewBox="0 0 24 24" width="18" xmlns="http://www.w3.org/2000/svg">
<path d="M14 16.94V12.94H5.08L5.05 10.93H14V6.94L19 11.94Z">
</path>
</svg>
</a>
<a class="btn-secondary" href="/about">
About the studio
</a>
</div>
</div>
</section>
<section class="py-16 sm:py-20">
<div class="flex items-end justify-between gap-8 mb-12">
<h2 class="headline-md max-w-md text-[color:var(--color-fg)]">
Featured projects
</h2>
<a class="btn-ghost shrink-0" href="/projects">
All projects
<svg aria-hidden="true" fill="currentColor" height="16" role="presentation" viewBox="0 0 24 24" width="16" xmlns="http://www.w3.org/2000/svg">
<path d="M14 16.94V12.94H5.08L5.05 10.93H14V6.94L19 11.94Z">
</path>
</svg>
</a>
</div>
<div class="grid gap-6 sm:grid-cols-2 lg:grid-cols-3">
<a class="link-plain group block overflow-hidden rounded-xl bg-[color:var(--color-surface-container-low)] editorial-transition hover:bg-[color:var(--color-surface-container)]" href="/projects/refurbme">
<div class="aspect-[16/9] w-full overflow-hidden bg-[color:var(--color-surface-container)]">
<img alt="RefurbMe" class="h-full w-full object-cover opacity-85 editorial-transition group-hover:opacity-100 group-hover:scale-[1.02]" loading="lazy" src="/images/projects/refurbme.jpg">
</div>
<div class="p-8">
<div class="flex items-center justify-between gap-3">
<span class="label-md inline-flex shrink-0 items-center gap-1.5 text-[color:var(--color-fg-muted)]">
<span aria-hidden="true" class="h-1.5 w-1.5 rounded-full" style="background:var(--color-status-for-sale)">
</span>
For sale
</span>
<span class="label-md text-[color:var(--color-fg-whisper)]">
2007
</span>
</div>
<h3 class="mt-4 font-[family-name:var(--font-heading)] text-2xl font-semibold tracking-[-0.02em] text-[color:var(--color-fg)]">
RefurbMe
</h3>
<p class="mt-3 text-[color:var(--color-fg-muted)] line-clamp-3">
The largest Apple refurbished comparator. For sale, looking for a new owner.
</p>
</div>
</a>
<a class="link-plain group block overflow-hidden rounded-xl bg-[color:var(--color-surface-container-low)] editorial-transition hover:bg-[color:var(--color-surface-container)]" href="/projects/2sync">
<div class="aspect-[16/9] w-full overflow-hidden bg-[color:var(--color-surface-container)]">
<img alt="2sync" class="h-full w-full object-cover opacity-85 editorial-transition group-hover:opacity-100 group-hover:scale-[1.02]" loading="lazy" src="/images/projects/2sync.jpg">
</div>
<div class="p-8">
<div class="flex items-center justify-between gap-3">
<span class="label-md inline-flex shrink-0 items-center gap-1.5 text-[color:var(--color-fg-muted)]">
<span aria-hidden="true" class="h-1.5 w-1.5 rounded-full" style="background:var(--color-status-profitable)">
</span>
Profitable
</span>
<span class="label-md text-[color:var(--color-fg-whisper)]">
2021
</span>
</div>
<h3 class="mt-4 font-[family-name:var(--font-heading)] text-2xl font-semibold tracking-[-0.02em] text-[color:var(--color-fg)]">
2sync
</h3>
<p class="mt-3 text-[color:var(--color-fg-muted)] line-clamp-3">
Two-way sync between Notion and the apps you already use.
</p>
</div>
</a>
<a class="link-plain group block overflow-hidden rounded-xl bg-[color:var(--color-surface-container-low)] editorial-transition hover:bg-[color:var(--color-surface-container)]" href="/projects/exportin">
<div class="aspect-[16/9] w-full overflow-hidden bg-[color:var(--color-surface-container)]">
<img alt="ExportIn" class="h-full w-full object-cover opacity-85 editorial-transition group-hover:opacity-100 group-hover:scale-[1.02]" loading="lazy" src="/images/projects/exportin.jpg">
</div>
<div class="p-8">
<div class="flex items-center justify-between gap-3">
<span class="label-md inline-flex shrink-0 items-center gap-1.5 text-[color:var(--color-fg-muted)]">
<span aria-hidden="true" class="h-1.5 w-1.5 rounded-full" style="background:var(--color-status-live)">
</span>
Live
</span>
<span class="label-md text-[color:var(--color-fg-whisper)]">
2026
</span>
</div>
<h3 class="mt-4 font-[family-name:var(--font-heading)] text-2xl font-semibold tracking-[-0.02em] text-[color:var(--color-fg)]">
ExportIn
</h3>
<p class="mt-3 text-[color:var(--color-fg-muted)] line-clamp-3">
Chrome extension that gets your contacts' birthdays out of LinkedIn and Facebook, and your Instagram mutuals' profiles, so an AI agent can enrich your CRM. Free and open source.
</p>
</div>
</a>
</div>
</section>
<section class="py-16 sm:py-20">
<div class="flex items-end justify-between gap-8 mb-12">
<h2 class="headline-md max-w-md text-[color:var(--color-fg)]">
Open source
</h2>
<a class="btn-ghost shrink-0" href="/open-source">
All open source
<svg aria-hidden="true" fill="currentColor" height="16" role="presentation" viewBox="0 0 24 24" width="16" xmlns="http://www.w3.org/2000/svg">
<path d="M14 16.94V12.94H5.08L5.05 10.93H14V6.94L19 11.94Z">
</path>
</svg>
</a>
</div>
<div class="grid gap-6 sm:grid-cols-2 lg:grid-cols-3">
<a class="link-plain group block overflow-hidden rounded-xl bg-[color:var(--color-surface-container-low)] editorial-transition hover:bg-[color:var(--color-surface-container)]" href="/open-source/qonto-backup">
<div class="aspect-[16/9] w-full overflow-hidden bg-[color:var(--color-surface-container)]">
<img alt="Qonto Backup" class="h-full w-full object-cover opacity-85 editorial-transition group-hover:opacity-100 group-hover:scale-[1.02]" loading="lazy" src="/images/open-source/qonto-backup.jpg">
</div>
<div class="p-8">
<div class="flex items-center justify-between gap-3">
<span class="label-md inline-flex shrink-0 items-center gap-1.5 text-[color:var(--color-fg-muted)]">
<span aria-hidden="true" class="h-1.5 w-1.5 rounded-full" style="background:var(--color-status-live)">
</span>
Live
</span>
<span class="label-md text-[color:var(--color-fg-whisper)]">
2026
</span>
</div>
<h3 class="mt-4 font-[family-name:var(--font-heading)] text-2xl font-semibold tracking-[-0.02em] text-[color:var(--color-fg)]">
Qonto Backup
</h3>
<p class="mt-3 text-[color:var(--color-fg-muted)] line-clamp-3">
Self-hosted CLI that exports your full Qonto business account to local disk every night: transactions, attachments, and PAdES probative receipts. Runs as a Docker container or Node binary on a Synology NAS.
</p>
</div>
</a>
<a class="link-plain group block overflow-hidden rounded-xl bg-[color:var(--color-surface-container-low)] editorial-transition hover:bg-[color:var(--color-surface-container)]" href="/open-source/mongo-backup-s3">
<div class="aspect-[16/9] w-full overflow-hidden bg-[color:var(--color-surface-container)]">
<img alt="Mongo Backup S3" class="h-full w-full object-cover opacity-85 editorial-transition group-hover:opacity-100 group-hover:scale-[1.02]" loading="lazy" src="/images/open-source/mongo-backup-s3.png">
</div>
<div class="p-8">
<div class="flex items-center justify-between gap-3">
<span class="label-md inline-flex shrink-0 items-center gap-1.5 text-[color:var(--color-fg-muted)]">
<span aria-hidden="true" class="h-1.5 w-1.5 rounded-full" style="background:var(--color-status-live)">
</span>
Live
</span>
<span class="label-md text-[color:var(--color-fg-whisper)]">
2026
</span>
</div>
<h3 class="mt-4 font-[family-name:var(--font-heading)] text-2xl font-semibold tracking-[-0.02em] text-[color:var(--color-fg)]">
Mongo Backup S3
</h3>
<p class="mt-3 text-[color:var(--color-fg-muted)] line-clamp-3">
Small Alpine Docker image that backs up and restores MongoDB to any S3-compatible store (AWS S3, Backblaze B2, Cloudflare R2, MinIO, Wasabi), with age-based or grandfather-father-son retention. Driven by your existing cron.
</p>
</div>
</a>
</div>
</section>
</main>
<footer class="mt-32 bg-[color:var(--color-surface-container-low)] shrink-0">
<div class="mx-auto max-w-5xl px-5 sm:px-8 py-16 text-sm text-[color:var(--color-fg-muted)]">
<div class="grid gap-10 sm:grid-cols-[2fr_1fr] sm:items-end">
<div>
<img alt="tonoïd" class="h-7 w-auto select-none h-8" height="38" src="/images/tonoid-dark.png" width="99">
<p class="mt-4 max-w-md text-[color:var(--color-fg-muted)]">
A one-person studio shipping small, profitable software.
</p>
</div>
<div class="flex sm:justify-end items-center gap-3">
<a aria-label="Email" class="inline-flex h-10 w-10 items-center justify-center rounded-full text-[color:var(--color-fg-muted)] hover:text-[color:var(--color-primary)] hover:bg-[color:var(--color-surface-container-high)] transition" href="/cdn-cgi/l/email-protection#422a272e2e2d02362d2c2d2b266c212d2f">
<svg aria-hidden="true" fill="currentColor" height="20" role="presentation" viewBox="0 0 24 24" width="20" xmlns="http://www.w3.org/2000/svg">
<path d="M22 6C22 4.9 21.1 4 20 4H4C2.9 4 2 4.9 2 6V18C2 19.1 2.9 20 4 20H20C21.1 20 22 19.1 22 18V6M20 6L12 11L4 6H20M20 18H4V8L12 13L20 8V18Z">
</path>
</svg>
</a>
<a aria-label="GitHub" class="inline-flex h-10 w-10 items-center justify-center rounded-full text-[color:var(--color-fg-muted)] hover:text-[color:var(--color-primary)] hover:bg-[color:var(--color-surface-container-high)] transition" href="https://github.com/tonoid" rel="noopener noreferrer" target="_blank">
<svg aria-hidden="true" fill="currentColor" height="20" role="presentation" viewBox="0 0 24 24" width="20" xmlns="http://www.w3.org/2000/svg">
<path d="M12,2A10,10 0 0,0 2,12C2,16.42 4.87,20.17 8.84,21.5C9.34,21.58 9.5,21.27 9.5,21C9.5,20.77 9.5,20.14 9.5,19.31C6.73,19.91 6.14,17.97 6.14,17.97C5.68,16.81 5.03,16.5 5.03,16.5C4.12,15.88 5.1,15.9 5.1,15.9C6.1,15.97 6.63,16.93 6.63,16.93C7.5,18.45 8.97,18 9.54,17.76C9.63,17.11 9.89,16.67 10.17,16.42C7.95,16.17 5.62,15.31 5.62,11.5C5.62,10.39 6,9.5 6.65,8.79C6.55,8.54 6.2,7.5 6.75,6.15C6.75,6.15 7.59,5.88 9.5,7.17C10.29,6.95 11.15,6.84 12,6.84C12.85,6.84 13.71,6.95 14.5,7.17C16.41,5.88 17.25,6.15 17.25,6.15C17.8,7.5 17.45,8.54 17.35,8.79C18,9.5 18.38,10.39 18.38,11.5C18.38,15.32 16.04,16.16 13.81,16.41C14.17,16.72 14.5,17.33 14.5,18.26C14.5,19.6 14.5,20.68 14.5,21C14.5,21.27 14.66,21.59 15.17,21.5C19.14,20.16 22,16.42 22,12A10,10 0 0,0 12,2Z">
</path>
</svg>
</a>
<a aria-label="X" class="inline-flex h-10 w-10 items-center justify-center rounded-full text-[color:var(--color-fg-muted)] hover:text-[color:var(--color-primary)] hover:bg-[color:var(--color-surface-container-high)] transition" href="https://x.com/simoelalj" rel="noopener noreferrer" target="_blank">
<svg aria-hidden="true" fill="currentColor" height="18" role="presentation" viewBox="0 0 24 24" width="18" xmlns="http://www.w3.org/2000/svg">
<path d="M18.244 2.25h3.308l-7.227 8.26 8.502 11.24H16.17l-5.214-6.817L4.99 21.75H1.68l7.73-8.835L1.254 2.25H8.08l4.713 6.231zm-1.161 17.52h1.833L7.084 4.126H5.117z">
</path>
</svg>
</a>
<a aria-label="LinkedIn" class="inline-flex h-10 w-10 items-center justify-center rounded-full text-[color:var(--color-fg-muted)] hover:text-[color:var(--color-primary)] hover:bg-[color:var(--color-surface-container-high)] transition" href="https://www.linkedin.com/in/elalj" rel="noopener noreferrer" target="_blank">
<svg aria-hidden="true" fill="currentColor" height="20" role="presentation" viewBox="0 0 24 24" width="20" xmlns="http://www.w3.org/2000/svg">
<path d="M19 3A2 2 0 0 1 21 5V19A2 2 0 0 1 19 21H5A2 2 0 0 1 3 19V5A2 2 0 0 1 5 3H19M18.5 18.5V13.2A3.26 3.26 0 0 0 15.24 9.94C14.39 9.94 13.4 10.46 12.92 11.24V10.13H10.13V18.5H12.92V13.57C12.92 12.8 13.54 12.17 14.31 12.17A1.4 1.4 0 0 1 15.71 13.57V18.5H18.5M6.88 8.56A1.68 1.68 0 0 0 8.56 6.88C8.56 5.95 7.81 5.19 6.88 5.19A1.69 1.69 0 0 0 5.19 6.88C5.19 7.81 5.95 8.56 6.88 8.56M8.27 18.5V10.13H5.5V18.5H8.27Z">
</path>
</svg>
</a>
</div>
</div>
<div class="mt-16 flex flex-col gap-2 text-sm text-[color:var(--color-fg-muted)] md:flex-row md:items-center md:justify-between">
<p>
© 2026 tonoïd, a trademarked brand.
<!-- -->
Made by
<!-- -->
Simo Elalj
<!-- -->
in Bordeaux
<span aria-label="French flag" role="img">
🇫🇷
</span>
</p>
<p>
On a
<a class="underline decoration-[color:var(--color-primary)]/30 underline-offset-2 text-[color:var(--color-primary)] hover:decoration-[color:var(--color-primary)]" href="https://www.refurb.me/refurbished/macbook/macbook-pro/m4-pro" rel="noopener noreferrer" target="_blank">
refurbished MacBook Pro M4 Pro
</a>
.
</p>
</div>
<p class="mt-2 text-xs text-[color:var(--color-fg-whisper)]">
tonoïd SASU · 879 475 788 RCS Versailles
</p>
</div>
</footer>
</div>
<!--$-->
<!--/$-->
<script data-cfasync="false" src="/cdn-cgi/scripts/5c5dd728/cloudflare-static/email-decode.min.js">
</script>
<script>
(self.__next_s = self.__next_s || []).push([0,{
"type": "application/ld+json",
"children": "{\"@context\":\"https://schema.org\",\"@graph\":[{\"@context\":\"https://schema.org\",\"@type\":\"Organization\",\"@id\":\"https://tonoid.com#organization\",\"name\":\"tonoïd\",\"alternateName\":\"tonoid\",\"url\":\"https://tonoid.com\",\"logo\":\"https://tonoid.com/images/tonoid-light.png\",\"image\":\"https://tonoid.com/images/tonoid-light.png\",\"description\":\"A one-person studio shipping small, profitable software.\",\"email\":\"[email protected]\",\"founder\":{\"@id\":\"https://tonoid.com#person\"},\"foundingDate\":\"2007\",\"sameAs\":[]},{\"@context\":\"https://schema.org\",\"@type\":\"Person\",\"@id\":\"https://tonoid.com#person\",\"name\":\"Simo Elalj\",\"url\":\"https://tonoid.com\",\"jobTitle\":\"Founder\",\"worksFor\":{\"@id\":\"https://tonoid.com#organization\"}},{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"@id\":\"https://tonoid.com#website\",\"url\":\"https://tonoid.com\",\"name\":\"tonoïd\",\"inLanguage\":\"en-US\",\"publisher\":{\"@id\":\"https://tonoid.com#organization\"},\"description\":\"A one-person studio shipping small, profitable software.\"}]}",
"id": "ld-graph"
}]);
</script>
<script async="" id="_R_" src="/_next/static/chunks/10vfgn4v1128_.js">
</script>
<script>
(self.__next_f = self.__next_f || []).push([0]);
</script>
<script>
self.__next_f.push([1,"1:\"$Sreact.fragment\"\n8:I[68027,[\"/_next/static/chunks/04eklj-7j4aqp.js\",\"/_next/static/chunks/0d3shmwh5_nmn.js\"],\"default\",1]\n:HL[\"/_next/static/chunks/003a7.s2~qy_a.css\",\"style\"]\n:HL[\"/_next/static/media/017d9bea37084d9b-s.p.179.vsfvxa6t5.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/media/Geist_Variable-s.p.0-te~ja_gpvcf.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n2:T45f,\n @keyframes tn-agb-float1 {\n 0% { transform: translate3d(0, 0, 0); }\n 25% { transform: translate3d(6vw, -4vh, 0); }\n 50% { transform: translate3d(-3vw, 5vh, 0); }\n 75% { transform: translate3d(4vw, 2vh, 0); }\n 100% { transform: translate3d(0, 0, 0); }\n }\n @keyframes tn-agb-float2 {\n 0% { transform: translate3d(0, 0, 0); }\n 30% { transform: translate3d(-5vw, 4vh, 0); }\n 60% { transform: translate3d(4vw, -5vh, 0); }\n 100% { transform: translate3d(0, 0, 0); }\n }\n @keyframes tn-agb-shift {\n 0% { background-position: 0% 0%, 100% 100%, 50% 0%, 20% 100%; }\n 50% { background-position: 10% 15%, 85% 85%, 55% 10%, 25% 90%; }\n 100% { background-position: 0% 0%, 100% 100%, 50% 0%, 20% 100%; }\n }\n @keyframes tn-agb-breathe {\n 0%, 100% { opacity: 0.55; }\n 50% { opacity: 0.85; }\n }\n @media (prefers-reduced-motion: reduce) {\n [data-agb-base], [data-agb-orb] { animation: none !important; }\n }\n "]);
</script>
<script>
self.__next_f.push([1,"0:{\"P\":null,\"c\":[\"\",\"\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"__PAGE__\",{}]},\"$undefined\",\"$undefined\",16],[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/003a7.s2~qy_a.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/04eklj-7j4aqp.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-1\",{\"src\":\"/_next/static/chunks/0d3shmwh5_nmn.js\",\"async\":true,\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"className\":\"bricolage_grotesque_1b97ba4b-module__NjNj1a__variable geistsans_d5a4f12f-module__Ur3q_a__variable\",\"children\":[\"$\",\"body\",null,{\"className\":\"font-sans\",\"children\":[[[\"$\",\"style\",null,{\"children\":\"$2\"}],[\"$\",\"div\",null,{\"aria-hidden\":\"true\",\"className\":\"pointer-events-none fixed inset-0 -z-10 overflow-hidden\",\"children\":[[\"$\",\"div\",null,{\"data-agb-base\":true,\"className\":\"absolute inset-0\",\"style\":{\"background\":\"\\n radial-gradient(ellipse 100% 80% at 20% 15%, rgba(199, 194, 234, 0.22) 0%, transparent 60%),\\n radial-gradient(ellipse 90% 80% at 85% 35%, rgba(45, 42, 74, 0.55) 0%, transparent 65%),\\n radial-gradient(ellipse 110% 90% at 50% 100%, rgba(155, 149, 201, 0.18) 0%, transparent 60%),\\n radial-gradient(ellipse 95% 70% at 10% 90%, rgba(199, 194, 234, 0.10) 0%, transparent 60%)\\n \",\"backgroundSize\":\"140% 140%, 140% 140%, 140% 140%, 140% 140%\",\"backgroundRepeat\":\"no-repeat\",\"animation\":\"tn-agb-shift 32s ease-in-out infinite\"}}],[\"$\",\"div\",null,{\"data-agb-orb\":true,\"className\":\"absolute top-[10vh] left-[15vw] rounded-full will-change-transform\",\"style\":{\"width\":\"80vmax\",\"height\":\"80vmax\",\"background\":\"radial-gradient(closest-side, rgba(199, 194, 234, 0.18) 0%, rgba(199, 194, 234, 0.06) 45%, transparent 100%)\",\"filter\":\"blur(120px)\",\"animation\":\"tn-agb-float1 22s ease-in-out infinite, tn-agb-breathe 14s ease-in-out infinite\"}}],[\"$\",\"div\",null,{\"data-agb-orb\":true,\"className\":\"absolute bottom-[5vh] right-[10vw] rounded-full will-change-transform\",\"style\":{\"width\":\"70vmax\",\"height\":\"70vmax\",\"background\":\"radial-gradient(closest-side, rgba(155, 149, 201, 0.14) 0%, rgba(155, 149, 201, 0.05) 45%, transparent 100%)\",\"filter\":\"blur(120px)\",\"animation\":\"tn-agb-float2 26s ease-in-out infinite\"}}],[\"$\",\"div\",null,{\"className\":\"absolute inset-0 opacity-[0.28] mix-blend-overlay\",\"style\":{\"backgroundImage\":\"url(\\\"data:image/svg+xml,%3Csvg viewBox='0 0 120 120' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='1.6' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E\\\")\",\"backgroundSize\":\"120px 120px\"}}]]}]],\"$L3\",\"$L4\",\"$L5\"]}]}]]}],{\"children\":[\"$L6\",{},null,false,null]},null,false,null],\"$L7\",false]],\"m\":\"$undefined\",\"G\":[\"$8\",[\"$L9\"]],\"S\":true,\"h\":null,\"s\":\"$undefined\",\"l\":\"$undefined\",\"p\":\"$undefined\",\"d\":\"$undefined\",\"b\":\"YMEWryK06H3Q4CYpHlzTr\"}\n"]);
</script>
<script>
self.__next_f.push([1,"a:I[39756,[\"/_next/static/chunks/04eklj-7j4aqp.js\",\"/_next/static/chunks/0d3shmwh5_nmn.js\"],\"default\"]\nb:I[37457,[\"/_next/static/chunks/04eklj-7j4aqp.js\",\"/_next/static/chunks/0d3shmwh5_nmn.js\"],\"default\"]\nc:I[22016,[\"/_next/static/chunks/04eklj-7j4aqp.js\",\"/_next/static/chunks/0d3shmwh5_nmn.js\",\"/_next/static/chunks/0ka051yepewro.js\"],\"\"]\n13:I[79520,[\"/_next/static/chunks/04eklj-7j4aqp.js\",\"/_next/static/chunks/0d3shmwh5_nmn.js\"],\"\"]\n1a:I[97367,[\"/_next/static/chunks/04eklj-7j4aqp.js\",\"/_next/static/chunks/0d3shmwh5_nmn.js\"],\"ViewportBoundary\"]\n1c:I[97367,[\"/_next/static/chunks/04eklj-7j4aqp.js\",\"/_next/static/chunks/0d3shmwh5_nmn.js\"],\"MetadataBoundary\"]\n1d:\"$Sreact.suspense\"\n:HL[\"/images/tonoid-dark.png\",\"image\"]\n"]);
</script>
<script>
self.__next_f.push([1,"3:[\"$\",\"$La\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$Lb\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[\"$\",\"div\",null,{\"className\":\"flex min-h-screen flex-col\",\"children\":[[\"$\",\"header\",null,{\"className\":\"sticky top-0 z-40 backdrop-blur-xl backdrop-saturate-150 border-b\",\"style\":{\"background\":\"color-mix(in oklab, #1f1d2e 40%, transparent)\",\"borderColor\":\"rgba(228, 224, 243, 0.35)\"},\"children\":[\"$\",\"div\",null,{\"className\":\"mx-auto max-w-5xl px-5 sm:px-8\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex h-16 items-center justify-between gap-4\",\"children\":[[\"$\",\"$Lc\",null,{\"href\":\"/\",\"className\":\"flex items-center\",\"aria-label\":\"tonoïd home\",\"children\":[\"$\",\"img\",null,{\"src\":\"/images/tonoid-dark.png\",\"alt\":\"tonoïd\",\"width\":99,\"height\":38,\"className\":\"h-7 w-auto select-none \"}]}],[\"$\",\"nav\",null,{\"className\":\"hidden sm:flex items-center gap-8 text-sm\",\"children\":[[\"$\",\"$Lc\",\"about\",{\"href\":\"/about\",\"className\":\"text-[color:var(--color-fg-muted)] hover:text-[color:var(--color-fg)] transition\",\"children\":\"About\"}],[\"$\",\"$Lc\",\"projects\",{\"href\":\"/projects\",\"className\":\"text-[color:var(--color-fg-muted)] hover:text-[color:var(--color-fg)] transition\",\"children\":\"Projects\"}],[\"$\",\"$Lc\",\"open-source\",{\"href\":\"/open-source\",\"className\":\"text-[color:var(--color-fg-muted)] hover:text-[color:var(--color-fg)] transition\",\"children\":\"Open source\"}],[\"$\",\"$Lc\",\"contact\",{\"href\":\"/contact\",\"className\":\"text-[color:var(--color-fg-muted)] hover:text-[color:var(--color-fg)] transition\",\"children\":\"Contact\"}]]}],[\"$\",\"$Lc\",null,{\"href\":\"/fr\",\"hrefLang\":\"fr\",\"title\":\"Switch to French\",\"className\":\"label-md inline-flex items-center justify-center h-8 min-w-10 px-2.5 rounded-md transition text-[color:var(--color-fg-muted)] hover:text-[color:var(--color-fg)] hover:bg-[color:var(--color-surface-container-high)]\",\"children\":\"FR\"}]]}],[\"$\",\"nav\",null,{\"className\":\"sm:hidden flex gap-6 pb-3 text-sm overflow-x-auto\",\"children\":[[\"$\",\"$Lc\",\"about\",{\"href\":\"/about\",\"className\":\"text-[color:var(--color-fg-muted)] hover:text-[color:var(--color-fg)] whitespace-nowrap\",\"children\":\"About\"}],[\"$\",\"$Lc\",\"projects\",{\"href\":\"/projects\",\"className\":\"text-[color:var(--color-fg-muted)] hover:text-[color:var(--color-fg)] whitespace-nowrap\",\"children\":\"Projects\"}],[\"$\",\"$Lc\",\"open-source\",{\"href\":\"/open-source\",\"className\":\"text-[color:var(--color-fg-muted)] hover:text-[color:var(--color-fg)] whitespace-nowrap\",\"children\":\"Open source\"}],[\"$\",\"$Lc\",\"contact\",{\"href\":\"/contact\",\"className\":\"text-[color:var(--color-fg-muted)] hover:text-[color:var(--color-fg)] whitespace-nowrap\",\"children\":\"Contact\"}]]}]]}]}],[\"$\",\"main\",null,{\"className\":\"mx-auto w-full max-w-5xl flex-1 px-5 sm:px-8 pt-10 sm:pt-14 pb-24\",\"children\":[\"$\",\"div\",null,{\"className\":\"max-w-xl pt-16 sm:pt-24\",\"children\":[[\"$\",\"div\",null,{\"className\":\"label-md\",\"children\":\"404\"}],[\"$\",\"h1\",null,{\"className\":\"mt-6 display-lg\",\"children\":\"Page not found\"}],[\"$\",\"p\",null,{\"className\":\"mt-6 text-lg text-[color:var(--color-fg-muted)]\",\"children\":\"That page doesn't exist. The home page is probably a better bet.\"}],[\"$\",\"$Lc\",null,{\"href\":\"/\",\"className\":\"btn-primary mt-10\",\"children\":\"Back home\"}]]}]}],[\"$\",\"footer\",null,{\"className\":\"mt-32 bg-[color:var(--color-surface-container-low)] shrink-0\",\"children\":[\"$\",\"div\",null,{\"className\":\"mx-auto max-w-5xl px-5 sm:px-8 py-16 text-sm text-[color:var(--color-fg-muted)]\",\"children\":[[\"$\",\"div\",null,{\"className\":\"grid gap-10 sm:grid-cols-[2fr_1fr] sm:items-end\",\"children\":[[\"$\",\"div\",null,{\"children\":[[\"$\",\"img\",null,{\"src\":\"/images/tonoid-dark.png\",\"alt\":\"tonoïd\",\"width\":99,\"height\":38,\"className\":\"h-7 w-auto select-none h-8\"}],[\"$\",\"p\",null,{\"className\":\"mt-4 max-w-md text-[color:var(--color-fg-muted)]\",\"children\":\"A one-person studio shipping small, profitable software.\"}]]}],[\"$\",\"div\",null,{\"className\":\"flex sm:justify-end items-center gap-3\",\"children\":[[\"$\",\"a\",null,{\"href\":\"mailto:[email protected]\",\"aria-label\":\"Email\",\"className\":\"inline-flex h-10 w-10 items-center justify-center rounded-full text-[color:var(--color-fg-muted)] hover:text-[color:var(--color-primary)] hover:bg-[color:var(--color-surface-container-high)] transition\",\"children\":\"$Ld\"}],\"$Le\",\"$Lf\",\"$L10\"]}]]}],\"$L11\",\"$L12\"]}]}]]}],[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]\n"]);
</script>
<script>
self.__next_f.push([1,"4:[\"$\",\"$L13\",null,{\"id\":\"ld-graph\",\"type\":\"application/ld+json\",\"strategy\":\"beforeInteractive\",\"dangerouslySetInnerHTML\":{\"__html\":\"{\\\"@context\\\":\\\"https://schema.org\\\",\\\"@graph\\\":[{\\\"@context\\\":\\\"https://schema.org\\\",\\\"@type\\\":\\\"Organization\\\",\\\"@id\\\":\\\"https://tonoid.com#organization\\\",\\\"name\\\":\\\"tonoïd\\\",\\\"alternateName\\\":\\\"tonoid\\\",\\\"url\\\":\\\"https://tonoid.com\\\",\\\"logo\\\":\\\"https://tonoid.com/images/tonoid-light.png\\\",\\\"image\\\":\\\"https://tonoid.com/images/tonoid-light.png\\\",\\\"description\\\":\\\"A one-person studio shipping small, profitable software.\\\",\\\"email\\\":\\\"[email protected]\\\",\\\"founder\\\":{\\\"@id\\\":\\\"https://tonoid.com#person\\\"},\\\"foundingDate\\\":\\\"2007\\\",\\\"sameAs\\\":[]},{\\\"@context\\\":\\\"https://schema.org\\\",\\\"@type\\\":\\\"Person\\\",\\\"@id\\\":\\\"https://tonoid.com#person\\\",\\\"name\\\":\\\"Simo Elalj\\\",\\\"url\\\":\\\"https://tonoid.com\\\",\\\"jobTitle\\\":\\\"Founder\\\",\\\"worksFor\\\":{\\\"@id\\\":\\\"https://tonoid.com#organization\\\"}},{\\\"@context\\\":\\\"https://schema.org\\\",\\\"@type\\\":\\\"WebSite\\\",\\\"@id\\\":\\\"https://tonoid.com#website\\\",\\\"url\\\":\\\"https://tonoid.com\\\",\\\"name\\\":\\\"tonoïd\\\",\\\"inLanguage\\\":\\\"en-US\\\",\\\"publisher\\\":{\\\"@id\\\":\\\"https://tonoid.com#organization\\\"},\\\"description\\\":\\\"A one-person studio shipping small, profitable software.\\\"}]}\"}}]\n5:[\"$\",\"$L13\",null,{\"defer\":true,\"data-domain\":\"tonoid.com\",\"data-api\":\"/plsb/api/event\",\"src\":\"/plsb/js/script.js\"}]\n"]);
</script>
<script>
self.__next_f.push([1,"6:[\"$\",\"$1\",\"c\",{\"children\":[[\"$\",\"div\",null,{\"className\":\"flex min-h-screen flex-col\",\"children\":[[\"$\",\"header\",null,{\"className\":\"sticky top-0 z-40 backdrop-blur-xl backdrop-saturate-150 border-b\",\"style\":{\"background\":\"color-mix(in oklab, #1f1d2e 40%, transparent)\",\"borderColor\":\"rgba(228, 224, 243, 0.35)\"},\"children\":[\"$\",\"div\",null,{\"className\":\"mx-auto max-w-5xl px-5 sm:px-8\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex h-16 items-center justify-between gap-4\",\"children\":[[\"$\",\"$Lc\",null,{\"href\":\"/\",\"className\":\"flex items-center\",\"aria-label\":\"tonoïd home\",\"children\":[\"$\",\"img\",null,{\"src\":\"/images/tonoid-dark.png\",\"alt\":\"tonoïd\",\"width\":99,\"height\":38,\"className\":\"h-7 w-auto select-none \"}]}],[\"$\",\"nav\",null,{\"className\":\"hidden sm:flex items-center gap-8 text-sm\",\"children\":[[\"$\",\"$Lc\",\"about\",{\"href\":\"/about\",\"className\":\"text-[color:var(--color-fg-muted)] hover:text-[color:var(--color-fg)] transition\",\"children\":\"About\"}],[\"$\",\"$Lc\",\"projects\",{\"href\":\"/projects\",\"className\":\"text-[color:var(--color-fg-muted)] hover:text-[color:var(--color-fg)] transition\",\"children\":\"Projects\"}],[\"$\",\"$Lc\",\"open-source\",{\"href\":\"/open-source\",\"className\":\"text-[color:var(--color-fg-muted)] hover:text-[color:var(--color-fg)] transition\",\"children\":\"Open source\"}],[\"$\",\"$Lc\",\"contact\",{\"href\":\"/contact\",\"className\":\"text-[color:var(--color-fg-muted)] hover:text-[color:var(--color-fg)] transition\",\"children\":\"Contact\"}]]}],[\"$\",\"$Lc\",null,{\"href\":\"/fr\",\"hrefLang\":\"fr\",\"title\":\"Switch to French\",\"className\":\"label-md inline-flex items-center justify-center h-8 min-w-10 px-2.5 rounded-md transition text-[color:var(--color-fg-muted)] hover:text-[color:var(--color-fg)] hover:bg-[color:var(--color-surface-container-high)]\",\"children\":\"FR\"}]]}],[\"$\",\"nav\",null,{\"className\":\"sm:hidden flex gap-6 pb-3 text-sm overflow-x-auto\",\"children\":[[\"$\",\"$Lc\",\"about\",{\"href\":\"/about\",\"className\":\"text-[color:var(--color-fg-muted)] hover:text-[color:var(--color-fg)] whitespace-nowrap\",\"children\":\"About\"}],[\"$\",\"$Lc\",\"projects\",{\"href\":\"/projects\",\"className\":\"text-[color:var(--color-fg-muted)] hover:text-[color:var(--color-fg)] whitespace-nowrap\",\"children\":\"Projects\"}],[\"$\",\"$Lc\",\"open-source\",{\"href\":\"/open-source\",\"className\":\"text-[color:var(--color-fg-muted)] hover:text-[color:var(--color-fg)] whitespace-nowrap\",\"children\":\"Open source\"}],[\"$\",\"$Lc\",\"contact\",{\"href\":\"/contact\",\"className\":\"text-[color:var(--color-fg-muted)] hover:text-[color:var(--color-fg)] whitespace-nowrap\",\"children\":\"Contact\"}]]}]]}]}],[\"$\",\"main\",null,{\"className\":\"mx-auto w-full max-w-5xl flex-1 px-5 sm:px-8 pt-10 sm:pt-14 pb-24\",\"children\":[[\"$\",\"section\",null,{\"className\":\"pt-16 sm:pt-24 pb-24 sm:pb-32 text-center\",\"children\":[\"$\",\"div\",null,{\"className\":\"mx-auto max-w-3xl flex flex-col items-center\",\"children\":[[\"$\",\"div\",null,{\"className\":\"label-md\",\"children\":\"Microstartup studio\"}],[\"$\",\"h1\",null,{\"className\":\"display-lg mt-6 mx-auto\",\"children\":\"Independent software, built to last.\"}],[\"$\",\"p\",null,{\"className\":\"mt-10 max-w-lg mx-auto text-lg text-[color:var(--color-fg-muted)]\",\"children\":\"tonoïd is Simo Elalj's one-person studio, named after the French tonneau à idées, a barrel of ideas. I pull a few out, build them lean, and run them for years. No investors, no roadmap theatre, no rush.\"}],[\"$\",\"div\",null,{\"className\":\"mt-10 flex flex-wrap justify-center gap-4\",\"children\":[[\"$\",\"$Lc\",null,{\"href\":\"/projects\",\"className\":\"btn-primary\",\"children\":[\"See the projects\",[\"$\",\"svg\",null,{\"xmlns\":\"http://www.w3.org/2000/svg\",\"viewBox\":\"0 0 24 24\",\"width\":18,\"height\":18,\"className\":\"$undefined\",\"role\":\"presentation\",\"aria-label\":\"$undefined\",\"aria-hidden\":true,\"fill\":\"currentColor\",\"children\":[\"$\",\"path\",null,{\"d\":\"M14 16.94V12.94H5.08L5.05 10.93H14V6.94L19 11.94Z\"}]}]]}],[\"$\",\"$Lc\",null,{\"href\":\"/about\",\"className\":\"btn-secondary\",\"children\":\"About the studio\"}]]}]]}]}],[\"$\",\"section\",null,{\"className\":\"py-16 sm:py-20\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-end justify-between gap-8 mb-12\",\"children\":[[\"$\",\"h2\",null,{\"className\":\"headline-md max-w-md text-[color:var(--color-fg)]\",\"children\":\"Featured projects\"}],\"$L14\"]}],\"$L15\"]}],\"$L16\"]}],\"$L17\"]}],[\"$L18\"],\"$L19\"]}]\n"]);
</script>
<script>
self.__next_f.push([1,"7:[\"$\",\"$1\",\"h\",{\"children\":[null,[\"$\",\"$L1a\",null,{\"children\":\"$L1b\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$L1c\",null,{\"children\":[\"$\",\"$1d\",null,{\"name\":\"Next.Metadata\",\"children\":\"$L1e\"}]}]}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]]}]\n9:[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/003a7.s2~qy_a.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]\n"]);
</script>
<script>
self.__next_f.push([1,"24:I[97367,[\"/_next/static/chunks/04eklj-7j4aqp.js\",\"/_next/static/chunks/0d3shmwh5_nmn.js\"],\"OutletBoundary\"]\nd:[\"$\",\"svg\",null,{\"xmlns\":\"http://www.w3.org/2000/svg\",\"viewBox\":\"0 0 24 24\",\"width\":20,\"height\":20,\"className\":\"$undefined\",\"role\":\"presentation\",\"aria-label\":\"$undefined\",\"aria-hidden\":true,\"fill\":\"currentColor\",\"children\":[\"$\",\"path\",null,{\"d\":\"M22 6C22 4.9 21.1 4 20 4H4C2.9 4 2 4.9 2 6V18C2 19.1 2.9 20 4 20H20C21.1 20 22 19.1 22 18V6M20 6L12 11L4 6H20M20 18H4V8L12 13L20 8V18Z\"}]}]\ne:[\"$\",\"a\",null,{\"href\":\"https://github.com/tonoid\",\"target\":\"_blank\",\"rel\":\"noopener noreferrer\",\"aria-label\":\"GitHub\",\"className\":\"inline-flex h-10 w-10 items-center justify-center rounded-full text-[color:var(--color-fg-muted)] hover:text-[color:var(--color-primary)] hover:bg-[color:var(--color-surface-container-high)] transition\",\"children\":[\"$\",\"svg\",null,{\"xmlns\":\"http://www.w3.org/2000/svg\",\"viewBox\":\"0 0 24 24\",\"width\":20,\"height\":20,\"className\":\"$undefined\",\"role\":\"presentation\",\"aria-label\":\"$undefined\",\"aria-hidden\":true,\"fill\":\"currentColor\",\"children\":[\"$\",\"path\",null,{\"d\":\"M12,2A10,10 0 0,0 2,12C2,16.42 4.87,20.17 8.84,21.5C9.34,21.58 9.5,21.27 9.5,21C9.5,20.77 9.5,20.14 9.5,19.31C6.73,19.91 6.14,17.97 6.14,17.97C5.68,16.81 5.03,16.5 5.03,16.5C4.12,15.88 5.1,15.9 5.1,15.9C6.1,15.97 6.63,16.93 6.63,16.93C7.5,18.45 8.97,18 9.54,17.76C9.63,17.11 9.89,16.67 10.17,16.42C7.95,16.17 5.62,15.31 5.62,11.5C5.62,10.39 6,9.5 6.65,8.79C6.55,8.54 6.2,7.5 6.75,6.15C6.75,6.15 7.59,5.88 9.5,7.17C10.29,6.95 11.15,6.84 12,6.84C12.85,6.84 13.71,6.95 14.5,7.17C16.41,5.88 17.25,6.15 17.25,6.15C17.8,7.5 17.45,8.54 17.35,8.79C18,9.5 18.38,10.39 18.38,11.5C18.38,15.32 16.04,16.16 13.81,16.41C14.17,16.72 14.5,17.33 14.5,18.26C14.5,19.6 14.5,20.68 14.5,21C14.5,21.27 14.66,21.59 15.17,21.5C19.14,20.16 22,16.42 22,12A10,10 0 0,0 12,2Z\"}]}]}]\nf:[\"$\",\"a\",null,{\"href\":\"https://x.com/simoelalj\",\"target\":\"_blank\",\"rel\":\"noopener noreferrer\",\"aria-label\":\"X\",\"className\":\"inline-flex h-10 w-10 items-center justify-center rounded-full text-[color:var(--color-fg-muted)] hover:text-[color:var(--color-primary)] hover:bg-[color:var(--color-surface-container-high)] transition\",\"children\":[\"$\",\"svg\",null,{\"xmlns\":\"http://www.w3.org/2000/svg\",\"viewBox\":\"0 0 24 24\",\"width\":18,\"height\":18,\"className\":\"$undefined\",\"role\":\"presentation\",\"aria-label\":\"$undefined\",\"aria-hidden\":true,\"fill\":\"currentColor\",\"children\":[\"$\",\"path\",null,{\"d\":\"M18.244 2.25h3.308l-7.227 8.26 8.502 11.24H16.17l-5.214-6.817L4.99 21.75H1.68l7.73-8.835L1.254 2.25H8.08l4.713 6.231zm-1.161 17.52h1.833L7.084 4.126H5.117z\"}]}]}]\n10:[\"$\",\"a\",null,{\"href\":\"https://www.linkedin.com/in/elalj\",\"target\":\"_blank\",\"rel\":\"noopener noreferrer\",\"aria-label\":\"LinkedIn\",\"className\":\"inline-flex h-10 w-10 items-center justify-center rounded-full text-[color:var(--color-fg-muted)] hover:text-[color:var(--color-primary)] hover:bg-[color:var(--color-surface-container-high)] transition\",\"children\":[\"$\",\"svg\",null,{\"xmlns\":\"http://www.w3.org/2000/svg\",\"viewBox\":\"0 0 24 24\",\"width\":20,\"height\":20,\"className\":\"$undefined\",\"role\":\"presentation\",\"aria-label\":\"$undefined\",\"aria-hidden\":true,\"fill\":\"currentColor\",\"children\":[\"$\",\"path\",null,{\"d\":\"M19 3A2 2 0 0 1 21 5V19A2 2 0 0 1 19 21H5A2 2 0 0 1 3 19V5A2 2 0 0 1 5 3H19M18.5 18.5V13.2A3.26 3.26 0 0 0 15.24 9.94C14.39 9.94 13.4 10.46 12.92 11.24V10.13H10.13V18.5H12.92V13.57C12.92 12.8 13.54 12.17 14.31 12.17A1.4 1.4 0 0 1 15.71 13.57V18.5H18.5M6.88 8.56A1.68 1.68 0 0 0 8.56 6.88C8.56 5.95 7.81 5.19 6.88 5.19A1.69 1.69 0 0 0 5.19 6.88C5.19 7.81 5.95 8.56 6.88 8.56M8.27 18.5V10.13H5.5V18.5H8.27Z\"}]}]}]\n11:[\"$\",\"div\",null,{\"className\":\"mt-16 flex flex-col gap-2 text-sm text-[color:var(--color-fg-muted)] md:flex-row md:items-center md:justify-between\",\"children\":[[\"$\",\"p\",null,{\"children\":[\"© 2026 tonoïd, a trademarked brand. \",\"Made by \",\"Simo Elalj\",\" in Bordeaux \",[\"$\",\"span\",null,{\"aria-label\":\"French flag\",\"role\":\"img\",\"children\":\"🇫🇷\"}]]}],[\"$\",\"p\",null,{\"children\":[\"On a \",[\"$\",\"a\",null,{\"className\":\"underline decoration-[color:var(--color-primary)]/30 underline"]);
</script>
<script>
self.__next_f.push([1,"-offset-2 text-[color:var(--color-primary)] hover:decoration-[color:var(--color-primary)]\",\"href\":\"https://www.refurb.me/refurbished/macbook/macbook-pro/m4-pro\",\"rel\":\"noopener noreferrer\",\"target\":\"_blank\",\"children\":\"refurbished MacBook Pro M4 Pro\"}],\".\"]}]]}]\n12:[\"$\",\"p\",null,{\"className\":\"mt-2 text-xs text-[color:var(--color-fg-whisper)]\",\"children\":\"tonoïd SASU · 879 475 788 RCS Versailles\"}]\n14:[\"$\",\"$Lc\",null,{\"href\":\"/projects\",\"className\":\"btn-ghost shrink-0\",\"children\":[\"All projects\",[\"$\",\"svg\",null,{\"xmlns\":\"http://www.w3.org/2000/svg\",\"viewBox\":\"0 0 24 24\",\"width\":16,\"height\":16,\"className\":\"$undefined\",\"role\":\"presentation\",\"aria-label\":\"$undefined\",\"aria-hidden\":true,\"fill\":\"currentColor\",\"children\":[\"$\",\"path\",null,{\"d\":\"M14 16.94V12.94H5.08L5.05 10.93H14V6.94L19 11.94Z\"}]}]]}]\n"]);
</script>
<script>
self.__next_f.push([1,"15:[\"$\",\"div\",null,{\"className\":\"grid gap-6 sm:grid-cols-2 lg:grid-cols-3\",\"children\":[[\"$\",\"$Lc\",\"refurbme\",{\"href\":\"/projects/refurbme\",\"className\":\"link-plain group block overflow-hidden rounded-xl bg-[color:var(--color-surface-container-low)] editorial-transition hover:bg-[color:var(--color-surface-container)]\",\"children\":[[\"$\",\"div\",null,{\"className\":\"aspect-[16/9] w-full overflow-hidden bg-[color:var(--color-surface-container)]\",\"children\":[\"$\",\"img\",null,{\"src\":\"/images/projects/refurbme.jpg\",\"alt\":\"RefurbMe\",\"loading\":\"lazy\",\"className\":\"h-full w-full object-cover opacity-85 editorial-transition group-hover:opacity-100 group-hover:scale-[1.02]\"}]}],[\"$\",\"div\",null,{\"className\":\"p-8\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-center justify-between gap-3\",\"children\":[[\"$\",\"span\",null,{\"className\":\"label-md inline-flex shrink-0 items-center gap-1.5 text-[color:var(--color-fg-muted)]\",\"children\":[[\"$\",\"span\",null,{\"aria-hidden\":\"true\",\"className\":\"h-1.5 w-1.5 rounded-full\",\"style\":{\"background\":\"var(--color-status-for-sale)\"}}],\"For sale\"]}],[\"$\",\"span\",null,{\"className\":\"label-md text-[color:var(--color-fg-whisper)]\",\"children\":2007}]]}],[\"$\",\"h3\",null,{\"className\":\"mt-4 font-[family-name:var(--font-heading)] text-2xl font-semibold tracking-[-0.02em] text-[color:var(--color-fg)]\",\"children\":\"RefurbMe\"}],[\"$\",\"p\",null,{\"className\":\"mt-3 text-[color:var(--color-fg-muted)] line-clamp-3\",\"children\":\"The largest Apple refurbished comparator. For sale, looking for a new owner.\"}]]}]]}],[\"$\",\"$Lc\",\"2sync\",{\"href\":\"/projects/2sync\",\"className\":\"link-plain group block overflow-hidden rounded-xl bg-[color:var(--color-surface-container-low)] editorial-transition hover:bg-[color:var(--color-surface-container)]\",\"children\":[[\"$\",\"div\",null,{\"className\":\"aspect-[16/9] w-full overflow-hidden bg-[color:var(--color-surface-container)]\",\"children\":[\"$\",\"img\",null,{\"src\":\"/images/projects/2sync.jpg\",\"alt\":\"2sync\",\"loading\":\"lazy\",\"className\":\"h-full w-full object-cover opacity-85 editorial-transition group-hover:opacity-100 group-hover:scale-[1.02]\"}]}],[\"$\",\"div\",null,{\"className\":\"p-8\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-center justify-between gap-3\",\"children\":[[\"$\",\"span\",null,{\"className\":\"label-md inline-flex shrink-0 items-center gap-1.5 text-[color:var(--color-fg-muted)]\",\"children\":[[\"$\",\"span\",null,{\"aria-hidden\":\"true\",\"className\":\"h-1.5 w-1.5 rounded-full\",\"style\":{\"background\":\"var(--color-status-profitable)\"}}],\"Profitable\"]}],[\"$\",\"span\",null,{\"className\":\"label-md text-[color:var(--color-fg-whisper)]\",\"children\":2021}]]}],[\"$\",\"h3\",null,{\"className\":\"mt-4 font-[family-name:var(--font-heading)] text-2xl font-semibold tracking-[-0.02em] text-[color:var(--color-fg)]\",\"children\":\"2sync\"}],[\"$\",\"p\",null,{\"className\":\"mt-3 text-[color:var(--color-fg-muted)] line-clamp-3\",\"children\":\"Two-way sync between Notion and the apps you already use.\"}]]}]]}],[\"$\",\"$Lc\",\"exportin\",{\"href\":\"/projects/exportin\",\"className\":\"link-plain group block overflow-hidden rounded-xl bg-[color:var(--color-surface-container-low)] editorial-transition hover:bg-[color:var(--color-surface-container)]\",\"children\":[[\"$\",\"div\",null,{\"className\":\"aspect-[16/9] w-full overflow-hidden bg-[color:var(--color-surface-container)]\",\"children\":[\"$\",\"img\",null,{\"src\":\"/images/projects/exportin.jpg\",\"alt\":\"ExportIn\",\"loading\":\"lazy\",\"className\":\"h-full w-full object-cover opacity-85 editorial-transition group-hover:opacity-100 group-hover:scale-[1.02]\"}]}],[\"$\",\"div\",null,{\"className\":\"p-8\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-center justify-between gap-3\",\"children\":[[\"$\",\"span\",null,{\"className\":\"label-md inline-flex shrink-0 items-center gap-1.5 text-[color:var(--color-fg-muted)]\",\"children\":[[\"$\",\"span\",null,{\"aria-hidden\":\"true\",\"className\":\"h-1.5 w-1.5 rounded-full\",\"style\":{\"background\":\"var(--color-status-live)\"}}],\"Live\"]}],[\"$\",\"span\",null,{\"className\":\"label-md text-[color:var(--color-fg-whisper)]\",\"children\":2026}]]}],\"$L1f\",\"$L20\"]}]]}]]}]\n"]);
</script>
<script>
self.__next_f.push([1,"16:[\"$\",\"section\",null,{\"className\":\"py-16 sm:py-20\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-end justify-between gap-8 mb-12\",\"children\":[[\"$\",\"h2\",null,{\"className\":\"headline-md max-w-md text-[color:var(--color-fg)]\",\"children\":\"Open source\"}],[\"$\",\"$Lc\",null,{\"href\":\"/open-source\",\"className\":\"btn-ghost shrink-0\",\"children\":[\"All open source\",[\"$\",\"svg\",null,{\"xmlns\":\"http://www.w3.org/2000/svg\",\"viewBox\":\"0 0 24 24\",\"width\":16,\"height\":16,\"className\":\"$undefined\",\"role\":\"presentation\",\"aria-label\":\"$undefined\",\"aria-hidden\":true,\"fill\":\"currentColor\",\"children\":[\"$\",\"path\",null,{\"d\":\"M14 16.94V12.94H5.08L5.05 10.93H14V6.94L19 11.94Z\"}]}]]}]]}],[\"$\",\"div\",null,{\"className\":\"grid gap-6 sm:grid-cols-2 lg:grid-cols-3\",\"children\":[[\"$\",\"$Lc\",\"qonto-backup\",{\"href\":\"/open-source/qonto-backup\",\"className\":\"link-plain group block overflow-hidden rounded-xl bg-[color:var(--color-surface-container-low)] editorial-transition hover:bg-[color:var(--color-surface-container)]\",\"children\":[[\"$\",\"div\",null,{\"className\":\"aspect-[16/9] w-full overflow-hidden bg-[color:var(--color-surface-container)]\",\"children\":[\"$\",\"img\",null,{\"src\":\"/images/open-source/qonto-backup.jpg\",\"alt\":\"Qonto Backup\",\"loading\":\"lazy\",\"className\":\"h-full w-full object-cover opacity-85 editorial-transition group-hover:opacity-100 group-hover:scale-[1.02]\"}]}],[\"$\",\"div\",null,{\"className\":\"p-8\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-center justify-between gap-3\",\"children\":[[\"$\",\"span\",null,{\"className\":\"label-md inline-flex shrink-0 items-center gap-1.5 text-[color:var(--color-fg-muted)]\",\"children\":[[\"$\",\"span\",null,{\"aria-hidden\":\"true\",\"className\":\"h-1.5 w-1.5 rounded-full\",\"style\":{\"background\":\"var(--color-status-live)\"}}],\"Live\"]}],[\"$\",\"span\",null,{\"className\":\"label-md text-[color:var(--color-fg-whisper)]\",\"children\":2026}]]}],[\"$\",\"h3\",null,{\"className\":\"mt-4 font-[family-name:var(--font-heading)] text-2xl font-semibold tracking-[-0.02em] text-[color:var(--color-fg)]\",\"children\":\"Qonto Backup\"}],[\"$\",\"p\",null,{\"className\":\"mt-3 text-[color:var(--color-fg-muted)] line-clamp-3\",\"children\":\"Self-hosted CLI that exports your full Qonto business account to local disk every night: transactions, attachments, and PAdES probative receipts. Runs as a Docker container or Node binary on a Synology NAS.\"}]]}]]}],[\"$\",\"$Lc\",\"mongo-backup-s3\",{\"href\":\"/open-source/mongo-backup-s3\",\"className\":\"link-plain group block overflow-hidden rounded-xl bg-[color:var(--color-surface-container-low)] editorial-transition hover:bg-[color:var(--color-surface-container)]\",\"children\":[[\"$\",\"div\",null,{\"className\":\"aspect-[16/9] w-full overflow-hidden bg-[color:var(--color-surface-container)]\",\"children\":[\"$\",\"img\",null,{\"src\":\"/images/open-source/mongo-backup-s3.png\",\"alt\":\"Mongo Backup S3\",\"loading\":\"lazy\",\"className\":\"h-full w-full object-cover opacity-85 editorial-transition group-hover:opacity-100 group-hover:scale-[1.02]\"}]}],[\"$\",\"div\",null,{\"className\":\"p-8\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-center justify-between gap-3\",\"children\":[[\"$\",\"span\",null,{\"className\":\"label-md inline-flex shrink-0 items-center gap-1.5 text-[color:var(--color-fg-muted)]\",\"children\":[[\"$\",\"span\",null,{\"aria-hidden\":\"true\",\"className\":\"h-1.5 w-1.5 rounded-full\",\"style\":{\"background\":\"var(--color-status-live)\"}}],\"Live\"]}],[\"$\",\"span\",null,{\"className\":\"label-md text-[color:var(--color-fg-whisper)]\",\"children\":2026}]]}],[\"$\",\"h3\",null,{\"className\":\"mt-4 font-[family-name:var(--font-heading)] text-2xl font-semibold tracking-[-0.02em] text-[color:var(--color-fg)]\",\"children\":\"Mongo Backup S3\"}],[\"$\",\"p\",null,{\"className\":\"mt-3 text-[color:var(--color-fg-muted)] line-clamp-3\",\"children\":\"Small Alpine Docker image that backs up and restores MongoDB to any S3-compatible store (AWS S3, Backblaze B2, Cloudflare R2, MinIO, Wasabi), with age-based or grandfather-father-son retention. Driven by your existing cron.\"}]]}]]}]]}]]}]\n"]);
</script>
<script>
self.__next_f.push([1,"17:[\"$\",\"footer\",null,{\"className\":\"mt-32 bg-[color:var(--color-surface-container-low)] shrink-0\",\"children\":[\"$\",\"div\",null,{\"className\":\"mx-auto max-w-5xl px-5 sm:px-8 py-16 text-sm text-[color:var(--color-fg-muted)]\",\"children\":[[\"$\",\"div\",null,{\"className\":\"grid gap-10 sm:grid-cols-[2fr_1fr] sm:items-end\",\"children\":[[\"$\",\"div\",null,{\"children\":[[\"$\",\"img\",null,{\"src\":\"/images/tonoid-dark.png\",\"alt\":\"tonoïd\",\"width\":99,\"height\":38,\"className\":\"h-7 w-auto select-none h-8\"}],[\"$\",\"p\",null,{\"className\":\"mt-4 max-w-md text-[color:var(--color-fg-muted)]\",\"children\":\"A one-person studio shipping small, profitable software.\"}]]}],[\"$\",\"div\",null,{\"className\":\"flex sm:justify-end items-center gap-3\",\"children\":[[\"$\",\"a\",null,{\"href\":\"mailto:[email protected]\",\"aria-label\":\"Email\",\"className\":\"inline-flex h-10 w-10 items-center justify-center rounded-full text-[color:var(--color-fg-muted)] hover:text-[color:var(--color-primary)] hover:bg-[color:var(--color-surface-container-high)] transition\",\"children\":[\"$\",\"svg\",null,{\"xmlns\":\"http://www.w3.org/2000/svg\",\"viewBox\":\"0 0 24 24\",\"width\":20,\"height\":20,\"className\":\"$undefined\",\"role\":\"presentation\",\"aria-label\":\"$undefined\",\"aria-hidden\":true,\"fill\":\"currentColor\",\"children\":[\"$\",\"path\",null,{\"d\":\"M22 6C22 4.9 21.1 4 20 4H4C2.9 4 2 4.9 2 6V18C2 19.1 2.9 20 4 20H20C21.1 20 22 19.1 22 18V6M20 6L12 11L4 6H20M20 18H4V8L12 13L20 8V18Z\"}]}]}],[\"$\",\"a\",null,{\"href\":\"https://github.com/tonoid\",\"target\":\"_blank\",\"rel\":\"noopener noreferrer\",\"aria-label\":\"GitHub\",\"className\":\"inline-flex h-10 w-10 items-center justify-center rounded-full text-[color:var(--color-fg-muted)] hover:text-[color:var(--color-primary)] hover:bg-[color:var(--color-surface-container-high)] transition\",\"children\":[\"$\",\"svg\",null,{\"xmlns\":\"http://www.w3.org/2000/svg\",\"viewBox\":\"0 0 24 24\",\"width\":20,\"height\":20,\"className\":\"$undefined\",\"role\":\"presentation\",\"aria-label\":\"$undefined\",\"aria-hidden\":true,\"fill\":\"currentColor\",\"children\":[\"$\",\"path\",null,{\"d\":\"M12,2A10,10 0 0,0 2,12C2,16.42 4.87,20.17 8.84,21.5C9.34,21.58 9.5,21.27 9.5,21C9.5,20.77 9.5,20.14 9.5,19.31C6.73,19.91 6.14,17.97 6.14,17.97C5.68,16.81 5.03,16.5 5.03,16.5C4.12,15.88 5.1,15.9 5.1,15.9C6.1,15.97 6.63,16.93 6.63,16.93C7.5,18.45 8.97,18 9.54,17.76C9.63,17.11 9.89,16.67 10.17,16.42C7.95,16.17 5.62,15.31 5.62,11.5C5.62,10.39 6,9.5 6.65,8.79C6.55,8.54 6.2,7.5 6.75,6.15C6.75,6.15 7.59,5.88 9.5,7.17C10.29,6.95 11.15,6.84 12,6.84C12.85,6.84 13.71,6.95 14.5,7.17C16.41,5.88 17.25,6.15 17.25,6.15C17.8,7.5 17.45,8.54 17.35,8.79C18,9.5 18.38,10.39 18.38,11.5C18.38,15.32 16.04,16.16 13.81,16.41C14.17,16.72 14.5,17.33 14.5,18.26C14.5,19.6 14.5,20.68 14.5,21C14.5,21.27 14.66,21.59 15.17,21.5C19.14,20.16 22,16.42 22,12A10,10 0 0,0 12,2Z\"}]}]}],[\"$\",\"a\",null,{\"href\":\"https://x.com/simoelalj\",\"target\":\"_blank\",\"rel\":\"noopener noreferrer\",\"aria-label\":\"X\",\"className\":\"inline-flex h-10 w-10 items-center justify-center rounded-full text-[color:var(--color-fg-muted)] hover:text-[color:var(--color-primary)] hover:bg-[color:var(--color-surface-container-high)] transition\",\"children\":[\"$\",\"svg\",null,{\"xmlns\":\"http://www.w3.org/2000/svg\",\"viewBox\":\"0 0 24 24\",\"width\":18,\"height\":18,\"className\":\"$undefined\",\"role\":\"presentation\",\"aria-label\":\"$undefined\",\"aria-hidden\":true,\"fill\":\"currentColor\",\"children\":[\"$\",\"path\",null,{\"d\":\"M18.244 2.25h3.308l-7.227 8.26 8.502 11.24H16.17l-5.214-6.817L4.99 21.75H1.68l7.73-8.835L1.254 2.25H8.08l4.713 6.231zm-1.161 17.52h1.833L7.084 4.126H5.117z\"}]}]}],[\"$\",\"a\",null,{\"href\":\"https://www.linkedin.com/in/elalj\",\"target\":\"_blank\",\"rel\":\"noopener noreferrer\",\"aria-label\":\"LinkedIn\",\"className\":\"inline-flex h-10 w-10 items-center justify-center rounded-full text-[color:var(--color-fg-muted)] hover:text-[color:var(--color-primary)] hover:bg-[color:var(--color-surface-container-high)] transition\",\"children\":\"$L21\"}]]}]]}],\"$L22\",\"$L23\"]}]}]\n"]);
</script>
<script>
self.__next_f.push([1,"18:[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/0ka051yepewro.js\",\"async\":true,\"nonce\":\"$undefined\"}]\n19:[\"$\",\"$L24\",null,{\"children\":[\"$\",\"$1d\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@25\"}]}]\n"]);
</script>
<script>
self.__next_f.push([1,"1f:[\"$\",\"h3\",null,{\"className\":\"mt-4 font-[family-name:var(--font-heading)] text-2xl font-semibold tracking-[-0.02em] text-[color:var(--color-fg)]\",\"children\":\"ExportIn\"}]\n20:[\"$\",\"p\",null,{\"className\":\"mt-3 text-[color:var(--color-fg-muted)] line-clamp-3\",\"children\":\"Chrome extension that gets your contacts' birthdays out of LinkedIn and Facebook, and your Instagram mutuals' profiles, so an AI agent can enrich your CRM. Free and open source.\"}]\n21:[\"$\",\"svg\",null,{\"xmlns\":\"http://www.w3.org/2000/svg\",\"viewBox\":\"0 0 24 24\",\"width\":20,\"height\":20,\"className\":\"$undefined\",\"role\":\"presentation\",\"aria-label\":\"$undefined\",\"aria-hidden\":true,\"fill\":\"currentColor\",\"children\":[\"$\",\"path\",null,{\"d\":\"M19 3A2 2 0 0 1 21 5V19A2 2 0 0 1 19 21H5A2 2 0 0 1 3 19V5A2 2 0 0 1 5 3H19M18.5 18.5V13.2A3.26 3.26 0 0 0 15.24 9.94C14.39 9.94 13.4 10.46 12.92 11.24V10.13H10.13V18.5H12.92V13.57C12.92 12.8 13.54 12.17 14.31 12.17A1.4 1.4 0 0 1 15.71 13.57V18.5H18.5M6.88 8.56A1.68 1.68 0 0 0 8.56 6.88C8.56 5.95 7.81 5.19 6.88 5.19A1.69 1.69 0 0 0 5.19 6.88C5.19 7.81 5.95 8.56 6.88 8.56M8.27 18.5V10.13H5.5V18.5H8.27Z\"}]}]\n22:[\"$\",\"div\",null,{\"className\":\"mt-16 flex flex-col gap-2 text-sm text-[color:var(--color-fg-muted)] md:flex-row md:items-center md:justify-between\",\"children\":[[\"$\",\"p\",null,{\"children\":[\"© 2026 tonoïd, a trademarked brand. \",\"Made by \",\"Simo Elalj\",\" in Bordeaux \",[\"$\",\"span\",null,{\"aria-label\":\"French flag\",\"role\":\"img\",\"children\":\"🇫🇷\"}]]}],[\"$\",\"p\",null,{\"children\":[\"On a \",[\"$\",\"a\",null,{\"className\":\"underline decoration-[color:var(--color-primary)]/30 underline-offset-2 text-[color:var(--color-primary)] hover:decoration-[color:var(--color-primary)]\",\"href\":\"https://www.refurb.me/refurbished/macbook/macbook-pro/m4-pro\",\"rel\":\"noopener noreferrer\",\"target\":\"_blank\",\"children\":\"refurbished MacBook Pro M4 Pro\"}],\".\"]}]]}]\n23:[\"$\",\"p\",null,{\"className\":\"mt-2 text-xs text-[color:var(--color-fg-whisper)]\",\"children\":\"tonoïd SASU · 879 475 788 RCS Versailles\"}]\n"]);
</script>
<script>
self.__next_f.push([1,"1b:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n"]);
</script>
<script>
self.__next_f.push([1,"26:I[27201,[\"/_next/static/chunks/04eklj-7j4aqp.js\",\"/_next/static/chunks/0d3shmwh5_nmn.js\"],\"IconMark\"]\n"]);
</script>
<script>
self.__next_f.push([1,"1e:[[\"$\",\"title\",\"0\",{\"children\":\"tonoïd · Microstartup studio\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"A one-person studio shipping small, profitable software.\"}],[\"$\",\"meta\",\"2\",{\"name\":\"application-name\",\"content\":\"tonoïd\"}],[\"$\",\"link\",\"3\",{\"rel\":\"author\",\"href\":\"https://tonoid.com\"}],[\"$\",\"meta\",\"4\",{\"name\":\"author\",\"content\":\"Simo Elalj\"}],[\"$\",\"meta\",\"5\",{\"name\":\"keywords\",\"content\":\"tonoïd,tonoid,Simo Elalj,microstartup,indie software,solo founder,bootstrapped,independent software studio\"}],[\"$\",\"meta\",\"6\",{\"name\":\"creator\",\"content\":\"Simo Elalj\"}],[\"$\",\"meta\",\"7\",{\"name\":\"publisher\",\"content\":\"tonoïd\"}],[\"$\",\"meta\",\"8\",{\"name\":\"robots\",\"content\":\"index, follow\"}],[\"$\",\"meta\",\"9\",{\"name\":\"googlebot\",\"content\":\"index, follow, max-video-preview:-1, max-image-preview:large, max-snippet:-1\"}],[\"$\",\"meta\",\"10\",{\"name\":\"category\",\"content\":\"technology\"}],[\"$\",\"link\",\"11\",{\"rel\":\"canonical\",\"href\":\"https://tonoid.com\"}],[\"$\",\"link\",\"12\",{\"rel\":\"alternate\",\"hrefLang\":\"en\",\"href\":\"https://tonoid.com\"}],[\"$\",\"link\",\"13\",{\"rel\":\"alternate\",\"hrefLang\":\"fr\",\"href\":\"https://tonoid.com/fr\"}],[\"$\",\"link\",\"14\",{\"rel\":\"alternate\",\"hrefLang\":\"x-default\",\"href\":\"https://tonoid.com\"}],[\"$\",\"meta\",\"15\",{\"property\":\"og:title\",\"content\":\"tonoïd · Microstartup studio\"}],[\"$\",\"meta\",\"16\",{\"property\":\"og:description\",\"content\":\"A one-person studio shipping small, profitable software.\"}],[\"$\",\"meta\",\"17\",{\"property\":\"og:url\",\"content\":\"https://tonoid.com\"}],[\"$\",\"meta\",\"18\",{\"property\":\"og:site_name\",\"content\":\"tonoïd\"}],[\"$\",\"meta\",\"19\",{\"property\":\"og:locale\",\"content\":\"en_US\"}],[\"$\",\"meta\",\"20\",{\"property\":\"og:image\",\"content\":\"https://tonoid.com/images/tonoid-light.png\"}],[\"$\",\"meta\",\"21\",{\"property\":\"og:image:alt\",\"content\":\"tonoïd · Microstartup studio\"}],[\"$\",\"meta\",\"22\",{\"property\":\"og:locale:alternate\",\"content\":\"fr_FR\"}],[\"$\",\"meta\",\"23\",{\"property\":\"og:type\",\"content\":\"website\"}],[\"$\",\"meta\",\"24\",{\"name\":\"twitter:card\",\"content\":\"summary_large_image\"}],[\"$\",\"meta\",\"25\",{\"name\":\"twitter:title\",\"content\":\"tonoïd · Microstartup studio\"}],[\"$\",\"meta\",\"26\",{\"name\":\"twitter:description\",\"content\":\"A one-person studio shipping small, profitable software.\"}],[\"$\",\"meta\",\"27\",{\"name\":\"twitter:image\",\"content\":\"https://tonoid.com/images/tonoid-light.png\"}],[\"$\",\"link\",\"28\",{\"rel\":\"icon\",\"href\":\"/favicon.png\"}],[\"$\",\"$L26\",\"29\",{}]]\n"]);
</script>
<script>
self.__next_f.push([1,"25:null\n"]);
</script>
</body>
</html>
| # |
Url |
Url |
Source |
Date |
| 1 |
https://tonoid.com/ |
|
2026-10-20 12:51:30 |
| 2 |
https://www.thebolditalic.com/?gi=… |
|
2026-10-20 12:51:29 |
| 3 |
http://sekken-life.com/life/cgi-bi… |
|
2026-10-20 12:51:29 |
| 4 |
https://www.thebolditalic.com/?gi=… |
|
2026-10-20 12:51:29 |
| 5 |
https://www.thebolditalic.com/?gi=… |
|
2026-10-20 12:51:27 |
| 6 |
https://www.thebolditalic.com/?gi=… |
|
2026-10-20 12:51:26 |
| 7 |
https://www.thebolditalic.com/?gi=… |
|
2026-10-20 12:51:25 |
| 8 |
https://www.texarkanatwins.com/%25… |
|
2026-10-20 12:51:25 |
| 9 |
https://www.thebolditalic.com/?gi=… |
|
2026-10-20 12:51:24 |
| 10 |
https://www.thebolditalic.com/?gi=… |
|
2026-10-20 12:51:24 |
| 11 |
https://www.texarkanatwins.com/%25… |
|
2026-10-20 12:51:24 |
| 12 |
http://sekken-life.com/life/cgi-bi… |
|
2026-10-20 12:51:23 |
| 13 |
https://www.texarkanatwins.com/%25… |
|
2026-10-20 12:51:23 |
| 14 |
https://consciouslifenews.com |
|
2026-10-20 12:51:23 |
| 15 |
https://m.delphic.games/ |
|
2026-10-20 12:51:22 |
| 16 |
https://www.thebolditalic.com/?gi=… |
|
2026-10-20 12:51:20 |
| 17 |
https://www.thebolditalic.com/?gi=… |
|
2026-10-20 12:51:20 |
| 18 |
https://www.thebolditalic.com/?gi=… |
|
2026-10-20 12:51:19 |
| 19 |
https://www.thebolditalic.com/?gi=… |
|
2026-10-20 12:51:19 |
| 20 |
https://pub-cb3f5136997842fcb5c074… |
|
2026-10-20 12:51:18 |