Insights, stories, and updates from team DeepSource.
Support for Bitbucket Data Center
From Zero To Secure
Introducing, Community Analyzers
Introducing, DeepSource Runner
Introducing support for Monorepos
Introducing, DeepSource for Kotlin
Announcing DeepSource’s Vanta integration
Introducing, DeepSource for Swift
Scanning JavaScript Code For Security Vulnerabilities
The Hidden Costs of False Positives in Code Quality
Risks of Disparate Code Quality Tools
Introducing, DeepSource Reports
Introducing, Pinned Reports
What to Look for in SAST Tools
Improve Security Posture with Static Application Security Testing (SAST)
Better Audit Logs
Writing Secure Rust Code with SAST
Rust stdlib vulnerability in fs::remove_dir_all
Parallel processing in Node.js using worker threads
What's new in Python 3.9?
What's new in Python 3.10?
Log4Shell: Apache Log4j Vulnerability
Learn Python ASTs by building your own linter
Beginner's guide to JavaScript static code analysis
5 Common mistakes in Go
Breaking builds, baseball bats, and the code quality DNA
Common anti-patterns in Go
Python code review checklist
Guidelines for Java code reviews
JavaScript best practices to improve code quality
Good Code Podcast: Episode 4
Python code formatters
Managing multiple Git profiles
Why you should use the key directive in Vue.js with v-for
Good Code Podcast: Episode 3
Demystifying Python’s Descriptor Protocol
How Reactivity works in Vue.js
Git branch naming conventions
All that happened: PyCon India 2019
OWASP Top 10: Sensitive Data Exposure
Comparison of new Python web frameworks
7 popular web frameworks in Go
DeepSource at PyConf Hyderabad - Experience & Reflections
"isn't a title of this post" isn't a title of this post
Good Code Podcast: Episode 2
Easy performance optimizations in Python
Package management in Go
Positional-only arguments in Python
Good Code Podcast: Episode 1
OWASP Top 10: Broken Authentication
Walrus operator in Python 3.8: a primer
Good First Issue: August 2019
How Masonite ships good code with DeepSource
OWASP Top 10: Injection
What's new in Python 3.8?
Common beginner mistakes in Python
Python and Kubernetes Events: March 2019
Code review best practices
Best practices for using Git
The exponential cost of fixing bugs
Benefits of Continuous Quality
Importance of software documentation
What is technical debt?
Don't use Math.random()
DeepSource is now SOC 2 Type II compliant
What's new in Python 3.11?
Problems & pains in parsing: a story of lexer-hack
Using Roslyn APIs to build a .NET IL interpreter
Debugging Heisenbugs: A tale of parallel processing
Aligning software development with business strategy
DeepSource's Guide to SAST
Balancing code quality and developer productivity
Ruby 3.2's WASI Integration: A Closer Look
DeepSource Discuss
Introducing Bitbucket support for DeepSource
Introducing, DeepSource for C#
DeepSource at PyCon India 2019
Common anti-patterns in Python
Release: Test coverage, meta config for analyzers
Release: Actions on issues, ignore rules
Release: Granular analysis on diffs
Release: Permanently silence issues in code
Release: Ignore issues in all test files
Release: Re-thinking test coverage
Release: Go analyzer lands in beta
Release: GitLab support, new actions on issues
Release: Static type checker in Python
Release: Static analysis for Dockerfile
DeepSource Go analyzer is now generally available
Release: Improved issues interface
Release: DeepSource Ruby analyzer lands in beta
Release: Improved repository onboarding workflow
Release: Static analysis for Terraform
Autofix: The future of code reviews is here
Actionable issue reporting with DeepSource
Make your Dockerfile better with DeepSource
Tips for writing glob patterns in DeepSource configuration
Automate code formatting with Transformers
Code formatting on autopilot
DeepSource JavaScript analyzer lands in beta
A guide to risk-free SAST implementation for AppSec teams.
Let us write our own IL interpreter that is capable of executing fibonacci series program
A tale of popular issues in parsing mainstream languages because of design oversights.
The Code Health Platform. Everything you need to build maintainable and secure software.
How you can improve the code health and security of your team's codebase with automation.
Built-in TOML support, better exceptions, and typing improvements.
Writing modular parsers using monads.
Introducing, an improved way of integrating DeepSource with GitLab for continuous quality and shift left.
A brief overview of how method invocation and control flow work in the JVM
Announcing our SOC 2 certification for security, availability, and confidentiality.
Using tree-sitter queries to write simple, custom lints
Despite what the accepted answer on Stack Overflow tells you, using Math.random for generating passwords is always a bad idea.
Leveraging worker threads to improve the performance of CPU intensive apps.
DeepSource is free forever for small teams and open-source projects. Start analyzing your code in less than 2 minutes.
Read product updates, company announcements, how we build DeepSource, what we think about good code, and more.