Your next engineering hire

Write code, review new features, analyze your logs, query your data warehouse, and respond to incidents — all in one product.

Write code, review new features, analyze your logs, query your data warehouse, and respond to incidents — all in one product.

If you have 20+ engineers on your team, one of them should be Indent

Indent is an infinitely scaling AI software engineer that can help your team with any engineering task

Code

Data

Review

Oncall

Indent Org

New session

⌘O

Home

Code

Data

Review

Oncall

Today

Fix Webhook N+1

This Week

Database Connection Errors in Reporting App

Sudden Drop in API Response Throughput

Increased Disk I/O on Cache Server

Network Congestion Affecting Real-time Updates

Task #480 Security Vulnerability Found in Legacy Code

Task #479 Data Corruption Issue in Backup Process

Task #478 Authentication Failure Rate on Mobile App

More

Fix Webhook N+1

PR #2845

Terminal

Browser

Processes

I suspect there's an N+1 query somewhere in the code path for our /webhook route. Can you investigate, confirm whether that's actually happening, and fix it if possible?

Explored 7 reads, 3 searches, Updated To-do

Confirmed: there is an N+1 on the `/webhook` path. The repeated query happens during delivery target construction. We load subscriptions once, then fetch endpoint records inside the event-processing loop, causing one extra query per event.


The fix is to batch endpoint hydration up front and pass a lookup map through the rest of the processing flow.

Updated To-do

Bash

Create feature branch

Files to change:

1. `webhook.ts` — batch ids before processing

2. `hydrate-endpoints.ts` — add bulk fetch path

3. `prepare-deliveries.ts` — read from preloaded lookup instead of querying inline

Explored 4 reads, Edit 3 files

+256

-91

Read

webhook.ts

Edit

webhook.ts

+256

-91

Read

hydrate-endpoints.ts

Edit

hydrate-endpoints.ts

+256

-91

Read

prepare-deliveries.ts

Edit

prepare-deliveries.ts

+256

-91

Bash

Run backend linting

Bash

Run webhook tests

Read

webhook-benchmark-results.txt

Created PR Fix N+1 query on /webhook route by batching endpoint hydration #8968

Fix N+1 query on /webhook route by batching endpoint hydration

#8968

Changes

3 files

+31

-12

main

indent-2026-03-25-fix-webhook-n-plus-one

PR #873 is up and ready for review.

CI Checks for 54af181

1 failed, 5 skipped, 29 passed

Indent Review found an issue

CI failure tests / webhook: batched delivery target spec is flaky under randomized event order indent-com/indent#8968

I'm addressing both follow-ups on the existing PR branch: add regression coverage for multi-event webhook batches, and make the batched delivery target test order-independent so it passes consistently in CI.

Explored 4 reads, Edit 3 files

+256

-91

Read

webhook.ts

Edit

webhook.ts

+256

-91

Read

prepare-deliveries.test.ts

Edit

prepare-deliveries.test.ts

+256

-91

Bash

Run webhook tests

Ran 3 commands

The fix is pushed to #873 and ready for another round of review.

Ask anything

indent/indent

production

Datadog +3

Code

Data

Review

Oncall

Increased 500 Error Rate on Checkout API

#312

Increased 500 Error Rate on Checkout API

View affected monitor on Datadog

Triggered at

2026-03-25

14:32:04 UTC

Environment

Production

Service

Service checkout-api

Deployment

d7f2841

Requests and Errors

29.8k total (41.2 req/s)

400

200

0

14:32

14:26

14:20

Errors

793 total

400

200

0

14:32

14:26

14:20

Let me pull the recent error data from Datadog.

Datadog

Query Datadog for checkout-api 500 errors

Found 847 errors in the last 20 minutes vs. a baseline of ~12/hr. 94% are NullPointerException in PaymentProcessor processCharge(), all returning HTTP 500. The errors started at 14:32 UTC. Let me check what was deployed around that time.

Investigation

Bash

List recently merged PRs on checkout-api

Bash

View diff for payment gateway migration PR

Query

affected-checkout-customers

The v3 SDK migration in PR #2841 removed a null-safety check on billing_address, causing 847 checkout failures. Putting together a fix now.

Edited 2 files

+805

-100

Fix null billing_address crash in v3 payment SDK

#2845

Changes

9 file

+214

-58

main

9 file

+214

-58

Created PR #2845: "Fix null billing_address crash in v3 payment SDK"

Summary

Root cause: PR #2841 migrated to the v3 payment SDK, which requires a non-null billing_address. The v2 SDK silently defaulted to the account address; v3 throws.

Impact: 312 failed checkout attempts across 287 customers over the last 20 minutes.

Fix: PR #2845 adds a null coalesce to restore the v2 default-address behavior. One-line change on top of the existing migration - cleaner than a full rollback.

Follow-up: Once deployed, the 287 affected customers should see their retries succeed. Worth sending a courtesy notification for anyone who abandoned checkout.

Ask anything

Code

Data

Review

Oncall

Fix Webhook N+1

PR #2845

Terminal

Browser

Processes

I suspect there's an N+1 query somewhere in the code path for our /webhook route. Can you investigate, confirm whether that's actually happening, and fix it if possible?

Explored 7 reads, 3 searches, Updated To-do

Confirmed: there is an N+1 on the `/webhook` path. The repeated query happens during delivery target construction. We load subscriptions once, then fetch endpoint records inside the event-processing loop, causing one extra query per event.


The fix is to batch endpoint hydration up front and pass a lookup map through the rest of the processing flow.

Updated To-do

Bash

Create feature branch

Files to change:

1. `webhook.ts` — batch ids before processing

2. `hydrate-endpoints.ts` — add bulk fetch path

3. `prepare-deliveries.ts` — read from preloaded lookup instead of querying inline

Explored 4 reads, Edit 3 files

+256

-91

Read

webhook.ts

Edit

webhook.ts

+256

-91

Read

hydrate-endpoints.ts

Edit

hydrate-endpoints.ts

+256

-91

Read

prepare-deliveries.ts

Edit

prepare-deliveries.ts

+256

-91

Bash

Run backend linting

Bash

Run webhook tests

Read

webhook-benchmark-results.txt

Created PR Fix N+1 query on /webhook route by batching endpoint hydration #8968

Fix N+1 query on /webhook route by batching endpoint hydration

#8968

Changes

3 files

+31

-12

main

indent-2026-03-25-fix-webhook-n-plus-one

PR #873 is up and ready for review.

CI Checks for 54af181

1 failed, 5 skipped, 29 passed

Indent Review found an issue

CI failure tests / webhook: batched delivery target spec is flaky under randomized event order indent-com/indent#8968

I'm addressing both follow-ups on the existing PR branch: add regression coverage for multi-event webhook batches, and make the batched delivery target test order-independent so it passes consistently in CI.

Explored 4 reads, Edit 3 files

+256

-91

Read

webhook.ts

Edit

webhook.ts

+256

-91

Read

prepare-deliveries.test.ts

Edit

prepare-deliveries.test.ts

+256

-91

Bash

Run webhook tests

Ran 3 commands

The fix is pushed to #873 and ready for another round of review.

Ask anything

indent/indent

production

Datadog +3

Indent plugs into every part of your company — you'll find yourself using Indent for everything

Indent plugs into every part of your company — you'll find yourself using Indent for everything

INPUT

OUTPUT

Data reports

Post mortems

Terraform updates

Pull requests

False alarms resolved

Peace of mind

Threads

Alerts

CloudWatch logs

Feedback

Data request

Customer feedback

Connected to every tool your team already uses.

More integrations means more context. Indent gets sharper with every system you connect

Datadog

GitHub

Slack

Linear

Pagerduty

Sentry

Here's what Indent can help your engineering team do

Add a confirmation modal before deleting a project

Worked for 45s

Implementation plan accepted

Project Deletion Confirmation Modal

I'll find the project deletion code and existing modal patterns to add a confirmation step before deleting. The modal will show the project name, require explicit confirmation, and use destructive button styling matching existing components.

View full plan

Search:

delete|modal|project

Edited:

web/src/components/projects/ProjectActions.tsx

Edited:

web/src/components/modals/ConfirmDialog.tsx

Project deletion now shows a confirmation modal with 'Delete [project name]?'. I will open a pull request with the changes.

Bash:

Commit changes and create PR

Add confirmation modal before project deletion

#2860

2 file +42 -5

master ← indent-2025-11-25-delete-confirmation

CI Checks for #2860

5 Passed

1 failed

It looks like there's a failing test. Let me fix that now.

CI checks for #2860

4 passed

2 pending

Prompt

Plan

Implement

Iterate

01

Ship faster

Plan and complete tasks end-to-end

Indent Code is a coding assistant that takes instructions, asks clarifying questions, and implements the required changes.

The integrated environment offers a seamless experience: edit, test, and debug without friction.

It works in a remote development environment with zero compromises: it can run builds and use a browser.

Josh

9:19 AM

@indent

How is the Hospital Partnership marketing campaign performing so far?

1 reply

1 minute ago

Analyzed for 1m 24s

Referencing 5 observations

Searched:

marketing campaigns performance • 25 schemas

Search codebase:

hospital|campaign|track

Query:

lookup-hospital-partnership-performance

Query:

compare-hospital-partnership-to-recent-campaigns

Campaign summary:


  • 68,450 impressions, 1,369 clicks (2.0% CTR)

  • 74 conversions (5.4% conversion rate)

  • $14,250 spend, $192.56 cost per conversion

  • $96,000 pipeline value, 573% ROI


Top channels:


  • LinkedIn (41 conversions, 6.8% conversion rate)

  • Google Search (22 conversions, 4.5% conversion rate)

  • Direct/Email (11 conversions, 9.2% conversion rate)

Explanation

Saved one observation about how conversion rate is calculated

Query

Answer

Remember

ask

02

Answer questions

Your new AI data analyst

Meet Indent Data, your AI data expert. It takes commands, seeks details, and makes changes.

The platform provides a smooth experience to test and evaluate data without any problems.

It integrates seamlessly with all platforms: perform analyses and use a browser without limitations.

System rules

  • Always use design tokens for colors, never plain hexcodes

  • Always use semantic values in components

  • Never introduce spacing values that aren't in the design system

Ran 9 commands, Searched 5 patterns, Read 17 files

Posted 4 comments

Indent Code is addressing 3 comments

indent

bot

commented

indent

bot

left a comment

Author

Partial token adoption: The boxShadow property mixes token and hardcoded values. The first shadow layer correctly uses --shadow-color-sm, but the second layer contains a raw oklch value, bypassing the design system. ( src/components/Tooltip.tsx line 112)

Change proposed by

Indent Code

112

-

0 10px 24px -4px oklch(0.25 0.02 260 / 0.18)

112

-

0 10px 24px -4px var(--shadow-color-lg)

Accept change

Reject

Standards

DEPTH

Feedback

autofix

03

Review code

Enforce quality on every change

Made for opinionated teams: enforces nuanced code standards in large codebases. Nothing slips through

Diffs, not nits: integrates with Indent Code to propose real, tested changes for you to merge

Improves on its own: ignored feedback will stop being suggested, and incorrect comments will never be made

Issues

IND-102

Hydration Error: Minified React Error #418

Component failed to mount on /pricing

Hydration Error: Minified React Error #418

Severity

High

Issue on

Frontend

Routing to

@dkzlv

Analyzed for 45s

Grep:

"PriceCard" src/components

Git history:

--file PriceCard.tsx

Read:

PriceCard.tsx

Analysis

Confidence: 98%

Root Cause: The PriceCard component generates a random ID on every render. Because the server renders this once and the client re-renders it on load, the IDs do not match, triggering React Error #418.


Context: This was introduced in PR #402 (Pricing Redesign) by @dkngl.

Change proposed by

Indent Code

24

-

const id = Math.random().toString(36);

24

-

const id = useId(); // Stable hook

Dismiss

Create PR

TRIGGER

TRIAGE

analysis

autofix

01

Fight fires

From “is anyone around?” to “Indent handled it.”

Zero-friction incident response: every monitor, alert, or error is immediately and thoroughly investigated

Cuts through noise: Indent Oncall knows when to bring humans into the loop

Reduce incidents over time: resolve the issue and work with Indent Code to prevent it next time

Teams shipping with Indent

How Flipturn uses Indent:
One Agent, Every Surface

How Flipturn uses Indent: One Agent, Every Surface

Fundamentally Changing How a Company Asks and Answers Data Questions

Don’t know where to start? Try Code Review free for 60 days

Don’t know where to start? Try Code Review free for 60 days

Don’t know where to start? Try Code Review free for 60 days

Company

We’re hiring

Security

Skip the docs.

We'll walk you through everything.

© 2026 Indent

Company

We’re hiring

Security

Skip the docs.

We'll walk you through everything.

© 2026 Indent

Company

We’re hiring

Security

Skip the docs.

We'll walk you through everything.

© 2026 Indent