PageSourceSearch

https://swynx.io/assets/index-BQNnWpte.js

js swynx.io collected 2026-10-05 06:31:50 UTC 25,446 bytes, 1 lines download raw bytes

1import{j as e}from"./index-CBC1vxyu.js";import{u as a,S as o}from"./SwynxLayout-BcEFCgca.js";import{C as s}from"./calendar--pAtOWNf.js";import{A as t}from"./arrow-right-BhBRSPkq.js";import"./utils-CkYB-R1u.js";import"./createLucideIcon-D63tVfJx.js";const n=[{slug:"apple-goto-fail-bug",title:"Apple goto fail Bug (CVE-2014-1266): How Dead Code Broke SSL for 500M+ Devices",description:"A duplicated goto fail line made SSL certificate verification dead code, bypassing TLS on 500 million Apple devices. The most famous example of CWE-561 dead code causing a critical security vulnerability.",date:"February 2026"},{slug:"we-scanned-3-million-files",title:"3 Million Files. 1,249 Repos. 13 Languages. Here's What We Found.",description:"We've scanned over 3 million files across 1,249 codebases in 13 languages. From ComfyUI's 32% dead rate to Appwrite's spotless 51,000 files — here's the state of dead code at scale.",date:"February 2026"},{slug:"dead-code-in-remix",title:"Dead Code in Remix: How to Find Unused Loaders, Actions, and Route Modules",description:"Remix's file-based routing and loader/action conventions create unique dead code patterns. Here's how to find unused route modules, dead loaders, and orphaned utilities in your Remix project.",date:"February 2026"},{slug:"dead-code-in-ai-ml",title:"Dead Code in AI/ML Projects: Unused Models, Orphaned Pipelines, and Dead Notebooks",description:"AI and ML projects accumulate dead code faster than most software. Abandoned experiments, unused model definitions, orphaned training pipelines, and dead notebook cells hide across your project.",date:"February 2026"},{slug:"dead-code-detection-tools",title:"Dead Code Detection Tools Compared (2026)",description:"A comparison of dead code detection tools: Swynx, Knip, ts-prune, Depcheck, Vulture, deadcode, and more. What each tool catches, what it misses, and which languages it supports.",date:"February 2026"},{slug:"technical-debt-roi",title:"The ROI of Removing Dead Code",description:"Dead code costs money. Slower builds, longer CI runs, wasted developer time, and inflated cloud bills. Here's how to calculate the return on investment of removing dead code.",date:"February 2026"},{slug:"green-software-dead-code",title:"Green Software and Dead Code: The Carbon Cost of Unused Files",description:"Every dead file your CI pipeline processes burns compute cycles for zero value. Removing dead code is the easiest way to reduce your software's carbon footprint.",date:"February 2026"},{slug:"developer-onboarding-dead-code",title:"How Dead Code Slows Developer Onboarding",description:"New developers waste days reading code that doesn't matter. Dead files, orphaned modules, and abandoned features make codebases harder to navigate and understand.",date:"February 2026"},{slug:"dead-code-in-microservices",title:"Dead Code in Microservices: Why It's Harder to Find and How to Fix It",description:"Microservices scatter dead code across dozens of repositories. Dead API endpoints, orphaned services, unused shared libraries, and abandoned proto files hide where no single tool looks.",date:"February 2026"},{slug:"find-orphaned-files-in-codebase",title:"How to Find Orphaned Files in Your Codebase",description:"Orphaned files are source files that no import chain reaches from any entry point. Here's how to detect unused files across JavaScript, Python, Go, Java, and 22 more languages.",date:"February 2026"},{slug:"supply-chain-security-dead-code",title:"Supply Chain Security and Dead Code: The Hidden Dependency Risk",description:"Dead code imports libraries that nothing uses. Those unused dependencies still get installed, still receive CVEs, and still expand your supply chain attack surface.",date:"February 2026"},{slug:"dead-code-near-n8n-security-vulnerabilities",title:"Dead Code Next to n8n's Security Vulnerabilities",description:"n8n had three critical CVEs in early 2026. We scanned it for dead code and found orphaned files sitting inside the sandbox and auth directories those CVEs target.",date:"February 2026"},{slug:"unused-npm-dependencies",title:"How to Find and Remove Unused npm Dependencies",description:"Unu
1sed npm packages inflate node_modules, slow installs, and expand your supply chain attack surface. Here's how to find them and safely remove them.",date:"February 2026"},{slug:"dead-code-in-fastapi",title:"Dead Code in FastAPI: How to Find Unused Endpoints, Models, and Dependencies",description:"FastAPI projects accumulate dead route handlers, unused Pydantic models, and orphaned dependency functions as APIs evolve. Here's how to find and remove unused code across your FastAPI application.",date:"February 2026"},{slug:"dead-code-in-docker",title:"Dead Code in Docker: How Unused Files Bloat Your Container Images",description:"Every dead file copied into a Docker image adds bytes to your container, slows deployments, and increases your attack surface. Here's how to find and remove dead code from containerised applications.",date:"February 2026"},{slug:"dead-code-in-kubernetes",title:"Dead Code in Kubernetes: Unused Services, Orphaned ConfigMaps, and Stale Manifests",description:"Kubernetes clusters accumulate dead code in the form of orphaned ConfigMaps, unused Services, stale Deployments, and abandoned Helm charts. Here's how to find and clean up what's no longer needed.",date:"February 2026"},{slug:"dead-code-in-flutter",title:"Dead Code in Flutter: How to Find Unused Widgets, Screens, and Providers",description:"Flutter projects accumulate dead widgets, unused screens, and orphaned state management code as apps evolve. Here's how to find and remove unused Dart code across your Flutter application.",date:"February 2026"},{slug:"dead-code-in-graphql",title:"Dead Code in GraphQL: Unused Resolvers, Dead Mutations, and Orphaned Type Definitions",description:"GraphQL APIs accumulate dead resolvers, unused mutations, and orphaned type definitions as schemas evolve. Here's how to find and remove unused code across your GraphQL server.",date:"February 2026"},{slug:"dead-code-in-flask",title:"Dead Code in Flask: How to Find Unused Routes, Blueprints, and Utilities",description:"Flask's flexibility makes dead code easy to accumulate. Unused route handlers, orphaned blueprints, and dead utility files hide behind explicit registrations. Here's how to find and remove them.",date:"January 2026"},{slug:"dead-code-in-design-systems",title:"Dead Code in Design Systems: Unused Components, Tokens, and Variants Nobody Uses",description:"Design systems accumulate dead components, unused tokens, and orphaned variants as products evolve. Here's how to find what's no longer consumed across your component library.",date:"January 2026"},{slug:"unused-css-dead-stylesheets",title:"Unused CSS: How to Find and Remove Dead Stylesheets from Your Codebase",description:"Unused CSS inflates page load times, increases bundle sizes, and creates maintenance overhead. Here's how to find dead stylesheets, orphaned CSS modules, and unused Tailwind classes across your project.",date:"January 2026"},{slug:"dead-code-in-nestjs",title:"Dead Code in NestJS: How to Find Unused Controllers, Providers, and Modules",description:"NestJS's module system and dependency injection hide dead code behind decorators and provider arrays. Here's how to find unused controllers, services, guards, and interceptors.",date:"January 2026"},{slug:"dead-code-in-terraform",title:"Dead Code in Terraform: Unused Resources, Orphaned Modules, and Stale Variables",description:"Terraform configurations accumulate dead resources, orphaned modules, unused variables, and stale outputs as infrastructure evolves. Here's how to find and clean up what's no longer needed.",date:"January 2026"},{slug:"automated-code-cleanup",title:"Automated Code Cleanup: How to Remove Dead Code Without Manual Review",description:"Manual code cleanup doesn't scale. Here's how to automate dead code detection and removal with confidence scoring, dry runs, snapshots, and rollback — across any language.",date:"January 2026"},{slug:"dead-code-in-spring-boot",title:"Dead Code in Spring Boot: How to Find Unused Controllers, Services, and Beans",description:"Spring Boot's depen
1dency injection and component scanning hide dead code behind annotations. Here's how to find unused controllers, services, repositories, and configuration classes.",date:"January 2026"},{slug:"dead-code-in-laravel",title:"Dead Code in Laravel: How to Find Unused Controllers, Models, and Middleware",description:"Laravel's service container, route model binding, and Artisan commands hide dead code behind convention-based loading. Here's how to find unused controllers, models, and middleware.",date:"January 2026"},{slug:"dead-code-elimination-vs-detection",title:"Dead Code Elimination vs Dead Code Detection: What's the Difference?",description:"Dead code elimination (DCE) is a compiler optimisation that removes unreachable code from your bundle. Dead code detection finds unused files across your entire codebase. They solve different problems.",date:"January 2026"},{slug:"clean-up-codebase",title:"How to Clean Up Your Codebase: A Practical Guide",description:"A systematic approach to codebase cleanup. Remove dead code, unused dependencies, orphaned files, and stale configuration — without breaking anything.",date:"January 2026"},{slug:"dead-code-after-migration",title:"Dead Code After a Migration: How to Clean Up What's Left Behind",description:"Framework migrations, language rewrites, and monolith-to-microservice transitions always leave dead code behind. Here's a systematic approach to finding and removing it.",date:"January 2026"},{slug:"codebase-health-check",title:"How to Run a Codebase Health Check",description:"A codebase health check measures the structural quality of your code — dead files, unused dependencies, test coverage gaps, and dependency freshness. Here's how to run one.",date:"January 2026"},{slug:"reduce-bundle-size-dead-code",title:"How Dead Code Inflates Your Bundle Size (And How to Fix It)",description:"Tree-shaking removes unused exports but not unused files. Dead code inflates your JavaScript bundle, slows page loads, and wastes bandwidth.",date:"January 2026"},{slug:"dead-code-security-risk",title:"Dead Code Is a Security Risk: Why Unused Code Creates Vulnerabilities",description:"Dead code increases your attack surface. Unused files with unpatched dependencies, abandoned auth modules, and orphaned API endpoints create real security vulnerabilities.",date:"January 2026"},{slug:"dead-code-ci-cd-pipeline",title:"How to Add Dead Code Detection to Your CI/CD Pipeline",description:"Catch dead code before it merges. Add Swynx to GitHub Actions, GitLab CI, or any CI/CD pipeline to block PRs that introduce unreachable files.",date:"January 2026"},{slug:"find-unused-code-rust",title:"Find Unused Code in Rust",description:"Rust's compiler warns about unused functions and imports. But it doesn't detect unused files, dead modules, or orphaned crates across your workspace. Here's how to find them.",date:"January 2026"},{slug:"find-unused-code-ruby",title:"Find Unused Code in Ruby",description:"Ruby's dynamic nature makes dead code detection hard. Metaprogramming, autoloading, and convention-over-configuration mean traditional static analysis misses most dead files.",date:"January 2026"},{slug:"find-unused-code-php",title:"Find Unused Code in PHP",description:"PHPStan and Psalm catch type errors but not dead files. Here's how to find unused classes, orphaned controllers, and dead code across your entire PHP project.",date:"January 2026"},{slug:"dead-code-in-react",title:"Dead Code in React: How to Find Unused Components, Hooks, and Utilities",description:"React projects accumulate dead components, unused hooks, and orphaned utility files as features evolve. Tree-shaking doesn't catch them. Here's how to find and remove them.",date:"January 2026"},{slug:"dead-code-in-nextjs",title:"Dead Code in Next.js: Pages, API Routes, and Middleware Nobody Uses",description:"Next.js projects accumulate dead pages, unused API routes, and orphaned middleware as features evolve. File-based routing makes some dead code invisible to standard tools.",date:"January 2026"},{slug:"dead-code-in-testing",title:"Dead Code in Your Test Suite: Unused Test Helpers, Dead Fixtures, and Orphaned Mocks",description:"Test suites accumulate dead code just like production code. Unused test helpers, dead fixtures, orphaned mocks, and abandoned test utilities inflate your test runs and slow CI.",date:"December 2025"},{slug:"find-dead-imports",title:"How to Find and Remove Dead Imports Across Your Entire Codebase",description:"Dead imports waste build time, bloat bundles, and confuse developers. ESLint catches unused imports in JavaScript, but what about Python, Go, Java, and 22 more languages? Here's how to find them all.",date:"December 2025"},{slug:"dead-code-in-nuxt",title:"Dead Code in Nuxt: How to Find Unused Pages, Composables, and Middleware",description:"Nuxt's auto-imports, file-based routing, and server directory hide dead code behind convention-based loading. Here's how to find unused pages, composables, and middleware in your Nuxt 3 project.",date:"December 2025"},{slug:"monolith-to-microservices-dead-code",title:"Monolith to Microservices: How to Find the Dead Code Left Behind",description:"Monolith-to-microservices migrations always leave dead code behind. Extracted services leave orphaned handlers, shared utilities lose their consumers, and database models outlive their tables.",date:"December 2025"},{slug:"dead-code-in-serverless",title:"Dead Code in Serverless: How Unused Functions Inflate Lambda Packages and Cold Starts",description:"Dead code in serverless functions inflates deployment packages, increases cold start times, and wastes compute. Here's how to find and remove unused code across AWS Lambda, Azure Functions, and Google Cloud Functions.",date:"December 2025"},{slug:"dead-code-in-wordpress",title:"Dead Code in WordPress: How to Find Unused Themes, Plugins, and Template Files",description:"WordPress sites accumulate dead code through abandoned plugins, unused theme templates, orphaned shortcode handlers, and dead custom post type registrations.",date:"December 2025"},{slug:"technical-debt-dashboard",title:"How to Build a Technical Debt Dashboard: Metrics, Tools, and Reporting",description:"Engineering leaders need visibility into technical debt. Here's how to build a dashboard that tracks dead code ratio, dependency health, build times, and codebase growth — with data, not opinions.",date:"December 2025"},{slug:"dead-code-in-vue",title:"Dead Code in Vue: How to Find Unused Components, Composables, and Directives",description:"Vue projects accumulate dead single-file components, unused composables, and orphaned directives as features evolve. Here's how to find and remove unused code in Vue 3 and Nuxt projects.",date:"December 2025"},{slug:"dead-code-in-angular",title:"Dead Code in Angular: How to Find Unused Components, Services, and Modules",description:"Angular's module system and dependency injection hide dead code behind declarations arrays and provider registrations. Here's how to find unused components, services, and pipes.",date:"December 2025"},{slug:"legacy-code-cleanup",title:"Legacy Code Cleanup: How to Safely Remove Dead Code from Old Codebase
1s",description:"Legacy codebases accumulate dead code for years. Here's a systematic approach to identifying and safely removing unused files without breaking production.",date:"December 2025"},{slug:"code-review-dead-code",title:"Why Code Review Misses Dead Code (And What to Do About It)",description:"Code reviewers catch bugs, style issues, and logic errors. But they almost never catch dead code — because it requires seeing the entire dependency graph, not just the diff.",date:"December 2025"},{slug:"what-is-code-rot",title:"What Is Code Rot? Causes, Symptoms, and How to Prevent It",description:"Code rot is the gradual degradation of a codebase over time. Dead code, unused dependencies, and stale configuration accumulate until the codebase becomes harder to maintain.",date:"December 2025"},{slug:"dead-code-in-monorepos",title:"Dead Code in Monorepos: Why It's Harder to Find and How to Fix It",description:"Monorepos hide dead code across package boundaries. Cross-package imports, shared libraries, and workspace packages make traditional tools miss entire dead dependency chains.",date:"December 2025"},{slug:"find-unused-code-java",title:"Find Unused Code in Java",description:"IntelliJ catches unused imports. SpotBugs finds dead local variables. But neither finds unused files or dead classes across your entire Java project.",date:"December 2025"},{slug:"find-unused-code-kotlin",title:"Find Unused Code in Kotlin",description:"IntelliJ highlights unused symbols but can't find dead files across your Kotlin project. Here's how to detect orphaned classes, unused modules, and dead code in Kotlin and Android projects.",date:"December 2025"},{slug:"find-unused-code-csharp",title:"Find Unused Code in C#",description:"Visual Studio and ReSharper catch unused symbols but not dead files. Here's how to find orphaned classes, unused services, and dead code across your entire .NET solution.",date:"December 2025"},{slug:"how-to-find-dead-code",title:"How to Find Dead Code: The Complete Guide for Every Language",description:"Dead code is any source file, function, or export that is never executed in production. This guide covers every method — from manual search to full dependency graph analysis — across JavaScript, Python, Go, Java, and more.",date:"December 2025"},{slug:"dead-code-in-python-django",title:"Dead Code in Python and Django: How to Find Unused Views, Models, and Utilities",description:"Django's URL routing and ORM make dead code hard to detect. Unused views, orphaned models, and dead utility files hide behind dynamic dispatch and convention-based loading.",date:"December 2025"},{slug:"find-unused-code-swift",title:"Find Unused Code in Swift",description:"Xcode warns about unused variables but can't find dead files across your Swift project. Here's how to detect orphaned view controllers, unused models, and dead code in iOS and macOS apps.",date:"December 2025"},{slug:"engineering-productivity-dead-code",title:"Engineering Productivity and Dead Code: How Unused Files Slow Your Entire Team",description:"Dead code doesn't just waste disk space. It slows searches, confuses onboarding, inflates CI, and creates false signals in code review. Here's how to measure and fix the productivity drain.",date:"November 2025"},{slug:"dead-code-in-rails",title:"Dead Code in Rails: How to Find Unused Controllers, Models, and Views",description:"Rails' convention-over-configuration and autoloading hide dead code behind naming conventions. Here's how to find unused controllers, models, helpers, and views across your Ruby on Rails application.",date:"November 2025"},{slug:"dead-code-in-express",title:"Dead Code in Express.js: How to Find Unused Routes, Middleware, and Handlers",description:"Express projects accumulate dead routes, unused middleware, and orphaned handler files as APIs evolve. Here's how to find and remove unused code across your Express.js application.",date:"November 2025"},{slug:"dead-code-in-svelte",title:"Dead Code in Svelte and SvelteKit: How to Find Unused Components, Stores, and Routes",description:"Svelte and SvelteKit projects accumulate dead components, unused stores, and orphaned route files as apps evolve. Here's how to find and remove unused code across your Svelte project.",date:"November 2025"},{slug:"dead-code-in-mobile-apps",title:"Dead Code in Mobile Apps: How Unused Code Inflates iOS and Android Binaries",description:"Dead code in mobile apps inflates binary sizes, increases download times, and slows app store review. Here's how to find and remove unused code across iOS, Android, and cross-platform projects.",date:"November 2025"},{slug:"code-quality-metrics",title:"Code Quality Metrics That Actually Matter: Dead Code Ratio, Dependency Health, and More",description:"Most code quality metrics are vanity metrics. Here are the ones that correlate with real engineering outcomes — starting with the ones you can automate today.",date:"November 2025"},{slug:"reduce-build-time-remove-dead-code",title:"How Removing Dead Code Can Cut Your Build Time in Half",description:"Every dead file your bundler touches adds milliseconds to your build. Across hundreds or thousands of files, that cost compounds into minutes — per build, per developer, per day.",date:"November 2025"},{slug:"how-to-measure-technical-debt",title:"How to Measure Technical Debt (And What to Do About Dead Code)",de
1scription:"Technical debt is the most-discussed problem in engineering that nobody can quantify. Here are four metrics that actually work — starting with the easiest one to automate.",date:"November 2025"},{slug:"dead-code-vs-unused-code",title:"Dead Code vs Unused Code vs Unreachable Code: What's the Difference?",description:"Three terms developers use interchangeably. They mean different things — and different tools catch each one.",date:"November 2025"},{slug:"we-scanned-1000-repos",title:"2 Million Files. 1,000+ Codebases. Here's How Much Dead Code the Average Project Carries.",description:"We've scanned over 1,000 codebases across 9 languages — over 2 million files. The average project carries 2.25% dead code. Here's what we learned.",date:"November 2025"},{slug:"find-unused-code-javascript",title:"Find Unused Code in JavaScript and TypeScript",description:"ESLint catches unused variables. Bundlers tree-shake exports. But neither finds orphaned files. Here's how to find all the unused code in your JS/TS project.",date:"November 2025"},{slug:"find-unused-code-python",title:"Find Unused Code in Python",description:"Python's dynamic nature makes dead code harder to detect. Vulture, pylint, and their limitations — plus full dependency graph analysis across your entire codebase.",date:"November 2025"},{slug:"find-unused-code-go",title:"Find Unused Code in Go",description:"Go's compiler catches unused imports but not unused files or dead packages. Here's what else to look for and how to scan your entire Go project.",date:"November 2025"},{slug:"we-scanned-40-open-source-projects",title:"We Scanned 40 Open Source Projects. Here's What We Found.",description:"Every codebase has dead code. We wanted to know how much. So we built a scanner and pointed it at 40 of the most popular open source projects.",date:"November 2025"},{slug:"technical-debt-prioritization",title:"How to Prioritise Technical Debt: A Framework for Engineering Teams",description:"Not all technical debt is equal. Some slows you down every day, some sits harmlessly for years. Here's a practical framework for deciding what to fix first.",date:"November 2025"},{slug:"dead-code-refactoring-guide",title:"The Dead Code Refactoring Guide: How to Safely Remove Unused Code",description:"Removing dead code is one of the safest refactors you can make — but only if you do it systematically. Here's a step-by-step guide to removing unused code without breaking anything.",date:"November 2025"}];function h(){return a({title:"Blog | Swynx",description:"Research, case studies, and insights on dead code, codebase health, and software maintenance from the Swynx team.",path:"/blog"}),e.jsx(o,{children:e.jsx("section",{className:"py-24 bg-[#0a0a0a] text-white",children:e.jsx("div",{className:"container mx-auto px-6",children:e.jsxs("div",{className:"max-w-3xl mx-auto",children:[e.jsx("h1",{className:"text-4xl md:text-5xl font-bold mb-4",children:"Blog"}),e.jsx("p",{className:"text-xl text-white/70 mb-4",children:"Research and case studies from scanning real codebases."}),e.jsx("p",{className:"text-base text-white/50 mb-4",children:"Swynx analyses codebases for dead code, unused dependencies, and security vulnerabilities across 26 programming languages. We regularly scan open source repositories to validate our detection accuracy and share what we learn about the state of dead code in real-world software."}),e.jsx("p",{className:"text-base text-white/50 mb-16",children:"Our research is based on scanning over 1,249 open source codebases — more than 3 million files — covering JavaScript, TypeScript, Python, Go, Java, Rust, Ruby, PHP, C#, Dart, Scala, Swift, Elixir, and more. Below you'll find our findings, case studies, and technical deep-dives into dead code patterns across different languages and frameworks."}),e.jsx("div",{className:"space-y-12",children:n.map(d=>e.jsx("a",{href:`/blog/${d.slug}`,className:"block group",children:e.jsxs("article",{className:"border border-white/10 rounded-lg p-8 transition-colors hover:border-white/25 hover:bg-white/[0.02]",children:[e.jsxs("div",{className:"flex items-center gap-2 text-white/50 text-sm mb-3",children:[e.jsx(s,{className:"w-4 h-4"}),e.jsx("span",{children:d.date})]}),e.jsx("h2",{className:"text-2xl font-bold mb-3 group-hover:text-white/90 transition-colors",children:d.title}),e.jsx("p",{className:"text-white/60 mb-4",children:d.description}),e.jsxs("span",{className:"inline-flex items-center text-sm font-medium text-white/70 group-hover:text-white transition-colors",children:["Read more ",e.jsx(t,{className:"w-4 h-4 ml-1"})]})]})},d.slug))})]})})})})}export{h as default};

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.