-
v1.1.0 — Free Early Access Launch + Foundational Specs
StableDeploy GitHub Pages / deploy (push) Canceled after 0sreleased this
2026-10-11 06:27:21 +03:00 | 7 commits to main since this releaseFirst production launch of anwarpy.ai: the free early-access launch (2026-10-10) and the foundational specification layer (2026-10-11).
2026-10-10 — Free Early Access Launch (PR #3, 57 files, +4042/−402)
Launch policy & access
- Server-side
LAUNCH_MODEpolicy (web/src/lib/launch.ts):free_early_accessdefault — every published guide serves its full body, including membership-tier ones; billing routes honestly 503 in Arabic. Intended tier (access) is data, never rewritten. - Field-level content ACL in
Posts.ts; same decision consumed by pages, public JSON route, download gate, and llms-full. - Paywall CRO pre-built for the paid era: H2 preview, fine print, «قريباً» disabled CTAs.
Signup trust & CRO
- Verification email at signup (token written at creation), no confirm-password, honest 429 lockout, duplicate-email inline error, email-typo suggestion, live password hint, verify-email + change-email flow.
Content pipeline hardening
- Agent API:
x-agent-keyauth,pickFieldsstripsaccess/readingMinutes,sourceIddedup, secret scanning 422 (pattern names only), string content → 400. - New Posts fields (
contentType,authorName,sourceId) + computed honest reading minutes (160 wpm) + backfill (prod: 15/15 updated, old estimates were 3–18× inflated).
SEO / AI-SEO
- robots.txt AI policy (10 named crawlers),
/llms.txt+/llms-full.txtwith full bodies (prod 49 KB), JSON-LD (Article, BreadcrumbList, FAQPage, Organization), topic hubs/topics/*, sitemap hygiene, noindex auth pages, www→apex redirect, real table renderer.
Ops
backup-db.sh+ rehearsed restore on the VPS; deployed via rsync + compose; migration20261010_142214applied on boot; prod-verified end-to-end (ghost VIP read, honest errors, sitemap, redirects, schema) — evidence indocs/launch/2026-10-10-launch-readiness.md§11.- Launch-time bug fixes: Lexical root unwrap (secret scan inert / word counts 0), llms-full missing bodies, agent string-content silent data loss.
2026-10-11 — Foundational Specs (PR #4)
- PRD.md: vision («افهم الذكاء الاصطناعي، ثم ابنِ به.»), personas, MVP incl. moderated comments (logged-in free/VIP; anonymous rejected), roadmap phases: legal → Stripe S-01…S-08 + analytics + distribution → mailing list v2, writer DM, in-post tool-finder chatbot. Strict out-of-scope list.
- ARCHITECTURE.md: pinned stack (Next 15.4.11, Payload 3.60, Postgres 16, TS 5.9), the single access-decision rule, lib boundaries, API surface, deploy topology + Railway-move anticipation.
- DESIGN_SYSTEM.md: ink/basalt/champagne tokens, Readex Pro, RTL + LTR islands, component inventory, a11y floor.
- DATABASE.md: Payload-first schema (7 collections), relationships, indexing, backup rules.
- SECURITY.md: auth via
viewer.tsseam (Google/Clerk anticipated), RBAC, pipeline hardening, env handling, leak-rotation policy. - CODE_STYLE.md: strict TS + generated types, honest-error conventions (400/409/422/503), Gitea workflow.
- TESTING.md: Vitest tier now (libs + route regressions, incl. the Lexical root-unwrap regression); Playwright tier at Stripe launch.
- AGENTS.md: gstack digest + appended operational rulebook (allowed/ask-first/never, deploy recipe, prod DB tunnel pattern).
Owner actions outstanding
- Enable Cloudflare Email Sending (prod mail honestly 503s until then —
10203 email.sending_disabled). - L-03 legal facts for /terms + /privacy; L-11 analytics vendor; L-12 editorial distribution.
- Rotate prod
DB_PASSWORD(8 chars leaked in a session transcript 2026-10-10). - Safari/Telegram in-app QA (manual).
Paid launch remains gated on S-01…S-08 — flip via
LAUNCH_MODEpolicy only, never a DB rewrite ofaccess.Downloads
- Server-side