Twee applicaties, twee manieren van bouwen. SolidQMS en SolidBowtie zijn allebei door Bonaroo ontwikkeld, maar ze vertellen elk een ander hoofdstuk in hoe software bij ons ontstaat: van klassiek vakmanschap dat stap voor stap AI omarmde, tot een product dat vanaf de eerste regel AI-first is opgezet.

De rode draad blijft steeds dezelfde: de mens met domeinkennis staat aan het roer, de AI neemt het til- en zoekwerk over. Wat verschuift, is hoe diep AI in het ontwerp- en ontwikkelproces zit. Hieronder de twee verhalen, met de volledige tools en technieken die we onderweg inzetten.

Hoofdstuk 1 — klassiek begonnen, steeds meer mét AI gebouwd

Kwaliteitsmanagement voor gereguleerde industrie.

SolidQMS begon zoals software al decennia begint: een ervaren engineer en een domeinexpert in kwaliteitsmanagement, samen aan tafel. Stap voor stap bouwden we het fundament op — een robuuste Ruby on Rails-monoliet, een domeinmodel dat inmiddels meer dan 140 modellen telt, en multi-tenancy zodat elke organisatie haar eigen geïsoleerde omgeving heeft. De functionaliteit groeide mee met wat kwaliteitsmanagers écht nodig hadden: non-conformiteiten, audits, risicobeheer, trainingen en documentbeheer.

Wat in de loop van het project veranderde, was niet zozeer het product, maar de manier waaróp we het bouwden. Naarmate de codebase groeide, schoof AI op van handig hulpmiddel naar vast onderdeel van de engineering. Eerst als slimme code-assistentie, daarna als volwaardige meewerkende kracht: Claude Code werd onderdeel van de dagelijkse ontwikkeling — code genereren, refactoren en de codebase verkennen, steeds onder supervisie van de engineer.

Die werkwijze trok door tot in de pijplijn. Claude Code draait mee in de CI/CD en voert op elke pull request een code-review uit, naast de geautomatiseerde tests. Nieuwe functionaliteit ontwerpen en implementeren ging zo steeds meer in samenspel met AI — full-scale design en development waarin de ervaren engineer en de domeinexpert de architectuur, de keuzes en de acceptatiecriteria bepalen, en de AI het bouwwerk versnelt.

Het product zelf kreeg gaandeweg óók AI-ondersteuning, maar gericht en spaarzaam: alleen waar het de kwaliteitsmanager echt werk uit handen neemt, zoals hulp bij 8D-analyses, leveranciersbeoordeling en documentreview. De grootste verschuiving zat in het ontwikkelproces: van klassiek handwerk naar steeds verder AI-ondersteunde ontwikkeling — met de mens onveranderd aan het roer.

De volledige stack van SolidQMS

Backend Ruby on Rails 8.1, Ruby 3.3, Puma
Frontend Hotwire (Turbo + Stimulus), Bootstrap 5, esbuild, Sass, ViewComponent
Data & multitenancy PostgreSQL 17, ros-apartment (schema-based), Redis, Sidekiq, CarrierWave, AWS S3
AI-ondersteund ontwikkelen Claude Code als vaste ontwikkelpartner (code genereren, refactoren, codebase verkennen) onder supervisie van de engineer
AI in het product Gericht ingezet: ruby-anthropic + ruby-openai (provider-agnostisch), Claude Sonnet 4.6 — alleen waar het de kwaliteitsmanager werk uit handen neemt
Auth & security Devise, TOTP 2FA, WebAuthn passkeys, OmniAuth (Google / OIDC), Action Policy, Brakeman, bundler-audit, secure_headers, rack-attack
Visualisatie & documenten Chart.js, Highcharts, D3, Frappe Gantt, chartkick, ProseMirror, Trix, Grover (PDF), caxlsx
Testing & kwaliteit Minitest, Capybara, Cuprite, FactoryBot, SimpleCov, RuboCop
Deploy & infra Capistrano, Ansible, Nginx, systemd, VPS
Monitoring & analytics Sentry, Ahoy, PaperTrail, lograge
Dev-proces GitHub Actions met AI-code-review op elke pull request, naast de geautomatiseerde tests
SolidBowtie
Hoofdstuk 2 — AI-first vanaf de eerste regel

Een modern, multiplayer platform voor bowtie-risicoanalyse.

SolidBowtie is het vervolg op alles wat we bij SolidQMS leerden — maar omgekeerd aangepakt. Waar bij SolidQMS de AI ná het fundament kwam, vertrok SolidBowtie er juist mee. Vanaf de eerste regel code was de ontwikkeling AI-first: brainstorm, specificatie, architectuur en implementatie liepen via Claude Code en het superpowers-framework, met commits die Claude als co-auteur vermelden.

Die werkwijze maakte ruimte voor scherpe, bewuste keuzes in de stack. In plaats van Redis en losse Node-processen draait SolidBowtie volledig op de Solid-stack — Solid Queue, Solid Cache en Solid Cable, alles op PostgreSQL en één proces minder om te beheren. Voor deployment koos het Kamal met Docker in plaats van Capistrano. De interface is Hotwire waar dat kan, met een React-eiland (React Flow) voor het enige onderdeel dat een rijke canvas vraagt: de bowtie-editor zelf, met realtime multiplayer.

AI is hier geen toevoeging maar een kernfunctie: beschrijf je risico in gewone taal en Claude Opus 4.8 schetst een complete bowtie — dreigingen, gevolgen, barrières en escalatiefactoren — die je daarna verfijnt. Onder de motorkap zit degelijk vakwerk: defensieve JSON-parsing, sanitisatie van alle waarden tegen whitelists, limieten op de output en rate-limiting per gebruiker. AI die genereert, maar binnen strakke, controleerbare kaders.

SolidBowtie laat zien waar de leercurve uitkomt: niet ‘AI toevoegen aan software’, maar software ontwerpen ván de grond af mét AI.

De volledige stack van SolidBowtie

Backend Ruby on Rails 8.1, Ruby 3.3, Puma
Frontend Hotwire (Turbo + Stimulus), React 19, React Flow (@xyflow/react), Tailwind CSS v4, esbuild, ViewComponent, html-to-image
Data & multitenancy PostgreSQL 17, row-level multitenancy (Organization), Solid Queue, Solid Cache, Solid Cable
AI anthropic (officiële SDK), Claude Opus 4.8, adaptive thinking, defensieve parsing & sanitisatie, rate-limiting
Auth & security Rails 8 authenticatie, bcrypt, Google OAuth, Pundit, honeypot + rate-limiting, Brakeman, bundler-audit
Realtime & multiplayer Solid Cable (ActionCable), presence-tracking, gedeelde live canvas
Billing & analytics Stripe (abonnementen + webhooks), Plausible (cookieloos)
Testing & kwaliteit Minitest, Capybara, Selenium, FactoryBot, RuboCop
Deploy & infra Kamal, Docker, ghcr.io, Hetzner, Nginx, Let’s Encrypt, Resend (e-mail)
Dev-proces Claude Code + superpowers, GitHub Actions (scan / lint / test / system-test)

Twee aanpakken naast elkaar

  SolidQMS SolidBowtie
OntstaanKlassiek gebouwd, daarna AI-geïntegreerdAI-first vanaf dag één
Rol van AIVooral in het ontwikkelproces; in het product alleen waar het echt helptKernfunctie én ontwerpprincipe
Dev-procesAI gaandeweg vast onderdeel: coding, CI en code-reviewBrainstorm → spec → bouw met Claude Code / superpowers
Queue & cacheSidekiq + RedisSolid Queue / Cache / Cable (geen Redis)
FrontendHotwire + BootstrapHotwire + React Flow-eiland + Tailwind v4
MultitenancySchema-based (ros-apartment)Row-level (Organization)
DeploymentCapistrano + Ansible op VPSKamal (Docker) op Hetzner
AI-modelClaude Sonnet 4.6 (provider-agnostisch)Claude Opus 4.8

Geen van beide vervangt het vakmanschap. De engineer met ervaring en de domeinexpert bepalen wát er gebouwd wordt en waaróm — AI versnelt het bouwen. Dat is precies hoe wij software maken: 50 jaar engineering-ervaring als kompas voor AI-agents.

Software bouwen mét AI?

Benieuwd wat een AI-first aanpak voor uw product betekent? Neem contact op: 020-240.02.71 of menno@bonaroo.nl

Neem contact op