How to detect Svelte on any website
Compile-time JavaScript framework — no runtime VDOM, components compile to direct DOM operations.
Official siteWhat is Svelte?
Svelte's killer feature is that most of it is gone at runtime: the compiler emits plain DOM-manipulation code. That's great for performance, but it also makes naive detection harder — there's no `Svelte.version` global in production builds. You detect Svelte from its compiled patterns, not from a runtime signature.
Svelte's philosophy is compile-away: the compiler translates `.svelte` components into plain JavaScript that manipulates the DOM directly, with no virtual-DOM runtime. This produces smaller bundles than React or Vue for equivalent UIs and removes an entire class of runtime overhead. The trade-off is detection: there's no `Svelte.version` accessible at runtime, no wrapper `<div id>` to find, no hydration payload global. Svelte-using sites are identified by the scoped-CSS-class patterns the compiler emits (`svelte-<hash>`) and by paths under `node_modules/svelte/internal/` in the sourcemap. Svelte 5 (2024) introduced runes — a new reactivity primitive — but the compiled output patterns remain recognisable.
Why it matters to identify
Svelte is in the New York Times, the Apple.com newsroom, and a growing number of documentation sites. Identifying it by its compiled output is a reliable differentiator from React/Vue-based stacks. Svelte apps often have noticeably smaller bundle sizes, which is a testable hypothesis once you know to look.
A brief history of Svelte
Svelte was created by Rich Harris in 2016. Svelte 3 (2019) introduced the modern compiler. Svelte 4 (2023) was a refinement release. Svelte 5 (2024) introduced Runes, a new reactivity primitive. SvelteKit, the meta-framework, reached v1 in late 2022.
Ecosystem and common pairings
Svelte pairing: SvelteKit (the canonical meta-framework), Tailwind CSS, svelte-animate, Drizzle or Prisma for data, Lucia for auth. The ecosystem is intentionally smaller and more opinionated than React's.
Detection signals we look at
Each signal alone is rarely conclusive; the detector cross-references all of them and weights by confidence. You can reproduce any of these checks yourself in Chrome DevTools.
[class^="svelte-"]|svelte-head
The Svelte compiler scopes component styles by adding `svelte-<hash>` classes.
node_modules/svelte/internal/
Svelte's runtime helpers are bundled from `node_modules/svelte/internal/`.
class="svelte-\w+"
Scoped-style class names in the rendered HTML.
Versioning
Sites commonly running Svelte
- nytimes.com (interactive pieces)
- apple.com/newsroom
Often confused with
Svelte vs SvelteKit
SvelteKit is the meta-framework, Svelte is the UI layer. Every SvelteKit site is a Svelte site; reverse isn't true.
Related
See Svelte — with the exact version — on every site you visit.
Sourcemap Explorer runs these checks passively in the background. When the target library is bundled, you get the precise package.json-level version.