AXIS v1.2 Release Notes: Infrastructure Migration & Resilience Upgrade

AXIS v1.2 completes a full migration to an independent multi-cloud stack: Vercel + Railway + Clerk + OpenAI + Resend. All 24 tables imported, 126 tests passing, hot standby with under-2-minute failover.

By Leonidas Esquire Williamson — March 19, 2026

AXIS v1.2 — Infrastructure Migration & Resilience Upgrade

Released: March 19, 2026

This release completes a full migration from Manus managed hosting to an independent, multi-cloud production stack. Every layer of the AXIS platform — frontend, backend, database, authentication, LLM, and notifications — now runs on best-in-class independent providers with no single-vendor dependency.

---

What Changed

Hosting & Deployment

AXIS is now deployed across a primary stack and a hot standby, with full failover possible in under two minutes.

LayerPrimaryHot Standby
FrontendVercel (auto-deploys from GitHub)Netlify
BackendRailway (Node.js 22, Express + tRPC)Render
DatabaseRailway MySQLSame Railway MySQL (shared)
DNS & CDNCloudflare

The frontend auto-deploys to Vercel on every push to the main branch. The backend is deployed to Railway with Node.js 22 and connects to Railway MySQL. DNS is managed through Cloudflare, which provides instant failover capability and DDoS protection.

Database Migration

The AXIS database has been migrated from TiDB Serverless (Manus) to Railway MySQL. All 24 tables and 66 rows were successfully imported. The schema is managed with Drizzle ORM and the migration history is tracked in the __drizzle_migrations table.

Authentication

Manus OAuth has been replaced with [Clerk](https://clerk.com). The migration includes:

  • Sign-in page at `/sign-in` using Clerk's hosted `<SignIn />` widget
  • Sign-up page at `/sign-up` using Clerk's hosted `<SignUp />` widget
  • User profile page at `/user-profile` using Clerk's `<UserProfile />` widget
  • Webhook endpoint at `/api/clerk/webhook` handling `user.created`, `user.updated`, and `user.deleted` events to keep the AXIS `users` table in sync with Clerk
  • Route guards on `/dashboard` and `/register` using Clerk's `<RedirectToSignIn />` component
  • LLM Integration

    The Manus Forge API has been replaced with the [OpenAI API](https://platform.openai.com) (GPT-4o). All server-side LLM calls use the openai npm package via the invokeLLM helper in server/_core/llm.ts.

    Notifications

    The Manus built-in notification service has been replaced with [Resend](https://resend.com). Owner notifications are now sent from admin@axistrust.io, which is configured via Zoho Mail.

    CORS

    CORS is now explicitly configured for https://axistrust.io and https://www.axistrust.io with credentials: true. A CORS_ORIGIN environment variable accepts additional comma-separated origins for staging environments.

    ---

    Removed

    The following Manus-specific integrations have been removed:

  • Voice transcription helper (`server/_core/voiceTranscription.ts`)
  • Image generation helper (`server/_core/imageGeneration.ts`)
  • Google Maps proxy helper (`server/_core/map.ts`) and `Map.tsx` component
  • Manus OAuth and SDK files (`server/_core/oauth.ts`, `server/_core/sdk.ts`)
  • Manus Data API helper (`server/_core/dataApi.ts`)
  • ---

    Test Coverage

    126 tests passing across unit, integration, and webhook verification suites. New test files added in this release:

  • `server/cors.test.ts` — 6 CORS middleware tests
  • `server/clerkWebhook.test.ts` — webhook signature verification and event handling
  • `server/credentials.test.ts` — API key format validation for Clerk, OpenAI, and Resend
  • ---

    Upgrading

    If you are running a self-hosted AXIS instance, update the following environment variables:

    VariablePurpose
    `CLERK_PUBLISHABLE_KEY`Clerk frontend publishable key
    `CLERK_SECRET_KEY`Clerk backend secret key
    `CLERK_WEBHOOK_SECRET`Clerk webhook signing secret
    `OPENAI_API_KEY`OpenAI API key
    `RESEND_API_KEY`Resend API key
    `VITE_API_URL`Backend base URL (empty string for same-origin)

    Remove the following variables, which are no longer used: BUILT_IN_FORGE_API_URL, BUILT_IN_FORGE_API_KEY, VITE_FRONTEND_FORGE_API_URL, VITE_FRONTEND_FORGE_API_KEY, OAUTH_SERVER_URL, VITE_OAUTH_PORTAL_URL.

    ---

    See the [full changelog](/changelog) for the complete version history.