Build1 distinct publisher3 min readUpdated
A 28-day edge log review of an unnamed small business Next.js site found its most-requested path was /wp-admin/install.php. The site has never run PHP.
The Engineer · Build desk

Compiled by The EngineerSomething wrong?How this is made
A team that builds small business sites read 28 days of its own edge logs and found the most-requested URL on a Next.js application was /wp-admin/install.php, hit 518 times, on a site that has never run WordPress and contains no PHP [1][2][3][4]. That inverts the usual framing: the loudest traffic against a modern Node app is not a vulnerability problem, it is a cost and log-noise problem.
Over the window the site absorbed roughly 8,900 targeted malicious requests, about 318 a day, from 373 distinct addresses, all of them on cloud, hosting or VPN networks and none residential, according to the write-up published on dev.to [5][6][7]. That works out to about 24 requests per address [1] and roughly 13 an hour across the whole site [2]. Every one of them resolved to a 404 or a 403 [8].
The most persistent single target was /.env, requested 228 times before counting the dozen spelling variants the same bot cycles through [9]. The author puts the whole /.env hunt at 64% of targeted traffic [10]. Against the 8,900 total that implies roughly 5,700 requests, about 25 times the 228 logged for the exact path [4], so the variants would have to be carrying nearly all of it. Treat the 64% as an estimate rather than a count. For scale, the loudest single URL, /wp-admin/install.php, is 5.8% of the total [3].
The useful observation in the piece is about instrumentation rather than attackers: a climbing blocked-request counter does not show the site is well defended, it shows the site is not running the software the bots assumed [11]. That distinction moves the traffic from the security budget to the operations budget. At 318 requests a day, all terminating in a 404 or 403 [5][8], the consequence is log volume, retention and alert fatigue, not capacity or compromise.
The requests that can hurt this stack do not announce themselves. They are well-formed requests to real endpoints, shaped by knowledge of the framework, leaving log lines that look almost legitimate [12]. The write-up names two. React2Shell, CVE-2025-55182, is a CVSS 10.0 unauthenticated remote code execution in React Server Components, disclosed in December 2025, exploited in the wild within days and added to the US CISA Known Exploited Vulnerabilities catalog [13]. A default Next.js app built for production was exploitable with no code change by the developer: one crafted request, code execution, no login [14]. No application configuration closes it, edge and WAF rules are a stopgap, and the only reliable fix is the patched release [15]. Next.js issued a related advisory, CVE-2025-66478 [16]. The second, CVE-2025-29927, let an attacker skip authorization logic living in Next.js middleware by sending an internal header the framework trusted without checking its origin [17].
The countermeasures described are deployment choices, not detection. Secrets are injected as runtime environment variables, nothing sensitive is written to a web-reachable path and nothing is baked into the container image, so the /.env hunt fails because the file is not on the served filesystem [18]. The edge rejects requests carrying a wrong or missing host, which is how a blind scanner arriving with an IP address and no correct hostname is turned away [19]. Dependencies are scanned on every build and kept minimal, with a rehearsed release step intended to close the gap between advisory and patch in hours rather than weeks [20]. Unneeded features are left disabled and content is served under a strict content security policy that blocks inline and third-party scripts [21].
Two things to watch. First, whether that hours-not-weeks patch claim survives contact with the next 10.0, since it is the only stated defence against the class of flaw that matters [15][20]. Second, this is a single unnamed site with no published raw data [1][22], so the ratios are indicative, not a benchmark: read your own logs before assuming your /.env share is 64%.
Follow any of these and your For You feed starts watching them — no settings page required.
Ranked by verification strength, evidence, and original report placement.
The subject is a small business website built as a Next.js application on Node behind a reverse proxy; the site is not named in the write-up.
The builders read the site's own edge logs over a 28-day window to see whether the design held up.
The single most-requested URL over the 28 days was /wp-admin/install.php, hit 518 times.
The site has never run WordPress and there is no PHP anywhere in it.
Over 28 days the site absorbed roughly 8,900 targeted malicious requests, about 318 a day.
The malicious requests came from 373 distinct addresses.
Evidence-backed comparisons of source perspectives and observed adoption signals. Read the methodology
Which Builder, Operator, and Investor concerns the observed source mix emphasized—not a truth score.
Evidence, demonstrated adoption, hype gap, incentives, and confidence are assessed independently, each on its own current evidence. How these are measured.
One self-published first-party account, no artifacts
All material comes from a single dev.to post written by the agency that built the site. The log observations are specific and internally coherent (counts, per-day rate, source-network composition, response codes), which is the strongest part of the record, but no log excerpts, dashboards, config files or CSP headers are published and the site is deliberately unnamed, so nothing is independently checkable. External vulnerability claims carry no advisory links, affected version ranges or patched release numbers, and the article's own /.env accounting does not reconcile, which caps evidence well below the midpoint.
One anonymous deployment, no external uptake
The only observed real-world instance is a single unnamed small business site whose owner-builder reports its own configuration and log telemetry. The build practices advocated (runtime secret injection, minimal scanned dependency set, strict CSP, host validation at the edge, fast patch cadence) have no third-party deployment, survey or usage data in the cluster, and the widely reported scanner traffic is attacker tooling rather than adoption of anything the story recommends. That supports a low but non-zero measurement rather than none.
Modestly overstated, partly self-corrected
The framing is unusually disciplined for a vendor case study: the headline number is immediately deflated ('none of them dangerous'), the article states the counter measures the wrong thing, and a limits section concedes this is not monitoring, not incident response, and that a custom site is not secure by magic. Pushing the other way, the 8,900 figure is the attention hook, the 64% /.env share is roughly 25x larger than the logged exact-path count with no reconciliation, and the security posture that supposedly explains the null result is asserted rather than demonstrated for a site nobody can inspect. Net effect is a small positive gap, not a large one.
Agency case study selling the build-vs-assemble thesis
The post is published on the agency's own dev.to account, opens by identifying the site as one 'we designed and built', and concludes that 'almost none of this is a product you buy... which is the whole argument for building a site rather than assembling one'. The subject site is unnamed, so favourable numbers cannot be audited, and the sole outcome reported is that the authors' own build held up. That is a strong commercial incentive to present a clean result. It is partly offset by explicit scope limits and the concession that framework flaws remain fully owned by the builder, which a purely promotional piece would omit.
Low-moderate: single interested source, one internal inconsistency
Confidence is limited by structure rather than by internal quality: one publisher, one first-party interested author, one anonymous subject site, and no corroborating advisory or independent telemetry. The log observations are plausible and self-consistent with well-known internet background scanning, which supports the descriptive core; the mitigation and CVE claims are unverifiable from the supplied material, and the unreconciled /.env share is a concrete reliability flag. The article's own explicit limits section raises confidence slightly in the author's candour without raising confidence in the unchecked facts.
build
Next.js's architecture is working. Its operating manual isn't keeping up.1 distinct publisher
build
Next.js 16.3's memory claim didn't reproduce; its TypeScript handoff cut a build by two thirds1 distinct publisher
build
A build step instead of a backend: 1,025 records, 8 locales, no runtime API1 distinct publisher
build
A GAN beauty filter is a device budget allocation, not a feature toggle1 distinct publisher
Distinct publishers with included, body-backed reporting in this cluster.
dev.to
1 article · August 17, 2026