A One-time purchase plan for SM-Post Social Media Scheduler.
The whole monorepo as one deliverable — web, api, worker and E2E are a single system, so there are no split SKUs. Includes: (1) the web client (Next.js 15 App Router + React 19 + Tailwind) — dashboard, post composer with threads, per-provider content overrides, debounced autosave with optimistic-concurrency conflict detection and live provider rule warnings, a month-grid content calendar, an operator publishing inbox, approvals, media library, channels, projects, members, notifications and billing settings; (2) the Fastify 5 API — workspace-scoped routes across 19 modules, keyset pagination, a 12-code error envelope, Zod validation, Redis-backed rate limiting and better-auth passwordless magic-link sessions with optional Google OIDC; (3) the BullMQ worker — schedule, publish, maintenance and webhook queues, per-provider concurrency limits, an atomic conditional-UPDATE publish lock, app-owned retry policy with exponential backoff, and six repeatable maintenance jobs (missed-schedule sweeper, webhook delivery sweeper, token-refresh scan, stale-media cleanup, OAuth-state cleanup, metrics collection); (4) packages/social-core — the provider contract, error taxonomy and rules-as-code, with nine real providers (Bluesky, Mastodon, Telegram always-on; LinkedIn, Facebook, Instagram, X, Pinterest, TikTok activated by your own platform-app credentials) plus a MockProvider that drives success, failure, retry, token-refresh and ambiguous-outcome paths; (5) packages/crypto — the AES-256-GCM append-only token vault (insert-on-refresh with rotated_from lineage, never update; tokens never touch the channel row; PKCE verifiers encrypted at rest); (6) commerce and ops — Stripe Checkout + Billing Portal + signed raw-body webhook over FREE/PRO/TEAM tiers with four entitlement guards, a self-host mode when Stripe is absent, presigned S3/MinIO media uploads with sharp content-sniffing, a durable Postgres webhook outbox with HMAC-signed at-least-once delivery, liveness + readiness probes, pino structured logging with redaction and request IDs, opt-in Sentry, and a production guard that refuses to boot on dev secrets. Prisma 6 schema of 33 models with 14 hand-authored migrations applied via migrate deploy and a CI drift gate. Tests: 65 unit files (Vitest), 19 integration suites against real Postgres, Redis, MinIO and Mailpit, and 5 Playwright journeys. CI runs import-boundary checks, lint, typecheck, migrations, the full test suite, build, the drift gate and the E2E job.