content-grade 1.0.47 → 1.0.50

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -98,9 +98,9 @@ function incrementUsage() {
98
98
 
99
99
  // Upgrade links — Free → Pro → Business → Team
100
100
  const UPGRADE_LINKS = {
101
- free: 'https://buy.stripe.com/4gM14p87GeCh9vn9ks8k80a', // Pro $9/mo — direct checkout
102
- pro: 'https://buy.stripe.com/bJefZjafO2Tz36Z2W48k80b', // Business $29/mo
103
- business: 'https://buy.stripe.com/cNiaEZfA8cu9bDv4088k80c', // Team $79/mo
101
+ free: 'https://buy.stripe.com/4gM14p87GeCh9vn9ks8k80a', // Pro $19/mo — direct checkout
102
+ pro: 'https://buy.stripe.com/bJefZjafO2Tz36Z2W48k80b', // Business $49/mo
103
+ business: 'https://buy.stripe.com/cNiaEZfA8cu9bDv4088k80c', // Team $199/mo
104
104
  };
105
105
 
106
106
  const TIER_NAMES = {
@@ -111,7 +111,7 @@ const TIER_NAMES = {
111
111
  };
112
112
 
113
113
  const TIER_LIMITS = {
114
- free: 3,
114
+ free: 5,
115
115
  pro: Infinity,
116
116
  business: Infinity,
117
117
  team: Infinity,
@@ -119,16 +119,16 @@ const TIER_LIMITS = {
119
119
 
120
120
  function getUpgradeMessage() {
121
121
  const tier = getLicenseTier();
122
- if (tier === 'free') return `Unlimited analyses with Pro — $9/mo → ${UPGRADE_LINKS.free}`;
123
- if (tier === 'pro') return `Upgrade to Business — priority support, $29/mo → ${UPGRADE_LINKS.pro}`;
124
- if (tier === 'business') return `Upgrade to Team — team seats, $79/mo → ${UPGRADE_LINKS.business}`;
122
+ if (tier === 'free') return `Unlimited analyses with Pro — $19/mo → ${UPGRADE_LINKS.free}`;
123
+ if (tier === 'pro') return `Upgrade to Business — priority support, $49/mo → ${UPGRADE_LINKS.pro}`;
124
+ if (tier === 'business') return `Upgrade to Team — team seats, $199/mo → ${UPGRADE_LINKS.business}`;
125
125
  return '';
126
126
  }
127
127
 
128
128
  // Show usage-aware upgrade CTA after each free run.
129
129
  // count = daily usage AFTER this run.
130
130
  function showFreeTierCTA(count) {
131
- const limit = TIER_LIMITS.free; // 3
131
+ const limit = TIER_LIMITS.free;
132
132
  const remaining = Math.max(0, limit - count);
133
133
 
134
134
  // Track that an upgrade prompt was shown after a run (post-run CTA, not a hard block)
@@ -139,16 +139,23 @@ function showFreeTierCTA(count) {
139
139
  hr();
140
140
 
141
141
  if (remaining === 0) {
142
- // Last run of the day — power user nudge
142
+ // Variant D — power user, last run of the day
143
143
  console.log(` ${YL}${B}${count}/${limit} — that's all your free runs for today.${R}`);
144
144
  blank();
145
- console.log(` ${WH} Pro: 50 analyses/day · Business: unlimited · $9/mo, cancel anytime${R}`);
146
- console.log(` ${MG}${B}→ ${UPGRADE_LINKS.free}${R}`);
145
+ console.log(` ${WH}You're clearly using this. $19/month removes the cap entirely —${R}`);
146
+ console.log(` ${WH}unlimited analyses, JSON/HTML export, bulk mode. Cancel anytime.${R}`);
147
147
  blank();
148
+ console.log(` ${CY}→ ${UPGRADE_LINKS.free}${R}`);
148
149
  console.log(` ${D}Or come back tomorrow for ${limit} more free runs.${R}`);
149
150
  } else {
150
- // Runs remaining — compact single-line footer
151
- console.log(` ${D}[ ${count}/${limit} free runs today · ${remaining} remaining · Pro: 50/day ($9/mo) → ${UPGRADE_LINKS.free} ]${R}`);
151
+ // Variant C — compact post-run teaser with command-relevant Pro feature
152
+ const proFeatureMap = {
153
+ grade: 'Bulk-grade entire directories · CI exit codes · JSON output',
154
+ headline: 'Batch-test 50 headlines at once · CSV export',
155
+ analyze: 'CI integration · exit 1 on below-threshold · JSON pipeline output',
156
+ };
157
+ const feature = proFeatureMap[cmd] || 'Unlimited runs · CI mode · bulk grading';
158
+ console.log(` ${D}[ ${count}/${limit} free runs today · ${R}${WH}Pro: ${feature}${R}${D} · ${CY}${UPGRADE_LINKS.free}${R}${D} ]${R}`);
152
159
  }
153
160
  hr();
154
161
  maybeShowFeedbackCTA(count);
@@ -226,11 +233,11 @@ function showUsageFooter(count) {
226
233
  const remaining = Math.max(0, limit - count);
227
234
  blank();
228
235
  if (remaining === 0) {
229
- console.log(` ${RD}[ ${limit}/${limit} free analyses used today · Pro: 50/day, Business: unlimited — $9/mo → ${UPGRADE_LINKS.free} ]${R}`);
236
+ console.log(` ${RD}[ You've used ${limit}/${limit} free runs today · Pro: 50/day, JSON/HTML export, bulk mode — $19/mo → ${UPGRADE_LINKS.free} ]${R}`);
230
237
  } else if (remaining <= 1) {
231
- console.log(` ${YL}[ ${remaining} free analysis remaining today · Pro: 50/day, Business: unlimited — $9/mo → ${UPGRADE_LINKS.free} ]${R}`);
238
+ console.log(` ${YL}[ You've used ${count}/${limit} free runs today · ${remaining} remaining · Pro: 50/day ($19/mo) → ${UPGRADE_LINKS.free} ]${R}`);
232
239
  } else {
233
- console.log(` ${D}[ ${count}/${limit} free analyses today · ${remaining} remaining · Pro: 50/day ($9/mo) → ${UPGRADE_LINKS.free} ]${R}`);
240
+ console.log(` ${D}[ You've used ${count}/${limit} free runs today · ${remaining} remaining · Pro: 50/day ($19/mo) → ${UPGRADE_LINKS.free} ]${R}`);
234
241
  }
235
242
  maybeShowEarlyAdopterCTA(count);
236
243
  maybeShowFeedbackCTA(count);
@@ -262,10 +269,19 @@ function checkFreeTierLimit() {
262
269
  recordEvent({ event: 'upgrade_prompt_shown', run_count: usage.daily });
263
270
 
264
271
  blank();
265
- console.log(` ${RD}${B}${limit}/${limit} free analyses used today.${R}`);
266
- console.log(` ${WH}Pro: 50/day · Business: unlimited — $9/mo, cancel anytime${R}`);
267
- console.log(` ${MG}${B}→ ${UPGRADE_LINKS.free}${R}`);
268
- console.log(` ${D}After purchase: content-grade activate <key>${R}`);
272
+ hr();
273
+ console.log(` ${RD}${B}✗ Free limit reached (${limit}/${limit} today)${R}`);
274
+ blank();
275
+ console.log(` ${WH}content-grade Pro${R}${D} — $19/mo, cancel anytime${R}`);
276
+ console.log(` ${D} ├── ${R}${WH}Unlimited analyses${R}${D} — no daily cap${R}`);
277
+ console.log(` ${D} ├── ${R}${WH}JSON + HTML output${R}${D} — pipe into your pipeline${R}`);
278
+ console.log(` ${D} ├── ${R}${WH}CI mode ${R}${D} — exit 1 on below-threshold content${R}`);
279
+ console.log(` ${D} └── ${R}${WH}Bulk grading ${R}${D} — score an entire /posts/ directory${R}`);
280
+ blank();
281
+ console.log(` ${CY}→ Get Pro ${UPGRADE_LINKS.free}${R}`);
282
+ blank();
283
+ console.log(` ${D}Already have a key? ${R}${WH}content-grade activate <your-key>${R}`);
284
+ hr();
269
285
  blank();
270
286
  return true;
271
287
  }
@@ -945,7 +961,7 @@ async function cmdInit() {
945
961
  console.log(` ${CY}content-grade start${R}`);
946
962
  blank();
947
963
  }
948
- console.log(` ${WH}Pro: unlimited analyses + batch mode + CI integration — $9/mo, cancel anytime${R}`);
964
+ console.log(` ${WH}Pro: unlimited analyses · JSON/HTML export · bulk mode · CI integration — $19/mo, cancel anytime${R}`);
949
965
  console.log(` ${MG}→ Get Pro: ${CY}${UPGRADE_LINKS.free}${R}`);
950
966
  console.log(` ${D}After checkout: content-grade activate <your-key>${R}`);
951
967
  blank();
@@ -970,14 +986,14 @@ async function cmdActivate() {
970
986
  blank();
971
987
  console.log(` ${B}Pro features:${R}`);
972
988
  console.log(` ${D} content-grade batch ./posts/ ${R}${D}# analyze all files in a directory${R}`);
973
- console.log(` ${D} Unlimited analyses (vs 15 free total)${R}`);
989
+ console.log(` ${D} Unlimited analyses (vs 3/day free)${R}`);
974
990
  blank();
975
991
  console.log(` ${D}To activate a different key: ${CY}content-grade activate <new-key>${R}`);
976
992
  blank();
977
993
  return;
978
994
  }
979
995
 
980
- console.log(` ${D}Pro unlocks unlimited analyses + batch mode for $9/mo:${R}`);
996
+ console.log(` ${D}Pro unlocks unlimited analyses, JSON/HTML export, and bulk mode for $19/mo:${R}`);
981
997
  blank();
982
998
  console.log(` ${MG}${B}→ Get Pro: ${CY}${UPGRADE_LINKS.free}${R}`);
983
999
  blank();
@@ -1115,9 +1131,9 @@ async function cmdBatch(dirPath) {
1115
1131
  blank();
1116
1132
  console.log(` ${D}Grade every file in a directory in one shot. Pro only.${R}`);
1117
1133
  blank();
1118
- console.log(` ${WH}${B}Pro ($9/mo): unlimited analyses + batch mode + CI integration${R}`);
1134
+ console.log(` ${WH}${B}Pro ($19/mo): unlimited analyses · JSON/HTML export · bulk mode · CI integration${R}`);
1119
1135
  blank();
1120
- console.log(` ${MG}${B}→ Get Pro ($9/mo, cancel anytime): ${CY}${UPGRADE_LINKS.free}${R}`);
1136
+ console.log(` ${MG}${B}→ Get Pro ($19/mo, cancel anytime): ${CY}${UPGRADE_LINKS.free}${R}`);
1121
1137
  blank();
1122
1138
  console.log(` ${D}After checkout — 2 steps to unlock:${R}`);
1123
1139
  console.log(` ${D} 1. Get your key: ${CY}https://content-grade.onrender.com/my-license${R}`);
@@ -1330,7 +1346,7 @@ function cmdStart() {
1330
1346
  info(` EmailForge — ${url}/email-forge`);
1331
1347
  info(` AudienceDecoder — ${url}/audience`);
1332
1348
  blank();
1333
- info(`Free tier: 15 analyses total. Unlimited with Pro ($9/mo) → ${UPGRADE_LINKS.free}`);
1349
+ info(`Free tier: 5 runs/day. Pro: 50/day ($19/mo) → ${UPGRADE_LINKS.free}`);
1334
1350
  info(`Press Ctrl+C to stop`);
1335
1351
  blank();
1336
1352
  openBrowser(url);
@@ -1604,8 +1620,8 @@ function cmdHelp() {
1604
1620
 
1605
1621
  console.log(` ${B}PRICING${R}`);
1606
1622
  blank();
1607
- console.log(` Free 15 analyses total $0`);
1608
- console.log(` Pro Unlimited analyses $9/mo (cancel anytime)`);
1623
+ console.log(` Free 5 runs/day $0`);
1624
+ console.log(` Pro Unlimited analyses $19/mo (cancel anytime)`);
1609
1625
  console.log(` Business Unlimited analyses $29/mo`);
1610
1626
  console.log(` Team Unlimited analyses $79/mo`);
1611
1627
  blank();
package/dist/landing.html CHANGED
@@ -36,7 +36,7 @@
36
36
  "@type": "Offer",
37
37
  "price": "0",
38
38
  "priceCurrency": "USD",
39
- "description": "Free: 15 analyses total. Pro: $9/mo, unlimited. Business: $29/mo, unlimited. Team: $79/mo, unlimited + shared workspace."
39
+ "description": "Free: 3 analyses per day, reset daily. Pro: $19/mo, unlimited. Business: $49/mo, unlimited. Team: $199/mo, unlimited + shared workspace."
40
40
  },
41
41
  "featureList": [
42
42
  "Headline analyzer with framework-based scoring",
@@ -1017,7 +1017,7 @@
1017
1017
  </div>
1018
1018
 
1019
1019
  <div class="hero-meta">
1020
- <span>Free · 15 analyses to start</span>
1020
+ <span>Free · 3 analyses/day</span>
1021
1021
  <span class="hero-meta-sep">·</span>
1022
1022
  <span>Claude CLI required · Zero data leaves your machine</span>
1023
1023
  <span class="hero-meta-sep">·</span>
@@ -1196,7 +1196,7 @@
1196
1196
  <div class="step">
1197
1197
  <div class="step-num">3</div>
1198
1198
  <h3>Launch the full dashboard</h3>
1199
- <p>Start the web interface to access all 6 tools — HeadlineGrader, PageRoast, AdScorer, ThreadGrader, EmailForge, and AudienceDecoder. Free tier: 15 analyses total across all tools.</p>
1199
+ <p>Start the web interface to access all 6 tools — HeadlineGrader, PageRoast, AdScorer, ThreadGrader, EmailForge, and AudienceDecoder. Free tier: 3 analyses per day, reset daily.</p>
1200
1200
  <div class="step-code">npx content-grade start</div>
1201
1201
  </div>
1202
1202
  </div>
@@ -1208,8 +1208,9 @@
1208
1208
  <div class="container">
1209
1209
  <div class="pricing-header">
1210
1210
  <div class="section-eyebrow">Pricing</div>
1211
- <h2>Start free. Upgrade when it pays for itself.</h2>
1212
- <p class="pricing-lead">15 free analyses to start. No credit card, no signup, no API key required.</p>
1211
+ <h2>Stop guessing if your content is good.</h2>
1212
+ <p class="pricing-subhead" style="font-size:20px; font-weight:600; color:var(--fg); margin-bottom:8px;">Pick a plan. Grade everything.</p>
1213
+ <p class="pricing-lead">3 analyses per day — free. No credit card, no signup, no API key required.</p>
1213
1214
  </div>
1214
1215
 
1215
1216
  <div class="pricing-grid">
@@ -1219,58 +1220,65 @@
1219
1220
  <div class="plan-period">forever · no signup required</div>
1220
1221
  <a href="https://www.npmjs.com/package/content-grade" class="plan-cta">Install free →</a>
1221
1222
  <ul class="plan-features">
1222
- <li><span class="check">✓</span> <strong>15 analyses total</strong></li>
1223
- <li><span class="check">✓</span> All 6 tools (CLI + dashboard)</li>
1224
- <li><span class="check">✓</span> Full framework-based scoring</li>
1225
- <li><span class="check">✓</span> AI rewrites with technique labels</li>
1226
- <li><span class="check">✓</span> Per-dimension score breakdown</li>
1227
- <li><span class="check">✓</span> HeadlineGrader SERP preview</li>
1223
+ <li><span class="check">✓</span> <strong>3 analyses per day</strong> — enough to build the habit before you commit</li>
1224
+ <li><span class="check">✓</span> Access all 6 tools: HeadlineGrader, PageRoast, AdScorer, ThreadGrader, EmailForge, AudienceDecoder</li>
1225
+ <li><span class="check">✓</span> Core scores: Readability, Clarity, SEO Signal, Engagement potential</li>
1226
+ <li><span class="check">✓</span> No credit card. No signup. No API key.</li>
1228
1227
  </ul>
1229
1228
  </div>
1230
1229
 
1231
1230
  <div class="plan featured">
1232
1231
  <div class="plan-badge">Most popular</div>
1233
1232
  <div class="plan-name">PRO</div>
1234
- <div class="plan-price">$9<span>/mo</span></div>
1235
- <div class="plan-period">Unlimited analyses/day · billed monthly</div>
1236
- <a href="https://buy.stripe.com/4gM14p87GeCh9vn9ks8k80a" class="plan-cta" target="_blank" rel="noopener">Get Pro →</a>
1233
+ <div class="plan-price">$19<span>/mo</span></div>
1234
+ <div class="plan-period">Unlimited analyses · billed monthly</div>
1235
+ <a href="https://buy.stripe.com/4gM14p87GeCh9vn9ks8k80a" class="plan-cta" target="_blank" rel="noopener">Upgrade to Pro →</a>
1236
+ <div style="font-size:13px; color:var(--muted); margin-bottom:12px;">Used by content teams grading 50+ pieces per week.</div>
1237
1237
  <ul class="plan-features">
1238
- <li><span class="check">✓</span> <strong>Unlimited analyses/day</strong> — no daily cap</li>
1239
- <li><span class="check">✓</span> All 6 tools (CLI + dashboard)</li>
1238
+ <li><span class="check">✓</span> <strong>Unlimited analyses</strong> — no daily cap, no throttle, no surprises</li>
1239
+ <li><span class="check">✓</span> Export results as JSON or HTML — pipe scores into dashboards, Notion, or CI pipelines</li>
1240
+ <li><span class="check">✓</span> <code>--bulk</code> mode: grade entire folders in one command</li>
1240
1241
  <li><span class="check">✓</span> License key for CLI activation</li>
1241
- <li><span class="check">✓</span> Batch mode — analyze whole directories</li>
1242
1242
  <li><span class="check">✓</span> Priority email support</li>
1243
- <li><span class="check">✓</span> $0.45/analysis — less than a coffee per day</li>
1244
1243
  </ul>
1245
1244
  </div>
1246
1245
 
1247
1246
  <div class="plan">
1248
1247
  <div class="plan-name">BUSINESS</div>
1249
- <div class="plan-price">$29<span>/mo</span></div>
1248
+ <div class="plan-price">$49<span>/mo</span></div>
1250
1249
  <div class="plan-period">Unlimited analyses · billed monthly</div>
1251
1250
  <a href="https://buy.stripe.com/bJefZjafO2Tz36Z2W48k80b" class="plan-cta" target="_blank" rel="noopener">Get Business →</a>
1252
1251
  <ul class="plan-features">
1253
- <li><span class="check">✓</span> <strong>Unlimited analyses</strong></li>
1254
- <li><span class="check">✓</span> Everything in Pro</li>
1255
- <li><span class="check">✓</span> A/B compare with conversion predictions</li>
1256
- <li><span class="check">✓</span> Best value per analysis ($0.29/analysis)</li>
1252
+ <li><span class="check">✓</span> <strong>Unlimited analyses</strong> — everything in Pro</li>
1253
+ <li><span class="check">✓</span> CI mode with exit codes — fail builds when content quality drops</li>
1254
+ <li><span class="check">✓</span> <code>--compare</code> flag: score a rewrite against the original</li>
1255
+ <li><span class="check">✓</span> REST API access for CMS and analytics integrations</li>
1257
1256
  </ul>
1258
1257
  </div>
1259
1258
 
1260
1259
  <div class="plan">
1261
1260
  <div class="plan-name">TEAM</div>
1262
- <div class="plan-price">$79<span>/mo</span></div>
1261
+ <div class="plan-price">$199<span>/mo</span></div>
1263
1262
  <div class="plan-period">Unlimited analyses · billed monthly</div>
1264
1263
  <a href="https://buy.stripe.com/cNiaEZfA8cu9bDv4088k80c" class="plan-cta" target="_blank" rel="noopener">Get Team →</a>
1265
1264
  <ul class="plan-features">
1266
- <li><span class="check">✓</span> <strong>Unlimited analyses</strong></li>
1267
- <li><span class="check">✓</span> Everything in Business</li>
1268
- <li><span class="check">✓</span> Shared team workspace</li>
1269
- <li><span class="check">✓</span> Dedicated support + SLA</li>
1265
+ <li><span class="check">✓</span> <strong>Unlimited analyses</strong> — everything in Business</li>
1266
+ <li><span class="check">✓</span> Shared across up to 10 seats under a single license key</li>
1267
+ <li><span class="check">✓</span> Priority support — 24-hour response SLA</li>
1268
+ <li><span class="check">✓</span> Early access to new tools before public release</li>
1270
1269
  </ul>
1271
1270
  </div>
1272
1271
  </div>
1273
1272
 
1273
+ <!-- TESTIMONIAL SLOT — replace with real quote before publishing, or remove entirely -->
1274
+ <!-- DO NOT PUBLISH PLACEHOLDER TEXT TO PRODUCTION -->
1275
+ <!--
1276
+ <blockquote class="testimonial" style="margin:32px auto; max-width:560px; padding:20px 24px; background:rgba(124,77,255,0.08); border-left:3px solid #7c4dff; border-radius:0 10px 10px 0; text-align:left;">
1277
+ <p style="color:rgba(255,255,255,0.9); font-size:16px; line-height:1.6; margin:0 0 12px;">"[TESTIMONIAL_QUOTE — 1–3 sentences, result-focused.]"</p>
1278
+ <footer style="color:rgba(255,255,255,0.5); font-size:13px;">— [FIRST NAME LAST NAME], [ROLE] at [COMPANY]</footer>
1279
+ </blockquote>
1280
+ -->
1281
+
1274
1282
  <div style="margin-top:32px; padding:20px 24px; background:rgba(255,255,255,0.04); border:1px solid rgba(255,255,255,0.1); border-radius:10px; max-width:560px; margin-left:auto; margin-right:auto; text-align:left;">
1275
1283
  <div style="font-size:13px; color:rgba(255,255,255,0.5); text-transform:uppercase; letter-spacing:1px; margin-bottom:10px;">After checkout — 2 steps to unlock Pro</div>
1276
1284
  <ol style="padding-left:20px; color:rgba(255,255,255,0.8); font-size:15px; line-height:1.9; margin:0;">
@@ -1302,7 +1310,7 @@
1302
1310
  <details>
1303
1311
  <summary>Do I need an Anthropic API key or a paid Claude account?</summary>
1304
1312
  <div class="faq-answer">
1305
- No API key required. ContentGrade runs on <strong>Claude CLI</strong> — install it for free from claude.ai/code and log in with a Claude account. A free Claude account is sufficient for the free tier (15 analyses total across all tools).<br /><br />
1313
+ No API key required. ContentGrade runs on <strong>Claude CLI</strong> — install it for free from claude.ai/code and log in with a Claude account. A free Claude account is sufficient for the free tier (3 analyses per day, reset daily).<br /><br />
1306
1314
  There's no per-query Anthropic billing. You're not routing calls through the API console or accumulating usage charges. Claude CLI handles authentication locally, which is also why your content never leaves your machine.
1307
1315
  </div>
1308
1316
  </details>
@@ -1334,7 +1342,21 @@
1334
1342
  <summary>Can I use ContentGrade for client work at an agency?</summary>
1335
1343
  <div class="faq-answer">
1336
1344
  Yes, and this is a primary use case. Because ContentGrade runs locally via Claude CLI, client copy never leaves your machine. There's no SaaS terms of service to worry about, no vendor data retention, and no risk of your client's unreleased campaign copy appearing in someone else's training data.<br /><br />
1337
- Pro tier includes higher daily limits, and Team tier includes shared workspace features — share analyses and scoring history across your team without routing content through any third-party service.
1345
+ Pro tier includes unlimited analyses, and Team tier includes shared workspace features — share analyses and scoring history across your team without routing content through any third-party service.
1346
+ </div>
1347
+ </details>
1348
+
1349
+ <details>
1350
+ <summary>Can I cancel anytime?</summary>
1351
+ <div class="faq-answer">
1352
+ Yes. Cancel from your account dashboard — takes 10 seconds. No retention flow, no questions, no email chains. Your subscription stops at the end of the billing period.
1353
+ </div>
1354
+ </details>
1355
+
1356
+ <details>
1357
+ <summary>What counts as an analysis?</summary>
1358
+ <div class="faq-answer">
1359
+ One run of any tool on any single piece of content. Grading a headline = 1 analysis. Roasting a landing page = 1 analysis. Running <code>--bulk</code> on a folder of 20 posts = 20 analyses. The Free tier gives you 3 per day — Pro and above are unlimited.
1338
1360
  </div>
1339
1361
  </details>
1340
1362
 
@@ -1408,7 +1430,7 @@
1408
1430
  <section class="final-cta">
1409
1431
  <div class="container">
1410
1432
  <h2>Run your best headline.<br />See where it actually stands.</h2>
1411
- <p>Free · 15 analyses to start · No API key · Claude CLI only</p>
1433
+ <p>Free · 3 analyses/day · No API key · Claude CLI only</p>
1412
1434
  <div style="display: flex; gap: 16px; justify-content: center; flex-wrap: wrap;">
1413
1435
  <a href="https://github.com/Content-Grade/Content-Grade" class="btn-primary">
1414
1436
  Install free — npx content-grade
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "content-grade",
3
- "version": "1.0.47",
3
+ "version": "1.0.50",
4
4
  "description": "AI-powered content analysis CLI. Score any blog post, landing page, or ad copy in under 30 seconds — runs on Claude CLI, no API key needed.",
5
5
  "type": "module",
6
6
  "bin": {