Founder
Thomas Thijs
Designs, builds and runs the software, and stays on the hook once it is live. Every engagement goes through him.
Aardstroom B.V. · High Tech Campus, Eindhoven
Aardstroom designs, builds and operates AI software for regulated and sensitive work. Three products are already live, in Ayurvedic clinics and in Dutch asylum practice.
Who does the work
Aardstroom is a small team at the High Tech Campus in Eindhoven, working with a named network of specialists brought in for what a build needs.
Founder
Designs, builds and runs the software, and stays on the hook once it is live. Every engagement goes through him.
Web & AI builder
Has built websites since 2007 as owner of Dexo in Eindhoven: WordPress, strategy, hosting and SEO. Instructional designer and head of growth at Croan, and building more and more with AI. LinkedIn →
Data Protection Officer
Functionaris Gegevensbescherming (FG): appointed Data Protection Officer under Article 37 GDPR, including for MyDosha. Has run Hendriks IT since 2005: 350+ projects across web development, ERP and interim ICT management. mydosha.org/imprint →
From Thomas's network
Business and human rights · independent consultant
Senior expert in business and human rights, lawyer by training (LLM, Queen Mary University of London) and Industry Fellow at the University of Queensland. Leads the workshop on AI in human rights due diligence. waleriaschuele.com → LinkedIn →
Hardware & AI
Industrial designer and energy engineer (TU/e). At DENS he electrified a Liebherr 913 excavator, owning its electrical design, safety and compliance, and worked on high-voltage batteries and the Hydrozine generator. Now builds AI-driven software for companies, and his own hardware product.
What Aardstroom builds
Built for one organisation's way of working, taken through to production, and kept running.
A form that people abandon becomes a conversation they complete, in their own language, while the professional receiving it gets structured, reviewable output. Already in daily use in Ayurvedic clinics and in asylum practice.
Delivered without a large budget, and still running afterwards because the person who built it maintains it. Stack details are under the hood, below.
These products hold health records and asylum case histories, so the controls are already in place and proven in use rather than promised. The specifics are set out under the stack.
Selected work
None are pilots or demonstrations. Each is used by real people today, with a named person answering when something breaks.
Clinical intake and practitioner portal
Patient intake in three languages, an AI written practitioner briefing, and a clinical workspace used in clinics in India and the Netherlands. Underneath it: an appointed data protection officer, signed processor agreements, a published intended use statement under the EU Medical Device Regulation, audit logging, and quarterly restore drills.
Visit mydosha.org →Legal intake for immigration and asylum practice
A conversation that screens a case, translates between the client's language and Dutch, and hands the lawyer a structured preparation summary. Built for solo and small practices, with wellbeing safeguards for people describing difficult histories, and encrypted data held in the EU.
Visit tributi.ai →Consumer assessment
A conversational Ayurvedic profile that listens to how someone actually lives and reflects back a thorough personal reading. The consumer sibling of MyDosha, and the place where the intake approach was proven at volume before it went into clinics.
Visit mytruedosha.com →Who this is for
Four situations, two of them already served by the products above.
Intake that patients complete before the appointment, in their own language, producing a briefing the practitioner can act on.
Built: MyDosha
Client screening that survives translation and hands the lawyer structure instead of a transcript.
Built: Tributi.ai
A bespoke platform for one Code, one cycle and one set of roles, rather than a multi standard product bent to fit.
The shape Aardstroom is built for
The same product on infrastructure you control, with EU hosted or self hosted models.
See: Sovereign when it has to be
How the work is done
Software for a specialist field only works when a specialist shapes it. Every product here was built that way.
Which questions must be asked, which must never be asked, and what the output has to contain before a professional can act on it. That comes from the people who do the work.
Design, engineering, deployment and ongoing operations. A single point of accountability, which shortens the path between a problem being reported and it being resolved.
Live use surfaces the questions that read badly, the points at which people abandon, and the phrasing that does not survive translation. Changes follow that evidence rather than a roadmap.
Scope statements, processor agreements, an appointed data protection officer, audit logging and restore drills, completed during the build rather than in response to a later request.
MyDosha was built on this basis. Aardstroom provided the software. The clinical shape came from practitioners who agreed to be named for it, including the President of the Ayurvedic Practitioners Association UK, a Dutch GP who has practised since 2002 and lectures at Erasmus MC, and the clinics in Goa and the Netherlands that use it daily. They defined what a consultation requires. Aardstroom built the system that collects it.
The same arrangement applies in any sector: an organisation that knows its field, and software built to fit how that field actually works.
Domain expert leads the contentOne engineer accountable end to endCorrected by real use
Under the hood
What the products above run on, and what a new build would be based on. Every item listed is in production and has handled real personal data.
Runtime
Node.js ESM on serverless functions, with static pages served from the edge. No servers to patch and no idle capacity between requests.
Data
PostgreSQL, hosted in the EU. Row level security on every tenant table, and every read and write scoped to the authenticated tenant rather than to an identifier taken from the request. A cross tenant isolation test runs in CI on every push, this being the most common failure mode in multi tenant systems.
Models
Chosen per task. Anthropic Claude, OpenAI, Mistral, and open weight models that can be self hosted. Prompts, guardrails and evaluations live in the repository and are versioned like any other code.
Availability
Every AI path has a deterministic fallback. When a provider is down, rate limited or simply slow, the questionnaire still completes on a static sequence and the outage is reported rather than swallowed.
Authentication
One time codes by email as a second factor, and HMAC-SHA256 signed session tokens. Access links travel in the URL fragment, which a browser never transmits to a server, never writes into a referrer header and never leaves in an access log.
Audit
An append only event log, enforced by a database trigger rather than by convention. Deleting a record goes through an audited stored procedure that snapshots the row first and refuses implausible row counts. The service key cannot issue a raw DELETE against the tables that matter.
Backups
Off platform dumps every six hours, encrypted at rest, ninety day retention. A restore drill runs every quarter into a clean PostgreSQL 16 and asserts row counts table by table. Restores are tested rather than assumed.
Transport
default-src 'self' content security policy, HSTS for two years with preload, a strict origin allow list on every route, and rate limits per address and per identity.
Logs
Email addresses are redacted before they reach a log line and query strings are stripped from anything captured into the audit trail. Runtime logs are not a private store and are not treated as one.
Interop
Your data leaves in open formats whenever you ask. For German clients that includes a DATEV compatible bookkeeping export built to your accountant's own configuration, with no account number ever guessed.
Some material should not leave the jurisdiction it came from. The products here hold clinical records and asylum case histories, so this question has already had to be answered in practice. Where it matters, the build uses models that run inside the EU or inside infrastructure you control: Mistral for European hosted inference, or open weight models deployed on your own hardware. Nothing crosses a border it should not, and nothing is retained for training.
It is the same product on a different substrate, so the choice is a deployment decision rather than a rewrite. Where a non European model is genuinely the better tool for a task, that will be said plainly and the decision is yours.
EU hosted inferenceSelf hosted open weightsNo training on your dataData stays in region
Workshops
Hands-on sessions for teams that need to use AI well, not just hear about it. We work with your own material, and we’re honest about the limits.
Where AI already saves time in your team’s real work, hands-on with your own examples.
Led by Thomas
From experiments to policy: costs, proportionality, which tools, and who decides.
Led by Thomas & Jeroen
What can and can’t go into an AI tool, when you need a DPIA, and how to stay on the right side of your FG.
Led by Jeroen
Using AI in supply chain and human rights work, and the new risks it brings.
Led by Waleria
From idea to a working prototype, for founders and product teams.
Led by Thomas & Mick
What changes when AI runs on a device instead of in the cloud.
Led by Martijn
First session delivered September 2026. Want one for your team? Ask about a workshop →
Describe the process and who in your organisation knows it best. If it is not work Aardstroom should take on, you will get a straight answer and, where possible, a useful alternative.
thomas@aardstroom.com