Free पूरी pipeline चलाता है। complexity असीमित है और हर preset उपलब्ध है। आप जिसके लिए भुगतान करते हैं वह है सुरक्षा को सटीकता से लागू करना, हर region और हर फ़ाइल के हिसाब से, साथ ही ऐसे environments जहाँ source कभी बाहर नहीं जा सकता, और volume: Pro builds AfterPack के cloud में चलती हैं और megabyte के हिसाब से meter होती हैं।
आपके code को obfuscate करने के लिए Free काफ़ी है। असली सवाल ये हैं कि क्या आपको कुछ खास regions को ज़्यादा कड़े treatment के लिए mark करना है, क्या आपको वहाँ चलाना है जहाँ कोई third party आपके source को छू न सके, या क्या आप cloud engine से Free की allowance से ज़्यादा JavaScript निकालना चाहते हैं।
Capability तालिका
| Capability | Free $0 Forever | Indie $49 Per month | Team $159 Per month | Studio $299 Per month | Enterprise Custom Contact us |
|---|---|---|---|---|---|
Renaming, encoding, control-flow, constants, inflation. The two Pro hardening transforms are a separate row. | |||||
Unlimited complexity complexity is unbounded on every tier. | |||||
Plugin nudge after a CLI run The CLI reads package.json and points you at the matching plugin for Next.js, Vite, webpack, Rollup or esbuild. It never edits your config, and the build path is always a required argument. | |||||
npx afterpack@latest audit <url> — find exposed secrets and weak protection on a live URL. | |||||
/* @afterpack skip */ on a region. In a Free build a directive is an error; use paths.exclude or identifiers.reserved instead. | Pro | Pro | Pro | Pro | |
identifiers.reserved: keep specific names, for the whole build or per glob. | |||||
Generate locally; keep them out of production. | |||||
Different settings per glob — surgical protection. | Pro | Pro | Pro | Pro | |
preset=hard or preset=extreme on a region. | Pro | Pro | Pro | Pro | |
transforms.selfIntegrity and transforms.comparisonHardening. Global settings, off by default; a Free build ignores both. | Pro | Pro | Pro | Pro | |
Cross-module obfuscation (planned) Imports/exports renamed; smaller bundles. | Pro | Pro | Pro | Pro | |
Pro destructive transforms (planned) Boundary-destroying fusion on marked regions. | Pro | Pro | Pro | Pro | |
Managed source maps (planned) Encrypted off-site storage; symbolicate production stack traces. | Pro | Pro | Pro | Pro | |
Confidential Computing deployment (on request) Attested enclave in your own cloud account. Scoped during onboarding, not self-serve. | Enterprise | ||||
A direct chat channel with the engineering team. | Studio+ | Studio+ | |||
On-prem / double-blind install (on request) Sealed signed binary in your perimeter. Scoped during onboarding, not self-serve. | Enterprise |
Free संरचनात्मक रूप से मज़बूत है
Free आपके सेट किए किसी भी preset पर संरचनात्मक transforms का पूरा catalog चलाता है, दो Pro hardening transforms (selfIntegrity और comparisonHardening) को छोड़कर। यह पहले से ही आपके पूरे bundle में polynomial-injective reversal class को भर देता है, और engine आपके code के साथ क्या करता है, यह tiers के बीच नहीं बदलता।
| Pro क्या जोड़ता है | यह क्या करता है |
|---|---|
| सटीक constant destruction | /* @afterpack preset=extreme */ किसी region को complexity target 25 तक उठाता है और string floor को ज़बरदस्ती चालू करता है, ताकि उसके literals cleartext में ship होने के बजाय encode हों। |
| Self-integrity check | transforms.selfIntegrity.enabled एक check जोड़ता है जो केवल उसकी अपनी check table में बदलाव पकड़ता है, आपके code में कहीं और किए गए बदलाव नहीं। Global, default रूप से बंद, और इसे medium या उससे ऊपर का code चाहिए। |
| सटीक targeting | Per-region directives और per-file नियम जो सुरक्षा ठीक वहीं बढ़ाते हैं जहाँ उसकी अहमियत है। |
Cross-module entanglement, boundary-destroying fusion और managed source maps उपलब्ध नहीं हैं। देखें Pro।
कीमतें
| Tier | मासिक | वार्षिक | Pro builds / माह | Projects | ओवरेज |
|---|---|---|---|---|---|
| Free | $0 हमेशा के लिए | n/a | 10 MB | 2 | n/a |
| Extra MB | $5 एक बार | n/a | +20 MB, कभी expire नहीं होते | n/a | n/a |
| 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 | Custom | Custom | Custom | Custom | Custom |
वार्षिक plan 12 महीनों के लिए 10 महीनों की कीमत है, यानी दो महीने मुफ़्त। Indie और Team के मासिक plan पर 14 दिन का मुफ़्त ट्रायल मिलता है, हर वर्कस्पेस के लिए एक बार — वार्षिक plan का भुगतान पहले ही अग्रिम हो जाता है, इसलिए उसके साथ कभी ट्रायल नहीं आता, और Studio पर किसी भी सूरत में ट्रायल नहीं है।
Pro खरीदने का एक से ज़्यादा तरीका है। Extra MB, 20 MB की $5 की एक बार की खरीद है जो कोई भी वर्कस्पेस कर सकता है, Free वाले भी। यह कभी expire नहीं होता, कभी auto-renew नहीं होता, और इसे खरीदने से कोई subscription शुरू नहीं होता। हर कुछ हफ़्तों में release ship करने वाला project अनिश्चित काल तक top-ups पर चल सकता है। ज़्यादा volume पर, plan प्रति MB सस्ता पड़ता है।
Free expire नहीं होता। Local engine unmetered और असीमित है: npx afterpack@latest को जितने चाहें उतने code पर, हमेशा, बिना account के चलाएँ। 10 MB वह cloud Pro allowance है जो एक registered account को मिलता है, ताकि आप असली code पर सटीक features आज़मा सकें।
यहाँ एक megabyte का मतलब क्या है
Meter उस JavaScript के MB को गिनता है जिसे cloud engine process करता है, फ़ाइलों को नहीं, builds को नहीं, requests को नहीं।
- 1 MB = 10⁶ bytes (decimal), ठीक-ठीक bytes में गिना जाता है और 0.1 MB तक दिखाया जाता है।
- एक build एक बार meter होती है, उस input के आधार पर जिसे वह वास्तव में process करती है।
- खर्च का क्रम है plan allowance, फिर Extra MB, फिर ओवरेज। एक build तीनों में फैल सकती है।
- Free allowance 30 दिनों की rolling window पर फिर से भरता है। Subscription का allowance इसके बजाय उसके billing cycle पर फिर से भरता है।
- Extra MB कभी expire नहीं होता और auto-renew नहीं होता। यह plan allowance के पीछे रहता है और allowance ख़ाली होने के बाद ही खर्च होता है।
अंदाज़े के लिए, एक सामान्य production SPA bundle कुछ सौ KB से लेकर एक-दो MB तक का होता है, इसलिए Indie के 500 MB में महीने की मोटे तौर पर कुछ सौ cloud builds आ जाती हैं।
ओवरेज, और वह cap जो आपको बचाता है
Paid plan पर ओवरेज डिफ़ॉल्ट रूप से चालू है, ताकि sprint के बीच allowance ख़त्म होने पर आपका CI न टूटे। यह ऊपर की तालिका की दर से प्रति MB जमा होता है और आपके अगले invoice में जुड़ जाता है। Rounding हमेशा आपके पक्ष में होती है।
तीन चीज़ें इसे सीमित करती हैं:
- आपका spend cap। वर्कस्पेस का स्वामी इसे billing page पर सेट कर सकता है।
0ओवरेज को पूरी तरह बंद कर देता है (तब pools ख़ाली होने पर builds fail closed होती हैं); unset का मतलब है कोई user cap नहीं। - एक house cap। एक नए वर्कस्पेस पर मासिक base के 2× की सीमा रहती है (Indie $98, Team $318, Studio $598), जब तक दो invoices का भुगतान न हो जाए।
- प्रभावी cap दोनों में से कम वाला है। Dashboard वह cap दिखाता है जो वास्तव में लागू है।
ओवरेज ट्रायल के दौरान, past-due subscription पर, या Free plan पर कभी जमा नहीं होता। इन पर, prepaid pools से आगे निकलने वाली build आपसे पैसे लेने के बजाय fail closed होती है।
Quota से ज़्यादा वाला batch किसी भी फ़ाइल के dispatch होने से पहले reject हो जाता है, इसलिए कोई build कभी आंशिक रूप से process या आंशिक रूप से bill नहीं होती। देखें Exit codes & fail-closed।
वार्षिक plans, विस्तार से
वार्षिक plan दो charges में bill होता है: term शुरू होने पर साल की कीमत का ज़्यादातर हिस्सा अग्रिम, फिर बाकी ग्यारह महीनों के लिए $1 प्रति माह। Creem $0 का cycle bill नहीं कर सकता, इसलिए वह $1 charge subscription को जीवित रखता है, और साथ ही पूरे term के लिए ओवरेज को मासिक रूप से वसूलने वाला invoice भी बनता है। साल भर का कुल वही है जो ऊपर दिखाया गया है, बस अलग तरह से बँटा हुआ।
कोई भी plan cancel करने पर, वार्षिक हो या मासिक, आपका tier और शामिल allowance paid-through date तक बना रहता है, लेकिन ओवरेज तुरंत बंद हो जाता है: billing पीछे चलती है, इसलिए cancel हुए subscription के आख़िरी cycle को ओवरेज वसूलने के लिए कोई और invoice नहीं मिलता। वार्षिक plan पर, $1 के मासिक charges term ख़त्म होने तक bill होते रहते हैं; उसके बाद कुछ charge नहीं होता।
Plan बदलना कभी re-subscribe नहीं होता, और इसके केवल दो नतीजे हैं।
अगर आप वार्षिक plan पर हैं, तो कोई भी बदलाव आपके अगले वार्षिक renewal के लिए schedule होता है — ऊँचा tier, निचला tier, या वापस मासिक billing पर जाना। आपने एक साल ख़रीदा है, इसलिए साल पूरा होने तक आप वही plan रखते हैं जिसके लिए भुगतान किया, उसी tier पर जिसके लिए भुगतान किया; आज कुछ charge नहीं होता, और तब तक आपके मौजूदा plan में कुछ नहीं बदलता। इसीलिए यह बदलाव तुरंत नहीं होता: अग्रिम भुगतान किया गया साल term के बीच में वापस नहीं लिया जा सकता, और बदलाव आज लागू करने पर या तो आपके पहले से भुगतान किए महीने बेकार जाते या आपसे दूसरा साल charge होता।
अगर आप मासिक plan पर हैं, तो ऊपर जाना तुरंत लागू होता है और आपका allowance नए plan वाले पर reset हो जाता है। किसी दूसरे मासिक plan पर ऊपर जाने पर अंतर prorate होकर आज charge होता है; वार्षिक plan पर ऊपर जाने पर आज कुछ charge नहीं होता — आपका अगला invoice बस नए plan का पहला वार्षिक invoice होता है, क्योंकि अग्रिम भुगतान किए साल को prorate करने से वह दो बार वसूला जाता। मासिक plan पर नीचे जाना आपके अगले renewal के लिए schedule होता है, ताकि तब तक आप वही tier रखें जिसके लिए पहले ही भुगतान कर चुके हैं, इसमें भी कोई charge नहीं।
Schedule किए गए बदलाव को आप उसके लागू होने से पहले कभी भी cancel कर सकते हैं।
Billing कैसे व्यवस्थित है
- Billing किसी व्यक्ति से नहीं, एक वर्कस्पेस से जुड़ती है। एक वर्कस्पेस के पास एक subscription, एक allowance pool, उसके projects, और उसकी API keys होती हैं। आप कई वर्कस्पेस के सदस्य हो सकते हैं; हर एक अलग bill होता है। Roles हैं स्वामी (billing + delete), एडमिन (सदस्य, keys, projects), सदस्य (उपयोग)।
- Per-seat pricing नहीं। हर tier में, Free समेत, वर्कस्पेस के सदस्य असीमित हैं। Tier जो सीमित करता है वह projects और MB हैं, लोग कभी नहीं।
- Creem merchant of record है। यह payment, tax और VAT संभालता है, और केवल billing infrastructure है। यह कभी आपके source code को नहीं छूता। Payment method, invoices, या cancel करना Creem customer portal से manage करें, जिसका link dashboard के billing page पर है।
- बिलिंग पेज हर चार्ज को सूचीबद्ध करता है। हर भुगतान, plan change, Extra MB खरीद, और refund डैशबोर्ड की activity table में दिखता है, जिसमें प्लान और बिलिंग अवधि, कोई भी ओवरेज और वह अवधि जिसमें वह हुआ, और, refund की स्थिति में, वह भुगतान जिससे वह संबंधित है — सब नामित होते हैं। रसीद और आधिकारिक VAT invoice दोनों Creem portal के document हैं।
- Cancel करने पर आपने जिसके लिए भुगतान किया वह बना रहता है। Cancel हुआ subscription paid-through date तक — prepaid साल पर वार्षिक date तक — अपने tier का हकदार रहता है, फिर Free पर लौट आता है, और आप उससे पहले कभी भी उसे resume कर सकते हैं। ओवरेज तुरंत बंद हो जाता है, किसी भी interval पर: यह व्यवस्था पीछे से bill करती है, इसलिए cancel हुए subscription के आख़िरी cycle को ओवरेज वसूलने के लिए कोई और invoice नहीं मिलता।
- Payment विफल होने पर 7 दिन की grace window मिलती है, जिसमें वर्कस्पेस के अधिकार बने रहते हैं। उसके ख़त्म होने के बाद, Pro builds Free output पर downgrade होने के बजाय fail closed होती हैं। आपकी local Free builds पूरे समय अप्रभावित रहती हैं।
आगे
- Dashboard: meter, key lifecycle, और subscription रोज़मर्रा में कैसे व्यवहार करता है।
- Enterprise: Confidential Computing और on-prem रूप, विस्तार से।
- Concepts: reversal classes, और हर build में नई बनावट क्या छिपाती है और क्या नहीं।
- Best practices: कौन-सी लाइनें mark करें, किस tier पर।
- Pro: capability का अंतर विस्तार से, feature दर feature।
- Deployment modes: हर tier का engine वास्तव में कहाँ चलता है।
- Directives: वे region markers जिन्हें सटीक tiers खोलते हैं।