From 5f6b6b092e9baf8084fd5449acfb54732d2f421d Mon Sep 17 00:00:00 2001 From: JeremyFunk Date: Mon, 19 Oct 2026 18:55:54 +0200 Subject: [PATCH 1/5] feat(landing): Sentry pricing guide Plans, free tier limits, per-unit rates, overage rules, session replay pricing and two worked monthly bills, verified 2026-10-19 against sentry.io/pricing and Sentry's billing docs. Registered in the guides index and llms.txt. --- apps/landing/src/pages/guides/index.astro | 7 + .../src/pages/guides/sentry-pricing.astro | 582 ++++++++++++++++++ apps/landing/src/pages/llms.txt.ts | 1 + 3 files changed, 590 insertions(+) create mode 100644 apps/landing/src/pages/guides/sentry-pricing.astro diff --git a/apps/landing/src/pages/guides/index.astro b/apps/landing/src/pages/guides/index.astro index 7ca330c958..47eb3b149f 100644 --- a/apps/landing/src/pages/guides/index.astro +++ b/apps/landing/src/pages/guides/index.astro @@ -56,6 +56,13 @@ const coreGuides = [ description: "The four metric types with examples, the handful worth watching, and how to collect and chart them.", read: "7 min", }, + { + href: "/guides/sentry-pricing", + label: "Pricing", + title: "Sentry pricing in 2026", + description: "Sentry's free Developer plan, Team and Business prices, per-unit rates for errors, spans and replays, overage rules and two worked monthly bills.", + read: "12 min", + }, ]; const investigationGuides = [ diff --git a/apps/landing/src/pages/guides/sentry-pricing.astro b/apps/landing/src/pages/guides/sentry-pricing.astro new file mode 100644 index 0000000000..ee3bc67a32 --- /dev/null +++ b/apps/landing/src/pages/guides/sentry-pricing.astro @@ -0,0 +1,582 @@ +--- +import Layout from "../../layouts/Layout.astro"; +import Nav from "../../components/Nav.astro"; +import Footer from "../../components/Footer.astro"; +import BottomCTA from "../../components/BottomCTA.astro"; +import Breadcrumb from "../../components/Breadcrumb.astro"; +import FAQ from "../../components/FAQ.astro"; +import SeoHead from "../../components/SeoHead.astro"; +import TableOfContents from "../../components/TableOfContents.astro"; +import { getOffer, money, rateLabel } from "../../lib/pricing-offer"; + +const pageTitle = "Sentry Pricing 2026: Plans, Free Tier Limits and Monthly Cost Examples"; +const pageDescription = + "Sentry pricing for 2026: the free Developer plan, Team and Business prices, quotas for errors, spans and replays, overage rates and two worked monthly bills."; +const published = "2026-10-19"; +const updatedLabel = "October 19, 2026"; +const verified = "2026-10-19"; + +const offer = await getOffer(); +const gb = offer.allotments.find((a) => a.unit === "gb"); +const sessions = offer.allotments.find((a) => a.unit === "sessions"); + +const toc = [ + ["plans", "Plans and prices"], + ["free-plan", "The free plan"], + ["quotas", "Quota units and rates"], + ["overage", "Overage and reserved volume"], + ["session-replay", "Session replay pricing"], + ["examples", "Worked monthly bills"], + ["reduce", "Keeping the bill down"], + ["maple", "Maple pricing"], +] as const; +const tocHeadings = toc.map(([slug, text]) => ({ depth: 2, slug, text })); + +const sentryInit = `import * as Sentry from "@sentry/browser" + +Sentry.init({ + dsn: "https://@o0.ingest.sentry.io/0", + integrations: [Sentry.browserTracingIntegration(), Sentry.replayIntegration()], + + // Errors: keep every one, drop the noise before it is sent. + sampleRate: 1.0, + ignoreErrors: ["ResizeObserver loop completed with undelivered notifications"], + denyUrls: [/extensions\\//i, /^chrome:\\/\\//i], + + // Spans: send 10% of traces instead of all of them. + tracesSampleRate: 0.1, + + // Replays: record 1% of sessions, plus every session that hits an error. + replaysSessionSampleRate: 0.01, + replaysOnErrorSampleRate: 1.0, + + beforeSend(event) { + if (event.environment === "development") return null + return event + }, +})`; + +const faqs = [ + { + question: "Is Sentry free?", + answer: + "Yes, for one user. The Developer plan costs $0 and includes 5,000 errors, 5 million spans, 50 session replays, 5 GB of logs, 5 GB of application metrics, 1 GB of attachments, one cron monitor and one uptime monitor a month, with a 30-day lookback. It cannot add a pay-as-you-go budget, so data past those quotas is dropped until the next billing cycle. Self-hosted Sentry is also free to run under the Functional Source License; you pay for the servers.", + }, + { + question: "How much does Sentry cost per month?", + answer: + "Team is $29 a month billed monthly or $26 a month billed annually, and Business is $89 or $80. Enterprise is priced by sales. Those are base prices; usage above the included 50,000 errors, 5 million spans, 50 replays and 5 GB of logs is billed per unit. A five-person team with moderate volume lands around $105 a month on Team, and a mid-sized team sending a million errors and 200 million spans pays around $1,570 on Business (prices verified 2026-10-19).", + }, + { + question: "What counts as an error or event in Sentry?", + answer: + "An event is one payload an SDK sends, usually an error or a span. Every captured exception is one error and counts against the error quota, including repeats of an issue you resolved or ignored. The issue that groups them does not count. Events dropped by an inbound filter, a rate limit, SDK sampling, beforeSend, spike protection, or an issue set to Delete & Discard are not counted.", + }, + { + question: "What happens when you exceed your Sentry quota?", + answer: + "Sentry first spends your pay-as-you-go budget, if you set one. Once included volume, reserved volume and that budget are used up, Sentry answers with HTTP 429 and drops new data for that category until the billing cycle resets. You are not charged for dropped data, but you have no monitoring for that category for the rest of the cycle.", + }, + { + question: "Is self-hosted Sentry free?", + answer: + "The software is free. Sentry is published under the Functional Source License, which allows running it inside your company but not reselling it as a service, and each release becomes Apache 2.0 after two years. The cost is infrastructure and operations: Sentry's self-hosted docs ask for at least 4 CPU cores, 16 GB of RAM plus 16 GB of swap (32 GB recommended) and 20 GB of free disk, and scaling beyond a single machine is left to you.", + }, + { + question: "How is Sentry session replay billed?", + answer: + "Per recorded session. Every plan includes 50 replays a month, and Team and Business pay the same rates above that: $0.00375 per replay on pay-as-you-go up to 5,000, falling to $0.002453 above 4.5 million, or 20% less with reserved volume. A session ends after 5 minutes without user interaction or at 60 minutes. Only sessions the SDK actually sends are counted, so replaysSessionSampleRate controls the bill.", + }, + { + question: "What is the difference between Sentry Team and Business?", + answer: + "Both include the same base volume and unlimited users. Business adds anomaly detection, advanced inbound filtering, Code Owners, SAML and SCIM single sign-on, Relay and 1,000 metric monitors instead of 20. It also charges roughly twice as much per error and per span above the included volume, so the same traffic costs noticeably more on Business. Replay, log, attachment and monitor rates are the same on both.", + }, +]; + +const siteUrl = Astro.site?.toString().replace(/\/$/, "") ?? "https://maple.dev"; +const articleJsonLd = { + "@context": "https://schema.org", + "@type": "TechArticle", + headline: "Sentry pricing in 2026: plans, free tier limits and what a month costs", + description: pageDescription, + datePublished: published, + dateModified: published, + author: { "@type": "Organization", name: "Maple" }, + publisher: { + "@type": "Organization", + name: "Maple", + logo: { "@type": "ImageObject", url: `${siteUrl}/logo192.png` }, + }, + mainEntityOfPage: `${siteUrl}/guides/sentry-pricing`, +}; +--- + + + +