<!-- TheTechStack public content. Cite the canonical source; retain its qualifications. -->

Source: https://www.thetechstack.com/stacks/stripe
Author: Not specified
Author profile: Not specified
Editor: Kyle Brierley
Editor profile: https://www.thetechstack.com/authors/kyle-brierley
Publisher: TheTechStack (https://www.thetechstack.com)
Published: Not specified
Updated: Not specified
Suggested citation: Edited by [Kyle Brierley](https://www.thetechstack.com/authors/kyle-brierley). [Stripe stack](https://www.thetechstack.com/stacks/stripe). TheTechStack.

Retain the source qualifications. Cite the original article and link the credited author profile where available. An editor is not necessarily the author.

[← Stack register](https://www.thetechstack.com/stacks)

Research snapshot / 2026-07-15

# Stripe

[stripe.com ↗](https://stripe.com/)

fintech1000+ peopleResearch record · not company verified

Editorial responsibility: [Kyle Brierley](https://www.thetechstack.com/authors/kyle-brierley) · TheTechStack. Original sources are credited below.

Current tools / 9

## Documented stack

Source, access date, and confidence stay attached to each row.

**Documented snapshot: 2026-07-15.** This describes the record’s stated observation date, not a live inventory.

**Company verification:** The company has not verified this record. Individual claims can still cite direct company statements.

What the confidence labels and dates mean

-   **Confirmed:** the record attributes the claim to a company statement. This is not independent proof of current deployment.
-   **Inferred:** the record draws a conclusion from technical evidence.
-   **Reported:** the record attributes the claim to a third party.

“Source accessed” is the date the researcher recorded visiting the source. It is not the source’s publication date or a new verification of the company’s stack. Publication dates and deployment scope are not consistently recorded in this dataset.

A tool listing does not establish company-wide adoption, internal permissions, security controls, or suitability for your team. Check the source and its scope before using a record in a purchasing decision.

Current tools in the Stripe stack
| Category | Tool | Since | Confidence | Evidence |
| --- | --- | --- | --- | --- |
| `language` | **Ruby**Core heritage language; product codebase described (circa 2017) as 'entirely implemented in a single Ruby monolith.' Stripe deliberately delayed decomposing this monolith until past 3,000 engineers, relying on Sorbet (see separate entry) to keep it productive rather than rewriting it. | — | confirmed ·  | 
[job-post ↗](https://stripe.com/jobs/listing/software-engineer-new-grad-developer-end-user-experience-platform/7991718)Accessed 2026-07-15

[other ↗](https://lethain.com/stripe-sorbet/)Accessed 2026-07-15

 |
| **Sorbet**Custom static type checker for Ruby, built in-house by Stripe's Product Infrastructure team starting ~2017 and open-sourced ~2019 (timeline via search synthesis, not independently confirmed against a primary dated source). Built instead of migrating the Ruby monolith to Java or Go, which was explicitly considered and rejected. Used to type-check Stripe's ~15 million lines of Ruby code. | 2017 | confirmed ·  | 

[eng-blog ↗](https://stripe.dev/blog/sorbet-stripes-type-checker-for-ruby)Accessed 2026-07-15

[other ↗](https://lethain.com/stripe-sorbet/)Accessed 2026-07-15

 |
| **TypeScript**Stripe's largest JavaScript codebase (the Dashboard) was converted from Flow to TypeScript in a single pull request on Sunday, March 6, 2022, after roughly a year of tooling preparation. Conversion used a codemod built on top of Airtable's open-sourced Flow-to-TypeScript codemod, later open-sourced by Stripe itself. Scale is reported inconsistently across Stripe's own sources: the blog post's headline figure is 3.7 million lines (the single flagship PR); the codemod's GitHub repo description says 6.5m+ lines; its README says 4m+ lines total across usage. Not reconciled in any single Stripe source. | 2022-03 | confirmed ·  | 

[eng-blog ↗](https://stripe.dev/blog/migrating-to-typescript)Accessed 2026-07-15

[code ↗](https://github.com/stripe-archive/flow-to-typescript-codemod)Accessed 2026-07-15

 |
| **JavaScript**Base language of Stripe's largest frontend codebase (the Dashboard), underneath first Flow then TypeScript as the type-checking layer. Also listed among Stripe's primary languages on its own careers page. | — | confirmed ·  | 

[job-post ↗](https://stripe.com/jobs/listing/software-engineer-new-grad-developer-end-user-experience-platform/7991718)Accessed 2026-07-15

 |
| **Java**Listed as one of Stripe's primary languages on a live 2026 careers page. Not present in the 2017-era internal stack diagnosis (which named only Ruby monolith, a narrow Golang service, and Scala data infrastructure) -- Java's footprint appears to have grown since, but no origin story or adoption date was found in this pass. | — | confirmed ·  | 

[job-post ↗](https://stripe.com/jobs/listing/software-engineer-new-grad-developer-end-user-experience-platform/7991718)Accessed 2026-07-15

 |
| **Go**As of ~2017, used for one narrow payment-tokenization service, deliberately kept small to bound SOC1 compliance scope. Still listed as a primary Stripe language on the current careers page. | — | confirmed ·  | 

[job-post ↗](https://stripe.com/jobs/listing/software-engineer-new-grad-developer-end-user-experience-platform/7991718)Accessed 2026-07-15

[other ↗](https://lethain.com/stripe-sorbet/)Accessed 2026-07-15

 |
| **Scala**As of ~2017, used for Stripe's data infrastructure, managed independently by a relatively small group of data engineers. Still listed as a primary Stripe language on the current careers page. | — | confirmed ·  | 

[job-post ↗](https://stripe.com/jobs/listing/software-engineer-new-grad-developer-end-user-experience-platform/7991718)Accessed 2026-07-15

[other ↗](https://lethain.com/stripe-sorbet/)Accessed 2026-07-15

 |
| `hosting` | **AWS**Reported by AWS's own customer case study, not by a Stripe-authored page -- likely accurate and probably Stripe-reviewed as a reference customer, but marked reported per strict confidence rules since Stripe did not author the source. | 2011 | reported ·  | 

[press ↗](https://aws.amazon.com/solutions/case-studies/stripe/)Accessed 2026-07-15

 |
| `orchestration` | **Minions (internal coding agents)**Stripe's homegrown, one-shot end-to-end coding agents, responsible for over 1,000 human-reviewed but fully agent-written pull requests merged per week as of early 2026. Reported (via search synthesis of press/social coverage, not a direct fetch of the full stripe.dev article body) to run in isolated 'devboxes,' built on a fork of Block's open-source Goose agent, connecting to 400+ internal MCP tools via an internal server called 'Toolshed.' A direct sequel to Stripe's pattern (seen with the TypeScript codemod) of building serious internal tooling on top of an external open-source base. | 2025 | confirmed ·  | 

[eng-blog ↗](https://stripe.dev/blog/minions-stripes-one-shot-end-to-end-coding-agents-part-2)Accessed 2026-07-15

[social ↗](https://x.com/stripe/status/2021273907680997439)Accessed 2026-07-15

 |

**Record boundary**

This is a dated research snapshot, not a live inventory. Confidence describes the claim; company verification is tracked separately.

**Source set**

-   [https://stripe.dev/blog/migrating-to-typescript](https://stripe.dev/blog/migrating-to-typescript)
-   [https://stripe.dev/blog/sorbet-stripes-type-checker-for-ruby](https://stripe.dev/blog/sorbet-stripes-type-checker-for-ruby)
-   [https://github.com/stripe-archive/flow-to-typescript-codemod](https://github.com/stripe-archive/flow-to-typescript-codemod)
-   [https://lethain.com/stripe-sorbet/](https://lethain.com/stripe-sorbet/)
-   [https://stripe.com/jobs/listing/software-engineer-new-grad-developer-end-user-experience-platform/7991718](https://stripe.com/jobs/listing/software-engineer-new-grad-developer-end-user-experience-platform/7991718)
-   [https://aws.amazon.com/solutions/case-studies/stripe/](https://aws.amazon.com/solutions/case-studies/stripe/)
-   [https://stripe.dev/blog/minions-stripes-one-shot-end-to-end-coding-agents-part-2](https://stripe.dev/blog/minions-stripes-one-shot-end-to-end-coding-agents-part-2)
-   [https://stripe.dev/blog/minions-stripes-one-shot-end-to-end-coding-agents](https://stripe.dev/blog/minions-stripes-one-shot-end-to-end-coding-agents)
-   [https://x.com/stripe/status/2021273907680997439](https://x.com/stripe/status/2021273907680997439)
-   [https://medium.com/pinterest-engineering/migrating-3-7-million-lines-of-flow-code-to-typescript-8a836c88fea5](https://medium.com/pinterest-engineering/migrating-3-7-million-lines-of-flow-code-to-typescript-8a836c88fea5)

Movement

## What changed

### Moved away from

-   **Flow**language · Stripe's prior type checker for its largest JavaScript codebase (the Dashboard), replaced by TypeScript in a single pull request on March 6, 2022. Engineers reportedly struggled with Flow's memory usage locking up laptops and unreliable in-editor integration (via search synthesis of the stripe.dev migration post, not independently re-verified by direct fetch).

Methodology: research assisted by AI agents, verified and edited by a human. [Suggest a correction via pull request](https://github.com/KyleBrierley/thetechstack-data/blob/main/records/stripe.json) or [email us](mailto:kyle@thetechstack.com).
