[{"data":1,"prerenderedAt":172},["ShallowReactive",2],{"profile":3,"page-colophon":168},{"name":4,"meta":5,"statement":6,"lede":9,"description":10,"readout":11,"current":21,"work":67,"trajectory":110,"notes":139,"about":142,"contact":152},"Chris Wijnia","Engineer · Founder",{"text":7,"accent":8},"I build software and companies.","companies.","I work out what’s worth building next.","Dutch engineer and founder. I work out what’s worth building next.",[12,15,18],{"label":13,"value":14},"Origin","Netherlands",{"label":16,"value":17},"Work","Product \u002F R&D",{"label":19,"value":20},"Status","Online",{"title":22,"accent":23,"records":24},"What I’m working on.","working on.",[25,40,54],{"id":26,"label":27,"headline":28,"accent":29,"paragraphs":30,"facets":33,"period":39},"agio","01 \u002F Agio Digital","Building financial software.","financial software.",[31,32],"I co-founded Agio Digital in 2021 and have been its Chief Innovation Officer since 2026.","I work across product architecture, compliance and AI: fund operations and reporting, regulated onboarding, payments, and the agents that increasingly help build it all. I still write code.",[34,35,36,37,38],"Financial software","Compliance","Product","Engineering","R&D","2021–Now",{"id":41,"label":42,"headline":43,"accent":44,"paragraphs":45,"facets":48,"period":53},"ai","02 \u002F AI & software","Finding useful things to do with new models.","new models.",[46,47],"I spend a lot of time on agents, developer tools, automation and new ways of building software.","I’m less interested in demos than in what holds up once real users, existing systems and messy constraints get involved.",[49,50,51,52],"Agents","Developer tools","Automation","Applied AI","2022–Now",{"id":55,"label":56,"headline":57,"accent":58,"paragraphs":59,"facets":62,"period":66},"independent","03 \u002F Independent work","Building things to see where they go.","where they go.",[60,61],"Small software projects, open-source work, strange interfaces and ideas that start as a repository before they have a business case.","Some become useful. Some answer a question. That’s enough.",[63,64,65],"Software","Open source","Experiments","Ongoing",{"title":68,"accent":69,"outro":70,"projects":71},"A few things I’ve worked on.","worked on.","The work has changed a lot over the years. The habit of making things hasn’t.",[72,77,82,88,94,99,104],{"no":73,"name":74,"area":75,"period":39,"slug":76},"01","Agio Digital","Financial software \u002F Compliance","agio-digital",{"no":78,"name":79,"area":80,"period":53,"slug":81},"02","AI systems","Agents \u002F Automation \u002F Developer tools","ai-systems",{"no":83,"name":84,"area":85,"period":86,"slug":87},"03","1GRAM","Wallet software","2020–2021","1gram",{"no":89,"name":90,"area":91,"period":92,"slug":93},"04","JIJ & Overijssel","Public participation platform","2016","jij-overijssel",{"no":95,"name":96,"area":97,"period":92,"slug":98},"05","MVRDV","Digital platform \u002F Architecture","mvrdv",{"no":100,"name":101,"area":102,"period":103,"slug":101},"06","100-100-100","Sustainability campaign platform","2015",{"no":105,"name":106,"area":107,"period":108,"slug":109},"07","Archive","Design \u002F Web \u002F Software","2007–2022","archive",{"title":111,"accent":112,"eras":113},"Moving down the stack as the web evolved.","evolved.",[114,118,121,123,127,131,135],{"year":115,"name":116,"line":117},"2005","Design","Learning the web by making things.",{"year":119,"name":36,"line":120},"2013","Design became code.",{"name":37,"line":122},"Code became systems.",{"year":124,"name":125,"line":126},"2018","Wallets","Software for a new kind of money.",{"year":128,"name":129,"line":130},"2021","Financial infra","Building systems where software meets regulation.",{"year":132,"name":133,"line":134},"2022","AI","From using models to orchestrating them.",{"year":136,"name":137,"line":138},"Now","Building","All of it, at once.",{"title":140,"intro":141},"Notes","Things I’m working on, learning or trying to understand.",{"title":143,"accent":144,"paragraphs":145},"I’ve been making things on computers for most of my life.","life.",[146,147,148,149,150,151],"I grew up in the Netherlands and built my first websites at thirteen.","I trained in interaction design, and design pulled me into frontend development, then engineering, product architecture and eventually company-building.","Over the years I’ve worked on websites, consumer products, distributed systems, financial systems and now AI. I don’t draw hard lines between design, engineering and product. They’re different ways of looking at the same problem.","Lately that includes regulated work: onboarding, compliance and fund reporting, where the rules shape the product as much as the users do.","I like small teams, ambitious projects, good engineering and people who can disagree without making it tedious. I still enjoy opening an empty repository and figuring something out.","I work internationally. Outside work I train Muay Thai and like [chess](\u002Fexperiments\u002Fchess960), which I played competitively in Zwolle and taught to primary-school children there. I also build things that occasionally have no sensible commercial purpose.",{"title":153,"accent":154,"intro":155,"links":156},"Making something interesting?","interesting?","For companies, collaborations, technical discussions, speaking, new ventures, or a good reason I haven’t thought of.",[157,159,162,165],{"label":158},"Email",{"label":160,"href":161},"LinkedIn","https:\u002F\u002Fwww.linkedin.com\u002Fin\u002Fchris-wijnia-1364a29b",{"label":163,"href":164},"GitHub","https:\u002F\u002Fgithub.com\u002Fcwdx",{"label":166,"href":167},"X","https:\u002F\u002Fx.com\u002FChrisWijnia",{"slug":169,"title":170,"html":171},"colophon","Colophon","\u003Cp>At the back of a printed book is a page that says how it was made. This is that page.\u003C\u002Fp>\n\u003Ch2 data-no=\"01 \u002F 06\">The type\u003C\u002Fh2>\n\u003Cul>\n\u003Cli>\u003Cstrong>\u003Ca href=\"https:\u002F\u002Ffonts.google.com\u002Fspecimen\u002FHost+Grotesk\" target=\"_blank\" rel=\"noopener\">Host Grotesk\u003C\u002Fa>.\u003C\u002Fstrong> Headlines and running text.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>\u003Ca href=\"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FApple_Garamond\" target=\"_blank\" rel=\"noopener\">Apple Garamond\u003C\u002Fa>.\u003C\u002Fstrong> The one italic phrase in each headline.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>\u003Ca href=\"https:\u002F\u002Fdeparturemono.com\" target=\"_blank\" rel=\"noopener\">Departure Mono\u003C\u002Fa>.\u003C\u002Fstrong> Labels, numbers, readouts and the glyph graphics, by Helena Zhang.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>\u003Ca href=\"https:\u002F\u002Fctan.org\u002Ftex-archive\u002Ffonts\u002Fchess\u002Fenpassant\" target=\"_blank\" rel=\"noopener\">Merida and its relatives\u003C\u002Fa>.\u003C\u002Fstrong> The chess pieces in the Chess960 experiment, by Armando H. Marroquín, with Utrecht by Hans L. Bodlaender.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch2 data-no=\"02 \u002F 06\">The colour\u003C\u002Fh2>\n\u003Cul>\n\u003Cli>\u003Cstrong>Ink on paper.\u003C\u002Fstrong> Near-black \u003Ccode>#1e1e1e\u003C\u002Fcode> on off-white \u003Ccode>#fbfbf9\u003C\u002Fcode>, with greys between for rules and small print.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Signal amber.\u003C\u002Fstrong> \u003Ccode>#fd9700\u003C\u002Fcode>, the one loud colour: the primary button, the live states, one flat section. It is the most saturated amber that keeps ink on it at AAA contrast.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Sea.\u003C\u002Fstrong> \u003Ccode>#b4cbc7\u003C\u002Fcode>, the highlight behind a hovered row: a quiet tint at the lightness of the greys, turned from the amber’s hue.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch2 data-no=\"03 \u002F 06\">The press\u003C\u002Fh2>\n\u003Cul>\n\u003Cli>\u003Cstrong>\u003Ca href=\"https:\u002F\u002Fnuxt.com\" target=\"_blank\" rel=\"noopener\">Nuxt\u003C\u002Fa> 4.5.2 and \u003Ca href=\"https:\u002F\u002Fvuejs.org\" target=\"_blank\" rel=\"noopener\">Vue\u003C\u002Fa> 3.5.43.\u003C\u002Fstrong> Server-rendered, most pages prerendered, hosted on \u003Ca href=\"https:\u002F\u002Fvercel.com\" target=\"_blank\" rel=\"noopener\">Vercel\u003C\u002Fa>.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>\u003Ca href=\"https:\u002F\u002Ftailwindcss.com\" target=\"_blank\" rel=\"noopener\">Tailwind CSS\u003C\u002Fa> 4.3.3.\u003C\u002Fstrong> Every colour, size and spacing comes from one set of tokens.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>\u003Ca href=\"https:\u002F\u002Fgsap.com\" target=\"_blank\" rel=\"noopener\">GSAP\u003C\u002Fa> 3.15.0 and \u003Ca href=\"https:\u002F\u002Flenis.darkroom.engineering\" target=\"_blank\" rel=\"noopener\">Lenis\u003C\u002Fa> 1.3.26.\u003C\u002Fstrong> The motion and the smooth scroll. Under reduced motion, none of it runs.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>\u003Ca href=\"https:\u002F\u002Fthreejs.org\" target=\"_blank\" rel=\"noopener\">three.js\u003C\u002Fa> 0.186.0.\u003C\u002Fstrong> Fig. 01, the ringed planet, drawn on WebGPU where the browser has it.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>\u003Ca href=\"https:\u002F\u002Fsli.dev\" target=\"_blank\" rel=\"noopener\">Slidev\u003C\u002Fa> 53.0.0.\u003C\u002Fstrong> The decks, built into static apps and framed on their own pages.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fvercel\u002Fsatori\" target=\"_blank\" rel=\"noopener\">Satori\u003C\u002Fa> 0.33.4.\u003C\u002Fstrong> The link-preview images, set in the same fonts as the site.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>\u003Ca href=\"https:\u002F\u002Fdaringfireball.net\u002F2004\u002F03\u002Fdive_into_markdown\" target=\"_blank\" rel=\"noopener\">Markdown\u003C\u002Fa>.\u003C\u002Fstrong> Notes, case studies and this page are plain text files, rendered by \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fmarkdown-it\u002Fmarkdown-it\" target=\"_blank\" rel=\"noopener\">markdown-it\u003C\u002Fa>.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch2 data-no=\"04 \u002F 06\">The post\u003C\u002Fh2>\n\u003Cul>\n\u003Cli>\u003Cstrong>Hold to send.\u003C\u002Fstrong> The contact button sends when held. While you hold it, your browser solves a small proof of work, which is nothing to a person and costly for anything sending thousands.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>A second reader.\u003C\u002Fstrong> Before a message reaches me, \u003Ca href=\"https:\u002F\u002Ftypesafe.ai\" target=\"_blank\" rel=\"noopener\">TypeSafe\u003C\u002Fa>’s Jev reads it and tags likely spam in the subject line. Nothing is dropped.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Delivery.\u003C\u002Fstrong> Messages land in my inbox through the \u003Ca href=\"https:\u002F\u002Fdevelopers.google.com\u002Fworkspace\u002Fgmail\u002Fapi\u002Fguides\" target=\"_blank\" rel=\"noopener\">Gmail API\u003C\u002Fa>. The \u003Ca href=\"\u002Fprivacy\">privacy page\u003C\u002Fa> says what happens to them.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch2 data-no=\"05 \u002F 06\">The rest\u003C\u002Fh2>\n\u003Cul>\n\u003Cli>\u003Cstrong>Counting visits.\u003C\u002Fstrong> Cookieless page views from Vercel, and Google Analytics only with consent where the law asks for it. No advertising.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Experiments.\u003C\u002Fstrong> Some are hosted elsewhere and shown in a frame, with a link to open them on their own.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch2 data-no=\"06 \u002F 06\">The run\u003C\u002Fh2>\n\u003Cul>\n\u003Cli>\u003Cstrong>In print.\u003C\u002Fstrong> 4 notes, 7 case studies, 1 deck and 4 experiments.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Last built.\u003C\u002Fstrong> 25 Sep 2026. The colours, versions and counts on this page are read from the code and content at build time, so they cannot drift.\u003C\u002Fli>\n\u003C\u002Ful>\n",1790312951835]