<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>CraftRipple Blog</title><link>https://craftripple.com/blog</link><description>Practical writing on secure development, DevOps, self-hosting and AI integration from CraftRipple, a Brussels-based development studio.</description><language>en-US</language><copyright>CraftRipple Studio</copyright><lastBuildDate>Sun, 12 Jul 2026 00:19:32 +0200</lastBuildDate><atom:link href="https://craftripple.com/blog/index.xml" rel="self" type="application/rss+xml"/><item><title>One Toggle From a Breach: How We Built Keelscan to Scan Code, Live Apps, and Supabase in One Grade</title><link>https://craftripple.com/blog/keelscan-three-surface-security-scanner</link><guid isPermaLink="true">https://craftripple.com/blog/keelscan-three-surface-security-scanner</guid><pubDate>Sun, 12 Jul 2026 00:19:32 +0200</pubDate><category>Security</category><description>Deals stall in security review, and the odds are against a team that shipped fast. We built Keelscan to answer "is your app secure?" across the three surfaces a reviewer actually checks: your code, your running app, and your cloud data config. This post walks through the engineering: catching a Supabase RLS leak with only the public anon key, scanning any URL without building an SSRF weapon, and why we made the grade less harsh to keep it honest.</description></item><item><title>HIPAA-Compliant Clinical Platform: The Architecture Decisions That Define What's Possible Later</title><link>https://craftripple.com/blog/hipaa-compliant-clinical-platform-architecture</link><guid isPermaLink="true">https://craftripple.com/blog/hipaa-compliant-clinical-platform-architecture</guid><pubDate>Sat, 27 Jun 2026 23:39:37 +0200</pubDate><category>Security</category><description>Most healthcare founders build the feature first and bolt on compliance later. That order gets you a working demo and a rewrite six months in. Here's how we structure HIPAA-compliant clinical platforms from day one: data layer, auth, audit trail, AI integration, and which decisions close off future options if you get them wrong early.</description></item><item><title>Self-Hosting Umami: Privacy-First Analytics Behind a Cloudflare Tunnel</title><link>https://craftripple.com/blog/self-hosting-umami-cloudflare-tunnel</link><guid isPermaLink="true">https://craftripple.com/blog/self-hosting-umami-cloudflare-tunnel</guid><pubDate>Wed, 24 Jun 2026 12:52:11 +0200</pubDate><category>DevOps</category><description>I replaced third-party analytics with a self-hosted Umami instance on a Proxmox LXC container, provisioned via OpenTofu and exposed through a Cloudflare tunnel. Here's the exact setup, the gotchas, and why the port binding matters.</description></item><item><title>Run Your Own Local LLM: From Install to a Custom System Prompt</title><link>https://craftripple.com/blog/ollama-custom-model</link><guid isPermaLink="true">https://craftripple.com/blog/ollama-custom-model</guid><pubDate>Tue, 23 Jun 2026 19:37:24 +0200</pubDate><category>AI &amp; Machine Learning</category><description>Some work should never leave your machine. Here is how to install Ollama, pull a model that fits your GPU, fix the most common post-update CUDA error, and turn a stock model into a focused tool with a custom Modelfile and system prompt</description></item><item><title>Monitoring a Cloud Server with a Self-Hosted Wazuh SIEM: Without Exposing It to the Internet</title><link>https://craftripple.com/blog/wazuh-agent-over-wireguard</link><guid isPermaLink="true">https://craftripple.com/blog/wazuh-agent-over-wireguard</guid><pubDate>Sun, 07 Jun 2026 10:14:37 +0200</pubDate><category>Security</category><description>Self-hosting a SIEM is great for cost and control, but how does a cloud server report to a Wazuh manager that has no public IP? Here's the full, reproducible path: a WireGuard tunnel to the manager's private LAN, a version-pinned Wazuh agent, the firewall gotcha that makes `ping` lie to you, plus what to do next: clearing Amazon Linux 2023 CVEs and hardening the host against the CIS benchmark.</description></item><item><title>Building a Secure CI/CD Pipeline</title><link>https://craftripple.com/blog/building-a-secure-cicd-pipeline</link><guid isPermaLink="true">https://craftripple.com/blog/building-a-secure-cicd-pipeline</guid><pubDate>Fri, 05 Jun 2026 17:17:07 +0200</pubDate><category>DevOps</category><description>Most DevSecOps guides assume you have a dedicated security team. This covers how to get 80% of the value using GitHub Actions and free tools — the exact pipeline used on every CraftRipple Studio project.</description></item><item><title>How I Hardened My Web App's Security Headers Using Nuclei and Automated Scanning</title><link>https://craftripple.com/blog/how-i-hardened-my-web-apps-security-headers-using-nuclei-and-automated-scanning</link><guid isPermaLink="true">https://craftripple.com/blog/how-i-hardened-my-web-apps-security-headers-using-nuclei-and-automated-scanning</guid><pubDate>Sun, 01 Feb 2026 20:52:00 +0100</pubDate><category>Security</category><description>After running an automated Nuclei scan against my own infrastructure, I discovered 54 security findings. Here's how I fixed the most impactful ones — missing HTTP security headers, version disclosure, and deprecated configurations — across both an Nginx reverse proxy on EC2 and a Next.js landing page on Vercel</description></item><item><title>Security Best Practices for Modern Web Apps</title><link>https://craftripple.com/blog/security-best-practices-for-modern-web-apps</link><guid isPermaLink="true">https://craftripple.com/blog/security-best-practices-for-modern-web-apps</guid><pubDate>Wed, 21 Jan 2026 17:41:50 +0100</pubDate><category>Security</category><description>The PortSwigger Top 10 Web Hacking Techniques of 2025 is out. Here's what the winning research means in practice — translated from security researcher into developer guidance you can apply today.</description></item><item><title>Building Scalable Web Applications with Next.js</title><link>https://craftripple.com/blog/building-scalable-web-applications-with-nextjs</link><guid isPermaLink="true">https://craftripple.com/blog/building-scalable-web-applications-with-nextjs</guid><pubDate>Tue, 20 Jan 2026 17:41:50 +0100</pubDate><category>Development</category><description>Most Next.js tutorials show you how to build something. This covers the decisions that determine whether it stays maintainable — App Router patterns, auth at the right layer, typed APIs, and CI/CD from day one.</description></item><item><title>Integrating AI into Your Applications</title><link>https://craftripple.com/blog/integrating-ai-into-your-applications</link><guid isPermaLink="true">https://craftripple.com/blog/integrating-ai-into-your-applications</guid><pubDate>Tue, 20 Jan 2026 17:41:50 +0100</pubDate><category>AI &amp; Machine Learning</category><description>Most tutorials show you how to call an AI API. This covers what it takes to actually ship LLM features in production — from prompt engineering to security, cost control, and measuring what you built.</description></item></channel></rss>