← Back to Blog
Dev Changelog
4 min read
Dev Changelog — Sunday Revenue Day 💰
Massive Sunday. Shipped the Stripe payment system with 3-tier pricing, a full Sales CRM Kanban board, dual analytics (Umami + GA4), and 10 NIS2/DACH blog posts. 26 commits pushed to production.
Today's Stats
Features Shipped
💰 Paid Scan Revenue System
Full Stripe Checkout integration with 3 pricing tiers: €49/mo (Starter), €149/mo (Professional), €399/mo (Enterprise). Includes webhook handler for subscription management and paywall on scan results. Pricing updated to BA-recommended launch tiers.
📋 Sales CRM Kanban Board
Complete sales pipeline at /admin/kanban/sales. Extended leads schema with CRUD API, pipeline tabs (Human/Automated/All), seeded with 20 DACH NIS2 leads and 100 automated revenue leads (bounty hunters, disclosure partners). Lead capture on free scan start.
📊 Dual Analytics Stack
Added Umami self-hosted analytics with /admin/stats dashboard, plus Google Analytics 4 for broader tracking. Both configured with proper CSP headers via Caddy.
Other Features
- Lead Capture: Email required on free scan form — leads saved immediately on scan start
- Pipeline Tabs: Filter sales kanban by Human, Automated, or All leads
Bug Fixes
🌐 Language Separation Overhaul
Major cleanup: removed all German text from English pages, enforced strict locale separation from URL path only. Zero language mixing across the site.
Other Fixes
- CSP Headers: Whitelisted GA4 at Caddy level, fixed iframe embed for Umami
- Umami: Corrected website ID, added defer, fixed routing via Caddy + BASE_PATH
- Auth: Added auth headers to sales kanban API calls, fixed admin scans error handling
- SEO: Removed fake review schema, updated sitemap with missing pages
- Legal: Updated Impressum and footer with Techfunder World AG (Zug) company data
- Dashboard: Fixed blog crash, removed personal name from Impressum
- i18n: Fixed billing internationalization, forced English locale on root pages
Content Published
- 5 German NIS2/DACH blog posts — Targeting German compliance market
- 5 NIS2/DACH evergreen posts — Long-term SEO content for organic traffic
All Commits
- 33f369c feat paid scan revenue system - Stripe Checkout, 3 tiers (€49/€149/€399mo), webhook handler
- 3b565ed fix update paywall pricing to BA-recommended launch tiers
- c95c264 feat paid scan paywall with 3-tier pricing on scan results
- ddc6d02 feat add pipeline tabs to sales kanban - Human/Automated/All
- d3789ff feat add pipeline field to leads, seed 100 automated revenue leads
- 65ca415 fix add auth headers to sales kanban API calls + handle leads response key
- 15e4adf feat sales CRM backend - extended leads schema, CRUD API, 20 DACH NIS2 seed leads
- 92338f8 feat Sales CRM Kanban board at /admin/kanban/sales
- 40e7a0e fix save lead immediately on scan start, not after completion
- 6ee718f feat add email input to free scan form - lead capture frontend
- 4b18d2d fix revert: remove frontend changes from free scan page (UX agent owns frontend)
- 1ce20c3 feat require email for free scan lead capture + fix billing i18n
- 64a1336 fix force English locale on root pages - locale from URL path only
- 8a85c0f 📰 add 5 German NIS2/DACH blog posts
- 28b52ad fix translate all German text to English on EN pages - zero language mixing
- 3ce2444 📰 add 5 NIS2/DACH evergreen blog posts
- 01b010a fix remove fake review schema + update sitemap with missing pages
- 69768d3 fix update Umami tracking script - correct website ID and use defer
- 06fa790 fix Umami routing via Caddy + BASE_PATH, remove X-Frame-Options for iframe embed
- b2e52b0 fix translate remaining German content to English on main site pages
- 609162b fix remove all German text from English pages, enforce lang separation
- 8030de2 feat add Umami analytics with /admin/stats dashboard
- a8320b7 fix CSP at Caddy level for GA4, fix admin scans auth + error handling
- a1a6251 fix CSP whitelist GA4, fix dashboard blog crash, remove personal name from impressum
- 91b0bc5 fix update Impressum and footer with Techfunder World AG, Zug company data
- 648a4d5 feat add Google Analytics 4 (G-LC2EQBR96K) to layout head
Tomorrow's Focus
Monday Priorities (Feb 23)
- Stripe Testing: End-to-end payment flow verification with test cards
- CRM Workflows: Automated lead scoring and status transitions
- Analytics Review: Verify Umami + GA4 data collection is accurate
- Content Push: Promote new NIS2 blog posts on LinkedIn
Highlights
Today was all about revenue infrastructure. The Stripe integration means KENSAI can now accept payments — three tiers designed around business analytics recommendations. The paywall gates detailed scan results behind a subscription, turning free scans into a lead funnel.
The Sales CRM is a game-changer for pipeline visibility. 120 seeded leads (20 hand-picked DACH NIS2 targets + 100 automated bounty/disclosure/partner leads) give us a real pipeline to work from day one.
The language separation fix was overdue — having German text leak into English pages hurt credibility. Now each locale is clean and isolated. Combined with 10 new NIS2/DACH blog posts, our German SEO game just leveled up significantly.
Try KENSAI Today
AI-powered security scanning with auto-remediation. 60-second results.
Run Free Scan →
Ship fast. Break nothing. Fix everything.
🗡️ KENSAI Dev Team