# Плани та тарифи AfterPack

Free виконує повний конвеєр: складність необмежена, доступний кожен пресет. Між тарифами змінюється те, наскільки точково можна застосовувати захист, і скільки MB збірок Pro ви отримуєте щомісяця.

Source: https://www.afterpack.dev/uk/docs/tiers

**Free виконує повний конвеєр. [`complexity`](https://www.afterpack.dev/uk/docs/config#complexity) необмежена, і доступний кожен [пресет](https://www.afterpack.dev/uk/docs/presets).** Платите ви за точкове застосування захисту, до однієї функції чи файлу за допомогою [директиви](https://www.afterpack.dev/uk/docs/directives), а також за середовища, з яких вихідний код ніколи не може вийти, і за обсяг: збірки [Pro](https://www.afterpack.dev/uk/docs/pro) виконуються в [хмарі AfterPack](https://www.afterpack.dev/uk/docs/deployment-modes) і тарифікуються за мегабайти.

Free достатньо, щоб обфускувати ваш код. Справжні питання в тому, чи потрібно вам позначати окремі ділянки для сильнішої обробки, працювати там, де третя сторона не може торкнутися вашого вихідного коду, або пропускати через хмарний рушій більше JavaScript, ніж покриває ліміт Free.

## Таблиця можливостей

| Capability | Free ($0) | Indie ($49) | Team ($159) | Studio ($299) | Enterprise (Custom) |
| --- | --- | --- | --- | --- | --- |
| **All [structural transforms](https://www.afterpack.dev/docs/concepts#what-standard-obfuscation-already-does)** — Renaming, encoding, control-flow, constants, inflation. The two Pro hardening transforms are a separate row. | Yes | Yes | Yes | Yes | Yes |
| **Unlimited [complexity](https://www.afterpack.dev/docs/config#complexity)** — `complexity` is unbounded on every tier. | Yes | Yes | Yes | Yes | Yes |
| **[Plugin nudge](https://www.afterpack.dev/docs/cli#usage) after a CLI run** — The CLI reads `package.json` and points you at the matching plugin. | Yes | Yes | Yes | Yes | Yes |
| **[Audit command](https://www.afterpack.dev/docs/audit)** — `npx afterpack@latest audit <url>` — find exposed secrets and weak protection on a live URL. | Yes | Yes | Yes | Yes | Yes |
| **[Per-region directives](https://www.afterpack.dev/docs/directives#what-you-can-set)** — `/* @afterpack skip */` and every other per-region directive. On Free, a directive that raises protection stops the build and any other directive is ignored; use `paths.exclude` or `identifiers.reserved` per file. | — | Pro | Pro | Pro | Pro |
| **[Reserved identifiers](https://www.afterpack.dev/docs/config#identifiers-reserved)** — `identifiers.reserved`: keep specific names. | Yes | Yes | Yes | Yes | Yes |
| **[Source maps](https://www.afterpack.dev/docs/config#sourceMap-enabled)** — Generate locally; keep them out of production. | Yes | Yes | Yes | Yes | Yes |
| **Pro [amplifying directives](https://www.afterpack.dev/docs/config#preset)** — `preset=hard` or `preset=extreme` on a region. | — | Pro | Pro | Pro | Pro |
| **[Hardening transforms](https://www.afterpack.dev/docs/config#transforms-kind-enabled)** — `transforms.selfIntegrity` and `transforms.comparisonHardening`. Off by default; a Free build ignores both. | — | Pro | Pro | Pro | Pro |
| **[Cross-module obfuscation](https://www.afterpack.dev/docs/pro#soon) (planned)** — Imports/exports renamed; smaller bundles. | — | Pro | Pro | Pro | Pro |
| **Pro [destructive transforms](https://www.afterpack.dev/docs/pro#soon) (planned)** — Boundary-destroying fusion on marked regions. | — | Pro | Pro | Pro | Pro |
| **[Managed source maps](https://www.afterpack.dev/docs/pro#soon) (planned)** — Encrypted off-site storage; symbolicate production traces. | — | Pro | Pro | Pro | Pro |
| **[Confidential Computing deployment](https://www.afterpack.dev/docs/enterprise#confidential-computing) (on request)** — Attested enclave in your own cloud account. | — | — | — | — | Enterprise |
| **[Dedicated support](https://www.afterpack.dev/docs/sla#support-channels-by-tier)** — A direct chat channel with the engineering team. | — | — | — | Studio+ | Studio+ |
| **[On-prem / double-blind install](https://www.afterpack.dev/docs/enterprise#on-prem--double-blind-install) (on request)** — Sealed signed binary in your perimeter. | — | — | — | — | Enterprise |

## Free структурно сильний

Free запускає каталог структурних трансформацій на будь-якому заданому вами [пресеті](https://www.afterpack.dev/uk/docs/presets), усе, крім двох трансформацій посилення Pro ([`selfIntegrity`](https://www.afterpack.dev/uk/docs/config#transforms-kind-enabled) і [`comparisonHardening`](https://www.afterpack.dev/uk/docs/config#transforms-kind-enabled)). Це вже заповнює поліноміально-ін'єктивний [клас відновлення](https://www.afterpack.dev/uk/docs/reversal-classes) у всьому вашому бандлі, а [те, що рушій робить із вашим кодом](https://www.afterpack.dev/uk/docs/concepts), між тарифами не змінюється.

| Pro додає | Що це робить |
|---|---|
| Точкове знищення констант | [`/* @afterpack preset=extreme */`](https://www.afterpack.dev/uk/docs/config#preset) підвищує ділянку до [цільової складності](https://www.afterpack.dev/uk/docs/config#complexity) 25 з примусово ввімкненим [мінімальним кодуванням рядків](https://www.afterpack.dev/uk/docs/config#strings-encode), тож її літерали кодуються, а не постачаються відкритим текстом. |
| Самоперевірка цілісності | [`transforms.selfIntegrity.enabled`](https://www.afterpack.dev/uk/docs/config#transforms-kind-enabled) додає перевірку, яка виявляє зміни лише у власній таблиці перевірок, а не деінде у вашому коді. Глобальна, вимкнена за замовчуванням і потребує коду рівня `medium` або вище. |
| Точкове націлювання | [Директиви](https://www.afterpack.dev/uk/docs/directives#what-you-can-set) у вашому вихідному коді, які задають важчий або легший пресет для однієї функції чи файлу. Їх читає [плагін фреймворку](https://www.afterpack.dev/uk/docs/frameworks); CLI не читає жодної. |

Міжмодульне переплетення, злиття зі знищенням меж і керовані source map недоступні. Див. [Pro](https://www.afterpack.dev/uk/docs/pro#soon).

## Ціни

| Тариф | Щомісяця | Щороку | Збірки Pro / місяць | Проєкти | Перевищення |
|---|---|---|---|---|---|
| Free | $0 назавжди | н/д | 10 MB | 2 | н/д |
| Extra MB | $5 разово | н/д | +20 MB, без терміну дії | н/д | н/д |
| Indie | $49/міс | $490/рік | 500 MB | 3 | $0.15/MB |
| Team | $159/міс | $1,590/рік | 3 GB | 5 | $0.12/MB |
| Studio | $299/міс | $2,990/рік | 8 GB | необмежено | $0.10/MB |
| Enterprise | Індивідуально | Індивідуально | Індивідуально | Індивідуально | Індивідуально |

Річний план — це **ціна 10 місяців за 12 місяців**, два місяці безкоштовно. Indie і Team включають **14-денний безкоштовний пробний період** на щомісячному плані, один раз на робочий простір — річний план оплачується наперед, тому пробного періоду в нього ніколи немає, а Studio не має пробного періоду в жодному разі.

**Купити Pro можна не одним способом.** Extra MB — це разова покупка 20 MB за $5, доступна будь-якому робочому простору, зокрема на Free. Вона не має терміну дії, ніколи не поновлюється автоматично, і її купівля не запускає підписку. Проєкт, який випускає реліз раз на кілька тижнів, може працювати на поповненнях необмежено довго. На великих обсягах план дешевший за мегабайт.

**Free не має терміну дії.** Локальний рушій не тарифікується і не обмежений: запускайте [`npx afterpack@latest`](https://www.afterpack.dev/uk/docs/cli) на скільки завгодно коду, назавжди, без облікового запису. 10 MB — це хмарний ліміт Pro, який отримує [зареєстрований обліковий запис](https://www.afterpack.dev/uk/docs/accounts), щоб ви могли спробувати точкові можливості на реальному коді.

## Що тут означає мегабайт

Лічильник рахує **MB JavaScript, який обробляє [хмарний рушій](https://www.afterpack.dev/uk/docs/deployment-modes)**, а не файли, не збірки й не запити.

- 1 MB = 10⁶ байтів (десятковий), рахується в точних байтах і відображається з точністю до 0.1 MB.
- Збірка тарифікується **один раз**, за вхідними даними, які вона фактично обробляє.
- Порядок списання: **ліміт плану, потім Extra MB, потім перевищення**. Одна збірка може охопити всі три.
- Ліміт Free поновлюється в ковзному 30-денному вікні. Ліміт підписки натомість поновлюється за її платіжним циклом.
- **Extra MB не має терміну дії** і не поновлюється автоматично. Він стоїть у черзі після ліміту плану й витрачається лише тоді, коли ліміт вичерпано.

Для порівняння: типовий продакшн-бандл SPA займає від кількох сотень KB до кількох MB, тож 500 MB тарифу Indie покривають приблизно кілька сотень хмарних збірок на місяць.

## Перевищення і ліміт, що вас захищає

На платному плані перевищення за замовчуванням увімкнене, тож вичерпаний посеред спринту ліміт не ламає ваш CI. Воно нараховується за кожен MB за ставкою з таблиці вище й додається до вашого наступного рахунку. Округлення завжди на вашу користь.

Його обмежують три речі:

- **Ваш ліміт витрат.** Його може задати власник [робочого простору](https://www.afterpack.dev/uk/docs/dashboard/workspaces) на [сторінці оплати](https://www.afterpack.dev/uk/docs/dashboard/usage). `0` повністю вимикає перевищення (тоді збірки завершуються помилкою, коли пули вичерпано); незаданий ліміт означає, що користувацького обмеження немає.
- **Внутрішній ліміт.** Новий робочий простір обмежений **2× місячною базою** ($98 Indie, $318 Team, $598 Studio), доки не оплачено **два рахунки**.
- **Чинний ліміт — менший із двох.** [Дашборд](https://www.afterpack.dev/uk/docs/dashboard/usage) показує ліміт, який фактично застосовується.

Перевищення ніколи не нараховується **під час пробного періоду**, за підписки з простроченим платежем або на плані Free. У цих випадках збірка, яка виходить за межі передоплачених пулів, завершується помилкою замість того, щоб виставити вам рахунок.

Пакет понад ліміт відхиляється до відправлення будь-якого файлу, тож збірка ніколи не буває частково обробленою чи частково оплаченою. Див. [Коди виходу і fail-closed](https://www.afterpack.dev/uk/docs/diagnostics#fail-closed-no-exceptions).

## Річні плани докладно

Річний план оплачується двома видами платежів: більша частина річної ціни наперед на початку терміну, а потім $1 на місяць протягом решти одинадцяти місяців. Creem не може виставити рахунок на $0 за цикл, тому цей платіж у $1 підтримує підписку активною, а заразом слугує рахунком, який **щомісяця стягує перевищення** протягом усього терміну. Загальна сума за рік дорівнює ціні, наведеній вище, просто розподілена інакше.

Скасування будь-якого плану, річного чи щомісячного, зберігає ваш тариф і включений ліміт до кінця оплаченого періоду, але одразу вимикає перевищення: оплата стягується за минулий період, тож для останнього циклу скасованої підписки вже не буде рахунку, яким можна було б стягнути перевищення. На річному плані щомісячні платежі по $1 списуються до кінця терміну; після цього нічого не стягується.

Зміна плану ніколи не є повторною підпискою, і можливих результатів лише два.

**Якщо ви на річному плані, будь-яка зміна планується на наступне річне поновлення** — вищий тариф, нижчий або повернення до щомісячної оплати. Ви купили рік, тож зберігаєте оплачений план на оплаченому тарифі до завершення року; сьогодні нічого не стягується, і до того часу у вашому поточному плані нічого не змінюється. Тому ж перехід і не миттєвий: рік, оплачений наперед, не можна скасувати посеред терміну, а застосування зміни сьогодні або змусило б вас утратити вже оплачені місяці, або стягнуло б з вас оплату за другий рік.

**Якщо ви на щомісячному плані, перехід на вищий тариф застосовується одразу** й скидає ваш ліміт до ліміту нового плану. Перехід **на інший щомісячний план** вищого рівня пропорційно перераховує різницю і стягує її сьогодні; перехід **на річний план** вищого рівня **сьогодні нічого не стягує** — ваш наступний рахунок просто стає першим річним рахунком нового плану, бо пропорційний перерахунок року, оплаченого наперед, стягнув би його двічі. **Перехід на нижчий тариф** на щомісячному плані **планується на наступне поновлення**, тож ви зберігаєте вже оплачений тариф до того часу, також без жодних платежів.

Заплановану зміну можна скасувати будь-коли до того, як вона набуде чинності.

## Як організовано оплату

- **Оплата прив'язана до [робочого простору](https://www.afterpack.dev/uk/docs/dashboard/workspaces), а не до особи.** Робочий простір має одну підписку, один пул ліміту, свої проєкти та свої [API-ключі](https://www.afterpack.dev/uk/docs/dashboard/api-keys). Ви можете належати до кількох; кожен оплачується окремо. Ролі: власник (оплата + видалення), адміністратор (учасники, ключі, проєкти), учасник (використання).
- **Жодної оплати за місця.** Кожен тариф, зокрема Free, має необмежену кількість учасників робочого простору. Тариф обмежує проєкти й MB, але ніколи не людей.
- **Creem є офіційним продавцем (merchant of record).** Він обробляє платежі, податки та ПДВ і є лише платіжною інфраструктурою. Він ніколи не торкається вашого вихідного коду. Спосіб оплати, рахунки чи скасування — у клієнтському порталі Creem, посилання на який є на [сторінці оплати в дашборді](https://www.afterpack.dev/uk/docs/dashboard/usage).
- **Сторінка оплати перелічує кожне списання.** Кожен платіж, зміна плану, покупка Extra MB та повернення коштів з'являються в таблиці активності дашборду із зазначенням плану й періоду оплати, будь-якого перевищення та періоду, в якому воно виникло, а також, для повернення коштів, платіж, якого воно стосується. Квитанція та офіційний рахунок із ПДВ — це документи порталу Creem.
- **Скасування зберігає оплачене.** Скасована підписка зберігає доступ до свого тарифу до кінця оплаченого періоду — до річної дати для передоплаченого року, — а потім повертається на Free, і ви можете відновити її будь-коли до цього моменту. Перевищення вимикається одразу, за будь-якого інтервалу: оплата стягується за минулий період, тож для останнього циклу скасованої підписки вже не буде рахунку, яким можна було б стягнути перевищення.
- **Неуспішний платіж відкриває 7-денне пільгове вікно**, протягом якого робочий простір зберігає доступ. Коли воно спливає, збірки Pro завершуються помилкою, а не переходять на результат Free. Ваші локальні збірки Free весь цей час працюють як і раніше.

## Далі

- [Дашборд](https://www.afterpack.dev/uk/docs/dashboard): лічильник, життєвий цикл ключів і як підписка поводиться день у день.
- [Enterprise](https://www.afterpack.dev/uk/docs/enterprise): варіанти з Confidential Computing та on-prem докладно.
- [Концепції](https://www.afterpack.dev/uk/docs/concepts): класи відновлення і те, що нова форма в кожній збірці приховує, а що ні.
- [Найкращі практики](https://www.afterpack.dev/uk/docs/best-practices): які рядки позначати і на якому тарифі.
- [Pro](https://www.afterpack.dev/uk/docs/pro): різниця в можливостях докладно, функція за функцією.
- [Режими розгортання](https://www.afterpack.dev/uk/docs/deployment-modes): де насправді працює рушій кожного тарифу.
- [Директиви](https://www.afterpack.dev/uk/docs/directives): маркери ділянок, які відкривають точкові тарифи.
