How to write an ADR

Write an ADR when a decision is significant: it affects structure, key qualities such as security or performance, dependencies or interfaces, or is expensive to reverse. Give it the next number and a title that states the decision, such as “Use PostgreSQL as the primary database”.

Decisions

    Files are named like 0001-title.md for a docs/adr folder.

     

    Saved you some time? Leave a tip, entirely optional.

    Describe the context neutrally, list the options, state the decision and its reasons, and be honest about the downsides. Start as Proposed, move to Accepted after review, and never rewrite history: supersede the record with a new one instead. ADRKit handles the numbering, statuses and links.

    How the records fit together

    Each record gets the next free number and a file name made from that number and its title, such as 0002-use-postgresql-as-the-primary-database.md. Numbers never change, even if you delete a record, because other documents may refer to them. When a new decision replaces an old one, choose the old record under Supersedes: the new file gets a “Supersedes” link, the old one is marked Superseded and gets a “Superseded by” link back, and the index shows the change.

    Download all builds a zip with a docs/adr folder containing every record and a README.md index table with number, title, status and date. Unzip it at the root of your repository and commit it, or copy just the index if you keep records elsewhere.

    Choosing a template

    Use MADR when you want to show the options and trade-offs; it is the most complete format and suits decisions that will be debated. Use Nygard for short, quick records where the decision is clear. Use a Y-statement to capture small decisions in one sentence or to summarise a long one. You can change the template of any record at any time; the fields carry across and the preview updates.

    Private by design

    ADRKit has no accounts and no server-side storage. Your records are saved in local storage in this browser only, and the zip is built on your device.

    Frequently asked questions

    Where should ADRs live?

    In the repository next to the code, commonly docs/adr or doc/architecture/decisions, so they are versioned and reviewed in pull requests.

    Who writes the ADR?

    Usually the person proposing the decision. The team reviews it like code, and it becomes Accepted when merged.

    What statuses are there?

    Proposed, Accepted, Rejected, Deprecated and Superseded are the common ones.

    Is ADRKit free?

    Yes. The ADR generator, templates and zip export are free with no account.

    Where are my ADRs stored?

    Only in this browser on this device. Download the zip to keep them in your repository.

    More tools