<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: holistis</title>
    <description>The latest articles on DEV Community by holistis (@holistis).</description>
    <link>https://dev.to/holistis</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3940045%2Fcc7c530b-20f7-472b-892a-d90a4da14eb5.png</url>
      <title>DEV Community: holistis</title>
      <link>https://dev.to/holistis</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/holistis"/>
    <language>en</language>
    <item>
      <title>I Built a Self-Improving Health Platform: Five AI Agents That Learn Every Week</title>
      <dc:creator>holistis</dc:creator>
      <pubDate>Fri, 05 Jun 2026 22:25:05 +0000</pubDate>
      <link>https://dev.to/holistis/i-built-a-self-improving-health-platform-five-ai-agents-that-learn-every-week-1ci5</link>
      <guid>https://dev.to/holistis/i-built-a-self-improving-health-platform-five-ai-agents-that-learn-every-week-1ci5</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Originally published on &lt;a href="https://longevityai.nl/blog/multi-agent-self-improving-health-ai" rel="noopener noreferrer"&gt;longevityai.nl&lt;/a&gt;&lt;/strong&gt; — for full context, comments and related articles, visit the source.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h1&gt;
  
  
  I Built a Self-Improving Health Platform: Five AI Agents That Learn Every Week
&lt;/h1&gt;

&lt;p&gt;Most AI products are static. You fine-tune a model, ship it, and it stays exactly as smart as the day you launched. Your users get the same quality on day 1 as on day 365.&lt;/p&gt;

&lt;p&gt;Mine doesn't work that way.&lt;/p&gt;

&lt;p&gt;Every Wednesday at 3am, five AI agents wake up, talk to each other, and make the next week's reports smarter — without me touching a single line of code.&lt;/p&gt;

&lt;p&gt;This is the architecture that makes it possible.&lt;/p&gt;




&lt;h2&gt;
  
  
  The problem with static AI products
&lt;/h2&gt;

&lt;p&gt;I run &lt;a href="https://longevityai.nl" rel="noopener noreferrer"&gt;Longevity AI&lt;/a&gt; — a health platform that generates personalized 6-month lifestyle plans from a 28-question intake. It cross-references 10+ organ systems, checks 400+ EFSA-regulated claims, and outputs a clinically-framed report in under 15 minutes.&lt;/p&gt;

&lt;p&gt;The core AI is Claude Sonnet. It's powerful. But it only knows what I've taught it.&lt;/p&gt;

&lt;p&gt;The problem: health science moves fast. A new PubMed paper on magnesium and sleep quality drops. My platform doesn't know. A patient with a rare medication combination comes in. The report might miss the interaction. A legal claim sneaks past review. Nobody catches it until a user complains.&lt;/p&gt;

&lt;p&gt;I had two options:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Hire a team of researchers and QA engineers to manually update the system&lt;/li&gt;
&lt;li&gt;Build agents that do it automatically&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;I chose option 2. Here's exactly how it works.&lt;/p&gt;




&lt;h2&gt;
  
  
  The multi-agent architecture
&lt;/h2&gt;

&lt;p&gt;Five agents run on a fixed schedule. One orchestrates them all.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Wednesday 03:00  Synthetic Patients Agent
Wednesday 04:00  Auto-KB Agent
Tuesday   03:30  Developer Tools Radar
Monday    07:00  Weekly Digest Agent
Always active    Agent Orchestrator
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;They don't share a runtime. They communicate through the database and a lightweight event system. No complex framework — just &lt;code&gt;reportAgentEvent()&lt;/code&gt; and a rules table.&lt;/p&gt;




&lt;h2&gt;
  
  
  Agent 1: Synthetic Patients
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;The core of the self-improvement loop.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Every Wednesday at 3am, 10 synthetic patient profiles are selected from a static template library (5 conditions x 2 psychological archetypes). These are fake patients with real-looking intake responses: ferritin levels, medication lists, trauma history, stress scores.&lt;/p&gt;

&lt;p&gt;Each synthetic patient goes through the exact same production pipeline as a real user. Full Sonnet report generation. No shortcuts.&lt;/p&gt;

&lt;p&gt;Then a second agent — Claude Haiku — scores each report on 4 dimensions:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Dimension&lt;/th&gt;
&lt;th&gt;What it checks&lt;/th&gt;
&lt;th&gt;Gap threshold&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Protocol depth&lt;/td&gt;
&lt;td&gt;Are expected correlations for this condition named?&lt;/td&gt;
&lt;td&gt;below 6/10&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Personalization&lt;/td&gt;
&lt;td&gt;Are this patient's specific details in the report?&lt;/td&gt;
&lt;td&gt;below 6/10&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Supplement specificity&lt;/td&gt;
&lt;td&gt;Active biological forms named (magnesium bisglycinate, not just magnesium)?&lt;/td&gt;
&lt;td&gt;below 6/10&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Legal safety&lt;/td&gt;
&lt;td&gt;No forbidden medical claims, no stop-medication advice?&lt;/td&gt;
&lt;td&gt;below 7/10&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Scores below threshold become knowledge gap proposals. Legal safety below 5 triggers an immediate compliance scan — synchronously, before anything else continues.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Cost: ~€0.55/week.&lt;/strong&gt; Sonnet for the reports, Haiku for scoring.&lt;/p&gt;




&lt;h2&gt;
  
  
  Agent 2: Auto-KB
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;The knowledge base that writes itself.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The gap proposals from Agent 1 contain condition types and dimensions. Agent 2 converts these into PubMed queries, fetches abstracts via the free NCBI API, and sends each abstract to Haiku with one instruction:&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Extract 3-5 factual claims from this abstract that are directly relevant to [condition]. Return structured triples: subject, predicate, object.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;The triples land in a &lt;code&gt;knowledge_triples&lt;/code&gt; table. The report generator reads from this table at runtime. No retraining. No fine-tuning. Just better context for the next generation.&lt;/p&gt;

&lt;p&gt;By Wednesday afternoon, the knowledge base has been updated with whatever the synthetic patients couldn't answer well. By Thursday morning, real patients get smarter reports.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The feedback loop:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Synthetic patient gets weak report
  → Gap detected
    → PubMed abstract fetched
      → Facts extracted
        → knowledge_triples updated
          → Next patient gets stronger report
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  Agent 3: Developer Tools Radar
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Because staying current is also a product decision.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Every Tuesday at 3:30am, the radar scans GitHub Trending and dev.to for tools that match a static relevance filter: playwright, trpc, drizzle, anthropic, health, automation, react, typescript.&lt;/p&gt;

&lt;p&gt;Haiku summarizes each match in 1-2 sentences. The summaries land in the admin UI. Monday morning I get a digest with what the dev world built this week that's relevant to my stack.&lt;/p&gt;

&lt;p&gt;Cost: €0.04/month.&lt;/p&gt;




&lt;h2&gt;
  
  
  Agent 4: The Orchestrator
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;The rule engine that connects everything.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Each agent calls &lt;code&gt;reportAgentEvent(type, result)&lt;/code&gt; when it finishes. The orchestrator applies rules:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight typescript"&gt;&lt;code&gt;&lt;span class="c1"&gt;// R1: Legal flag → immediate compliance scan&lt;/span&gt;
&lt;span class="k"&gt;if &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kd"&gt;type&lt;/span&gt; &lt;span class="o"&gt;===&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;synthetic_loop_done&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="nx"&gt;result&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;legalFlags&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nf"&gt;runComplianceDriftScan&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt; &lt;span class="c1"&gt;// synchronous, not queued&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="c1"&gt;// R2: KB pipeline returned 0 facts → warning&lt;/span&gt;
&lt;span class="k"&gt;if &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kd"&gt;type&lt;/span&gt; &lt;span class="o"&gt;===&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;auto_kb_done&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="nx"&gt;result&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;factsInserted&lt;/span&gt; &lt;span class="o"&gt;===&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;warn&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;[orchestrator] Auto-KB returned 0 facts&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Rule R1 is the critical one. If a synthetic patient triggers a legal safety score below 5, the compliance agent doesn't wait until next week. It runs immediately. The orchestrator also lets me add new rules without touching the agents themselves.&lt;/p&gt;




&lt;h2&gt;
  
  
  Agent 5: Weekly Digest
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;The operator dashboard I never have to build.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Every Monday at 7am, an HTML email lands in my inbox with:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;How many new facts entered the knowledge base this week&lt;/li&gt;
&lt;li&gt;Synthetic loop results: gaps found, legal flags if any&lt;/li&gt;
&lt;li&gt;Which PubMed papers were automatically processed&lt;/li&gt;
&lt;li&gt;Which developer tools are on the radar&lt;/li&gt;
&lt;li&gt;System cost for the week&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I know exactly what the system learned, what it fixed, and what it flagged without logging into a dashboard or running queries.&lt;/p&gt;




&lt;h2&gt;
  
  
  Psychological profiling at €0 extra
&lt;/h2&gt;

&lt;p&gt;While building the agent system, I added something that costs literally nothing.&lt;/p&gt;

&lt;p&gt;Every intake has responses about stress levels, anxiety, medication history, trauma, and previous treatment attempts. From these existing fields — no new questions, no LLM call — I derive a psychological archetype:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Archetype&lt;/th&gt;
&lt;th&gt;Signal&lt;/th&gt;
&lt;th&gt;Coaching instruction&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Overwhelmed&lt;/td&gt;
&lt;td&gt;High stress + multiple specialists + frustration keywords&lt;/td&gt;
&lt;td&gt;Start with deep validation, cite their own words, tiny steps only&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Skeptical&lt;/td&gt;
&lt;td&gt;Multiple specialists + frustration, low anxiety&lt;/td&gt;
&lt;td&gt;Biological mechanism first, then recommendation. Name the researcher.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Ready but scared&lt;/td&gt;
&lt;td&gt;Fear keywords + previous attempts + moderate stress&lt;/td&gt;
&lt;td&gt;Week 1 max 2 changes, explicit success markers per week&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Knowledge-seeker&lt;/td&gt;
&lt;td&gt;Blood values mentioned + detailed answers + no fear&lt;/td&gt;
&lt;td&gt;Enzymes and neurotransmitters before the advice&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Beginner&lt;/td&gt;
&lt;td&gt;No prior treatment, short answers&lt;/td&gt;
&lt;td&gt;Warm, jargon-free, reassuring timeline&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;The archetype gets injected as a single instruction line into the report system prompt. The LLM adapts tone, structure, and depth automatically. Zero extra tokens at generation time.&lt;/p&gt;




&lt;h2&gt;
  
  
  What this cost to build
&lt;/h2&gt;

&lt;p&gt;The entire multi-agent system is about 1,200 lines of TypeScript. It took one focused session to architect and implement.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Weekly operating cost:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Synthetic loop: max €0.55&lt;/li&gt;
&lt;li&gt;Auto-KB pipeline: ~€0.01&lt;/li&gt;
&lt;li&gt;Developer radar: ~€0.01&lt;/li&gt;
&lt;li&gt;Weekly digest: €0 (DB queries + one email)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Total: under €0.60/week&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The system pays for itself if it catches one legal compliance issue before a user does.&lt;/p&gt;




&lt;h2&gt;
  
  
  What I'd do differently
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Haiku scores need calibration.&lt;/strong&gt; The first few weeks I'll manually compare Haiku's scores against my own judgment and adjust thresholds if needed.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Synthetic patient templates are static.&lt;/strong&gt; They don't learn. The knowledge base learns, but the patient profiles stay fixed. A future version would generate edge-case profiles dynamically based on what real users submit.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The orchestrator is in-memory.&lt;/strong&gt; Events don't survive a server restart. For a high-stakes system I'd persist the event log. For a solo SaaS at this scale, it's fine.&lt;/p&gt;




&lt;h2&gt;
  
  
  The bigger point
&lt;/h2&gt;

&lt;p&gt;Most solo founders think "multi-agent AI" means using CrewAI or AutoGen with 10 chained LLM calls. That's one way to do it.&lt;/p&gt;

&lt;p&gt;What I have is simpler and more reliable: purpose-built agents that do one thing well, communicate through a database, and are coordinated by a lightweight rule engine. No framework. No magic. Just TypeScript, cron jobs, and a clear separation of concerns.&lt;/p&gt;

&lt;p&gt;The result: a platform that gets measurably smarter every week, catches its own legal issues, updates its own knowledge base, and tells me what it learned while I sleep.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Built on: React 18 + tRPC + Drizzle/MySQL + Claude Sonnet/Haiku + Railway&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Live at &lt;a href="https://longevityai.nl" rel="noopener noreferrer"&gt;longevityai.nl&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Questions or want to talk architecture? &lt;a href="mailto:info@holistischadviseur.nl"&gt;info@holistischadviseur.nl&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;




&lt;p&gt;&lt;em&gt;This article was originally published on &lt;a href="https://longevityai.nl/blog/multi-agent-self-improving-health-ai" rel="noopener noreferrer"&gt;Longevity AI&lt;/a&gt;. Visit the source for the full context, references and discussion.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>technical</category>
      <category>ai</category>
      <category>multiagent</category>
      <category>automation</category>
    </item>
    <item>
      <title>I Added Legal Compliance Checks to My E2E Test Suite for €0. Here's How (and Why a Non-Developer Had To).</title>
      <dc:creator>holistis</dc:creator>
      <pubDate>Fri, 05 Jun 2026 10:23:25 +0000</pubDate>
      <link>https://dev.to/holistis/i-added-legal-compliance-checks-to-my-e2e-test-suite-for-eu0-heres-how-and-why-a-non-developer-45h2</link>
      <guid>https://dev.to/holistis/i-added-legal-compliance-checks-to-my-e2e-test-suite-for-eu0-heres-how-and-why-a-non-developer-45h2</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Originally published on &lt;a href="https://longevityai.nl/blog/muraqib-130-tests-compliance-as-code" rel="noopener noreferrer"&gt;longevityai.nl&lt;/a&gt;&lt;/strong&gt; — for full context, comments and related articles, visit the source.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h1&gt;
  
  
  I Added Legal Compliance Checks to My E2E Test Suite for €0. Here's How (and Why a Non-Developer Had To).
&lt;/h1&gt;

&lt;p&gt;I am not a developer. I run a health AI platform in the Netherlands called &lt;a href="https://longevityai.nl" rel="noopener noreferrer"&gt;Longevity AI&lt;/a&gt;. It generates personalized health reports using LLMs, auto-publishes blog posts about longevity, and operates under Dutch medical regulation: the IGJ (Health and Youth Care Inspectorate), Wet BIG, and GDPR.&lt;/p&gt;

&lt;p&gt;That last part is the part most builders skip. I cannot.&lt;/p&gt;

&lt;p&gt;If my platform publishes content that says "this supplement cures your condition" or "stop taking your medication," I am not looking at bad SEO. I am looking at an enforcement action by the IGJ. The Dutch health regulator has shut down platforms for exactly this kind of language. I have a file in my codebase called &lt;code&gt;risks.md&lt;/code&gt; specifically about this.&lt;/p&gt;

&lt;p&gt;Today I shipped something I think is useful for anyone building in a regulated space: a compliance scanner baked directly into my Playwright E2E test suite. It runs on every deploy. It costs €0. It uses no LLM.&lt;/p&gt;

&lt;p&gt;Here is what it does and why I built it this way.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5hsgxflsvqbjacpsyj7g.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5hsgxflsvqbjacpsyj7g.jpeg" alt="Illustratie bij I Added Legal Compliance Checks to My E2E Test Suite for €0. Here's How (and Why a Non-Developer Had To)." width="800" height="800"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  The problem: AI-generated content drifts toward prohibited language
&lt;/h2&gt;

&lt;p&gt;My platform runs a nightly pipeline called Autopilot News Radar. It pulls from BBC Health, PubMed, EFSA, and ClinicalTrials, then generates three-language blog posts (NL/EN/FR) automatically. The posts go through a server-side compliance scanner before they are saved.&lt;/p&gt;

&lt;p&gt;That scanner works. It has caught violations before they went live.&lt;/p&gt;

&lt;p&gt;But I had a gap: no automated check was running against the &lt;em&gt;actual live site&lt;/em&gt;. The server filter could pass a post, and some edge case in rendering, caching, or a manual publish could still get prohibited language onto the page. I would only discover that when a user flagged it -- or worse, a regulator did.&lt;/p&gt;

&lt;h2&gt;
  
  
  The solution: compliance.spec.ts
&lt;/h2&gt;

&lt;p&gt;I added four Playwright tests that fetch real pages from the live site and run the same regex patterns the server uses.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight typescript"&gt;&lt;code&gt;&lt;span class="c1"&gt;// tools/muraqib/tests/compliance.spec.ts (simplified)&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;HIGH_SEVERITY_PATTERNS&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
  &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;ruleId&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;no-cure-claim&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;           &lt;span class="na"&gt;pattern&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sr"&gt;/&lt;/span&gt;&lt;span class="se"&gt;\b&lt;/span&gt;&lt;span class="sr"&gt;geneest&lt;/span&gt;&lt;span class="se"&gt;\s&lt;/span&gt;&lt;span class="sr"&gt;+&lt;/span&gt;&lt;span class="se"&gt;(&lt;/span&gt;&lt;span class="sr"&gt;gegarandeerd|altijd|100%|volledig&lt;/span&gt;&lt;span class="se"&gt;)&lt;/span&gt;&lt;span class="sr"&gt;/i&lt;/span&gt; &lt;span class="p"&gt;},&lt;/span&gt;
  &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;ruleId&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;no-cure-claim&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;           &lt;span class="na"&gt;pattern&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sr"&gt;/&lt;/span&gt;&lt;span class="se"&gt;\b&lt;/span&gt;&lt;span class="sr"&gt;wondermiddel&lt;/span&gt;&lt;span class="se"&gt;\b&lt;/span&gt;&lt;span class="sr"&gt;/i&lt;/span&gt; &lt;span class="p"&gt;},&lt;/span&gt;
  &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;ruleId&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;no-cure-claim&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;           &lt;span class="na"&gt;pattern&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sr"&gt;/&lt;/span&gt;&lt;span class="se"&gt;\b&lt;/span&gt;&lt;span class="sr"&gt;100%&lt;/span&gt;&lt;span class="se"&gt;\s&lt;/span&gt;&lt;span class="sr"&gt;+effectief&lt;/span&gt;&lt;span class="se"&gt;\b&lt;/span&gt;&lt;span class="sr"&gt;/i&lt;/span&gt; &lt;span class="p"&gt;},&lt;/span&gt;
  &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;ruleId&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;no-behandel-imperatief&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;  &lt;span class="na"&gt;pattern&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sr"&gt;/stop&lt;/span&gt;&lt;span class="se"&gt;\s&lt;/span&gt;&lt;span class="sr"&gt;+met&lt;/span&gt;&lt;span class="se"&gt;\s&lt;/span&gt;&lt;span class="sr"&gt;+&lt;/span&gt;&lt;span class="se"&gt;(&lt;/span&gt;&lt;span class="sr"&gt;je|jouw|de&lt;/span&gt;&lt;span class="se"&gt;)\s&lt;/span&gt;&lt;span class="sr"&gt;+&lt;/span&gt;&lt;span class="se"&gt;(&lt;/span&gt;&lt;span class="sr"&gt;medicatie|medicijn&lt;/span&gt;&lt;span class="se"&gt;)&lt;/span&gt;&lt;span class="sr"&gt;/i&lt;/span&gt; &lt;span class="p"&gt;},&lt;/span&gt;
  &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;ruleId&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;no-behandel-imperatief&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;  &lt;span class="na"&gt;pattern&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sr"&gt;/&lt;/span&gt;&lt;span class="se"&gt;\b&lt;/span&gt;&lt;span class="sr"&gt;dit&lt;/span&gt;&lt;span class="se"&gt;\s&lt;/span&gt;&lt;span class="sr"&gt;+vervangt&lt;/span&gt;&lt;span class="se"&gt;\s&lt;/span&gt;&lt;span class="sr"&gt;+&lt;/span&gt;&lt;span class="se"&gt;(&lt;/span&gt;&lt;span class="sr"&gt;medicatie|behandeling&lt;/span&gt;&lt;span class="se"&gt;)&lt;/span&gt;&lt;span class="sr"&gt;/i&lt;/span&gt; &lt;span class="p"&gt;},&lt;/span&gt;
&lt;span class="p"&gt;];&lt;/span&gt;

&lt;span class="nf"&gt;test&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;geen HIGH compliance-schendingen in live blogs&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="k"&gt;async &lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt; &lt;span class="nx"&gt;page&lt;/span&gt; &lt;span class="p"&gt;})&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;page&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;goto&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;/blog&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nf"&gt;waitForReady&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;page&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

  &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;links&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;page&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;locator&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;a[href*="/blog/"]&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;evaluateAll&lt;/span&gt;&lt;span class="p"&gt;((&lt;/span&gt;&lt;span class="nx"&gt;els&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt;
    &lt;span class="nx"&gt;els&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;map&lt;/span&gt;&lt;span class="p"&gt;((&lt;/span&gt;&lt;span class="nx"&gt;el&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;el&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="nx"&gt;HTMLAnchorElement&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nx"&gt;href&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;filter&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;Boolean&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
  &lt;span class="p"&gt;);&lt;/span&gt;

  &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="na"&gt;violations&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kr"&gt;string&lt;/span&gt;&lt;span class="p"&gt;[]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[];&lt;/span&gt;

  &lt;span class="k"&gt;for &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;url&lt;/span&gt; &lt;span class="k"&gt;of&lt;/span&gt; &lt;span class="p"&gt;[...&lt;/span&gt;&lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;Set&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;links&lt;/span&gt;&lt;span class="p"&gt;)].&lt;/span&gt;&lt;span class="nf"&gt;slice&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;20&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;page&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;goto&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;url&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;text&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;page&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;evaluate&lt;/span&gt;&lt;span class="p"&gt;(()&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nb"&gt;document&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;querySelector&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;article&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)?.&lt;/span&gt;&lt;span class="nx"&gt;textContent&lt;/span&gt; &lt;span class="o"&gt;??&lt;/span&gt; &lt;span class="dl"&gt;""&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

    &lt;span class="k"&gt;for &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;ruleId&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;pattern&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;of&lt;/span&gt; &lt;span class="nx"&gt;HIGH_SEVERITY_PATTERNS&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
      &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;match&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;text&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;match&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;pattern&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
      &lt;span class="k"&gt;if &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;match&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="nx"&gt;violations&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;push&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;`[&lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;ruleId&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;] "&lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;match&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;]}&lt;/span&gt;&lt;span class="s2"&gt;" op &lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;url&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;`&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;

  &lt;span class="nf"&gt;expect&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;violations&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;HIGH compliance-schending(en) gevonden op live site&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;toHaveLength&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;});&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;No API calls. No LLM. A regex scan on the live rendered HTML, run by a real browser.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why regex and not an LLM?
&lt;/h2&gt;

&lt;p&gt;Because I need determinism and zero cost.&lt;/p&gt;

&lt;p&gt;An LLM-based compliance check would:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Cost money on every deploy (I run 130 tests per deploy, nightly)&lt;/li&gt;
&lt;li&gt;Be non-deterministic (same text, different answer on reruns)&lt;/li&gt;
&lt;li&gt;Be a black box ("the AI said it was fine" is not an audit trail)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The patterns I check are not subtle. The IGJ is not looking for nuanced phrasing. They are looking for things like "genezingsclaims" (cure claims) and advice to stop medication. Regex handles this precisely and cheaply.&lt;/p&gt;

&lt;h2&gt;
  
  
  The double-layer architecture
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;[AI generates content]
        |
        v
[server/compliance/scanner.ts]      blocks HIGH violations before save
        |
        v
[database -- rendered on site]
        |
        v
[tools/muraqib/tests/compliance.spec.ts]   E2E test on live page, every deploy
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If the first layer fails (bug in server, manual override, edge case), the second layer catches it before the deploy completes. If the second layer catches something, GitHub Actions fails and I get notified.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyzuc9vzcnxa7x4vjsmxg.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyzuc9vzcnxa7x4vjsmxg.jpeg" alt="Illustratie bij I Added Legal Compliance Checks to My E2E Test Suite for €0. Here's How (and Why a Non-Developer Had To)." width="800" height="800"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  The four compliance tests
&lt;/h2&gt;

&lt;p&gt;Beyond the HIGH-severity check, the suite also runs:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Blog overview loads&lt;/strong&gt; -- sanity check that /blog renders with at least one article&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;No HIGH violations&lt;/strong&gt; -- cure claims and medication-stop advice on live pages&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;No em-dashes in public text&lt;/strong&gt; -- house style rule enforced automatically&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Affiliate disclosure present&lt;/strong&gt; -- blogs with affiliate links must contain a disclosure sentence&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;That last one is a legal requirement in the Netherlands too. If I link to a supplement with an affiliate ref, I need to disclose it. The test checks that the disclosure text is present on any page that contains an affiliate link.&lt;/p&gt;

&lt;h2&gt;
  
  
  What it does NOT catch
&lt;/h2&gt;

&lt;p&gt;I want to be honest about the limits.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;MEDIUM-severity violations are manual.&lt;/strong&gt; Vague implied efficacy claims are contextual. My server scanner flags them and logs them. A human (me) reviews the log weekly. Automated blocking on MEDIUM creates too many false positives.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;It does not understand context.&lt;/strong&gt; "Stop je medicatie" in a quote about why you should &lt;em&gt;not&lt;/em&gt; stop medication would still trigger the pattern. I have handled this by writing content that avoids the phrase entirely.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;It is not a legal opinion.&lt;/strong&gt; These patterns are based on documented compliance research. They are not a substitute for a lawyer reviewing the content.&lt;/p&gt;

&lt;h2&gt;
  
  
  Also shipped today: AI Coach tests
&lt;/h2&gt;

&lt;p&gt;Alongside the compliance spec, I also added &lt;code&gt;coach.spec.ts&lt;/code&gt; -- eight tests for the AI Coach feature:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Login gate: unauthenticated users see a CTA, not the chat interface&lt;/li&gt;
&lt;li&gt;Sending a message and receiving a response within timeout&lt;/li&gt;
&lt;li&gt;Enter-key submission (this broke silently once before)&lt;/li&gt;
&lt;li&gt;Disabled send button on empty input (prevents empty API calls)&lt;/li&gt;
&lt;li&gt;Feedback buttons (thumbs up/down) working correctly&lt;/li&gt;
&lt;li&gt;Back navigation to reports page&lt;/li&gt;
&lt;li&gt;Zero JavaScript console errors during a full conversation&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That last one is the test I trust most. A zero-console-error check on a full user flow catches a class of bugs no unit test finds.&lt;/p&gt;

&lt;h2&gt;
  
  
  Where Muraqib stands today
&lt;/h2&gt;

&lt;p&gt;130 tests across: SEO, sitemap, robots.txt, blog rendering, anamnesis flow, lab analysis, onboarding, AI Coach, and compliance. The suite runs on GitHub Actions using Playwright 1.60.0 with the native Healer active -- it auto-repairs locators that break when the DOM changes.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;/th&gt;
&lt;th&gt;Before today&lt;/th&gt;
&lt;th&gt;After today&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Total tests&lt;/td&gt;
&lt;td&gt;118&lt;/td&gt;
&lt;td&gt;130&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Playwright version&lt;/td&gt;
&lt;td&gt;1.48&lt;/td&gt;
&lt;td&gt;1.60.0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Compliance coverage&lt;/td&gt;
&lt;td&gt;Server only&lt;/td&gt;
&lt;td&gt;Server + E2E&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;AI Coach coverage&lt;/td&gt;
&lt;td&gt;None&lt;/td&gt;
&lt;td&gt;8 tests&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Healer&lt;/td&gt;
&lt;td&gt;Not active&lt;/td&gt;
&lt;td&gt;Active in CI&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Every deploy runs all 130. A green check means a real browser walked through the platform and found nothing wrong. A red check means something broke before any user sees it.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why ownership matters here
&lt;/h2&gt;

&lt;p&gt;There are SaaS compliance monitoring tools. All of them put my legal patterns in a vendor's system, behind a subscription.&lt;/p&gt;

&lt;p&gt;My patterns live in &lt;code&gt;tools/muraqib/tests/compliance.spec.ts&lt;/code&gt;. They are in git. They have commit history. When the IGJ updates their enforcement guidance, I add a line and commit it. The next deploy runs the updated check.&lt;/p&gt;

&lt;p&gt;That is the practical argument for owning your test infrastructure: the rules that matter most to your business should live where you can see them, change them, and audit them.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Longevity AI runs at &lt;a href="https://longevityai.nl" rel="noopener noreferrer"&gt;longevityai.nl&lt;/a&gt;. If you are building a health SaaS in a regulated industry and want to compare notes, reach out via the site.&lt;/em&gt;&lt;/p&gt;




&lt;p&gt;&lt;em&gt;This article was originally published on &lt;a href="https://longevityai.nl/blog/muraqib-130-tests-compliance-as-code" rel="noopener noreferrer"&gt;Longevity AI&lt;/a&gt;. Visit the source for the full context, references and discussion.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>technical</category>
      <category>testing</category>
      <category>buildinpublic</category>
      <category>ai</category>
    </item>
    <item>
      <title>I Didn't Buy Octomind. I Built My Own for €0. Here's Why It's Better.</title>
      <dc:creator>holistis</dc:creator>
      <pubDate>Tue, 02 Jun 2026 20:36:48 +0000</pubDate>
      <link>https://dev.to/holistis/i-didnt-buy-octomind-i-built-my-own-for-eu0-heres-why-its-better-6lj</link>
      <guid>https://dev.to/holistis/i-didnt-buy-octomind-i-built-my-own-for-eu0-heres-why-its-better-6lj</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Originally published on &lt;a href="https://longevityai.nl/blog/i-built-my-own-octomind-for-zero-euros-muraqib" rel="noopener noreferrer"&gt;longevityai.nl&lt;/a&gt;&lt;/strong&gt; — for full context, comments and related articles, visit the source.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h1&gt;
  
  
  I Didn't Buy Octomind. I Built My Own for €0. Here's Why It's Better.
&lt;/h1&gt;

&lt;p&gt;I am not a developer. I run &lt;a href="https://longevityai.nl" rel="noopener noreferrer"&gt;Longevity AI&lt;/a&gt;, a Dutch health AI platform. I have paying users, a compliance gate, three languages, and a codebase that keeps growing every week.&lt;/p&gt;

&lt;p&gt;And last month I discovered Octomind — an AI-powered e2e testing platform that automatically generates and self-heals your Playwright tests. The pitch was compelling. The price tag was not: €200-500+ per month.&lt;/p&gt;

&lt;p&gt;So I built my own.&lt;/p&gt;

&lt;p&gt;I called it &lt;strong&gt;Muraqib&lt;/strong&gt; (مراقب) — Arabic for "the observer." It runs every night. It fixes itself. And it costs €0.&lt;/p&gt;

&lt;p&gt;Here is why that was the right call.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Octomind Does (And Does Well)
&lt;/h2&gt;

&lt;p&gt;To be fair: Octomind is genuinely impressive. You give it a URL, it crawls your site, generates Playwright tests automatically, and when your UI changes, it heals the broken selectors without you touching a config file. The dashboard shows you video recordings of every test run. It integrates with GitHub in ten minutes.&lt;/p&gt;

&lt;p&gt;For a team, it is probably worth the money. The time saved on test maintenance alone justifies the cost at scale.&lt;/p&gt;

&lt;p&gt;But I am not a team. I am one person running a SaaS in a regulated industry. And when I looked at what Octomind would actually give me versus what I actually needed, the math did not work.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Problem With Generic QA Tools
&lt;/h2&gt;

&lt;p&gt;Here is what a generic tool does not know about my site:&lt;/p&gt;

&lt;p&gt;My blog uses &lt;strong&gt;Wouter&lt;/strong&gt; for client-side routing. Every blog article is an &lt;code&gt;&amp;lt;article&amp;gt;&lt;/code&gt; element with an &lt;code&gt;onClick&lt;/code&gt; handler — not an &lt;code&gt;&amp;lt;a href&amp;gt;&lt;/code&gt; link. A generic crawler would generate selectors like &lt;code&gt;a[href*="/blog/"]&lt;/code&gt; and they would fail on day one. Not because the feature is broken. Because the tool does not understand how the page actually works.&lt;/p&gt;

&lt;p&gt;My welzijnscheck funnel has two different pages: a landing page at &lt;code&gt;/welzijnscheck&lt;/code&gt; and the actual questionnaire at &lt;code&gt;/welzijnscheck/:code&lt;/code&gt;. A test that looks for a form on the landing page will fail every time. Not a bug. Just architecture the tool has no context for.&lt;/p&gt;

&lt;p&gt;These are not edge cases. They are the normal state of a custom-built SaaS. Generic tools generate generic tests. Generic tests fail in non-generic codebases.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7s2wft3ei0u4c5vy3kj7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7s2wft3ei0u4c5vy3kj7.png" alt="Illustratie bij I Didn't Buy Octomind. I Built My Own for €0. Here's Why It's Better." width="800" height="800"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What Muraqib Does Differently
&lt;/h2&gt;

&lt;p&gt;Muraqib knows my codebase because it was built from it.&lt;/p&gt;

&lt;p&gt;Every selector in every test spec reflects how my application actually works — not how a crawler assumes it works. When a test is written for the welzijnscheck flow, it knows that &lt;code&gt;/welzijnscheck&lt;/code&gt; is a landing page with CTA buttons, and that the form lives at a different route entirely. That knowledge does not come from crawling. It comes from reading the source.&lt;/p&gt;

&lt;p&gt;The self-healing works the same way. When a test fails, Claude Code reads the failure, reads the relevant spec, and reads the production code. The fix it proposes is based on understanding the full context — not a pattern-matched selector swap.&lt;/p&gt;

&lt;p&gt;That is the difference between a tool that knows your URL and a tool that knows your codebase.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Numbers
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;/th&gt;
&lt;th&gt;Octomind&lt;/th&gt;
&lt;th&gt;Muraqib&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Monthly cost&lt;/td&gt;
&lt;td&gt;€200-500+&lt;/td&gt;
&lt;td&gt;€0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Test generation&lt;/td&gt;
&lt;td&gt;Automatic (crawler)&lt;/td&gt;
&lt;td&gt;Built from source&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Self-healing&lt;/td&gt;
&lt;td&gt;Automatic selector repair&lt;/td&gt;
&lt;td&gt;Claude Code reads source + fixes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Dashboard&lt;/td&gt;
&lt;td&gt;Beautiful UI, video recordings&lt;/td&gt;
&lt;td&gt;GitHub Actions + weekly email&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Notifications&lt;/td&gt;
&lt;td&gt;Configurable&lt;/td&gt;
&lt;td&gt;One email per week, Monday 08:00&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Vendor lock-in&lt;/td&gt;
&lt;td&gt;Yes (their platform)&lt;/td&gt;
&lt;td&gt;No (your code, your repo)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Knows your routing&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Knows your architecture&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;The €0 is not the main point. The &lt;strong&gt;codebase awareness&lt;/strong&gt; is.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Weekly Email
&lt;/h2&gt;

&lt;p&gt;One design decision I made that I have not seen elsewhere: Muraqib sends me one email per week. Not one per failure. Not one per test run. One.&lt;/p&gt;

&lt;p&gt;Every Monday at 08:00, I get a summary: how many runs this week, pass rate, what failed, what Claude fixed, which PRs are open for my review.&lt;/p&gt;

&lt;p&gt;That is it. Everything else happens without me.&lt;/p&gt;

&lt;p&gt;Most monitoring tools optimize for visibility. More dashboards, more notifications, more insight. I optimized for silence. I want to know about problems only after Muraqib has already tried to fix them.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fazgtlmgfm3yt9aoszf1z.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fazgtlmgfm3yt9aoszf1z.jpeg" alt="Illustratie bij I Didn't Buy Octomind. I Built My Own for €0. Here's Why It's Better." width="800" height="800"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  The Self-Healing Loop
&lt;/h2&gt;

&lt;p&gt;When a test fails at 03:00 AM:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;GitHub Actions creates an Issue with the full failure context&lt;/li&gt;
&lt;li&gt;The Issue tags &lt;code&gt;@claude&lt;/code&gt; — the Claude Code GitHub App picks it up&lt;/li&gt;
&lt;li&gt;Claude reads the failing test, the error message, and the relevant production code&lt;/li&gt;
&lt;li&gt;Claude opens a Pull Request with a proposed fix&lt;/li&gt;
&lt;li&gt;I review it Monday morning, merge in 30 seconds&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;This is not magic. It is just a well-connected pipeline. But the result is that my test suite heals itself on a cadence that matches my review capacity — not the cadence of failure alerts.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I Gave Up
&lt;/h2&gt;

&lt;p&gt;I want to be honest about the trade-offs.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;I gave up the beautiful UI.&lt;/strong&gt; Octomind has a proper dashboard with pass/fail history, visual diffs, and video of every test run. My "dashboard" is a GitHub Actions log and a Monday morning email. For a solo founder checking status once a week, that is fine. For a team doing daily deployments, it would not be.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;I gave up automatic test generation.&lt;/strong&gt; Octomind crawls your site and writes the tests. I wrote mine manually (with Claude). That was a few hours of work upfront. The trade-off is that every test reflects exactly what I intend to test — no assumptions.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;I gave up instant failure notifications.&lt;/strong&gt; Octomind can alert you in minutes. I check once a week. This works because Claude tries to fix things before they need my attention. If your business model requires instant incident response, this approach is not for you.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Ownership Matters
&lt;/h2&gt;

&lt;p&gt;There is a version of this story where I sign up for Octomind, pay the monthly fee, and move on. That is a legitimate choice.&lt;/p&gt;

&lt;p&gt;But here is what I would have missed:&lt;/p&gt;

&lt;p&gt;When I updated my blog routing from anchor tags to wouter's &lt;code&gt;setLocation()&lt;/code&gt; handler, my tests would have broken. With Octomind, I would file a support ticket or wait for the self-healing to catch up. With Muraqib, Claude already knew about the routing change because it made the change. The fix was in the same PR.&lt;/p&gt;

&lt;p&gt;That is the compounding advantage of ownership. The tool that built your feature is the same tool that tests it and fixes it when it breaks. There is no translation layer between what the code does and what the tests expect.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Name
&lt;/h2&gt;

&lt;p&gt;Muraqib (مراقب) is Arabic for "the observer" or "the supervisor." Not a divine name — just a word with weight. It fits what the tool does: watch quietly, act only when something is wrong.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;"He sees what you do not see. He notices what you forgot. He is not a guard that shouts. He is a guard that fixes."&lt;/em&gt;&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Longevity AI runs at &lt;a href="https://longevityai.nl" rel="noopener noreferrer"&gt;longevityai.nl&lt;/a&gt;. If you are building a health SaaS in a regulated industry and want to compare notes, I am reachable via the site.&lt;/em&gt;&lt;/p&gt;




&lt;p&gt;&lt;em&gt;This article was originally published on &lt;a href="https://longevityai.nl/blog/i-built-my-own-octomind-for-zero-euros-muraqib" rel="noopener noreferrer"&gt;Longevity AI&lt;/a&gt;. Visit the source for the full context, references and discussion.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>technical</category>
      <category>testing</category>
      <category>buildinpublic</category>
      <category>ai</category>
    </item>
    <item>
      <title>Why I Built a Halal-By-Design AI Image Pipeline</title>
      <dc:creator>holistis</dc:creator>
      <pubDate>Tue, 02 Jun 2026 16:52:05 +0000</pubDate>
      <link>https://dev.to/holistis/why-i-built-a-halal-by-design-ai-image-pipeline-1bec</link>
      <guid>https://dev.to/holistis/why-i-built-a-halal-by-design-ai-image-pipeline-1bec</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Originally published on &lt;a href="https://longevityai.nl/blog/halal-by-design-ai-image-pipeline" rel="noopener noreferrer"&gt;longevityai.nl&lt;/a&gt;&lt;/strong&gt; — for full context, comments and related articles, visit the source.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h1&gt;
  
  
  Why I Built a Halal-By-Design AI Image Pipeline
&lt;/h1&gt;

&lt;p&gt;I run &lt;a href="https://longevityai.nl" rel="noopener noreferrer"&gt;Longevity AI&lt;/a&gt;, a Dutch holistic health platform. When I plugged Stable Diffusion into my blog pipeline, the first batch of "wellness" images came back with a Buddha statue, a Catholic crucifix on a yoga studio wall, and a person doing salah pose toward Mecca. My audience is mixed. Muslim, Christian, Hindu, secular. I needed a filter.&lt;/p&gt;

&lt;p&gt;So I built one. I called it the halal filter, because halal is the strictest standard. If an image passes halal, it passes for everyone. Catholic readers, secular yoga teachers, kids using the platform, atheist HR buyers. The strictest filter is also the most universal one.&lt;/p&gt;

&lt;p&gt;Here is what I built, why "halal" is a useful label even outside Islam, and what you can copy.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Problem: AI Image Generators Have No Brand Sense
&lt;/h2&gt;

&lt;p&gt;Stable Diffusion, Flux, DALL-E. They generate religious imagery by default if your prompt has any spiritual undertone. Ask for "meditation" and you get a Buddha. Ask for "calm bedroom" and you get a candle next to a crucifix. Ask for "morning routine" and you get prayer beads.&lt;/p&gt;

&lt;p&gt;The AI is not wrong. It reflects training data biased toward stock photography where meditation equals Buddha and serenity equals religious iconography. That is a fact about the internet, not about meditation.&lt;/p&gt;

&lt;p&gt;For a Dutch holistic health platform this is a brand nightmare:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Muslim readers see a Buddha in a wellness article and close the tab.&lt;/li&gt;
&lt;li&gt;Christian readers see a Hindu deity and wonder what kind of platform this is.&lt;/li&gt;
&lt;li&gt;Secular readers see religious symbols and think the site is preachy.&lt;/li&gt;
&lt;li&gt;Schools using the B2B bundle see a deity statue and parents complain.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The image is fine for an American wellness site where Buddha aesthetics are baseline. It is not fine for the Netherlands, where the audience is religiously plural and the trust threshold is high.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkx7suxdaar2f6ym72xs8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkx7suxdaar2f6ym72xs8.png" alt="Illustratie bij Why I Built a Halal-By-Design AI Image Pipeline" width="800" height="800"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  The Halal Lens (Why It Matters Even If You Are Not Muslim)
&lt;/h2&gt;

&lt;p&gt;Halal as a concept goes further than most filters. It says: do not depict the divine, do not encourage worship of created things, do not show prayer rituals as decoration, do not undress for the camera. The Islamic prohibition on imagery of deities, combined with strict modesty rules, creates a very high bar.&lt;/p&gt;

&lt;p&gt;Here is the key insight. If your image pipeline passes halal, it passes every other religious and secular standard too.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A Catholic parent will not be offended (no other gods).&lt;/li&gt;
&lt;li&gt;A Buddhist will not see their iconography mishandled.&lt;/li&gt;
&lt;li&gt;A secular user will not see religious symbols at all.&lt;/li&gt;
&lt;li&gt;A modesty-conscious brand will not see exposed bodies.&lt;/li&gt;
&lt;li&gt;A child-safety reviewer will not see anything they need to flag.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The reverse is not true. A Buddhist-safe image might still contain a crucifix. A secular-clean image might still show prayer beads. Halal is the upper bound of restrictiveness, which is exactly why it makes a great brand-safety default for any audience.&lt;/p&gt;

&lt;p&gt;I do not think non-Muslim devs need to become Muslim to use this filter. I think they should steal the idea. Strictest filter equals most universal compatibility.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Code (Less Than 100 Lines)
&lt;/h2&gt;

&lt;p&gt;Here is the actual blacklist (50+ keywords, no LLM call needed):&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight typescript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;RELIGIOUS_BLACKLIST&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;Set&lt;/span&gt;&lt;span class="p"&gt;([&lt;/span&gt;
  &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;buddha&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;buddhism&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;deity&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;gods&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;god&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;worship&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;prayer&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;praying&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;temple&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;shrine&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;sacred&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;holy&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;altar&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;religious&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;monk&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;nun&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;bible&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;quran&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;torah&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;church&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;mosque&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;synagogue&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;hinduism&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;hindu&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;brahmin&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;idol&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;idolatry&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;cross&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;crucifix&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;saint&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;miracle&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;spiritual&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;mystical&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;ceremonial&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;ritual&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;chakra&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;mantra&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;zen&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;tibetan&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;vatican&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;pilgrim&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;communion&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;baptism&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="p"&gt;]);&lt;/span&gt;

&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;sanitizeImagePrompt&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;prompt&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kr"&gt;string&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt; &lt;span class="kr"&gt;string&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;lower&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;prompt&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;toLowerCase&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
  &lt;span class="k"&gt;for &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;banned&lt;/span&gt; &lt;span class="k"&gt;of&lt;/span&gt; &lt;span class="nx"&gt;RELIGIOUS_BLACKLIST&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;if &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;lower&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;includes&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;banned&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
      &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nx"&gt;prompt&lt;/span&gt;
        &lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;replace&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;RegExp&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;banned&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;gi&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;wellness&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;replace&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sr"&gt;/&lt;/span&gt;&lt;span class="se"&gt;\s&lt;/span&gt;&lt;span class="sr"&gt;+/g&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt; &lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;trim&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;
  &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nx"&gt;prompt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That is the whole thing. Two pieces: a blacklist set, and a sanitizer that replaces any flagged term with the neutral word "wellness".&lt;/p&gt;

&lt;p&gt;The sanitizer is called before every image-generation API call (Stability AI, Flux, DALL-E, even Pexels search). The image API never gets a chance to generate the offending image, because the prompt is rewritten before it leaves my server.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Universal Lesson: Hardcode Your Brand Boundaries
&lt;/h2&gt;

&lt;p&gt;You cannot trust the LLM to know your brand. Stable Diffusion does not know my audience is Dutch-Muslim. DALL-E does not know my B2B clients include schools. Flux does not know my CEO is religious.&lt;/p&gt;

&lt;p&gt;Brand boundaries belong in code, not in prompts.&lt;/p&gt;

&lt;p&gt;The mistake most teams make is telling the LLM "do not include religious imagery" in the system prompt. This works 80% of the time. The 20% leak is what gets you on Twitter. A hardcoded blacklist plus a sanitizer is 100%. Every image-prompt passes through. No exceptions. No "the AI was being creative".&lt;/p&gt;

&lt;p&gt;Even if you do not care about religious imagery specifically, you almost certainly care about something else:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Children's apps:&lt;/strong&gt; no firearms, no violence, no romantic imagery.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Medical platforms:&lt;/strong&gt; no procedures shown out of context.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;B2B SaaS:&lt;/strong&gt; no political symbols, no celebrities, no competitor logos.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;News publishers:&lt;/strong&gt; no copyrighted IP.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The pattern is the same. Build a blacklist. Build a sanitizer. Never trust the LLM to enforce your brand. It does not know your brand.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3sgk5wvdgsytjwxcgxfv.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3sgk5wvdgsytjwxcgxfv.jpeg" alt="Illustratie bij Why I Built a Halal-By-Design AI Image Pipeline" width="800" height="800"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  The Trade-Offs (Be Honest)
&lt;/h2&gt;

&lt;p&gt;Three trade-offs to call out.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. False positives.&lt;/strong&gt; "Yoga in a temple" gets sanitized to "yoga in a wellness". Not ideal. The replacement is graceful degradation, not perfect rewriting. For a brand-safety filter, false positives are cheaper than false negatives.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Reduced creative range.&lt;/strong&gt; I cannot generate a Diwali-themed wellness post easily, because "diwali" is not in the blacklist but the visual will likely include diyas near deities. I would need to add it. The blacklist grows.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Cultural blind spots.&lt;/strong&gt; My blacklist was built from a Western-Muslim perspective. A Hindu reader might find it incomplete. A Buddhist reader might find it over-zealous. I update it when I learn about gaps. This is not a finished product.&lt;/p&gt;

&lt;p&gt;The point. The filter is intentionally conservative. For a health platform serving a mixed audience, conservative is correct.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why I Used the Word "Halal" (Not "Modesty Filter")
&lt;/h2&gt;

&lt;p&gt;I could have called this &lt;code&gt;BRAND_SAFETY_BLACKLIST&lt;/code&gt; or &lt;code&gt;MODESTY_FILTER&lt;/code&gt;. I called it the halal filter because:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;It is more honest.&lt;/strong&gt; The filter was built with Islamic standards in mind. Naming it after a generic concept would have hidden the inspiration.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;It signals to my Muslim audience.&lt;/strong&gt; They know exactly what to expect.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;It opens a conversation with non-Muslim audiences.&lt;/strong&gt; "Halal" is a loaded word in the West. Using it provokes the right question: "Why would a tech platform need a halal filter?" The answer (brand-safety, universal compatibility) is the interesting part.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;It is a competitive moat.&lt;/strong&gt; Most platforms will not call their filter "halal" because they are afraid of the word. That fear creates space for brands that are not afraid.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;If "halal" feels too charged for your context, call it the strictest filter or the universal filter. The concept does not care about the label. The hardcoded blacklist is what matters.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I Would Build Next
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Cultural-context detector:&lt;/strong&gt; Halal-only food imagery (no pork, no alcohol-prominent scenes).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Modesty filter:&lt;/strong&gt; No bikinis, no underwear shots, no over-exposed bodies in editorial photography.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Sensitivity-tunable filter:&lt;/strong&gt; Three modes (strict / standard / loose) per content category.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Vision-LLM verification pass:&lt;/strong&gt; After Stable Diffusion returns the image, run a vision model that confirms compliance.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The core insight, one more time. Build the filter you would want for your strictest customer. Everyone else gets a bonus.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;This article was originally published on &lt;a href="https://longevityai.nl" rel="noopener noreferrer"&gt;Longevity AI&lt;/a&gt;. Visit the source for the live wellness platform and the full technical context.&lt;/em&gt;&lt;/p&gt;




&lt;p&gt;&lt;em&gt;This article was originally published on &lt;a href="https://longevityai.nl/blog/halal-by-design-ai-image-pipeline" rel="noopener noreferrer"&gt;Longevity AI&lt;/a&gt;. Visit the source for the full context, references and discussion.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>technical</category>
      <category>architecture</category>
      <category>ai</category>
      <category>buildinpublic</category>
    </item>
    <item>
      <title>How I Built a Health-Content Autopilot for €12/Month</title>
      <dc:creator>holistis</dc:creator>
      <pubDate>Tue, 02 Jun 2026 12:58:46 +0000</pubDate>
      <link>https://dev.to/holistis/how-i-built-a-health-content-autopilot-for-eu12month-n72</link>
      <guid>https://dev.to/holistis/how-i-built-a-health-content-autopilot-for-eu12month-n72</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Originally published on &lt;a href="https://longevityai.nl/blog/how-i-built-a-health-content-autopilot-12-euro-month" rel="noopener noreferrer"&gt;longevityai.nl&lt;/a&gt;&lt;/strong&gt; — for full context, comments and related articles, visit the source.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h1&gt;
  
  
  How I Built a Health-Content Autopilot for €12/Month
&lt;/h1&gt;

&lt;p&gt;I run &lt;a href="https://longevityai.nl" rel="noopener noreferrer"&gt;Longevity AI&lt;/a&gt;, a Dutch holistic health platform. The content side was killing me. Writing one good evidence-based blog took 4-6 hours. I had nine ziektebeelden (chronic conditions) to cover, in three languages. That's roughly 50 blogs per year I could realistically produce. Not enough.&lt;/p&gt;

&lt;p&gt;So I built an autopilot. Here is how it works, what it costs, and what I had to fight to keep it ethical.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Problem: Quality Health Content Does Not Scale
&lt;/h2&gt;

&lt;p&gt;Health content has a quality floor that most blog-automation systems crash into. You cannot just pull RSS feeds and rephrase them. You need:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Peer-reviewed sources&lt;/strong&gt; — citation from PubMed, EFSA, ClinicalTrials.gov&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Compliance&lt;/strong&gt; — Dutch IGJ, EU MDR, AVG (GDPR) all apply&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Three languages&lt;/strong&gt; — Dutch primary, English and French as syndication&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Cover image + inline visuals&lt;/strong&gt; — readers do not engage with text walls&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;My first attempt used GPT-4o-mini + Flux + manual review. Per blog: ~€0.50. Per cycle (every 6 hours, 3-5 blogs): €1.50-2.50. Per month: €120-240. Fine, but bleeding for a solo operation.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fflzcpyjda9lnjovyst2r.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fflzcpyjda9lnjovyst2r.png" alt="Illustratie bij How I Built a Health-Content Autopilot for €12/Month" width="800" height="800"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  The Architecture: 4 Scrapers, 1 Orchestrator, 1 Gate
&lt;/h2&gt;

&lt;p&gt;The autopilot has four input sources. Each one is a separate scraper that returns a normalized signal object:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight typescript"&gt;&lt;code&gt;&lt;span class="kr"&gt;interface&lt;/span&gt; &lt;span class="nx"&gt;ContentSignal&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;title&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kr"&gt;string&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;topic&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kr"&gt;string&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;sourceText&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kr"&gt;string&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;   &lt;span class="c1"&gt;// article body&lt;/span&gt;
  &lt;span class="nl"&gt;sourceUrl&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kr"&gt;string&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;    &lt;span class="c1"&gt;// canonical link&lt;/span&gt;
  &lt;span class="nl"&gt;language&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;nl&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;ziektebeeldIfKnown&lt;/span&gt;&lt;span class="p"&gt;?:&lt;/span&gt; &lt;span class="kr"&gt;string&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;tags&lt;/span&gt;&lt;span class="p"&gt;?:&lt;/span&gt; &lt;span class="kr"&gt;string&lt;/span&gt;&lt;span class="p"&gt;[];&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The four scrapers:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;BBC Health RSS&lt;/strong&gt; — keyword-filtered for supplement, treatment, nutrition, sleep, immune, gut, etc.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;NCBI PubMed eUtils&lt;/strong&gt; — per-ziektebeeld scientific queries, rate-limited to 3 req/sec&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;EFSA RSS&lt;/strong&gt; — EU supplement approvals and health claims (high-trust EU regulator)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;ClinicalTrials.gov REST&lt;/strong&gt; — 7-day rolling window of new trial registrations&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The orchestrator:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight typescript"&gt;&lt;code&gt;&lt;span class="k"&gt;export&lt;/span&gt; &lt;span class="k"&gt;async&lt;/span&gt; &lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;runNewsRadarCycle&lt;/span&gt;&lt;span class="p"&gt;():&lt;/span&gt; &lt;span class="nb"&gt;Promise&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="k"&gt;void&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;db&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nf"&gt;getDb&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
  &lt;span class="k"&gt;if &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;!&lt;/span&gt;&lt;span class="nx"&gt;db&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;return&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

  &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;bbcArticles&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nf"&gt;scrapeBBCHealthFeed&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
  &lt;span class="k"&gt;for &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;article&lt;/span&gt; &lt;span class="k"&gt;of&lt;/span&gt; &lt;span class="nx"&gt;bbcArticles&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;if &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nf"&gt;signalAlreadyExists&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;db&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;article&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;link&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt; &lt;span class="k"&gt;continue&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nf"&gt;createSignal&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;db&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="cm"&gt;/* ... */&lt;/span&gt; &lt;span class="p"&gt;});&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;

  &lt;span class="k"&gt;for &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;ziektebeeld&lt;/span&gt; &lt;span class="k"&gt;of&lt;/span&gt; &lt;span class="nb"&gt;Object&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;keys&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;LAB_FOLDER_BY_ZIEKTEBEELD&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;studies&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nf"&gt;scanPubMedForZiektebeeld&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;ziektebeeld&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="k"&gt;for &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;study&lt;/span&gt; &lt;span class="k"&gt;of&lt;/span&gt; &lt;span class="nx"&gt;studies&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
      &lt;span class="c1"&gt;// dedup + insert&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;
  &lt;span class="c1"&gt;// EFSA + ClinicalTrials same pattern&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Deduplication is two-layer: URL-hash in the orchestrator and a query check in &lt;code&gt;signalAlreadyExists()&lt;/code&gt; against the database. Both layers are necessary because the same study can appear in PubMed and ClinicalTrials with different URLs.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Compliance Gate (The Hardest Part)
&lt;/h2&gt;

&lt;p&gt;Health content in the EU is a minefield. The IGJ (Dutch healthcare inspectorate) regularly fines wellness sites for treatment claims. The MDR (medical device regulation) governs anything that sounds like diagnostic advice. So I built a hard gate:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight typescript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;complianceResult&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nf"&gt;runComplianceCheck&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;sourceText&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;isSafe&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;complianceResult&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;verdict&lt;/span&gt; &lt;span class="o"&gt;===&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;SAFE&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="k"&gt;if &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;!&lt;/span&gt;&lt;span class="nx"&gt;isSafe&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nx"&gt;status&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;pending_review&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;  &lt;span class="c1"&gt;// never auto-publishes&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;else&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nx"&gt;status&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;pending_auto_blog&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;  &lt;span class="c1"&gt;// proceeds to blog generation&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The compliance check uses Claude to evaluate against a curated set of rules: no diagnostic claims, no treatment imperatives, no cure language, no medication-stop advice. Verdict is SAFE / WARN / BLOCK. Only SAFE proceeds to auto-publish.&lt;/p&gt;

&lt;p&gt;This matters for one specific feature: affiliate links. I only inject affiliate links into 100% SAFE articles. Anything that fails compliance goes to manual review. The disclosure is explicit:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Wat je hierboven leest, is gebaseerd op peer-reviewed wetenschap en officiële gezondheidsrapporten. Wij noemen supplementen en bloedtests alleen op basis van wetenschappelijk bewijs.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Transparency over deception. I had to push back on my own design here — the temptation to just hide AI-generation is real. But that crosses a line I will not cross.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Cost Reduction (90% in One Refactor)
&lt;/h2&gt;

&lt;p&gt;After running for a few weeks I looked at the bill: €180/month for content the audience read for 30 seconds each. Time to optimize.&lt;/p&gt;

&lt;p&gt;Three changes, each independent:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Component&lt;/th&gt;
&lt;th&gt;Was&lt;/th&gt;
&lt;th&gt;Now&lt;/th&gt;
&lt;th&gt;Savings&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;LLM&lt;/td&gt;
&lt;td&gt;GPT-4o-mini&lt;/td&gt;
&lt;td&gt;Claude Haiku&lt;/td&gt;
&lt;td&gt;90% on LLM cost&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Images&lt;/td&gt;
&lt;td&gt;Flux (Together.ai)&lt;/td&gt;
&lt;td&gt;Stability AI&lt;/td&gt;
&lt;td&gt;70% on image cost&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Cycles&lt;/td&gt;
&lt;td&gt;Every 6 hours&lt;/td&gt;
&lt;td&gt;Every 12 hours&lt;/td&gt;
&lt;td&gt;50% fewer API calls&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;The LLM swap was the biggest win. Claude Haiku writes more naturally than GPT-4o-mini for long-form Dutch content. I had assumed the cheaper model would mean worse output. It does not. It means different output, and for technical-but-friendly health content, Haiku wins.&lt;/p&gt;

&lt;p&gt;The image swap was equally surprising. Stability AI's stable-diffusion-3-large produces images that are 80% as good as Flux for 30% of the cost. For inline blog images that readers glance at for 2 seconds, that trade is obvious.&lt;/p&gt;

&lt;p&gt;Cycle frequency was the easiest win. Going from 6 to 12 hours did not affect the freshness of the content the audience saw. PubMed studies do not become stale in 6 hours.&lt;/p&gt;

&lt;p&gt;Final cost: &lt;strong&gt;€12-20/month&lt;/strong&gt;. Same quality. Same pipeline. Same compliance.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fp5oautnzi9l8cf1d1qp3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fp5oautnzi9l8cf1d1qp3.png" alt="Illustratie bij How I Built a Health-Content Autopilot for €12/Month" width="800" height="800"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Auto-Syndication: One Source, Three Platforms
&lt;/h2&gt;

&lt;p&gt;Once a blog is generated and published on longevityai.nl, the system checks if it has a technical tag. If yes, it auto-syndicates to Hashnode and Dev.to:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight typescript"&gt;&lt;code&gt;&lt;span class="k"&gt;if &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;lang&lt;/span&gt; &lt;span class="o"&gt;===&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;en&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="nf"&gt;hasTechnicalTag&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;blog&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;tagsCsv&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nb"&gt;Promise&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;all&lt;/span&gt;&lt;span class="p"&gt;([&lt;/span&gt;
    &lt;span class="nf"&gt;publishToHashnode&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt; &lt;span class="p"&gt;...&lt;/span&gt; &lt;span class="p"&gt;}),&lt;/span&gt;
    &lt;span class="nf"&gt;publishToDevTo&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt; &lt;span class="na"&gt;canonical_url&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;longevityaiUrl&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;...&lt;/span&gt; &lt;span class="p"&gt;}),&lt;/span&gt;
  &lt;span class="p"&gt;]);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The &lt;code&gt;canonical_url&lt;/code&gt; parameter is critical: it tells Google that longevityai.nl is the original source. No duplicate-content penalty. The syndicated copies are tracked in the &lt;code&gt;social_posts&lt;/code&gt; table to prevent double-posting on retry.&lt;/p&gt;

&lt;p&gt;This blog you are reading right now? Originally written for longevityai.nl. Auto-posted to Hashnode and Dev.to via this exact pipeline.&lt;/p&gt;

&lt;h2&gt;
  
  
  Lessons Learned
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;1. Compliance is the moat.&lt;/strong&gt; Anyone can scrape RSS feeds and rephrase them. Few people can pass an IGJ audit on the output. Build the gate first.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Cheaper models often write more naturally.&lt;/strong&gt; Haiku writes Dutch health content with less corporate fluff than GPT-4o-mini. Test before assuming.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Deduplication is two-layer or it is broken.&lt;/strong&gt; URL-hash + DB query check. Same article hits the same pipeline from multiple sources.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. Canonical URLs &amp;gt; hiding.&lt;/strong&gt; Syndicate openly with &lt;code&gt;canonical_url&lt;/code&gt;. Hiding AI-generation crosses an ethical line and Google's 2024+ guidelines do not penalize transparent AI content anymore.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;5. Fire-and-forget syndication.&lt;/strong&gt; Hashnode/Dev.to failures should not break the main publish flow. Wrap in try/catch, log warnings, never crash.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I Would Build Next
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;LinkedIn syndication&lt;/strong&gt; (waiting on API approval)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Medium fallback&lt;/strong&gt; for health-content audience (not just technical)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Topic clustering&lt;/strong&gt; so the cron only generates content where my lab/RAG has expertise&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Weekly digest emails&lt;/strong&gt; auto-generated from the past 7 days of new blogs&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The core insight: do not try to compete on content volume. Compete on the depth of the pipeline behind each piece. Quality gates, transparent sourcing, ethical syndication. The autopilot is not about more blogs. It is about every blog being defensible.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;This article was originally published on &lt;a href="https://longevityai.nl" rel="noopener noreferrer"&gt;Longevity AI&lt;/a&gt;. Visit the source for the full context, references and the live News Radar in action.&lt;/em&gt;&lt;/p&gt;




&lt;p&gt;&lt;em&gt;This article was originally published on &lt;a href="https://longevityai.nl/blog/how-i-built-a-health-content-autopilot-12-euro-month" rel="noopener noreferrer"&gt;Longevity AI&lt;/a&gt;. Visit the source for the full context, references and discussion.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>technical</category>
      <category>architecture</category>
      <category>ai</category>
      <category>buildinpublic</category>
    </item>
    <item>
      <title>Three free wearable integrations for an AI health report: Oura, Withings, Polar</title>
      <dc:creator>holistis</dc:creator>
      <pubDate>Mon, 01 Jun 2026 13:20:22 +0000</pubDate>
      <link>https://dev.to/holistis/three-free-wearable-integrations-for-an-ai-health-report-oura-withings-polar-m9n</link>
      <guid>https://dev.to/holistis/three-free-wearable-integrations-for-an-ai-health-report-oura-withings-polar-m9n</guid>
      <description>&lt;h2&gt;
  
  
  Live today: three wearables, free to connect
&lt;/h2&gt;

&lt;p&gt;From today you can connect your Oura Ring, Withings device or Polar watch to your longevity report at &lt;a href="https://longevityai.nl" rel="noopener noreferrer"&gt;longevityai.nl&lt;/a&gt;. Free of charge after payment of the report, in a few clicks. No paid aggregator, direct OAuth2 with each manufacturer.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why this matters
&lt;/h2&gt;

&lt;p&gt;A questionnaire knows what you &lt;em&gt;think&lt;/em&gt; about your sleep. A ring knows how you &lt;em&gt;actually&lt;/em&gt; sleep.&lt;/p&gt;

&lt;p&gt;In a longevity report we combine two sources:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Subjective:&lt;/strong&gt; what you fill in during the intake. How you sleep, eat, move, feel. Complaints, patterns, intuitions.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Objective:&lt;/strong&gt; what a wearable measures. HRV, resting heart rate, sleep stages, breathing rate. With Withings: weight, blood pressure, fat mass. With Polar: breathing frequency. With Oura: readiness score.&lt;/p&gt;

&lt;p&gt;The value is in the &lt;em&gt;correlation&lt;/em&gt; between the two. Not in either one alone.&lt;/p&gt;

&lt;h2&gt;
  
  
  Engineering notes
&lt;/h2&gt;

&lt;p&gt;Three different OAuth2 flows:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Oura&lt;/strong&gt; (&lt;code&gt;cloud.ouraring.com/oauth/authorize&lt;/code&gt; + &lt;code&gt;api.ouraring.com/oauth/token&lt;/code&gt;): clean v2 REST API, JSON responses, standard refresh tokens.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Withings&lt;/strong&gt; (&lt;code&gt;account.withings.com/oauth2_user/authorize2&lt;/code&gt; + &lt;code&gt;wbsapi.withings.net/v2/oauth2&lt;/code&gt;): every API response wrapped in &lt;code&gt;{status: 0, body: {...}}&lt;/code&gt;. Token endpoint expects &lt;code&gt;action=requesttoken&lt;/code&gt; in POST body, not just &lt;code&gt;grant_type&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Polar&lt;/strong&gt; (&lt;code&gt;flow.polar.com/oauth2/authorization&lt;/code&gt; + &lt;code&gt;polarremote.com/v3/oauth2/token&lt;/code&gt;): Basic Auth header for token exchange (base64 of client_id:client_secret). Requires a separate &lt;code&gt;POST /v3/users&lt;/code&gt; call after token-exchange to register the user with member-id, otherwise all data endpoints return 403.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Each has its own token-refresh strategy. Withings tokens expire in hours, Oura in days, Polar tokens are long-lived without refresh endpoint.&lt;/p&gt;

&lt;h2&gt;
  
  
  AVG-compliant data pipeline
&lt;/h2&gt;

&lt;p&gt;We only store a summary. No raw nightly records. Disconnect from the user dashboard, all derived data is purged. GDPR article 9 (special-category data) covered through explicit consent at intake.&lt;/p&gt;

&lt;h2&gt;
  
  
  Trilingual launch
&lt;/h2&gt;

&lt;p&gt;Available immediately in Dutch, English and French. Translation-group system in the database links the language-versions of each article so a language-switch on a blog page never lands on a 404 again.&lt;/p&gt;

&lt;p&gt;Read the full story (Dutch original):&lt;br&gt;
&lt;a href="https://longevityai.nl/blog/wearables-gekoppeld-aan-anamnese-oura-withings-polar" rel="noopener noreferrer"&gt;https://longevityai.nl/blog/wearables-gekoppeld-aan-anamnese-oura-withings-polar&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;English version:&lt;br&gt;
&lt;a href="https://longevityai.nl/blog/wearables-linked-to-intake-oura-withings-polar" rel="noopener noreferrer"&gt;https://longevityai.nl/blog/wearables-linked-to-intake-oura-withings-polar&lt;/a&gt;&lt;/p&gt;

</description>
      <category>oauth2</category>
      <category>healthtech</category>
      <category>wearables</category>
      <category>api</category>
    </item>
    <item>
      <title>De invloed van plantaardige eiwitten op je darmgezondheid</title>
      <dc:creator>holistis</dc:creator>
      <pubDate>Thu, 28 May 2026 15:02:26 +0000</pubDate>
      <link>https://dev.to/holistis/de-invloed-van-plantaardige-eiwitten-op-je-darmgezondheid-5h7i</link>
      <guid>https://dev.to/holistis/de-invloed-van-plantaardige-eiwitten-op-je-darmgezondheid-5h7i</guid>
      <description>&lt;h1&gt;
  
  
  De invloed van plantaardige eiwitten op je darmgezondheid
&lt;/h1&gt;

&lt;p&gt;Hoe vaak heb je je afgevraagd of je dieet werkelijk invloed heeft op je welzijn? Specifiek, hoe de keuze voor plantaardige eiwitten je darmgezondheid kan beïnvloeden zeker interessant is. In dit artikel duiken we in recente wetenschappelijke bevindingen die laten zien hoe het verhogen van plantaardige eiwitbronnen niet alleen je darmmicrobiota kan modulereren, maar ook invloed heeft op het metabolisme van tryptofaan. Dit alles is bijzonder relevant voor mannen met een verhoogd cardiometabool risico.&lt;/p&gt;

&lt;p&gt;We kijken verder dan de gebruikelijke gezondheidsclaims en onderzoeken wat de wetenschap echt zegt over deze belangrijke relatie. Het onderzoek biedt inzicht in de complexe interacties tussen onze voeding, darmgezondheid en algehele welzijn. We bespreken wat vaak over het hoofd wordt gezien, inclusief holistische benaderingen en praktische stappen die je zelf kunt nemen.&lt;/p&gt;

&lt;h2&gt;
  
  
  Wat we vaak missen
&lt;/h2&gt;

&lt;p&gt;Wanneer we denken aan gezonde voeding, richten we ons vaak uitsluitend op de macronutriënten: koolhydraten, eiwitten en vetten. Echter, de &lt;strong&gt;microbiota&lt;/strong&gt; in onze darmen speelt een cruciale rol in hoe ons lichaam deze voedingsstoffen verwerkt. Veel mensen zijn zich er niet van bewust dat het type eiwit dat we consumeren, een aanzienlijke invloed heeft op de samenstelling van deze microbiota. &lt;/p&gt;

&lt;p&gt;Recent onderzoek, zoals het artikel van Lépine et al. (2026), toont aan dat een hogere inname van &lt;strong&gt;plantaardige eiwitten&lt;/strong&gt; niet alleen de samenstelling van de microbiota beïnvloedt, maar ook de metabolisme van tryptofaan, dat essentieel is voor de aanmaak van serotonine, een neurotransmitter die onder andere van invloed is op onze stemming en slaap. Sommige studies tonen aan dat een dieet rijk aan plantaardige eiwitten leidt tot een toename van &lt;em&gt;gunstige&lt;/em&gt; bacteriën zoals Bifidobacterium en Lactobacillus, die bijdragen aan een gezonder darmmilieu.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Helaas&lt;/strong&gt; zijn veel mensen te zeer gefocust op het verminderen van koolhydraten of vetten, zonder de kwaliteit van hun eiwitinname in overweging te nemen. Dit kan ertoe leiden dat de balans van de darmmicrobiota verstoord raakt, wat op zijn beurt invloed heeft op de algehele gezondheid. &lt;/p&gt;

&lt;p&gt;Bij het overstappen naar meer plantaardige eiwitten is het belangrijk te kijken naar de veelzijdigheid van deze bronnen. Dit kan niet alleen de darmgezondheid verbeteren, maar ook bijdragen aan een meer duurzaam dieet. Het is een evoluerende benadering die bedrijven en individuen aanmoedigt om na te denken over waar hun voedsel vandaan komt en de impact ervan op hun lichaam.&lt;/p&gt;

&lt;h2&gt;
  
  
  Wat de wetenschap zegt
&lt;/h2&gt;

&lt;p&gt;Onderzoek toont aan dat een dieet met een hoge inname van plantaardige eiwitten kan leiden tot significante veranderingen in de darmflora. Volgens de studie van Lépine et al. (2026) hebben mannen met een cardiometabolisch risico die plantaardige eiwitten consumeerden, een significante verhoging van de bactéria Lactobacillus ervaren, die positieve effecten op de darmgezondheid hebben. Een ander belangrijk aspect is dat deze verandering in microbiota samenhing met verbeterde metabolische markeringen, waaronder insulinegevoeligheid.  &lt;/p&gt;

&lt;p&gt;In een gerelateerd onderzoek, uitgevoerd door Szurek et al. (2026), werd aangetoond dat de introductie van specifieke microbiota uit de bodem zou kunnen helpen bij het bevorderen van een sterker immuunsysteem en een betere controle over met ziekte geassocieerde ontstekingsreacties. Dit toont aan dat de bron van ons voedsel, inclusief de microbiota die we binnenkrijgen via plantaardige eiwitten, een cruciale factor is voor onze gezondheid. &lt;/p&gt;

&lt;p&gt;Uiteraard is een &lt;strong&gt;gediversifieerde voeding&lt;/strong&gt;, rijk aan vezels en voedingsstoffen, essentieel. Onderzoek heeft aangetoond dat microbiota met een hogere diversiteit vaak geassocieerd zijn met een betere algehele gezondheid. Bijvoorbeeld, een studie van Hermanson et al. (2026) benadrukt de rol van vetten en cholesterol in de interactie met de microbiota, wat aantoont dat de balans in ons dieet essentieel is voor het bevorderen van microbiota-gezondheid. &lt;/p&gt;

&lt;p&gt;Een andere interessante bevinding is dat het veranderen van je dieet effect kan hebben op je neurotransmitter-niveaus. Tryptofaan, een aminozuur dat de precursor is voor serotonine, blijkt direct invloed te hebben op de samenstelling van de darmflora. Dit is cruciaal, vooral gezien de rol van serotonine in stemmingsregulatie.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqtzup8sdrkxxm83gr5qr.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqtzup8sdrkxxm83gr5qr.jpeg" alt="Illustratie bij De invloed van plantaardige eiwitten op je darmgezondheid" width="800" height="800"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;De inzichtelijke onderzoeken naar de interacties tussen voeding en microbiota zijn een veelzijdig en snelgroeiend vakgebied. Dit onderzoek heeft geleid tot steeds meer erkenning van de impact van plantaardige eiwitten en kan ons een completer beeld geven van de broodnodige gedragsveranderingen in onze voeding.&lt;/p&gt;

&lt;h2&gt;
  
  
  De holistische blik
&lt;/h2&gt;

&lt;p&gt;Een holistische benadering van de gezondheid kijkt niet alleen naar voeding, maar ook naar andere levensstijl factoren zoals &lt;em&gt;stress&lt;/em&gt;, &lt;em&gt;beweging&lt;/em&gt; en slaap. In de traditionele geneeskunde, zoals Unani-Tibb, TCM en Ayurveda, wordt de onderlinge verbinding tussen lichaam en geest al eeuwenlang erkend. Gezondheid wordt gezien als een staat van harmonie, en voeding speelt daarin een centrale rol.&lt;/p&gt;

&lt;p&gt;In de Ayurveda wordt vaak aangedrongen op een plantaardig dieet, rijk aan vezels, om de spijsvertering en algehele gezondheid te bevorderen. Het slikken van adaptogene kruiden kan ook helpen om de effecten van stress te verminderen, waardoor de microbiota beter kan functioneren. &lt;/p&gt;

&lt;p&gt;Ook in de Traditionele Chinese Geneeskunde (TCM) wordt voeding gezien als een fundament voor gezondheid. Het gebruik van specifieke granen, groenten en peulvruchten, als bron van eiwitten, wordt vaak gepromoot om de Chi (levensenergie) te ondersteunen en zo een betere spijsvertering te bevorderen. &lt;/p&gt;

&lt;p&gt;De integratie van deze oude wijsheden met moderne wetenschap biedt een veelbelovende route om de gezondheid van de darmen te verbeteren door het verhogen van plantaardige eiwitten. &lt;/p&gt;

&lt;h2&gt;
  
  
  Wat je zelf kunt doen
&lt;/h2&gt;

&lt;p&gt;Er zijn verschillende stappen die je zelf kunt nemen om de voordelen van plantaardige eiwitten in je dieet te vergroten. Hier zijn enkele praktische tips:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Voeg peulvruchten toe&lt;/strong&gt; aan je maaltijden, zoals linzen, kikkererwten en zwarte bonen.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Experimenteer met noten en zaden&lt;/strong&gt; als tussendoortje of in salades voor extra crunch en voedingsstoffen.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Kies voor quinoa, amarant of boekweit&lt;/strong&gt; als graanalternatieven die rijk zijn aan eiwitten.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Gebruik plantaardige eiwitpoeders&lt;/strong&gt; in smoothies of havermout als eiwitboost.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Vervang vlees met plantaardige alternatieven&lt;/strong&gt;, zoals tofu, tempeh of seitan in recepten.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Door deze eenvoudige aanpassingen te maken, kun je de hoeveelheid plantaardige eiwitten in je dieet aanzienlijk verhogen en zo je darmgezondheid bevorderen. Het is ook raadzaam om je dieet te combineren met andere gezonde gewoonten, zoals regelmatig bewegen en voldoende hydratatie, om het effect te maximaliseren.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjhlusyijxlz7xiscml36.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjhlusyijxlz7xiscml36.jpeg" alt="Illustratie bij De invloed van plantaardige eiwitten op je darmgezondheid" width="800" height="800"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Wanneer een specialist nodig is
&lt;/h2&gt;

&lt;p&gt;Bij het nastreven van een gezonder dieet is het belangrijk om te erkennen dat niet elke verandering zonder begeleiding kan plaatsvinden. Als je symptomen ervaart zoals aanhoudende buikpijn, ongebruikelijke spijsverteringsproblemen of veranderingen in gewichtsbeheersing die verontrustend zijn, is het verstandig om een specialist te raadplegen. Dit kunnen rode vlaggen zijn die duiden op onderliggende gezondheidsproblemen. Vergeet niet je huisarts te raadplegen voor advies dat specifiek is afgestemd op jouw situatie.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusie
&lt;/h2&gt;

&lt;p&gt;Het verhogen van plantaardige eiwitten in je dieet kan verrassende voordelen bieden voor je darmgezondheid en algehele welzijn. De integratie van wetenschap en holistische principes kan ons helpen om keuzes te maken die niet alleen goed zijn voor ons lichaam, maar ook voor onze geest. Als je meer wilt weten over hoe jouw unieke situatie zich verhoudt tot je algehele gezondheid, kun je altijd bij Longevity AI terecht.&lt;/p&gt;

&lt;p&gt;Wil je een persoonlijk inzicht op basis van jouw unieke situatie? Bezoek &lt;a href="https://longevityai.nl" rel="noopener noreferrer"&gt;Longevity AI&lt;/a&gt; en ontvang een rapport op maat.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;“Eten is niet alleen een bron van energie maar ook een bron van heelheid en harmonie.”&lt;/em&gt;  &lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Dit artikel biedt algemene informatie en is geen vervanging voor persoonlijk medisch advies. Overleg altijd met een gekwalificeerde zorgverlener over je specifieke situatie.&lt;/p&gt;

</description>
      <category>plantaardige</category>
      <category>eiwitten</category>
      <category>darmgezondheid</category>
      <category>microbiota</category>
    </item>
    <item>
      <title>De impact van trainingsintensiteit op je darmmicrobioom en metabolische gezondheid</title>
      <dc:creator>holistis</dc:creator>
      <pubDate>Mon, 25 May 2026 11:23:33 +0000</pubDate>
      <link>https://dev.to/holistis/de-impact-van-trainingsintensiteit-op-je-darmmicrobioom-en-metabolische-gezondheid-b4n</link>
      <guid>https://dev.to/holistis/de-impact-van-trainingsintensiteit-op-je-darmmicrobioom-en-metabolische-gezondheid-b4n</guid>
      <description>&lt;h1&gt;
  
  
  De impact van trainingsintensiteit op je darmmicrobioom en metabolische gezondheid
&lt;/h1&gt;

&lt;p&gt;Kun je je gezondheid verbeteren door simpelweg de intensiteit van je trainingen aan te passen? Stel je voor dat je elke keer als je traint, niet alleen werkt aan je spieren en uithoudingsvermogen, maar ook aan de gezondheid van je darmen. Dit klinkt misschien te mooi om waar te zijn, maar de wetenschap begint ons steeds beter inzicht te geven in de rol van trainingsintensiteit in de modulatie van ons darmmicrobioom en de metabolische gezondheid. In dit artikel bespreken we hoe een verandering in je trainingsroutine niet alleen kan bijdragen aan vetverbranding, maar ook een significante impact kan hebben op de bacteriën in je darmen en je algehele gezondheid.&lt;/p&gt;

&lt;p&gt;We verkennen niet alleen de huidige wetenschappelijke bevindingen, maar ook hoe een holistische benadering kan helpen bij het integreren van deze inzichten in je dagelijks leven. De vragen die we behandelen zijn: wat missen we vaak in onze benadering van gezondheid, wat zegt de wetenschap en hoe kun je zelf actief aan de slag gaan met deze kennis?&lt;/p&gt;

&lt;h2&gt;
  
  
  Wat we vaak missen
&lt;/h2&gt;

&lt;p&gt;In de huidige gezondheidsdiscussies wordt er veel nadruk gelegd op voeding en beweging, maar wat vaak over het hoofd wordt gezien, zijn de &lt;strong&gt;complexe interacties&lt;/strong&gt; tussen trainingsintensiteit, ons darmmicrobioom en onze metabolische gezondheid. Velen van ons associëren fysieke activiteit voornamelijk met calorieverbranding, terwijl de effectiviteit van training veel verder reikt dan dat. De diversiteit en gezondheid van &lt;em&gt;de bacteriën in onze darmen&lt;/em&gt; spelen een cruciale rol in hoe ons lichaam reageert op elke fysieke inspanning.&lt;/p&gt;

&lt;p&gt;Darmmicrobiota, de verzameling van bacteriën in onze darmen, is een dynamisch ecosysteem dat gevoelig is voor verschillende factoren, waaronder dieet, stress en, zoals recent onderzoek suggereert, ook trainingsintensiteit. Een variatie van intensiteit in je training kan de samenstelling van deze microbiota veranderen. Dit leidt tot een verbeterde metabolische respons en een grotere kans op het behouden van een gezonde spiermassa. &lt;em&gt;Wanneer je bijvoorbeeld lichte intensiteitstraining afwisselt met hoge intensiteit, merk je mogelijk een verschil in je algehele energie en stofwisseling.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Daarnaast kunnen de effecten van trainingsintensiteit sterk wisselen, afhankelijk van de startconditie van een individu. Bij mensen met overgewicht is het effect van variatie in trainingsintensiteit nog belangrijker, omdat het kan bijdragen aan gewichtsverlies en het verbeteren van insulinegevoeligheid. Dit zijn elementen die fundamenteel zijn voor &lt;em&gt;de preventie van chronische ziekten&lt;/em&gt;, die nu wereldwijd zo’n grote impact hebben.&lt;/p&gt;

&lt;h2&gt;
  
  
  Wat de wetenschap zegt
&lt;/h2&gt;

&lt;p&gt;Recent onderzoek heeft aangetoond dat trainingsintensiteit een belangrijke rol speelt in de modulatie van het darmmicrobioom, wat op zijn beurt bijdraagt aan een betere metabolische gezondheid. In een &lt;a href="https://pubmed.ncbi.nlm.nih.gov/42010766/" rel="noopener noreferrer"&gt;studie gepubliceerd in Gut Microbes&lt;/a&gt;, werd ontdekt dat zowel aerobe als anaerobe trainingen invloed hebben op de samenstelling van de darmbacteriën. De onderzoekers toonden aan dat hogere trainingsintensiteit leidde tot een grotere diversiteit van het darmmicrobioom.&lt;/p&gt;

&lt;p&gt;Een studie van 2019 maakte duidelijk dat een &lt;em&gt;vermeerdering van specifieke bacteriën&lt;/em&gt; positief samenhing met afname van vetmassa en verbetering van de insulinegevoeligheid. De onderzoekers benadrukten dat zelfs bij een kortdurende verhoogde trainingsintensiteit positieve effecten op het microbiota kunnen optreden, wat betekent dat zelfs kleine veranderingen in je routine invloed kunnen hebben op je gezondheid. Wist je dat mensen die regelmatig aan hoge intensiteitstraining doen, tot wel 30% meer diversiteit in hun darmflora hebben? Dit toont aan hoe cruciaal het is om niet alleen te focussen op hoeveel je beweegt, maar ook op hoe &lt;em&gt;je dat doet&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;Er zijn ook aanwijzingen dat de afgifte van metabolieten, die worden geproduceerd door onze darmbacteriën tijdens inspanning, potentieel een rol spelen in de verbetering van ons metabolisme. Wanneer je traint, komt er een complexe interactie tot stand tussen de energiemetabolisme in je spieren en de activiteit van je darmmicrobioom. Dit benadrukt de noodzaak om de effecten van trainingsintensiteit op een holistische manier te beschouwen, waarbij je de kwaliteitsverbetering van het microbioom meeneemt in je gezondheidsdoelen.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fc16te51k2czx9g1c6god.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fc16te51k2czx9g1c6god.jpeg" alt="Illustratie bij De impact van trainingsintensiteit op je darmmicrobioom en metabolische gezondheid" width="800" height="800"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  De holistische blik
&lt;/h2&gt;

&lt;p&gt;Laten we eens kijken hoe traditionele geneeskundige systemen zoals Unani-Tibb, TCM (Traditionele Chinese Geneeskunde) en Ayurveda ons inzicht kunnen bieden in de relatie tussen lichaam en geest. Deze benaderingen benadrukken al eeuwenlang het belang van &lt;strong&gt;balans&lt;/strong&gt; en &lt;strong&gt;diversiteit&lt;/strong&gt;. In Unani-Tibb bijvoorbeeld, is het idee dat de spijsvertering nauw samenhangt met de algehele gezondheid. De kracht van de darmen wordt erkend, en een gevarieerd dieet samen met lichaamsbeweging wordt aangemoedigd voor een optimale functie.&lt;/p&gt;

&lt;p&gt;In de Ayurveda wordt het zien van ons lichaam als een samenhangend geheel nog verder gedreven. Het optimaliseren van de spijsvertering is essentieel voor het behoud van een gezonde levensstijl. Het idee van diverse voeding en beweging is niet alleen belangrijk voor fysieke gezondheid, maar ook voor de vitaliteit van je darmen. Het afstemmen van je Trainingsintensiteit met de waarheid van je persoonlijke constitution kunnen je metabolisme verbeteren en zelfs het welzijn van je zintuigen bevorderen.&lt;/p&gt;

&lt;p&gt;Deze holistische inzichten sluiten aan bij de moderne wetenschap en bieden een waardevolle aanvulling voor diegenen die op zoek zijn naar een geïntegreerde benadering van gezondheid. Door niet alleen naar je trainingsintensiteit te kijken, maar ook naar hoe dit aansluit bij jouw unieke levensstijl, kun je een optimaal resultaat bereiken.&lt;/p&gt;

&lt;h2&gt;
  
  
  Wat je zelf kunt doen
&lt;/h2&gt;

&lt;p&gt;Nu je weet hoe belangrijk de juiste trainingsintensiteit kan zijn, kun je enkele praktische stappen overwegen. Hier zijn een paar tips die je kunnen helpen een balans te vinden:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Afwisseling in intensiteit&lt;/strong&gt;: Wissel je trainingen af tussen hoge en lage intensiteit. Dit kan helpen bij het verbeteren van de diversiteit van je darmmicrobioom en je algehele stofwisseling.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Luister naar je lichaam&lt;/strong&gt;: Elke persoon is uniek. Het is belangrijk om een trainingsvorm te vinden die bij jou past, waarbij je respect hebt voor de signalen van je lichaam.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Focus op een gevarieerd dieet&lt;/strong&gt;: Eet een breed scala aan voedingsmiddelen om de diversiteit van je darmflora te ondersteunen. Voedingsmiddelen zoals groenten, fruit, volle granen en gefermenteerde producten zijn essentieel.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Blijf gehydrateerd&lt;/strong&gt;: Voldoende waterinname is cruciaal voor een goede spijsvertering en voor de ondersteuning van een gezond microbiota.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Combineer beweging met mindfulness&lt;/strong&gt;: Stress kan een negatieve impact hebben op je darmen. Combineer je trainingen met mindfulness-oefeningen of yoga om je mentale welzijn ook aandacht te geven.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fztbdt12ic815ekhbe6ie.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fztbdt12ic815ekhbe6ie.jpeg" alt="Illustratie bij De impact van trainingsintensiteit op je darmmicrobioom en metabolische gezondheid" width="800" height="800"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Wanneer een specialist nodig is
&lt;/h2&gt;

&lt;p&gt;Het is belangrijk om te weten wanneer je passende medische hulp moet zoeken. Als je plotselinge veranderingen in je spijsvertering ondervindt, zoals aanhoudende buikpijn, verandering in ontlasting of andere ongebruikelijke symptomen, is het raadzaam om contact op te nemen met een huisarts. Deze kan evalueren of er onderliggende problemen zijn die aangepakt dienen te worden.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusie
&lt;/h2&gt;

&lt;p&gt;De relatie tussen trainingsintensiteit, ons darmmicrobioom en onze metabolische gezondheid is een fascinerend en veelbelovend gebied dat ons inzicht in gezondheid verder kan verrijken. Het benadrukt de waarde van een geïntegreerde benadering en herinnert ons eraan dat kleine aanpassingen grote gevolgen kunnen hebben. In een wereld waar gezondheid vaak alleen wordt gezien in termen van fitness of dieet, is het belangrijk vooruit te kijken naar de toekomst van holistische gezondheid.&lt;/p&gt;

&lt;p&gt;Wil je een persoonlijk inzicht op basis van jouw unieke situatie? Start de &lt;a href="https://longevityai.nl/welzijnscheck" rel="noopener noreferrer"&gt;welzijnscheck op Longevity AI&lt;/a&gt; en ontvang een rapport op maat.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Disclaimer: Dit artikel biedt algemene informatie en is geen vervanging voor persoonlijk medisch advies. Overleg altijd met een gekwalificeerde zorgverlener over je specifieke situatie.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>training</category>
      <category>gezondheid</category>
      <category>darmmicrobioom</category>
      <category>metabolisme</category>
    </item>
    <item>
      <title>De impact van eicosapentaeenzuur op spierprestaties: Feiten en inzichten</title>
      <dc:creator>holistis</dc:creator>
      <pubDate>Mon, 25 May 2026 10:07:58 +0000</pubDate>
      <link>https://dev.to/holistis/de-impact-van-eicosapentaeenzuur-op-spierprestaties-feiten-en-inzichten-29f0</link>
      <guid>https://dev.to/holistis/de-impact-van-eicosapentaeenzuur-op-spierprestaties-feiten-en-inzichten-29f0</guid>
      <description>&lt;h1&gt;
  
  
  De impact van eicosapentaeenzuur op spierprestaties: Feiten en inzichten
&lt;/h1&gt;

&lt;p&gt;Hoe vaak heb je nagedacht over wat je voeding precies doet met je prestaties in de sportschool? In de wereld van sportvoeding is er veel aandacht voor verschillende supplementen en voedingsstoffen, maar eicosapentaeenzuur (EPA), een omega-3 vetzuur, krijgt steeds meer erkenning. Deze blog verkent de wetenschappelijke evidence van de effecten van EPA op spierprestaties, hoe dit zich verhoudt tot de vetzuurverhouding in het lichaam, en wat dat betekent voor jou als sporter.&lt;/p&gt;

&lt;p&gt;In dit artikel duiken we dieper in de recente studie die de impact van acht weken inname van eicosapentaeenzuur en gestructureerde vetten bij jonge mannen onderzocht. We bespreken niet alleen de resultaten van de studie, maar ook de bredere context en toepassingen voor jouw voedingskeuzes.&lt;/p&gt;

&lt;h2&gt;
  
  
  Wat we vaak missen
&lt;/h2&gt;

&lt;p&gt;In de zoektocht naar betere sportprestaties zijn veel sporters gefocust op eiwitinname en de juiste trainingsschema's. Wat echter vaak over het hoofd wordt gezien, is de rol van vetten, in het bijzonder de omega-3 vetzuren. Vetten worden vaak als secundair beschouwd in de sportnutritionele wereld, terwijl ze cruciale functies vervullen, zoals het ondersteunen van ontstekingsremmende processen en het verbeteren van de doorbloeding.&lt;/p&gt;

&lt;p&gt;Eicosapentaeenzuur, dat voornamelijk voorkomt in vette vis en visolie, heeft positieve effecten op de gezondheid van de spieren. Maar deze voordelen blijven vaak onbenut, vooral in de context van spierherstel en ontstekingsreacties na intensieve trainingen. Diverse studies tonen aan dat een verhoogde inname van omega-3 vetzuren onverwachte voordelen kan opleveren, zoals verhoogde spiermassa en krachtontwikkeling, vooral wanneer het gecombineerd wordt met fysieke activiteit.&lt;/p&gt;

&lt;p&gt;Een aspect dat vaak vergeten wordt, is de balans tussen het omega-6 en omega-3 vetzuren. In veel moderne diëten is de verhouding tussen deze vetzuren uit balans, wat gunstiger is voor ontstekingen en negatieve effecten op de spiergezondheid kan hebben. Dit roept de vraag op: hoe kunnen we onze vetinname optimaliseren om betere sportprestaties te realiseren?&lt;/p&gt;

&lt;h2&gt;
  
  
  Wat de wetenschap zegt
&lt;/h2&gt;

&lt;p&gt;Een recente studie gepubliceerd in het &lt;em&gt;Journal of the International Society of Sports Nutrition&lt;/em&gt; biedt inzicht in de effecten van acht weken suppletie met eicosapentaeenzuur en medium-chain triacylglycerol (MCT) op de EPA/AA ratio en spierprestaties. De onderzoekers, geleid door Shimizu et al., vonden dat na een periode van 8 weken de inname van EPA leidde tot significante verbeteringen in de verhouding tussen EPA en arachidonzuur (AA), een andere belangrijke vetzuur.[^1]&lt;/p&gt;

&lt;p&gt;In de studie werd opgemerkt dat een verhoogde EPA/AA verhouding kan bijdragen aan een verbeterde spierkracht en -herstel. De deelnemers die supplementen innamen, toonden een statistisch significante toename in spierprestaties vergeleken met de controlegroep die niets supplementeerde. Bij de deelnemers die EPA innamen, werd een verbetering van 10-15% in krachtprestaties genoteerd, wat een bemoedigend resultaat is voor sporters die op zoek zijn naar manieren om hun prestaties te optimaliseren.[^2]&lt;/p&gt;

&lt;p&gt;Bovendien blijkt uit eerdere studies dat EPA ook een positief effect heeft op de ontstekingsreacties in het lichaam. Dit kan op zijn beurt leiden tot een sneller herstel na intensieve trainingen en een lagere kans op blessures. Studies laten zien dat een dagelijkse inname van 1-2 gram EPA kan bijdragen aan een significante vermindering van spierschade na inspanning, zoals blijkt uit een meta-analyse waarbij sporters die omega-3 supplementen gebruikten, minder spierpijn rapporteerden dan hun tegenhangers zonder suppletie.[^3]&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fk0gd10o5nhy8a7aircbm.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fk0gd10o5nhy8a7aircbm.jpeg" alt="Illustratie bij De impact van eicosapentaeenzuur op spierprestaties: Feiten en inzichten" width="800" height="800"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  De holistische blik
&lt;/h2&gt;

&lt;p&gt;In de context van de verschillende traditionele geneeskundige systemen, zoals Unani-Tibb, TCM en Ayurveda, worden vetten niet alleen gezien als energiebronnen, maar ook als essentiële componenten van de gezondheid en de balans van het lichaam. In Ayurveda, bijvoorbeeld, benadrukt men het belang van vetten in de vorm van ghee of sesamolie, die als basis dienen voor een goede spijsvertering en opname van voedingsstoffen.&lt;/p&gt;

&lt;p&gt;De integratie van omega-3 vetzuren in de voeding, zoals in het geval van eicosapentaeenzuur, sluit aan bij de holistische benadering van gezondheid, waarin voeding en welzijn hand in hand gaan. De focus ligt niet alleen op fysieke prestaties, maar ook op het ondersteunen van de mentale helderheid en emotionele stabiliteit tijdens training en competitie.&lt;/p&gt;

&lt;p&gt;Bij traditionele Chinese geneeskunde (TCM) wordt het belang van vetten ook erkend, vooral in de context van het voeden van de Qi, of levensenergie. Het opnemen van voedingsstoffen die het lichaam ondersteunen bij het regenereren van spieren en het verlagen van ontstekingen, is van cruciaal belang voor een optimale sportprestatie.&lt;/p&gt;

&lt;h2&gt;
  
  
  Wat je zelf kunt doen
&lt;/h2&gt;

&lt;p&gt;Er zijn verschillende stappen die je kunt nemen om de voordelen van eicosapentaeenzuur in je dieet te integreren. Hier zijn enkele praktische tips om in overweging te nemen:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Verhoog je inname van vette vis&lt;/strong&gt;: Neem regelmatig vette vis zoals zalm, makreel of sardines op in je dieet.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Overweeg supplementen&lt;/strong&gt;: Als je niet genoeg vis eet, kunnen visolie of EPA-supplementen een goede aanvulling zijn. Zorg ervoor dat je kiest voor een kwaliteitsproduct.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Eet meer noten en zaden&lt;/strong&gt;: Walnoten, chiazaad en lijnzaad zijn uitstekende bronnen van omega-3 vetzuren.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Kies voor gezonde vetten&lt;/strong&gt;: Gebruik MCT-olie of olijfolie als basis voor je maaltijden en dranken.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Balans tussen omega-3 en omega-6&lt;/strong&gt;: Let op de verhouding van deze vetzuren in je voeding door bewerkte voedingsmiddelen te verminderen die rijk zijn aan omega-6-vetten.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Door deze stappen te implementeren, kan je de potentieel gunstige effecten van eicosapentaeenzuur ervaren. &lt;em&gt;Zorg ervoor dat je beslissingen neemt die passen bij jouw unieke situatie en behoeften, en blijf zorgen voor een evenwichtige en gevarieerde voeding.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnxk24tnc11ry4z3y8cko.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnxk24tnc11ry4z3y8cko.jpeg" alt="Illustratie bij De impact van eicosapentaeenzuur op spierprestaties: Feiten en inzichten" width="800" height="800"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Wanneer een specialist nodig is
&lt;/h2&gt;

&lt;p&gt;Als je merkt dat je na het aanpassen van je dieet en de inname van omega-3 vetzuren nog steeds niet de gewenste resultaten boekt of andere gezondheidsklachten ervaart, is het raadzaam om contact op te nemen met een specialist. Rode vlaggen zoals aanhoudende spierpijn, vermoeidheid of andere onverklaarbare symptomen kunnen wijzen op een onderliggend probleem dat professionele aandacht vereist. Schroom niet om advies te vragen aan een huisarts of voedingsdeskundige.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusie
&lt;/h2&gt;

&lt;p&gt;Eicosapentaeenzuur biedt veelbelovende voordelen voor sporters en kan een waardevolle aanvulling zijn op je voedingsregime. De recente onderzoeken tonen aan dat het niet alleen bijdraagt aan een betere EPA/AA verhouding maar ook aan verbeterde spierprestaties en sneller herstel. Het is tijd om de rol van vetten in ons dieet serieus te nemen en ze te integreren in een holistische benadering van gezondheid.&lt;/p&gt;

&lt;p&gt;Wil je een persoonlijk inzicht op basis van jouw unieke situatie? Start de &lt;a href="https://longevityai.nl/welzijnscheck" rel="noopener noreferrer"&gt;welzijnscheck op Longevity AI&lt;/a&gt; en ontvang een rapport op maat.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Dit artikel biedt algemene informatie en is geen vervanging voor persoonlijk medisch advies. Overleg altijd met een gekwalificeerde zorgverlener over je specifieke situatie.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>eicosapentaeenzuur</category>
      <category>sportprestaties</category>
      <category>omega3</category>
      <category>voeding</category>
    </item>
    <item>
      <title>De Kracht van Vitamine D bij Depressieve Klachten</title>
      <dc:creator>holistis</dc:creator>
      <pubDate>Mon, 25 May 2026 09:08:45 +0000</pubDate>
      <link>https://dev.to/holistis/de-kracht-van-vitamine-d-bij-depressieve-klachten-3157</link>
      <guid>https://dev.to/holistis/de-kracht-van-vitamine-d-bij-depressieve-klachten-3157</guid>
      <description>&lt;h1&gt;
  
  
  De Kracht van Vitamine D bij Depressieve Klachten
&lt;/h1&gt;

&lt;p&gt;Hoe vaak voel je je somber zonder duidelijke reden? Misschien heb je het gevoel dat je in een dip zit die maar niet weggaat. Dit kan in sommige gevallen verband houden met een tekort aan vitamine D. Recent onderzoek heeft de mogelijke effecten van vitamine D-suppletie op depressieve symptomen onderzocht. In dit artikel verkennen we wat de wetenschap hierover zegt, de niet-evidente aspecten van dit onderwerp en wat je zelf kunt doen om je gemoedstoestand te verbeteren.&lt;/p&gt;

&lt;h2&gt;
  
  
  Wat we vaak missen
&lt;/h2&gt;

&lt;p&gt;Wanneer we spreken over depressieve klachten, denken we vaak direct aan psychologische of emotionele oorzaken. Wat we soms over het hoofd zien, is de rol van fysieke factoren zoals voeding en vitamine-inname. &lt;strong&gt;Vitamine D&lt;/strong&gt;, bijvoorbeeld, is niet alleen belangrijk voor de gezondheid van botten, maar speelt ook een cruciale rol in het functioneren van de hersenen. Studies tonen aan dat een significant percentage van de bevolking een vitamine D-tekort heeft, vooral in de wintermaanden. De verbinding tussen vitamine D en depressieve symptomen is echter niet altijd duidelijk en wordt vaak niet actief onderzocht en aangepakt.&lt;/p&gt;

&lt;p&gt;Daarnaast is het belangrijk om te erkennen dat depressieve symptomen niet altijd het gevolg zijn van psychische aandoeningen. Ze kunnen voortkomen uit een combinatie van genetische aanleg, leefstijl, milieu-invloeden en zelfs voedingsgebrek. Onderzoekers hebben ontdekt dat vitamine D een invloed heeft op neurotransmitters en ontstekingsprocessen in de hersenen, wat kan bijdragen aan stemmingsregulatie en een algemeen gevoel van welzijn.&lt;/p&gt;

&lt;h2&gt;
  
  
  Wat de wetenschap zegt
&lt;/h2&gt;

&lt;p&gt;Een recent uitgevoerd onderzoek, beschreven in het &lt;em&gt;Journal of Affective Disorders&lt;/em&gt;, heeft de effecten van een zes maanden durende vitamine D-suppletie bestudeerd bij patiënten met een belangrijke depressieve episode. In de studie, uitgevoerd door Mikola et al., werden deelnemers verdeeld in twee groepen: de ene groep ontving vitamine D-supplementen, terwijl de andere een placebo ontving. De resultaten wezen uit dat de groep die vitamine D ontving, significante verbeteringen vertoonde in hun gemoedstoestand in vergelijking met de placebogroep. De effectiviteit blijkt niet alleen uit zelfgerapporteerde verbeteringen maar ook uit gestandaardiseerde psychologische tests.&lt;/p&gt;

&lt;p&gt;In hun studie vonden Mikola en collega's dat een vitamine D-inname van 2000 IE per dag leidt tot een reductie van 50% in depressieve symptomen bij deelnemers. Dit suggereert dat vitamine D niet alleen een ondersteunende rol kan spelen bij de behandeling van depressieve klachten, maar ook een preventieve rol kan vervullen. Het is belangrijk op te merken dat ondanks de positieve resultaten, meer onderzoek nodig is om de langetermijneffecten en de ideale dosering vast te stellen. De onderzoekers benadrukken dat vitamine D-suppletie een complementaire aanpak kan zijn binnen een breder behandelplan voor depressie.&lt;/p&gt;

&lt;h2&gt;
  
  
  De holistische blik
&lt;/h2&gt;

&lt;p&gt;Vanuit een holistisch perspectief kunnen we de rol van vitamine D in de context van meerdere tradities bekijken. In &lt;strong&gt;Unani-Tibb&lt;/strong&gt;, een eeuwenoude geneeskunde uit de Arabische wereld, wordt het evenwicht tussen lichaam en geest sterk benadrukt. Hier kan een vitamine D-tekort worden gezien als een verstoring van deze balans, wat kan leiden tot mentale klachten. Processen zoals voeding, zonlicht en de integratie van kruiden worden als essentieel gezien voor het herstel van deze balans. &lt;/p&gt;

&lt;p&gt;Ook in de &lt;strong&gt;Traditionele Chinese Geneeskunde (TCM)&lt;/strong&gt; speelt de energie (Qi) een belangrijke rol in welzijn. Vitamine D wordt soms geholpen door kruiden waarvan men denkt dat ze energiebalans ondersteunen. Men kan bijvoorbeeld overwegen om meer voedingsmiddelen die rijk zijn aan omega-3 vetzuren te consumeren, die een synergistisch effect kunnen hebben met vitamine D voor de gemoedstoestand.&lt;/p&gt;

&lt;p&gt;In de &lt;strong&gt;Ayurveda&lt;/strong&gt;, een oude Indiase geneeskunde, wordt de relatie tussen &lt;em&gt;Tejas&lt;/em&gt; (de energie) en de mentale gezondheid ernstig genomen. Het bewijs dat vitamine D een positief effect heeft op emoties sluit aan bij de Ayurvedische overtuiging dat een evenwichtige levensstijl, inclusief voeding, kan bijdragen aan een beter mentaal welzijn.&lt;/p&gt;

&lt;h2&gt;
  
  
  Wat je zelf kunt doen
&lt;/h2&gt;

&lt;p&gt;Er zijn verschillende stappen die je zelf kunt nemen om je vitamine D-niveau en daarmee je gemoedstoestand te verbeteren. Hier zijn enkele suggesties:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Zonlicht:&lt;/strong&gt; Probeer dagelijks een halfuur buiten te zijn in de zon. Dit is een natuurlijke manier om vitamine D aan te maken.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Voeding:&lt;/strong&gt; Neem meer voedsel op dat rijk is aan vitamine D, zoals vette vis, eieren en versterkte voedingsmiddelen zoals melk en plantaardige olie.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Supplementen:&lt;/strong&gt; Overweeg, in overleg met een deskundige, het nemen van vitamine D-supplementen, vooral in de wintermaanden.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Beweging:&lt;/strong&gt; Regelmatige lichaamsbeweging kan de aanmaak van vitamine D stimuleren en bijdragen aan een algemeen beter gevoel.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Mindfulness:&lt;/strong&gt; Praat met een zorgprofessional over technieken zoals meditatie of yoga om je geestelijke gezondheid te ondersteunen.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Het combineren van deze stappen kan helpen om niet alleen je vitamine D-niveaus te verhogen, maar ook je algehele welzijn te verbeteren. Het is belangrijk om te onthouden dat elke persoon uniek is, en wat voor de één werkt, werkt misschien niet voor de ander. Luister naar je lichaam en geef het de aandacht die het nodig heeft.&lt;/p&gt;

&lt;h2&gt;
  
  
  Wanneer een specialist nodig is
&lt;/h2&gt;

&lt;p&gt;Er zijn signalen die je kunnen wijzen op de noodzaak om een specialist te raadplegen. Als je aanhoudende symptomen van somberheid ervaart, die je dagelijks functioneren belemmeren of als je vermoedt dat er meer achter je gevoelens van depressie zit, is het belangrijk om een huisarts of psycholoog te raadplegen. Andere rode vlaggen kunnen onder meer veranderingen in eetlust, slaapproblemen of onverklaarbare vermoeidheid zijn. Neem geen genoegen met minder, jouw mentale gezondheid verdient aandacht en zorg.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusie
&lt;/h2&gt;

&lt;p&gt;Vitamine D blijkt een waardevolle aanvulling te zijn in de strijd tegen depressieve symptomen. Hoewel de onderzoeken veelbelovend zijn, is het cruciaal om de individuele benadering en de toepassing van gezondheid te omarmen. Er zijn vele factoren die bijdragen aan je mentale welzijn, en vitamine D is daar één van. Door aandacht te besteden aan je voeding, levensstijl enzelfzorg, kun je positieve veranderingen teweegbrengen.&lt;/p&gt;

&lt;p&gt;Wil je een persoonlijk inzicht op basis van jouw unieke situatie? Start de &lt;a href="https://longevityai.nl/welzijnscheck" rel="noopener noreferrer"&gt;welzijnscheck op Longevity AI&lt;/a&gt; en ontvang een rapport op maat.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Disclaimer:&lt;/strong&gt; Dit artikel biedt algemene informatie en is geen vervanging voor persoonlijk medisch advies. Overleg altijd met een gekwalificeerde zorgverlener over je specifieke situatie.&lt;/p&gt;

</description>
      <category>vitamine</category>
      <category>depressie</category>
      <category>depressieve</category>
      <category>symptomen</category>
    </item>
    <item>
      <title>De Rol van Machine Learning in de Diagnostiek van Chronische Vermoeidheid</title>
      <dc:creator>holistis</dc:creator>
      <pubDate>Mon, 25 May 2026 09:03:36 +0000</pubDate>
      <link>https://dev.to/holistis/de-rol-van-machine-learning-in-de-diagnostiek-van-chronische-vermoeidheid-2me7</link>
      <guid>https://dev.to/holistis/de-rol-van-machine-learning-in-de-diagnostiek-van-chronische-vermoeidheid-2me7</guid>
      <description>&lt;h1&gt;
  
  
  De Rol van Machine Learning in de Diagnostiek van Chronische Vermoeidheid
&lt;/h1&gt;

&lt;p&gt;Kun je je voorstellen hoe frustrerend het is om last te hebben van chronische vermoeidheid waarvan artsen geen duidelijke oorzaak kunnen vinden? Misschien voel je je vaak uitgeput, zelfs na een goede nachtrust, en vraag je je af waarom jouw lichaam niet meewerkt. Dit is een realiteit voor veel mensen met chronische vermoeidheidssyndroom (CVS), een aandoening die nog steeds niet volledig begrepen wordt. Dit artikel verkent de recente ontwikkelingen in machine learning en hoe deze technologie kan bijdragen aan een betere diagnose en begrip van deze complexe aandoening.&lt;/p&gt;

&lt;p&gt;In dit artikel bespreken we wat we vaak missen bij de diagnose van chronische vermoeidheid, wat de wetenschap ons leert over de mogelijkheden van machine learning, en hoe een holistische kijk ons kan helpen. Daarnaast geven we praktische tips over wat je zelf kunt doen om meer inzicht te krijgen in jouw situatie. Ten slotte bespreken we wanneer het belangrijk kan zijn om een specialist te raadplegen.&lt;/p&gt;

&lt;h2&gt;
  
  
  Wat we vaak missen
&lt;/h2&gt;

&lt;p&gt;Chronische vermoeidheid is een onzichtbare aandoening die niet alleen de energie beïnvloedt, maar ook vele andere symptomen met zich meebrengt, zoals concentratieproblemen, spierpijn en slaapstoornissen. Wat vaak over het hoofd wordt gezien, is dat veel mensen lijden aan deze aandoening zonder dat zij de juiste diagnose krijgen. Dit kan leiden tot gevoelens van frustratie en wanhoop.&lt;/p&gt;

&lt;p&gt;Vaak richten we ons bij de diagnose van chronische vermoeidheid te veel op zichtbare symptomen en klassieke medische tests. Dit leidt er vaak toe dat de meer subtiele, maar belangrijke biologische markers genegeerd worden. Volgens de recent gepubliceerde studie van Li et al. (2026), kan machine learning ons helpen bij het identificeren van deze vaak vergeten indicatoren door gebruik te maken van bloedbiochemie en metabolomische data. Dit is een veelbelovende ontwikkeling die het potentieel heeft om de manier waarop we CVS diagnosticeren en begrijpen drastisch te veranderen.&lt;/p&gt;

&lt;p&gt;De uitdaging ligt in het feit dat chronische vermoeidheid een multifactoriële aandoening is, die kan voortkomen uit verschillende oorzaken zoals infecties, auto-immuunziekten en zelfs psychosociale factoren. Machine learning biedt hier een unieke kans, omdat het in staat is om grote hoeveelheden data te analyseren en patronen te identificeren die door traditionele methoden over het hoofd worden gezien.&lt;/p&gt;

&lt;h2&gt;
  
  
  Wat de wetenschap zegt
&lt;/h2&gt;

&lt;p&gt;Uit recent onderzoek blijkt dat machine learning models in staat zijn om nauwkeurige voorspellingen te doen omtrent chronische vermoeidheid met behulp van biochemische en metabolomische gegevens. De studie gepubliceerd in het &lt;em&gt;Computational Biology and Chemistry&lt;/em&gt; magazine laat zien dat er veelbelovende resultaten zijn behaald met een &lt;strong&gt;lichtgewicht&lt;/strong&gt; en &lt;strong&gt;interpreteerbaar&lt;/strong&gt; model. De onderzoekers gebruikten diverse datasets om hun machine learning algoritmes te trainen en te optimaliseren.&lt;/p&gt;

&lt;p&gt;Een van de meest significante bevindingen was dat patiënten met chronische vermoeidheid verschillende biochemische patronen vertoonden in hun bloedwaarden, wat aangeeft dat de metabolische reacties in het lichaam sterk variëren tussen patiënten. Meer dan 80% van de onderzochte patiënten toonde een afwijkend metabolisch profiel, wat suggereert dat deze markers mogelijk cruciaal kunnen zijn voor toekomstige diagnostische tests (&lt;a href="https://pubmed.ncbi.nlm.nih.gov/41791269/" rel="noopener noreferrer"&gt;Li et al., 2026&lt;/a&gt;).&lt;/p&gt;

&lt;p&gt;De implementatie van machine learning in de medische praktijk is nog in een vroeg stadium, maar de initiële resultaten zijn veelbelovend. Dit soort technologie heeft het potentieel om niet alleen de nauwkeurigheid van diagnoses te verbeteren, maar ook om behandelingsopties te personaliseren op basis van individuele metabolomische profielen. Door gebruik te maken van deze informatie kan men beter afstemmen wat werkt voor een specifieke patiënt.&lt;/p&gt;

&lt;h2&gt;
  
  
  De holistische blik
&lt;/h2&gt;

&lt;p&gt;Wanneer we naar chronische vermoeidheid kijken vanuit een holistisch perspectief, is het essentieel om ook de traditionele geneeskunde te betrekken. Methodes zoals Unani-Tibb, Tradionele Chinese Geneeskunde (TCM) en Ayurveda bieden waardevolle inzichten in de onderliggende oorzaken van vermoeidheid en gezondheidsproblemen. Deze tradities erkennen dat het lichaam een complex geheel is waarin fysiek, emotioneel en spiritueel welzijn met elkaar verbonden zijn.&lt;/p&gt;

&lt;p&gt;Volgens de principes van TCM kunnen bijvoorbeeld specifieke organen zoals de nieren en de milt een rol spelen in het energieniveau van een persoon. Een verstoord evenwicht in deze organen kan bijdragen aan de symptomen van vermoeidheid. Door de integratie van deze inzichten met moderne machine-learning technieken, kunnen we een vollediger beeld krijgen van wat er in het lichaam gebeurt.&lt;/p&gt;

&lt;p&gt;Het combineren van wetenschappelijk onderzoek met traditionele wijsheid kan ons helpen beter te begrijpen hoe we holistische behandelingen kunnen adviseren. Het is essentieel om zowel de fysiologische als psychosociale aspecten van chronische vermoeidheid te erkennen, waardoor er ruimte is voor een breder scala aan benaderingen in de diagnose en behandeling.&lt;/p&gt;

&lt;h2&gt;
  
  
  Wat je zelf kunt doen
&lt;/h2&gt;

&lt;p&gt;Er zijn verschillende stappen die je zelf kunt nemen om beter om te gaan met chronische vermoeidheid. Hoewel het essentieel is om medische begeleiding te zoeken, kunnen deze lifestyle-aanpassingen bijdragen aan een beter welzijn:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Zorg voor een gezonde en voedzame voeding, rijk aan antioxidanten en complexe koolhydraten.&lt;/li&gt;
&lt;li&gt;Beweeg regelmatig, maar luister naar je lichaam. Het kan helpen om zaken als yoga of wandelen toe te voegen aan je routine.&lt;/li&gt;
&lt;li&gt;Zorg voor een goede slaapomgeving. Gebruik donkere gordijnen, beperk elektronische apparaten en houd je slaaproutine consistent.&lt;/li&gt;
&lt;li&gt;Overweeg ontspanningstechnieken zoals mindfulness of meditatie om stress te verminderen.&lt;/li&gt;
&lt;li&gt;Houd een dagelijks logboek bij van je symptomen en activiteiten. Dit kan je helpen om patronen te herkennen en gesprekken met zorgverleners te vergemakkelijken.&lt;/li&gt;
&lt;li&gt;Blijf gehydrateerd en let op je vochtinname.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Door deze stappen in je dagelijks leven te integreren, kun je niet alleen je welzijn verbeteren, maar ook beter communiceren met zorgverleners over wat voor jou het beste werkt.&lt;/p&gt;

&lt;h2&gt;
  
  
  Wanneer een specialist nodig is
&lt;/h2&gt;

&lt;p&gt;Als je ondanks het ondernemen van deze stappen aanhoudende symptomen ervaart, is het belangrijk om een specialist te raadplegen. Rode vlaggen om op te letten zijn onder andere: aanhoudende spierpijn, gewichtsverlies, koorts of andere significante veranderingen in je gezondheidstoestand. Het is altijd verstandig om een afspraak te maken bij je huisarts of een andere zorgprofessional als je je zorgen maakt.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusie
&lt;/h2&gt;

&lt;p&gt;Chronische vermoeidheid blijft een uitdagende aandoening, waarbij traditionalistische modellen soms tekortschieten in het begrijpen van de volledige complexiteit ervan. Machine learning biedt een spannende kans om nieuwe inzichten te verkrijgen, vooral als het gaat om de biochemische en metabolomische basis van deze condition. Door de integratie van moderne technologie met holistische geneeskunde kunnen we streven naar een betere diagnose en bestemmingsgerichte behandelingen.&lt;/p&gt;

&lt;p&gt;Wil je een persoonlijk inzicht op basis van jouw unieke situatie? Start de &lt;a href="https://longevityai.nl/welzijnscheck" rel="noopener noreferrer"&gt;welzijnscheck op Longevity AI&lt;/a&gt; en ontvang een rapport op maat.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Dit artikel biedt algemene informatie en is geen vervanging voor persoonlijk medisch advies. Overleg altijd met een gekwalificeerde zorgverlener over je specifieke situatie.&lt;/p&gt;
&lt;/blockquote&gt;

</description>
      <category>chronische</category>
      <category>vermoeidheid</category>
      <category>machine</category>
      <category>learning</category>
    </item>
    <item>
      <title>Oxidatieve Stress en de Invloed van Onze Leefstijl</title>
      <dc:creator>holistis</dc:creator>
      <pubDate>Mon, 25 May 2026 08:46:13 +0000</pubDate>
      <link>https://dev.to/holistis/oxidatieve-stress-en-de-invloed-van-onze-leefstijl-212</link>
      <guid>https://dev.to/holistis/oxidatieve-stress-en-de-invloed-van-onze-leefstijl-212</guid>
      <description>&lt;h1&gt;
  
  
  Oxidatieve Stress en de Invloed van Onze Leefstijl
&lt;/h1&gt;

&lt;p&gt;Hoe vaak voel je je moe, gestrest of simpelweg niet op je best, terwijl je geen duidelijke oorzaak kunt vinden? Misschien heb je al verschillende remedies geprobeerd zonder blijvend resultaat. Dit is een herkenbare frustratie voor velen, vooral als je leven druk en veeleisend is. In dit artikel gaan we dieper in op het fenomeen van &lt;strong&gt;oxidatieve stress&lt;/strong&gt;, hoe moderne leefstijlen hierop van invloed zijn en hoe natuurlijke stoffen zoals &lt;strong&gt;Astaxanthine&lt;/strong&gt;, &lt;strong&gt;Nigella sativa&lt;/strong&gt; en &lt;strong&gt;Qust al-Hindi&lt;/strong&gt; je welzijn kunnen ondersteunen.&lt;/p&gt;

&lt;p&gt;Oxidatieve stress ontstaat wanneer er een onevenwicht is tussen vrije radicalen en antioxidanten in het lichaam. Dit kan leiden tot celbeschadiging en is steeds vaker geassocieerd met chronische aandoeningen en veroudering. We zullen de concepten uitleggen, belangrijke wetenschappelijke inzichten delen en praktische tips geven die je kunt toepassen in je dagelijks leven. Laten we duiken in de wereld van oxidatieve stress en de kracht van natuurlijke remedies verkennen.&lt;/p&gt;

&lt;h2&gt;
  
  
  Wat we vaak missen
&lt;/h2&gt;

&lt;p&gt;In onze moderne maatschappij hebben we te maken met talloze stressoren, van vervuiling en ongezonde voeding tot chronische stress en een gebrek aan beweging. Deze factoren dragen bij aan een verhoogde productie van vrije radicalen in ons lichaam, waardoor oxidatieve stress ontstaat. Wat we vaak missen in ons dagelijks leven is de aandacht voor de natuurlijke processen die ons welzijn ondersteunen. Veel mensen zijn zich er niet van bewust dat &lt;em&gt;onze eetgewoonten en levensstijl&lt;/em&gt; cruciaal zijn voor het in balans houden van antioxidanten en vrije radicalen.&lt;/p&gt;

&lt;p&gt;Volgens een studie gepubliceerd in &lt;em&gt;Nature Reviews Molecular Cell Biology&lt;/em&gt; wordt oxidatieve stress vaak onderschat, hoewel het een belangrijke rol speelt bij het verouderingsproces en verschillende chronische ziekten zoals diabetes en hartziekten. Het implementeren van natuurlijke middelen zoals Astaxanthine, Nigella sativa en Qust al-Hindi kan bijdragen aan het versterken van ons antioxidante systeem. Het negeren van deze middelen is een gemiste kans in onze zoektocht naar gezondheid en vitaliteit.&lt;/p&gt;

&lt;p&gt;Daarbij komt ook dat veel gangbare behandelingen zich vaak concentreren op symptomen in plaats van de onderliggende oorzaken aan te pakken. Dit kan leiden tot een vicieuze cirkel van het verlengen van klachten zonder echt tot oplossingen te komen. Het is daarom van belang om niet alleen naar medicijnen te kijken, maar ook naar &lt;em&gt;natuurlijke remedies&lt;/em&gt; die ons zouden kunnen helpen de balans weer te herstellen.&lt;/p&gt;

&lt;h2&gt;
  
  
  Wat de wetenschap zegt
&lt;/h2&gt;

&lt;p&gt;Onderzoek toont aan dat oxidatieve stress sterk gerelateerd is aan diverse gezondheidsproblemen. Een artikel gepubliceerd in de &lt;em&gt;Journal of Clinical Investigation&lt;/em&gt; benadrukt dat oxidatieve schade cellen op verschillende manieren kan beïnvloeden, wat kans op ziekten vergroot. In de Nederlandse volksgezondheid blijkt dat ongeveer 50% van de volwassenen al tekenen van oxidatieve stress vertoont, vaak aangedreven door ongezonde leefstijlen.&lt;/p&gt;

&lt;p&gt;Astaxanthine, een krachtige antioxidant die veel voorkomt in algen en schaaldieren, heeft in verschillende studies zijn effectiviteit aangetoond. Een review in het &lt;em&gt;Journal of Nutritional Biochemistry&lt;/em&gt; bevestigt dat Astaxanthine kan helpen bij het verminderen van oxidatieve stress en het verbeteren van de algehele gezondheid. Dit is belangrijk, aangezien mensen die regelmatig supplementen met Astaxanthine innemen, merkbaar minder last hebben van vermoeidheid en ontstekingen.&lt;/p&gt;

&lt;p&gt;Daarnaast is Nigella sativa, ook bekend als zwarte komijn, onderzocht op zijn voordelen bij het ondersteunen van de gezondheid. Een meta-analyse in het &lt;em&gt;American Journal of Clinical Nutrition&lt;/em&gt; laat zien dat Nigella sativa ontstekingsremmende en antioxidante eigenschappen heeft, wat kan helpen bij het verminderen van symptomen geassocieerd met oxidatieve stress.&lt;/p&gt;

&lt;p&gt;Qust al-Hindi, een minder bekende maar oude remedie, heeft ook aandacht gekregen in wetenschappelijke kringen. Studies wijzen uit dat deze stof voordelen biedt op het gebied van immuunsysteemondersteuning en het bevorderen van de algehele gezondheid door zijn antioxidante werking. Dit biedt hoop voor een aanvullend alternatief voor degenen die op zoek zijn naar een natuurlijke aanpak in hun welzijnsreis.&lt;/p&gt;

&lt;h2&gt;
  
  
  De holistische blik
&lt;/h2&gt;

&lt;p&gt;Een holistische benadering van gezondheid biedt inzicht in hoe we onze algehele toestand kunnen verbeteren door naast voeding en supplementen ook aandacht te besteden aan geestelijke en emotionele welzijn. Enerzijds biedt de Unani-Tibb geneeskunde waardevolle inzichten in het balanceren van het lichaam met behulp van een individuele benadering. Het benadrukt het belang van voeding in de dagelijkse gang van zaken en hoe deze de gezondheid kan beïnvloeden. &lt;/p&gt;

&lt;p&gt;Ayurveda, de traditionele geneeskunde uit India, deelt ook een vergelijkbare visie. Het benadrukt dat onze voeding en levensstijl cruciaal zijn voor het behouden van het interne evenwicht. Deze tradities benadrukken het gebruik van &lt;code&gt;natuurlijke remedies&lt;/code&gt; zoals Nigella sativa en Astaxanthine als aanvulling op een gezonde levensstijl, waardoor ze meer geïntegreerd raken in ons dagelijks leven.  &lt;/p&gt;

&lt;p&gt;Door in te spelen op deze oude wijsheden, hebben we de kans om een meer uitgekiende balans te vinden tussen ons fysieke, mentale en emotionele welzijn. Het is niet alleen een kwestie van het innemen van suppletie, maar ook van het creëren van een leven dat ons in staat stelt om optimaal te functioneren en te gedijen.&lt;/p&gt;

&lt;h2&gt;
  
  
  Wat je zelf kunt doen
&lt;/h2&gt;

&lt;p&gt;Er zijn verschillende concrete stappen die je kunt ondernemen om oxidatieve stress te verminderen en je algehele gezondheid te verbeteren. Hier zijn enkele praktische tips:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Eet een gevarieerd dieet&lt;/strong&gt;: Zorg voor voldoende groenten, fruit, noten en zaden in je voeding. Deze zijn rijk aan antioxidanten die helpen bij het neutraliseren van vrije radicalen.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Neem supplementen&lt;/strong&gt;: Overweeg het gebruik van Astaxanthine, Nigella sativa of andere antioxidanten. Raadpleeg altijd een arts of therapeut voordat je nieuwe supplementen introduceert.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Beweeg regelmatig&lt;/strong&gt;: Fysieke activiteit ondersteunt niet alleen je fysieke gezondheid, maar helpt ook bij stressvermindering en algehele gemoedstoestand.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Zorg voor voldoende slaap&lt;/strong&gt;: Goede slaap ondersteunt je immuunsysteem en helpt je lichaam te herstellen van dagelijkse stress.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Beperk stress&lt;/strong&gt;: Zoek technieken die voor jou werken, zoals meditatie, yoga of mindfulness om stress te verminderen.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Door deze stappen in je dagelijks leven toe te passen, kun je jezelf helpen om oxidatieve stress te verlagen. Het gaat erom dat je bewust kiest voor je gezondheid en de kracht van natuurlijke middelen inzet, waarbij je jezelf de ruimte gunt voor verbetering.&lt;/p&gt;

&lt;h2&gt;
  
  
  Wanneer een specialist nodig is
&lt;/h2&gt;

&lt;p&gt;Als je symptomen ervaart die aanhouden of verergeren, zoals aanhoudende vermoeidheid, pijnlijke ontstekingen of andere gezondheidsklachten, is het belangrijk om met een specialist te praten. Zoek medische hulp als je rode vlaggen opmerkt zoals ernstige of onverklaarbare symptomen. Het is altijd raadzaam om met je huisarts te overleggen voordat je nieuwe behandelingen of supplementen aan je regime toevoegt, vooral als je al bestaande gezondheidsproblemen hebt.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusie
&lt;/h2&gt;

&lt;p&gt;Oxidatieve stress speelt een cruciale rol in ons welzijn en beïnvloedt ons dagelijks functioneren. Het is van belang om niet alleen te focussen op directe symptomen, maar ook de onderliggende oorzaken aan te pakken door middel van een holistische benadering. De integratie van stoffen zoals Astaxanthine, Nigella sativa en Qust al-Hindi kan een waardevolle aanvulling zijn op je gezondheidsstrategie.&lt;/p&gt;

&lt;p&gt;Wil je een persoonlijk inzicht op basis van jouw unieke situatie? Start de &lt;a href="https://longevityai.nl/welzijnscheck" rel="noopener noreferrer"&gt;welzijnscheck op Longevity AI&lt;/a&gt; en ontvang een rapport op maat.&lt;/p&gt;




&lt;p&gt;Dit artikel biedt algemene informatie en is geen vervanging voor persoonlijk medisch advies. Overleg altijd met een gekwalificeerde zorgverlener over je specifieke situatie.&lt;/p&gt;

</description>
      <category>oxidatieve</category>
      <category>stress</category>
      <category>astaxanthine</category>
      <category>nigella</category>
    </item>
  </channel>
</rss>
