# Wout Vandesompele > Creative developer building space-grade software for people with average jobs. Based in Ghent, Belgium. This is his portfolio, laid out as a code repository: every page is a file. Every page is available as Markdown: append `.md` to its URL (the home page is `/index.md`), or request the normal URL with `Accept: text/markdown`. [llms-full.txt](https://www.life.rip/llms-full.txt) holds every page in one file. [AGENTS.md](https://www.life.rip/agents.md) explains all of it. # o2o Bicycle Leasing | role | stack | since | | :- | :- | :- | | **Front-end Developer** | **Vue.js** | **2025** | [o2o](https://www.o2o.be/nl) makes bike leasing effortless for Belgian employers and their people. I build the front end that takes an employee from "maybe a bike?" to riding one. ![o2o Bicycle Leasing — Fietsleasing: het makkelijkst met o2o](https://www.life.rip/work/o2o-bicycle-leasing.jpg) - Vue.js front end of the leasing platform - One product for employee, employer and dealer - Polish that makes paperwork disappear _Considering a bike? [Start a lease](https://www.o2o.be/nl)._ # Basalte | role | focus | when | | :- | :- | :- | | **Software Engineer** | **creative development & UX** | **2024 – 2025** | [Basalte](https://www.basalte.be/en) makes design-first home automation: a light switch is a piece of interior, and the software has to match it. - Interfaces for controlling homes - UX design and engineering in one pair of hands - A quality bar set by industrial design # Little Miss Robot | role | stack | when | | :- | :- | :- | | **Creative Developer** | **JavaScript, everywhere** | **2019 – 2024** | Five years at [Little Miss Robot](https://littlemissrobot.com), part of Ghent's [Leap Forward](https://leapforward.be) group. A new brand, problem and stack every few months — the fastest way to learn what ships. ![Two colleagues hugging and hamming it up with a glass of bubbles in the studio kitchen, next to a wall of pinned party photos](https://www.life.rip/work/little-miss-robot-office-party.jpg) _Agency life, after hours._ ## In this folder - [Deliverect](https://www.life.rip/work/leap-forward/little-miss-robot/deliverect) — food-tech marketing site - [Nike Rise Seoul](https://www.life.rip/work/leap-forward/little-miss-robot/nike-concept-store) — in-store touch table - [Bonsai festival](https://www.life.rip/work/leap-forward/little-miss-robot/pay-bonsai) — 10-meter LED forest - [Cookiebot theme configurator](https://www.life.rip/work/leap-forward/little-miss-robot/cookiebot-theme-configurator) — on-brand cookie banners - [Hack The Future 2020](https://www.life.rip/work/leap-forward/little-miss-robot/hack-the-future-2020) — hackathon campaign site # Deliverect website Marketing site for **Deliverect**, the Belgian food-tech scale-up that connects delivery platforms to restaurant POS systems. | stack | type | link | | :- | :- | :- | | **React** | **client work** | [deliverect.com](https://www.deliverect.com/en) | ![Deliverect homepage](https://www.life.rip/cms-assets/cl8iykq7u08z10bthvrczd7xt-deliverect-homepage.jpg) - Component-driven marketing pages - CMS-backed, so the team ships pages without a developer - Performance budget kept honest across markets and locales # Nike concept store A touch table for the Nike Rise concept store in Seoul 🇰🇷: put real shoes on top to compare them. | stack | type | press | | :- | :- | :- | | **React · Framer Motion** | **installation** | [Sneaker Freaker](https://www.sneakerfreaker.com/news/look-inside-the-nike-rise-seoul-concept-store-is-a-retail-dream) | [Video (MP4)](https://www.life.rip/cms-assets/nike-concept-store.mp4) - Runs unattended, in public, all day - Recovers silently from network and hardware hiccups - Resilience first, spectacle second ![Nike concept store table mockup](https://www.life.rip/cms-assets/cl8gk2i3cqmv40drsonahra24-nike-store-table-mockup.png) ![Nike Inside Track table](https://www.life.rip/cms-assets/cl8hr1nzxal7y0auofc35l09n-nike-inside-track-table-mockup.jpg) ![Nike Inside Track UI](https://www.life.rip/cms-assets/cl8hr11lvakq30auoyo3uw5ue-nike-inside-track-ui.jpg) # Bonsai festival installation Every tree planted through the **Pay Bonsai** app, visualized live as a growing mangrove forest on a 10-meter LED wall. | type | client | | :- | :- | | **installation** | **Pay Bonsai** | [Video (MP4)](https://www.life.rip/cms-assets/cl8h8nc6w2nse0eusrm6aml8s-bonsai-growing-forest.mp4) - Space-tech constraints, festival budget - Built for flaky connectivity and heavy load peaks - Ran smoothly all festival long # Cookiebot Banner Theme Configurator Cookiebot handles GDPR compliance, but its default banner is ugly. This tool themes it to match any brand: pick the colors, get a banner that belongs on the site. | stack | type | link | | :- | :- | :- | | **JavaScript** | **internal tool** | [koekjes.lfwd.be](https://koekjes.lfwd.be/) | ![The theme configurator, with a live Cookiebot banner preview](https://www.life.rip/work/cookiebot-theme-configurator.jpg) - Built at [Leap Forward](https://leapforward.be/) for every brand we shipped - Leaves Cookiebot's compliance logic untouched - Yes, the domain means "cookies" # Hack The Future 2020 Campaign site for **Hack The Future**, one of Belgium's biggest hackathons: put the 2020 edition in front of students and get them to sign up. | stack | role | link | | :- | :- | :- | | **HTML** | **front-end development** | [hackthefuture.be](https://www.hackthefuture.be/) (today) | ![Hack The Future 2020 landing page](https://www.life.rip/cms-assets/cl8hf5jt44wif0euskr761tjb-hackthefuture-2020-landingpage.jpg) - Plain, fast HTML — sometimes the boring stack is the right one - Design and storytelling by Once storytelling - The previous edition drew 500+ participants over two days # Perfect Day _Design the day you'd love to live._ Drag activity blocks onto a timeline from morning to midnight, name your day and export it as a poster. Published days join a shared wall. | stack | status | link | | :- | :- | :- | | **React · Convex · Capacitor** | **live** | [theperfect.day](https://www.theperfect.day/) | [Video (MP4)](https://www.life.rip/side-projects/perfect-day.mp4) - One screen, no sign-up to start - Poster export that links back to the day - A pan-and-zoom wall of everyone's published days - Link previews that show _that_ person's day - iOS and Android from the same codebase ![Perfect Day landing page with the day editor](https://www.life.rip/side-projects/perfect-day-hero.jpg) # Eindgoed Vastgoed _Jouw woning, zelf verkocht._ Belgian estate agents take around 3%. Eindgoed Vastgoed lets homeowners sell it themselves for a one-time €18, guided from first photo to notary deed. | stack | status | link | | :- | :- | :- | | **Next.js · Neon Postgres** | **live MVP** | [eindgoedvastgoed.be](https://www.eindgoedvastgoed.be/) | ![Eindgoed Vastgoed landing page — "Jouw woning, zelf verkocht"](https://www.life.rip/side-projects/eindgoed-vastgoed.jpg) - A 26-step checklist in 6 phases that ticks itself off - Rules per Belgian region, picked from your postal code - A public listing page with gallery, EPC badge and contact form - Buyers book viewings themselves - A document vault with in-browser PDF and Word previews # Home dashboard A realtime dashboard for our two-person household, on an old MacBook and both our phones. Not a product — the kind of tool you only get by building it yourself. | stack | status | | :- | :- | | **Next.js · Convex** | **personal tool** | ![The dashboard on a Wednesday morning: routes, shopping list and training goals](https://www.life.rip/side-projects/home-dashboard.jpg) - Resizable, reorderable widget grid - Shared shopping list, synced in realtime - GPX route library with map and elevation profile - Training goals with over-the-top pep talks - A full-screen pixel clock for when nobody's looking # Lifeline _The timeline of your life's greatest events._ A private social timeline for festivals, trips and nights out — shared only with the friends who were there. | stack | status | | :- | :- | | **Next.js · Clerk · Sanity** | **prototype** | ![Lifeline — the timeline of your life's greatest events](https://www.life.rip/side-projects/lifeline-og.jpg) - Photos, tagged friends and a 1–10 mood score per event - Visibility per event, down to specific friend groups - Sanity Studio built right into the app - Installable on your phone # KOJO — virtual garden A Web3 garden about water: use less than your peers and your on-chain garden grows. Built in a team of four during the Howest blockchain postgraduate. | stack | type | links | | :- | :- | :- | | **Solidity · Polygon · Next.js** | **postgrad project** | [app](https://play-kojo.vercel.app) · [code](https://github.com/wowtvds/kojo-blockchain-project) · [pitch](https://pitch.com/public/c3458a69-2c47-45eb-be04-bb3ada5b15df) | ![KOJO — grow a virtual garden while caring for a real planet](https://www.life.rip/side-projects/kojo.jpg) - Garden state on-chain, ownership as NFTs on IPFS - Magic.link sign-in, so no crypto wallet needed - Serverless API with Prisma on CockroachDB ![KOJO app dashboard](https://www.life.rip/cms-assets/cl8hd9k8j4b5m0eus1k3g2ck7-kojo-app-dashboard.jpg) ![KOJO app leaderboard](https://www.life.rip/cms-assets/cl8hd9zbuunmf0ct58qt21ti4-kojo-app-leaderboard.jpg) ![KOJO technical architecture](https://www.life.rip/cms-assets/cl8uk70zl7e950at8ojwoq5wr-kojo-technical-architecture.svg) # Fire Jackson e-commerce Customizable fire extinguishers that hang in your living room instead of hiding in a closet. A hobby that grew into a venture — this is its store. | stack | type | link | | :- | :- | :- | | **Nuxt · Storyblok · Mollie** | **own venture** | [firejackson.vercel.app](https://firejackson.vercel.app) | ![Fire Jackson home page](https://www.life.rip/cms-assets/cl8hckqjgogq80duvds38yrvb-fire-jackson-home.jpg) - Checkout in as few steps as possible - Serverless on Vercel - Easy to run for a very small team (of extinguisher enthusiasts) ![Fire Jackson product page](https://www.life.rip/cms-assets/cl8hcfk1j4xde0auo5jlyc1ns-fire-jackson-website.jpg) # Speedback tool Clients report bugs and feedback in minutes, without making an account. | stack | status | links | | :- | :- | :- | | **Next.js · Hygraph · Magic.link** | **beta** | [app](https://speedback.vercel.app/) · [code](https://github.com/wowtvds/speedback) | ![Speedback — the easiest way to gather client feedback](https://www.life.rip/side-projects/speedback.jpg) - Feedback flowing in three minutes after setup - Passwordless login for clients - Tailwind CSS and esbuild, hosted on Vercel ![Speedback app](https://www.life.rip/cms-assets/cl8hkv95m715d0btcbom7n6g1-speedback-app.jpg) # Smart Docs Upload a Solidity **ABI**, get browsable docs for your smart contracts. No build step, no excuses for undocumented contracts. | stack | type | links | | :- | :- | :- | | **Docusaurus · Solidity** | **postgrad project** | [app](https://smart-docs.vercel.app/) · [code](https://github.com/wowtvds/smart-docs) | ![Smart Docs homepage design](https://www.life.rip/cms-assets/cl8izmbu20xji0auhm7jhmjx6-smart-docs-homepage-design.jpg) # GORE SCHIJVEN™️ A Spotify playlist of the dirtiest drops imaginable, made with colleagues [Sjouwke](https://www.linkedin.com/in/sjouwkevanparys/) and [Lars](https://www.linkedin.com/in/lars-marginet-b07528215/) — then given the website it deserved. | stack | type | links | | :- | :- | :- | | **Notion as CMS** | **side project** | [site](https://goreschijven.vercel.app) · [code](https://github.com/wowtvds/gore-schijven) | ![The dirtiest covers in the catalogue](https://www.life.rip/cms-assets/cli8onljzk04s0bumg54raj9y-gore-schijven-covers.png) - A Notion database as the single source of truth - No admin panel, no deploys for content changes - Cover art by DALL·E, of course ![DALL·E cover art](https://www.life.rip/cms-assets/clhs6swste81l0bteyw6wgsjp-gore-schijven-dalle-cover-alt.png) # H-Art website A portfolio for my mother's acrylic & calligraphy work, built to frame the art without competing with it. | stack | type | link | | :- | :- | :- | | **Vue** | **side project** | [hilde-art.be](https://www.hilde-art.be/) | ![The H-Art site — Hilde at work on a calligraphy piece](https://www.life.rip/side-projects/h-art.jpg) # About me Grew up in a small farming village in Belgium, now in Ghent with my +1 and a tiny dog. Found my thing at [Devine](https://www.devine.be/) in Kortrijk; these days I build front ends at [o2o Bicycle Leasing](https://www.o2o.be/nl). Off the clock: cycling, running my [weekly miles](https://www.strava.com/athletes/42285746), and the occasional party. ## Game collection ![Wout and his +1 riding road bikes side by side up a wooded mountain road, laughing](https://www.life.rip/about-me/cycling.jpg "my comfort zone") ![Wout and his border collie Rufus, heads together under a cloudy sky](https://www.life.rip/about-me/rufus.jpg "player two: rufus") ![Handlebar view of a loaded bikepacking rig paused in tall grass, bike computer auto-paused near the summit](https://www.life.rip/about-me/bikepacking.jpg "off the grid") ![A big bowl of spaghetti bolognese and a hot chocolate on a sunny café terrace, mid-ride](https://www.life.rip/about-me/coffee-cake.jpg "Favorite diet") ## Numbers never lie - **1998** Spawn year: Same as Google. Only one of us indexed the internet. - **6** Open side-projects: All "almost done". - **135** Printer tickets: Because I work in IT. ## See also - Career: [CHANGELOG.md](https://www.life.rip/changelog) - Tools & stack: [ARCHITECTURE.md](https://www.life.rip/about-me/architecture) - On repeat: [current-mood.mp3](https://www.life.rip/about-me/current-mood) # Architecture The tools I open every day and the stack I ship with. ## Daily drivers - Claude - Notion - Figma - Gemini - GitHub - Slack - Linear - Spotify ## Stack - Vue.js - Nuxt - React - Next.js - Svelte - TypeScript - JavaScript - HTML - CSS - Tailwind CSS - Node.js - GraphQL - Sanity - Hygraph - Storyblok - Neon - Convex - Stripe - Resend - Vercel - Ionic - Capacitor - Solidity - Ethereum - Git - Vite - Biome # Current mood On repeat this week: [We Are Fire on Spotify](https://open.spotify.com/track/7ilYgGXYEkJ0uk0Loxr8ym) # Contact Say hi. Ideas, projects and bad puns all welcome — printer problems less so. - email: - github: [github.com/Astrowout](https://github.com/Astrowout) - linkedin: [linkedin.com/in/wout-vandesompele](https://www.linkedin.com/in/wout-vandesompele/) - strava: [strava.com/athletes/42285746](https://www.strava.com/athletes/42285746) - spotify: [open.spotify.com/user/116709396](https://open.spotify.com/user/116709396) - pitch: [pitch.com/u/Astrowout](https://pitch.com/u/Astrowout) - messenger: [m.me/wout.vandesompele](https://m.me/wout.vandesompele) - location: Ghent, Belgium - response\_time: usually < 24h # Hi, I'm Wout. I build digital products that hold up — and sometimes even make sense. - Creative Developer - Ghent, Belgium - Born in the Game Boy Color era **Same kid, new console: my laptop.** I build space-grade software for people with average jobs — websites, webshops, installations and the occasional smart contract. ## Now playing - [Perfect Day](https://www.life.rip/side-projects/perfect-day) (live): Design your ideal day, publish it as a poster - [o2o Bicycle Leasing](https://www.life.rip/work/o2o-bicycle-leasing) (day job): Bike leasing through your employer, minus the paperwork ## Level select Pick a file. Or read [about me](https://www.life.rip/about-me), or just [say hi](https://www.life.rip/contact/links). ### work/ | | | | - | - | | [o2o-bicycle-leasing/](https://www.life.rip/work/o2o-bicycle-leasing) | Front-end developer · 2025 – now | | [basalte/](https://www.life.rip/work/basalte) | Software engineer · 2024 – 2025 | | [little-miss-robot/](https://www.life.rip/work/leap-forward/little-miss-robot) | Creative developer · 2019 – 2024 | | [deliverect.tsx](https://www.life.rip/work/leap-forward/little-miss-robot/deliverect) | Food-tech marketing site | | [nike-concept-store.tsx](https://www.life.rip/work/leap-forward/little-miss-robot/nike-concept-store) | Touch table for Nike Rise Seoul | | [pay-bonsai.md](https://www.life.rip/work/leap-forward/little-miss-robot/pay-bonsai) | 10-meter LED forest at a festival | | [cookiebot-theme-configurator.js](https://www.life.rip/work/leap-forward/little-miss-robot/cookiebot-theme-configurator) | Cookie banners that match the brand | | [hack-the-future-2020.html](https://www.life.rip/work/leap-forward/little-miss-robot/hack-the-future-2020) | Hackathon campaign site | ### side-projects/ | | | | - | - | | [perfect-day.tsx](https://www.life.rip/side-projects/perfect-day) | Design your perfect day · live | | [eindgoed-vastgoed.tsx](https://www.life.rip/side-projects/eindgoed-vastgoed) | Sell your home without an agent · live | | [home-dashboard.tsx](https://www.life.rip/side-projects/home-dashboard) | Realtime household dashboard | | [lifeline.tsx](https://www.life.rip/side-projects/lifeline) | Private timeline of life's big moments | | [kojo.sol](https://www.life.rip/side-projects/kojo) | Web3 garden that grows as you save water | | [firejackson.vue](https://www.life.rip/side-projects/firejackson) | Store for design fire extinguishers | | [speedback.tsx](https://www.life.rip/side-projects/speedback) | Client bug reports in minutes | | [smart-docs.sol](https://www.life.rip/side-projects/smart-docs) | Docs for Solidity contracts | | [gore-schijven.md](https://www.life.rip/side-projects/gore-schijven) | The dirtiest drops on Spotify | | [h-art.vue](https://www.life.rip/side-projects/h-art) | My mother's art portfolio | # Changelog All notable changes to **Wout**. This project doesn't follow semantic versioning. Neither does life. ## Releases ### \[Unreleased] #### Added - [Perfect Day](https://www.life.rip/side-projects/perfect-day), live: design your perfect day, publish it as a poster - [Eindgoed Vastgoed](https://www.life.rip/side-projects/eindgoed-vastgoed), MVP: sell your Belgian home without an agent - This portfolio, rebuilt as an IDE. You're in it. #### Planned - A product that pays for itself. Saving progress often. ### \[2025 – now] · o2o Bicycle Leasing #### Added - Front-end developer on Belgium's bike-leasing platform — [work/o2o-bicycle-leasing](https://www.life.rip/work/o2o-bicycle-leasing) - Vue.js flows from "maybe a bike?" to riding one #### Changed - Commute: now pedal-powered ### \[2024 – 2025] · Basalte #### Added - Software engineer, creative development & UX — [work/basalte](https://www.life.rip/work/basalte) - Home-control interfaces held to the standard of the hardware on the wall #### Fixed - "Smart home" no longer has to mean "complicated home" ### \[2021 – 2022] · Blockchain postgraduate #### Added - Blockchain architecture & development at Howest Bruges - [KOJO](https://www.life.rip/side-projects/kojo): a Web3 garden that grows when your household saves water - [Smart Docs](https://www.life.rip/side-projects/smart-docs): Solidity ABI in, contract docs out ### \[2019 – 2024] · Leap Forward / Little Miss Robot #### Added - Creative developer, JavaScript everywhere — [little-miss-robot/](https://www.life.rip/work/leap-forward/little-miss-robot) - [Deliverect](https://www.life.rip/work/leap-forward/little-miss-robot/deliverect): React marketing site for the food-tech scale-up - [Nike Rise Seoul](https://www.life.rip/work/leap-forward/little-miss-robot/nike-concept-store): a touch table that compares real shoes - [Bonsai festival](https://www.life.rip/work/leap-forward/little-miss-robot/pay-bonsai): a mangrove forest growing live on a 10-meter LED wall - [Cookiebot theme configurator](https://www.life.rip/work/leap-forward/little-miss-robot/cookiebot-theme-configurator): consent banners that match the brand - [Hack The Future 2020](https://www.life.rip/work/leap-forward/little-miss-robot/hack-the-future-2020): campaign site for a big Belgian hackathon #### Fixed - The gap between "designed" and "shipped", repeatedly ### \[2019] · Internships #### Added - wild 🇦🇹 in Vienna, building with Next.js - In The Pocket Summer Academy: concept & prototyping ### \[2016 – 2019] · Devine #### Added - Digital Design & Development ([Devine](https://www.devine.be/)) at Howest Kortrijk - A careful balance between good grades and a social life #### Deprecated - Useless subjects from secondary school ### \[1998] · Initial release #### Added - Shipped to a small farming village in Belgium - The habit of asking "how does this work?" --- Spotted a bug? [Open an issue](https://www.life.rip/contact/links) over coffee. # AGENTS.md Every repo has a file for the AI agents working in it. This one is for the agents reading it. Humans: this is how your assistant finds its way around. ## Read the site - Index: [llms.txt](https://www.life.rip/llms.txt), every page in one line - Everything at once: [llms-full.txt](https://www.life.rip/llms-full.txt) - Any page as Markdown: add `.md` to the URL, like [about-me.md](https://www.life.rip/about-me.md). The home page is [index.md](https://www.life.rip/index.md). - Or ask the normal URL for Markdown: ```bash curl -H "Accept: text/markdown" https://www.life.rip/about-me ``` ## House rules - Quote freely. Link the page you got it from. - Jobs and dates: [CHANGELOG.md](https://www.life.rip/changelog) is the source of truth. - Reaching out for someone? Draft the email to `wout.workspace@gmail.com` and let your human press send. No automated outreach.