---
title: "Plans"
description: "How Blogged is priced, what a plan controls, why a plan belongs to a Project rather than an account, and when a first charge can be refunded."
updated: "2026-08-28"
verifiedAgainst:
  - apps/web/lib/pricing-plans.ts
  - packages/shared/src/index.ts
  - packages/shared/src/billing-access.ts
  - packages/shared/src/free-grant.ts
  - apps/web/lib/refund-terms.ts
  - apps/web/lib/policies.ts
---

**Pricing is per Project.** One workspace, one subscription, one payment method,
and a plan on each Project.

That is the whole model, and it is worth stating first because it explains
everything else: why usage numbers are per Project, why two Projects can be on
different plans, and why adding a Project changes what you pay without changing
anything about the Projects you already have.

## What a plan controls

<PropertyList>
  <Property name="Posts per period">
    How many articles the Project may produce in a billing period.
  </Property>
  <Property name="Topics per period">
    How many Topics may be generated.
  </Property>
  <Property name="Images per period">
    How many images may be generated.
  </Property>
  <Property name="Revisions per post">
    How many saved versions a single post may accumulate.
  </Property>
  <Property name="Competitors">
    How many competitors the Project may track.
  </Property>
</PropertyList>

Those three "per period" meters refill when the billing period rolls over. That
is a property of a plan rather than of the product: a Free Project has no plan
and no billing period, and its allowance is a one-time lifetime total that never
refills.

Current numbers for each plan are on the
[pricing page](https://blogged.dev/pricing), which is generated from the same
values the product enforces.

## Monthly and annual

Both are available. An annual subscription is priced at ten months rather than
twelve, so paying annually gives you two months free. That is the exact claim,
and it is deliberately not expressed as a rounded percentage.

## Several Projects

Running more than one Project earns a discount, and it is applied per Project
rather than to the subscription as a whole. Each Project takes the band its own
position earns, against its own plan price: position 1 pays full price, 2 to 4
take 10 percent off, 5 to 10 take 15 percent and 11 to 20 take 20 percent.

Adding a Project does not make the ones you already run cheaper. It joins at the
next position and takes that position's band. See
[discounts](/billing/discounts).

## Changing plan

Per Project, at any time. See [changing a plan](/billing/change-plan).

## Refunds

There is a refund, and it is narrow. It covers exactly one charge, **the first
paid subscription charge on your first self-serve Blogged subscription**, and
all three conditions below have to hold at once.

<PropertyList>
  <Property name="Timing" type="168 hours">
    Your request has to reach Blogged within 168 hours, seven days, of the first
    paid period starting. Neither signup benefit is part of that window, whether
    the Project ran on a trial or on a Free grant, and the window is measured to
    the exact time rather than the calendar date.
  </Property>
  <Property name="Posts under your signup benefit" type="0">
    A single post generated under the signup benefit ends eligibility outright.
    That is the same condition whether the benefit was a trial or a Free grant.
  </Property>
  <Property name="Posts after the paid period starts" type="0 or 1">
    Generating a second post on the paid plan ends eligibility.
  </Property>
</PropertyList>

<Callout variant="warning" title="Autopilot can spend your eligibility for you">
  A post counts from the moment Blogged successfully generates it, and it keeps
  counting whether you later publish, schedule, edit, export, archive, duplicate
  or delete it. An active Autopilot can generate a post on day one, so a Project
  can be outside the policy before anyone has looked at what it wrote. If you
  think you may want a refund, leave Autopilot paused until you have decided.
</Callout>

A generation that failed and produced nothing does not count. Neither does
importing a draft or writing one yourself: the count is posts Blogged generated.

Renewals, add-on post packs, and upgrade, downgrade or proration charges are
outside this policy, and a plan change does not restart the window. An account
found to be cycling trials or refunds is outside it too. Billing errors and
duplicate charges are reviewed separately from any of this, as are rights your
local law gives you that this policy cannot take away.

Requests go to `hi@blogged.dev` from the account email. The full terms, including
how a request is reviewed and what an approved refund does to the subscription,
are in the [Refund Policy](https://blogged.dev/policies/refunds).
