Ship faster

Ship faster

Indent works with your engineers on dozens of parallel

end-to-end features at a time. Each in an isolated copy of your dev environment with a fully functional computer.

Indent works with your engineers on dozens of parallel end-to-end features at a time, each in an isolated copy of your dev environment with a fully functional computer.

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

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

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

Works with you from plan to merge

Indent plans features, writes code and tests, automatically fixes bugs, manages complex rebase and merge tasks, and opens PRs that are ready to ship.

Indent plans features, writes code and tests, automatically fixes bugs, manages complex rebase and merge tasks, and opens PRs that are ready to ship.

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

Figures it out

Indent knows when to ask for help, and how to gather context from your codebase, your data warehouse, your logs, and your error reporting.

Checkout's been flaky this week. users are complaining. look into it

Explored 14 files, Queried Datadog, Checked Sentry

Found the issue. Your Stripe webhook retries fire after idempotency keys expire, creating duplicate charges on a 26-hour cycle. I can fix this, but need to know how you want to handle the retry window before I touch anything.

Retry window is 48h but Stripe idempotency keys expire at 24h. How should I resolve the mismatch?

A

Shorten retry window to 24h

Simplest. ~12% of late retries will be dropped.

B

Regenerate idempotency keys after expiry

Keeps all retries, needs a new dedup layer.

C

Migrate to Stripe Smart Retries

Most resilient, but rewrites 3 handlers.

Write your answer

Move up

↑↓

Discard

esc

Skip question

Scales to the fidelity you need

Indent works in repositories with millions of lines of code; on refactor and housekeeping tasks that would be unthinkable for human teams to tackle; and in tight, iterative loops on features requiring taste and judgment.

monorepo

apps / 47

packages / 183

services / 24

src / 45

libs / 12

core / 392

auth / 93

oauth / 4

saml / 3

12.4M

lines

48,291

files

253

packages

12.4k

tests

1,847

modules

2,847

endpoints

23

deep

Plays well with others

Indent is collaborative and multiplayer: on the web, on your phone, in Slack, in GitHub, Notion and anywhere else your team gets its work done.

Feature Spec: Export as PDF

Context

Sales team keeps screenshotting dashboards to paste into client decks. We need a proper export.

Requirements

Export any dashboard view as a styled PDF

Include current filter state in export

Add company logo + timestamp to header

Support both light and dark theme exports

Priority

P2 — Requested by 3 enterprise accounts

Timeline

~2 sprints (estimated)

Sashank Thupukari 3m

Indent scope this out before we put it on the roadmap

New

Indent Just now

This feature already exists. It was built by @danielk in Q2 last year, merged in PR #1847, and is fully functional. It's sitting behind a feature flag


Want me to enable the flag and open a PR to update the dependency?

Reply...

Hear it from our customers

Hear it from our customers

"If there's a small customer feedback item, or a bug that comes up really rarely, maybe we would have deferred a fix until later. But if it's as easy as just tagging the bot in Slack, you may as well see if it can handle it. And a lot of the time, it does."

Sashko Stubilo, CTO & Co-founder, Flipturn

"If there's a small customer feedback item, or a bug that comes up really rarely, maybe we would have deferred a fix until later. But if it's as easy as just tagging the bot in Slack, you may as well see if it can handle it. And a lot of the time, it does."

Sashko Stubilo, CTO & Co-founder, Flipturn

"If there's a small customer feedback item, or a bug that comes up really rarely, maybe we would have deferred a fix until later. But if it's as easy as just tagging the bot in Slack, you may as well see if it can handle it. And a lot of the time, it does."

Sashko Stubilo, CTO & Co-founder, Flipturn

"If there's a small customer feedback item, or a bug that comes up really rarely, maybe we would have deferred a fix until later. But if it's as easy as just tagging the bot in Slack, you may as well see if it can handle it. And a lot of the time, it does."

Sashko Stubilo, CTO & Co-founder, Flipturn

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

Company

We’re hiring

Security

Skip the docs.

We'll walk you through everything.

© 2026 Indent