Changelog
A record of notable changes to the Nexa Ed platform, REST API, and SDK packages.
All notable changes to Nexa Ed are documented here. The format follows Keep a Changelog.
SDK package versions follow Semantic Versioning. Platform API changes are listed by date.
SDK — v0.3.0-beta.0 (2026-04-18)
See the release notes for full detail.
create-nexaed-app → 0.3.0-beta.0
- Fix: WorkOS
middleware.tsnow includesredirectUri: process.env.WORKOS_REDIRECT_URI— previously omitted, causing broken auth callbacks in every WorkOS-scaffolded app - New: Git repository initialisation — opt-in prompt during scaffolding; also available as
--git/--no-gitflags for CI mode. Runsgit init+ initial commit automatically when enabled - New: Nexium Labs attribution in the generated landing page footer — subtle copyright line and "a product by Nexium Labs" link alongside the Nexa Ed credit
Platform — 2025-04-01
Added
- Billing system — monthly usage-based billing via Paystack reusable authorisations. Charges run automatically at 02:00 UTC each day for subscriptions due.
- Transactional email — billing receipts, card-saved confirmations, tier-switch notifications, and welcome emails are now sent via Resend.
- Rate limiting — sliding-window rate limits applied to all API endpoints (file processing, payments, RPC routes). Limits are communicated via standard
X-RateLimit-*headers.
Changed
POST /api/file-processing/extractnow returns HTTP202 Acceptedimmediately and processes documents asynchronously. PollGET /api/file-processing/status/:jobIdfor completion.
SDK — v0.2.0-beta.4 (2026-04-08)
See the release notes for full detail.
All packages (@nexa-ed/sdk, @nexa-ed/next, @nexa-ed/react, @nexa-ed/convex, @nexa-ed/node)
- Fix:
exports/main/modulenow reference./dist/*.js/./dist/*.cjs— packages were unresolvable when installed from npm due tosrc/paths and incorrect.mjsreferences inpublishConfig - Fix:
typescondition moved to first position in all exports entries — previously listed afterimport/require, which broke TypeScript declaration resolution for downstream packages
create-nexaed-app → 0.2.0-beta.5
- New: Command router —
init,doctor,upgrade,telemetry,helpsubcommands - New: Non-interactive / CI mode — all prompts bypassable via flags; auto-activates when stdin is not a TTY
- New:
doctorcommand — validates env vars, packages, catch-all route, SDK version, and API key - New:
upgradecommand — updates all@nexa-ed/*deps to@latestusing the detected package manager - New: Opt-in telemetry — anonymous usage collection, toggle with
telemetry on|off - New: Update notifier — background check for newer CLI version on each run
Publish workflow
- New:
Type-check all SDK packagesstep runs after build and beforechangeset publish— catches broken DTS early with a clear error instead of a silentELIFECYCLEfailure
SDK — v0.2.0-beta.3 (2026-04-04)
Beta release. See the release notes for full code examples.
@nexa-ed/sdk
- New:
nexa.emailmodule —create,bulkCreate,getJobStatus,list - New types:
EmailCreateOptions,EmailCreateResult,EmailBulkCreateOptions,EmailBulkCreateResult,EmailJobStatus,StudentEmailAccount
@nexa-ed/react
- 18 components total — email provisioning (
StudentEmailAccountManager,EmailBulkProvisioningPanel), payments (NexaPaymentWidget,EnrollmentPaymentFlow,PaymentStatusDashboard,PaymentConfigPanel), document/results (UploadZone,StudentRecordsTable,ResultsViewerSheet,AnalysisJobPanel,PipelineTimeline) - 15+ hooks —
useUploadFile,useFileProgress,useGetUserDocuments,useGetFileStudentRecords,useGetPageRecords,useGetAnalysisJob,useGetFileStats,useRefinePageWithLLM,useUpdatePageRecord,useDeletePageRecord,useColumnSort,useGridNavigation
@nexa-ed/next
- Single
createRouteHandler(nexa)wires all routes: file uploads, SSE progress, Paystack webhooks, payment forwarding, oRPC queries
@nexa-ed/convex
nexaStudentEmailSchemaschema fragmentmakePaymentWebhookHandlerfactory
@nexa-ed/node
- Express, Fastify, and Hono adapters (
createExpressAdapter,createFastifyPlugin,createHonoAdapter) - Standalone
verifyPaystackWebhookhelper
create-nexaed-app
- Interactive CLI — prompts for Convex URL, Clerk keys, email tier, and domain
- Scaffolds Next.js + Convex app with all packages pre-wired
Platform — 2025-03-17
Added
- oRPC data API — typed
POST /api/rpc/[...orpc]endpoints for querying student records, analysis jobs, and document chunks. Authenticated via Clerk JWT. - Auth hardening — FastAPI now accepts Clerk JWTs (RS256, JWKS cached 1 hour) as well as internal shared-secret headers. Worker routes are secured via
x-internal-secret.
Platform — 2025-03-10
Added
- Document AI pipeline — async pipeline: upload → Trigger.dev → FastAPI OCR → Mastra agents → NeonDB. Supports PDF and image uploads.
- Student records schema —
student_records,subject_categories,results_analysis_jobstables in NeonDB via Drizzle ORM. - Clerk → NeonDB bridge —
POST /internal/provision-useron the worker provisions Clerk users into NeonDB on first document upload.
Platform — 2025-02-15
Added
- Multi-tenant SaaS platform launch — tenant registration, provisioning, and API key management.
- Paystack payment gateway integration — fee collection, webhook verification, subscription management.
- Student email provisioning — Tier 1 (Nexa subdomain), Tier 2 (custom domain via Stalwart), Tier 3 (Google Workspace managed).
Info
For SDK-level changelogs and migration guides, see each package's CHANGELOG.md in the GitHub repository.