diff --git a/i18n/en.json b/i18n/en.json index 0114d8a..8874353 100644 --- a/i18n/en.json +++ b/i18n/en.json @@ -4,8 +4,8 @@ "pageTitle": "NaN Community", "title": "Join the community while you wait for an inference seat.", "subtitle": "Discord access, conversations with builders, and a reserved spot in line for GPU access when capacity frees up.", - "priceLabel": "$14.99 / month", - "priceTaxNote": "Taxes included · billed in euros (€14.99) in the EU", + "priceLabel": "14,99€ / month", + "priceTaxNote": "Taxes included · billed in euros from any region", "includesLabel": "What's included", "notIncludedLabel": "Not included", "notIncluded": { @@ -302,7 +302,7 @@ "Events, workshops and hackathons", "Voice in the quarterly model vote" ], - "memberCond": "Month to month, no commitment. Limited spots: when it fills up, waitlist.", + "memberCond": "Month to month, no commitment. Billed in euros from any region. Limited spots: when it fills up, waitlist.", "memberCta": "Join the waitlist", "communityIncludes": [ "Discord access", @@ -311,13 +311,15 @@ "Events, workshops and hackathons", "A reserved spot in line for inference" ], - "communityCond": "No commitment. Cancel anytime. Billed in euros (€14.99) in the EU.", + "communityCond": "No commitment. Cancel anytime. Billed in euros from any region.", "communityCta": "Join the community", "premiumIncludes": [ - "GLM 5.2 — frontier open model with reasoning", - "1,000M token monthly allowance", - "Everything in nan_member · eu", - "Access granted immediately after billing" + "GLM 5.2, frontier open model with reasoning", + "3,000M token allowance per billing period", + "400M tokens per rolling 4h window: the limit a coding agent reaches first", + "500K context · 5 concurrent requests", + "Everything in nan_member", + "Access switches on a few minutes after payment" ], "premiumCond": "GLM 5.2 premium (200€/mo) is offered to members as seats open. Join the waitlist and we will flag you for this tier.", "premiumCta": "Join the waitlist", @@ -355,7 +357,7 @@ }, { "q": "Is it really unlimited tokens?", - "a": "On the cluster models, no counter. The frontier ones come with a monthly allowance per member so the plan holds up: 500M tokens on DeepSeek V4-Flash and 1.0B on MiMo v2.5. Those limits are published here, not in fine print. The bill is the fixed subscription price and it doesn’t move." + "a": "On the cluster models, no counter. The frontier ones come with a token allowance per member so the plan holds up: 500M tokens per month on DeepSeek V4-Flash, 1.0B per month on MiMo v2.5, and 3,000M per billing period on GLM 5.2 for members on the premium tier. Those limits are published here, not in fine print. The bill is the fixed subscription price and it doesn’t move." }, { "q": "How are the models chosen?", @@ -379,7 +381,7 @@ }, { "q": "What payment methods do you accept?", - "a": "Credit or debit card. Prices include taxes (VAT in the EU, taxes in USA/Latam). No commitment: cancel anytime." + "a": "Credit or debit card. New memberships are billed in euros from any region, taxes included; subscriptions opened earlier in US dollars keep their original price. No commitment: cancel anytime." }, { "q": "How do I get in?", diff --git a/i18n/es.json b/i18n/es.json index f1ad60f..ebace28 100644 --- a/i18n/es.json +++ b/i18n/es.json @@ -4,8 +4,8 @@ "pageTitle": "Comunidad NaN", "title": "Únete a la comunidad mientras esperas tu plaza de inferencia.", "subtitle": "Acceso al Discord, charlas con builders y plaza reservada en la cola para acceso a las GPUs cuando se libere capacidad.", - "priceLabel": "$14.99 / mes", - "priceTaxNote": "Impuestos incluidos · en EU se factura en euros (14,99€)", + "priceLabel": "14,99€ / mes", + "priceTaxNote": "Impuestos incluidos · se factura en euros desde cualquier región", "includesLabel": "Qué incluye", "notIncludedLabel": "Qué NO incluye", "notIncluded": { @@ -302,7 +302,7 @@ "Eventos, workshops y hackathons", "Voto en la votación trimestral de modelos" ], - "memberCond": "Mes a mes, sin compromiso. Plazas limitadas: cuando se llena, waitlist.", + "memberCond": "Mes a mes, sin compromiso. Se factura en euros desde cualquier región. Plazas limitadas: cuando se llena, waitlist.", "memberCta": "Únete a la waitlist", "communityIncludes": [ "Acceso a Discord", @@ -311,13 +311,15 @@ "Eventos, workshops y hackathons", "Un sitio reservado en la cola de inferencia" ], - "communityCond": "Sin compromiso. Cancela cuando quieras. En EU se factura en euros (14,99€).", + "communityCond": "Sin compromiso. Cancela cuando quieras. Se factura en euros desde cualquier región.", "communityCta": "Únete a la comunidad", "premiumIncludes": [ - "GLM 5.2 — modelo abierto frontier con razonamiento", - "Asignación mensual de 1.000M de tokens", - "Todo lo incluido en nan_member · eu", - "Acceso activado justo después del cobro" + "GLM 5.2, modelo abierto frontier con razonamiento", + "Asignación de 3.000M de tokens por periodo de facturación", + "400M de tokens por ventana deslizante de 4h: el límite que un agente de código alcanza primero", + "Contexto de 500K · 5 peticiones en paralelo", + "Todo lo incluido en nan_member", + "El acceso se activa pocos minutos después del pago" ], "premiumCond": "GLM 5.2 premium (200€/mes) se ofrece a miembros según haya plazas. Únete a la waitlist y te marcaremos para este tier.", "premiumCta": "Únete a la waitlist", @@ -355,7 +357,7 @@ }, { "q": "¿De verdad son tokens ilimitados?", - "a": "En los modelos del cluster, sin contador. Los frontier llevan cuota mensual por miembro para que el plan se sostenga: 500M tokens en DeepSeek V4-Flash y 1.0B en MiMo v2.5. Esos límites están publicados aquí, no en letra pequeña. La factura es el precio fijo de la suscripción y no se mueve." + "a": "En los modelos del cluster, sin contador. Los frontier llevan cuota de tokens por miembro para que el plan se sostenga: 500M tokens al mes en DeepSeek V4-Flash, 1.0B al mes en MiMo v2.5 y 3.000M por periodo de facturación en GLM 5.2 para los miembros del tier premium. Esos límites están publicados aquí, no en letra pequeña. La factura es el precio fijo de la suscripción y no se mueve." }, { "q": "¿Cómo se eligen los modelos?", @@ -379,7 +381,7 @@ }, { "q": "¿Qué métodos de pago aceptáis?", - "a": "Tarjeta de crédito o débito. Los precios incluyen impuestos (IVA en la UE, impuestos en USA/Latam). Sin compromiso: cancela cuando quieras." + "a": "Tarjeta de crédito o débito. Las altas nuevas se facturan en euros desde cualquier región, impuestos incluidos; las suscripciones abiertas antes en dólares mantienen su precio original. Sin compromiso: cancela cuando quieras." }, { "q": "¿Cómo entro?", diff --git a/src/components/docs/ModelCard.astro b/src/components/docs/ModelCard.astro index 4fb83aa..f36a871 100644 --- a/src/components/docs/ModelCard.astro +++ b/src/components/docs/ModelCard.astro @@ -13,30 +13,15 @@ interface Props { description: string; specs: Spec[]; items: string[]; - soon?: boolean; } -const { id, name, tag, leftLabel, rightLabel, description, specs, items, soon } = Astro.props; +const { id, name, tag, leftLabel, rightLabel, description, specs, items } = Astro.props; const heading = tag ? `${name} - ${tag}` : name; --- -
{leftLabel} diff --git a/src/components/docs/RateLimits.astro b/src/components/docs/RateLimits.astro index 0695057..66d22ee 100644 --- a/src/components/docs/RateLimits.astro +++ b/src/components/docs/RateLimits.astro @@ -1,8 +1,14 @@ --- import { env } from 'cloudflare:workers'; -import { getRateLimitsConfig } from '../../lib/rateLimits'; +import { + formatTokens, + getRateLimitsConfig, + windowedModelBody, + windowedModelHeadline, +} from '../../lib/rateLimits'; -const { perKey, tokensPerMinuteByModel, requestsPerMinuteByModel } = getRateLimitsConfig(env); +const { perKey, tokensPerMinuteByModel, requestsPerMinuteByModel, windowedModels } = + getRateLimitsConfig(env); ---
+ {m.model} · premium tier limits +
++ {windowedModelHeadline(m)}{' '} + {windowedModelBody(m)} +
+tokens / min por modelo diff --git a/src/components/nan/home/Pricing.astro b/src/components/nan/home/Pricing.astro index a7cb5aa..46e142a 100644 --- a/src/components/nan/home/Pricing.astro +++ b/src/components/nan/home/Pricing.astro @@ -1,5 +1,15 @@ --- -// Datos verificados contra nan.builders: Member EU 70€ · Member USA/Latam $75 · Community $14.99. +// Prices verified against nan.builders: Member 70€ · GLM 5.2 premium 200€ · Community 14,99€. +// +// There is no per-region tier and no per-region currency any more. Every new +// signup is charged in EUR from any region, on BOTH funnels: cloud-api's +// inferencePriceForNewCustomer and communityPriceForNewCustomer each always +// return the EU price. So the `nan_member · usa / latam — $75` tier was removed +// AND community is published in euros here, for the same reason: a prospect +// from outside the EU read a $ amount and landed on a EUR Checkout, a different +// price in a different currency, at the payment step. Legacy USD subscriptions +// still exist and keep their price; that is explained in the payment-methods +// FAQ entry, not here. import { getLang, useT } from '../../../lib/i18n'; const lang = getLang(Astro.url); @@ -7,7 +17,7 @@ const tt = useT(lang).pricing; const home = lang === 'es' ? '/es' : '/'; const tiers = [ - // GLM 5.2 premium — price swap on the existing nan_member · eu + // GLM 5.2 premium — price swap on the existing nan_member // subscription (200€/mo, EUR only). Shown first as the flagship tier. { name: 'nan_member · glm 5.2 premium', @@ -22,7 +32,7 @@ const tiers = [ primary: true, }, { - name: 'nan_member · eu', + name: 'nan_member', amount: '70€', per: tt.perVat, badge: tt.inferenceIncluded, @@ -33,21 +43,9 @@ const tiers = [ href: `${home}#waitlist`, primary: true, }, - { - name: 'nan_member · usa / latam', - amount: '$75', - per: tt.perTaxes, - badge: tt.inferenceIncluded, - ref: true, - includes: tt.memberIncludes, - cond: tt.memberCond, - cta: tt.memberCta, - href: `${home}#waitlist`, - primary: true, - }, { name: 'nan_community', - amount: '$14.99', + amount: '14,99€', per: tt.perTaxes, badge: null, ref: false, diff --git a/src/content/docs/api.mdx b/src/content/docs/api.mdx index 47baa08..03dad00 100644 --- a/src/content/docs/api.mdx +++ b/src/content/docs/api.mdx @@ -49,7 +49,7 @@ curl https://api.nan.builders/v1/models \