How are AI-built apps doing in Germany, Austria and Switzerland?
AI App Radar DACH
Every three months we passively scan — the way a browser would — the discoverable population of AI-built web apps with a German, Austrian or Swiss connection and publish the shares. No hostnames, no screenshots, nothing attributable to a single site: only numbers over groups of at least 20 apps, citable under CC-BY 4.0.
n = 442 discoverable AI apps with a DACH connection · run Panel 2026-10-22 · closed on 22 October 2026
100% of the 442 scheduled targets were reachable; only reachable apps count.
The check in a real browser ran for 90% of the apps. Findings that are only visible there count over those apps only.
1%
4 apps
79%
349 apps
20%
89 apps
What stands out
The most common findings in the sample. The share says how many apps triggered the rule — counted only over the apps where the rule could check at all. It does not say whether the finding holds in any individual case.
Defects
Findings of medium severity and above that describe an observed state — a readable table, a tracker before consent, user input rendered unfiltered. They decide the verdict.
- Medium — SeverityRSC-ACC-004Accessibility violations in the rendered state77%
- Medium — SeverityRSC-ARC-005Non-existent paths answer with 20071%
- Medium — SeverityRSC-PRV-001Google Fonts loaded at runtime36%
- Medium — SeverityRSC-PRV-006Data sent to third-country services30%
- Medium — SeverityRSC-ARC-001Content rendered client-side only24%
- Medium — SeverityRSC-SCL-007Heavy first page load23%
- Medium — SeverityRSC-SEC-035Browser writes directly to the database23%
- High — SeverityRSC-PRV-003Mandatory legal pages not visible17%
- Medium — SeverityRSC-PRV-007Trackers without a consent layer17%
- Medium — SeverityRSC-PRV-017Service not named in the privacy policy15%
- High — SeverityRSC-PRV-005Trackers fire before consent13%
- Medium — SeverityRSC-SCL-002Very large JavaScript bundle13%
- Medium — SeverityRSC-SEC-019Role check inside the client bundle13%
- High — SeverityRSC-PRV-008Tracking cookies set before consent9%
- High — SeverityRSC-SEC-078Shipped library with a known vulnerability8%
Hardening and hygiene
Missing protective layers and hygiene — a header, a DNS record. They show up on almost every site because hardly anyone sets them, and they never tip a verdict. Prevalence is not severity.
- Low — SeverityRSC-SEC-092No CAA record99%
- Medium — SeverityRSC-SEC-003No Content-Security-Policy98%
- Low — SeverityRSC-SEC-005No clickjacking protection89%
- Low — SeverityRSC-SCL-004No caching strategy65%
- Low — SeverityRSC-ARC-004No canonical link45%
- Low — SeverityRSC-SEC-087DMARC with `p=none`38%
- Low — SeverityRSC-PRV-022Contact data in the shipped JavaScript33%
- Low — SeverityRSC-SEC-004MIME sniffing not disabled31%
- Low — SeverityRSC-SEC-024No Referrer-Policy31%
- Low — SeverityRSC-SEC-093No security.txt — no contact for vulnerability reports26%
- Low — SeverityRSC-ARC-006No robots.txt and no sitemap23%
- Low — SeverityRSC-PRV-002US trackers embedded in the shipped code16%
- Low — SeverityRSC-PRV-012Privacy policy: mandatory details not found14%
- Low — SeverityRSC-PRV-011Imprint: mandatory details not found14%
- Medium — SeverityRSC-SEC-084No SPF and no DMARC — email spoofing unprotected14%
By platform
| Platform | Apps | Stop | Iterate | Go |
|---|---|---|---|---|
| Lovable | 183 | 0% | 73% | 27% |
| Base44 | 122 | 2% | 86% | 12% |
| Bolt | 101 | 0% | 82% | 18% |
By jurisdiction
| Jurisdiction | Apps | Stop | Iterate | Go |
|---|---|---|---|---|
| Germany | 171 | 0% | 75% | 25% |
| Switzerland | 196 | 2% | 85% | 13% |
Groups with fewer than 20 apps are not shown — not as “0%”, but not at all. From that few rows a single app could be picked out.
Run by run
Each run is one quarter. Shares only appear once a run reaches the threshold of 20 apps. The sample changes from run to run, and every row names its methodology version: rules changed between two versions. Trends are therefore hints, not proof.
| Run | Closed | Methodology | Apps | Reachable | Stop | Iterate | Go |
|---|---|---|---|---|---|---|---|
| DACH 2026-09 Lauf 3Numbers for this run (DACH 2026-09 Lauf 3) | 4 September 2026 | 2026.15 | 78 | 100% | 0% | 77% | 23% |
| DACH 2026-09 Lauf 4Numbers for this run (DACH 2026-09 Lauf 4) | 4 September 2026 | 2026.16 | 118 | 100% | 0% | 73% | 27% |
| DACH 2026-09 Lauf 7Numbers for this run (DACH 2026-09 Lauf 7) | 8 September 2026 | 2026.17 | 478 | 99% | 1% | 86% | 13% |
| Panel 2026-10-01Numbers for this run (Panel 2026-10-01) | 2 October 2026 | 2026.33 | 454 | 99% | 1% | 81% | 18% |
| Panel 2026-10-22Numbers for this run (Panel 2026-10-22) | 22 October 2026 | 2026.36 | 442 | 100% | 1% | 79% | 20% |
Methodology
The radar measures what is discoverable. Targets come from five public sources: the builder platforms' directories, public certificate logs (certificate transparency) and the Internet Archive's web archive (Wayback Machine) for builder subdomains such as *.lovable.app or *.bolt.host, the open web index Common Crawl (German-language pages only) and the scanning service urlscan.io, which shows apps on their own domain that load a builder platform's script. On top come targets found by an earlier retrieval that are less than 90 days old. Apps on their own domain without such traces are under-represented. Before scanning, we check reachability and DACH connection with a single request to the start page: a .de, .at or .ch domain ending, German page language, or a link to Impressum and Datenschutz — only such apps enter the sample. The correct reading is therefore “x% of the n discoverable apps with a DACH connection”, never “x% of German Lovable apps”. Attribution to DE, AT or CH happens after the scan via domain ending and legal findings; whatever cannot be attributed counts as not attributable and serves as a control group.
The scan is passive and browser-equivalent: it loads what any browser loads when opening the site, clicks nothing, fills in no form and creates no account. The user agent names us and this page, and robots.txt is respected — anyone who excludes us there is skipped.
What is loaded
- HTML, bundles and HTTP headers
- the page in a headless browser: trackers before consent, cookies, accessibility
- publicly served source maps
- robots.txt, sitemap and linked legal pages
Never
- sensitive paths such as /.env or /.git
- backend probes — database schema, row counts, buckets
- creating accounts or testing login throttling
Only shares over groups of at least 20 apps are published. No hostname, no URL, no screenshot and no finding attributable to a single site. Internally the raw data carries a hash that never leaves the database; the target list expires 90 days after the last scan.
Before every new methodology version we check the scanner for false alarms on well-maintained professional sites — any severe hit there counts as a possible false alarm and is fixed first. Most recently on 7 September 2026 against 47 real sites: six kinds of false alarm, all fixed (methodology 2026.17). That is a false-alarm check, not a baseline. As a baseline, on 20 October 2026 we measured 16 well-maintained professional sites (including bsi.bund.de, admin.ch, heise.de, bahn.de, stripe.com) with the same pipeline, with the browser stage and twice each: 5 of 16 had no effective Content Security Policy (AI apps: 98 %), 10 of 16 no CAA record (AI apps: 99 %), 3 of 15 fired trackers before consent (AI apps: 15 %; AI values from run Panel 2026-10-01). The group is small and deliberately prominent, so it is an upper bound, not an average; we do not publish findings for individual sites. We do not yet publish a false-alarm rate per rule. The numbers here are shares over a sample, not proof about any individual app.
If you do not want your domain in the radar, remove it: prove control via DNS TXT, file or meta tag — we then delete all observations and the target and exclude the domain from every future run. Without DNS access, an email is enough.
Remove your domainHow to cite
This page always shows the latest run. If you cite a number, link the fixed address of this run instead: decivo.de/en/scan/radar/lauf/panel-2026-10-22
Numbers and JSON are available under CC-BY 4.0. Please cite as “decivo AI App Radar DACH” with a link. Raw numbers as JSON