DeadCode.io Documentation

Welcome to the DeadCode.io documentation. This guide will help you understand how to use our platform to detect and eliminate dead code from your codebase.

New to DeadCode.io?

Start with the Quick Start Guide to get up and running in under 5 minutes.

What is Dead Code?

Dead code refers to any code in your codebase that is never executed during runtime. This includes:

  • Unused Functions: Functions that are defined but never called
  • Unreachable Code: Code paths that can never be executed due to conditional logic
  • Orphaned Imports: Import statements for modules that are never used
  • Deprecated Modules: Old code that was replaced but never removed
  • Commented Code: Large blocks of commented-out code
Why Dead Code Matters

Dead code isn't just clutter—it actively harms your project:

  • Increased Build Times: More code = longer compile and bundle times
  • Security Risks: Unaudited code paths can harbor vulnerabilities
  • Maintenance Burden: Confuses developers and increases onboarding time
  • Larger Bundle Sizes: Dead code increases download sizes for users
  • Higher Costs: More storage, bandwidth, and compute resources needed

Quick Start Guide

Get started with DeadCode.io in just a few minutes. Follow these steps to run your first scan.

Workflow Overview
Sign In
OAuth with GitHub
Connect
Select repositories
Scan
Analyze codebase
Clean
Remove dead code

Sign in with GitHub

Click the "Sign In" button and authenticate with your GitHub account. We use OAuth so we never see your password. You'll be asked to authorize DeadCode.io to access your repositories.

Connect Your Repositories

Select which repositories you want to scan. You can choose individual repos or grant access to all repos in an organization. Private repos are supported on all paid plans.

Run Your First Scan

Click "Scan Now" on any connected repository. Our engine will analyze your codebase using AST parsing to identify dead code patterns. Scans typically complete in under 60 seconds.

Review and Resolve Issues

Browse the issues found, sorted by severity. Each issue includes the file path, line number, code snippet, and recommended action. Click through to view the code in context.

Set Up Automated Scans

Configure automated scans to run on every push, pull request, or on a schedule. This ensures dead code is caught before it enters your main branch.

Connecting Repositories

DeadCode.io integrates directly with GitHub to scan your repositories. Here's how to connect your repos.

GitHub OAuth

When you sign in with GitHub, you'll be asked to authorize the following permissions:

  • repo - Read access to your repositories (required for scanning)
  • read:user - Read your profile information
  • read:org - See organization membership (for team features)
Privacy First

We only read your code during scans. Code is analyzed in memory and never stored on our servers. Scan results contain only metadata about issues found.

Selecting Repositories

After signing in, go to Dashboard → Repositories and click "Connect Repository". You can:

  • Select individual repositories from the list
  • Connect all repositories in an organization
  • Filter by language or last activity

Running Scans

Learn how to run scans and configure scanning options for your repositories.

Manual Scans

To run a manual scan:

  1. Go to Dashboard → Repositories
  2. Click on the repository you want to scan
  3. Click the "Scan Now" button
  4. Wait for the scan to complete (usually 30-60 seconds)

Automated Scans

Configure automated scans in Settings → Scanning:

Trigger Description Best For
On Push Scan on every commit to main/master Continuous monitoring
On PR Scan when a pull request is opened Pre-merge validation
Scheduled Run daily/weekly at a set time Regular audits

Scan Configuration

Customize what gets scanned by creating a .deadcode.yml file in your repository root:

# .deadcode.yml
languages:
  - javascript
  - typescript
  - python

exclude:
  - "node_modules/**"
  - "dist/**"
  - "**/*.test.js"
  - "**/__tests__/**"

severity_threshold: medium  # low, medium, high, critical

Managing Issues

After a scan completes, issues are categorized by type and severity.

Issue Types

Type Description Example
Unused Function Function defined but never called function oldHelper() {}
Unused Variable Variable declared but never used const debug = true;
Orphaned Import Import statement with no usage import { unused } from './utils'
Unreachable Code Code after return/throw Code after return
Empty Block Empty catch/if/else blocks catch (e) {}

Severity Levels

  • Critical: Security risk or definite bug (always fix)
  • High: Significant dead code affecting performance
  • Medium: Unused code that should be cleaned up
  • Low: Minor issues, suggestions for improvement

Resolving Issues

For each issue, you can:

  • Fix: Remove the dead code from your codebase
  • Ignore: Mark as false positive (won't appear in future scans)
  • Comment: Add a note explaining why it should remain
  • Assign: Assign to a team member to fix

Reports & Analytics

Track your progress in eliminating dead code over time.

Dashboard Metrics

Your dashboard shows key metrics at a glance:

  • Total Issues: Number of dead code issues across all repos
  • Issues Fixed: Number resolved this month
  • Code Health Score: 0-100 score based on dead code ratio
  • Trend: Is your codebase getting cleaner over time?

Generating Reports

Go to Reports to generate detailed reports:

  • Summary Report: High-level overview for executives
  • Detailed Report: Full issue list with code snippets
  • Trend Report: Historical data over time
  • Team Report: Issues by assignee/team

Reports can be exported as PDF or CSV.

Roles & Permissions

DeadCode.io uses a hierarchical role-based access control (RBAC) system to manage permissions across your organization.

Role Hierarchy
Platform SuperAdmin
Full platform control
Company Admin
Organization management
Manager
Team oversight
Developer
Individual contributor
Analyst
View-only access

Permission Matrix

Permission SuperAdmin Admin Manager Developer Analyst
View dashboard
Run scans
Resolve issues
Export reports
Invite members
Manage billing
Configure SSO
Delete organization
Manage all organizations
Approve demo requests

Role Descriptions

Platform SuperAdmin

The highest level of access. SuperAdmins can manage all organizations on the platform, approve demo requests, access audit logs, and configure platform-wide settings like SSO/SAML. Typically limited to 2-3 people (founders/CTO).

Company Admin

Full control over a single organization. Can manage team members, configure integrations, view billing, set scanning schedules, and export reports. Suitable for engineering leads or department heads.

Manager

Can view all repositories within the organization, assign issues to team members, generate reports, and track progress metrics. Cannot modify billing or organization settings.

Developer

Standard access for individual contributors. Can run scans on assigned repositories, view and resolve issues, and add comments. Cannot invite members or access billing.

Analyst

View-only access for stakeholders who need to see reports and metrics but don't need to modify anything. Can view dashboards and export reports.

Team Management

Manage your team members and their access levels.

Inviting Team Members

  1. Go to Team → Invite Members
  2. Enter their email address
  3. Select a role (Developer, Manager, etc.)
  4. Click "Send Invite"

Invited users will receive an email with a link to join your organization.

Changing Roles

Admins can change any team member's role:

  1. Go to Team → Members
  2. Click on the member's name
  3. Select a new role from the dropdown
  4. Click "Save Changes"
Role Changes Take Effect Immediately

When you change someone's role, their permissions update instantly. They may need to refresh their browser to see the changes.

Plans & Pricing

Choose the plan that fits your team's needs. All plans include a 14-day free trial.

Feature
Starter
₹2,000/mo
Professional
₹3,499/mo
Enterprise
₹5,999/mo
Repositories 5 20 Unlimited
Team Members 3 10 Unlimited
Scans per Month 50 200 Unlimited
Languages JS, TS, Python All 6 languages All + custom
Reports Basic Advanced Custom
Support Email Priority 24/7 Dedicated
SSO/SAML
API Access
Audit Logs
Save 17% with Annual Billing

Choose annual billing to save on your subscription. Annual plans are billed upfront for the full year.

Payment Methods

DeadCode.io accepts multiple payment methods through our secure payment processor, Razorpay.

Accepted Payment Methods

  • Credit/Debit Cards: Visa, Mastercard, American Express, Rupay
  • UPI: Google Pay, PhonePe, Paytm, any UPI app
  • Net Banking: All major Indian banks
  • Wallets: Paytm, Mobikwik, Freecharge
  • International Cards: For non-INR currencies

Managing Payment Methods

To add or update your payment method:

  1. Go to Billing → Payment Methods
  2. Click "Add Payment Method"
  3. Enter your card details or UPI ID
  4. Click "Save"
Secure Payments

All payments are processed by Razorpay using 256-bit SSL encryption. We never store your full card number on our servers.

Billing Cycle

Your billing cycle starts on the day you subscribe and renews on the same date each month (or year for annual plans). You'll receive an email reminder 7 days before renewal.

Invoices

Access and download your invoices from the billing dashboard.

Viewing Invoices

  1. Go to Billing → Invoices
  2. Browse the list of past invoices
  3. Click "Download" to get a PDF

Invoice Details

Each invoice includes:

  • Invoice number and date
  • Billing period
  • Plan details and pricing
  • Taxes (GST for India)
  • Total amount paid
  • Payment method used

Tax Information

For Indian customers, GST (18%) is applied to all invoices. To add your GSTIN for tax credits:

  1. Go to Billing → Tax Information
  2. Enter your GSTIN
  3. Click "Save"

Frequently Asked Questions

What happens after my trial ends?

After your 14-day trial, you'll be prompted to choose a paid plan. If you don't subscribe, your account will be downgraded to a limited free tier (1 repository, 5 scans/month). Your data is never deleted—you can upgrade at any time to restore full access.

Can I change my plan later?

Yes! You can upgrade or downgrade your plan at any time from the Billing page. Upgrades take effect immediately and you'll be charged the prorated difference. Downgrades take effect at the end of your current billing period.

Is my code stored on your servers?

No. Your code is analyzed in memory during scans and never stored on our servers. We only store metadata about the issues found (file paths, line numbers, issue types). Your source code remains in your GitHub repository.

How do I cancel my subscription?

Go to Billing → Subscription and click "Cancel Subscription". Your access continues until the end of your current billing period. After cancellation, your data is retained for 30 days in case you want to reactivate.

Do you offer refunds?

We offer a full refund within 7 days of your first payment if you're not satisfied. After that, we don't offer refunds, but you can cancel to prevent future charges. Contact support for refund requests.

Can I use DeadCode.io with private repositories?

Yes! All paid plans support private repositories. When you connect your GitHub account, you can choose to grant access to private repos. Your code is always kept confidential and never shared.

How accurate is the dead code detection?

Our scanner achieves 95%+ accuracy using AST-level analysis. However, some dynamic patterns (like reflection or string-based function calls) may produce false positives. You can mark false positives as "ignored" so they don't reappear.