Migration snapshot
ActivePlatform
a OutSystems
OutSystems crossed €500M revenue in May 2025 and is a 9-consecutive-year Gartner LCAP Leader (highest Ability to Execute, July 2025 report). Two products: O11 (on-prem/.NET/SQL Server, supported indefinitely per Nov 2025 'Build-for-the-Future Promise') and ODC (Kubernetes + Aurora PostgreSQL, AWS-only, GA). O11→ODC migration is classified by OutSystems itself as a full rebuild of app logic.
Typical timeline
10–14 weeks
Typical cost
$13K–$25K (agency, fixed)
Why teams leave a OutSystems
OutSystems is a legitimate enterprise platform — the reasons to migrate are cost, the rebuild-to-upgrade reality, and AWS-only ODC constraints rather than any instability.
Cost floor with no ceiling
ODC starts at $36,300/yr; real bills compound with Application Object (AO) growth, support tiers, and add-on modules. TrustRadius cites $4K–$10K/month tiers for mid-market deployments. Pricing is sales-gated on outsystems.com.
O11→ODC is already a rebuild
OutSystems explicitly classifies the O11-to-ODC migration as a rebuild of your app logic. If you must rebuild inside the platform anyway, custom code becomes the rational alternative — you own the output and reduce the annual bill.
Deep proprietary lock-in
Apps compile to OutSystems' proprietary runtime; there is no eject to standalone source. Leaving = full rebuild regardless of when you decide to go. The longer you wait, the more app logic accumulates in the runtime.
Developer talent scarcity and cost
OutSystems developers command premium rates and the talent pool is narrower than Next.js/React, inflating ongoing maintenance costs and making hiring harder as the platform matures.
ODC is AWS-only
If your organisation requires on-premises, Azure, or GCP deployment, ODC is disqualified. O11 can be self-hosted but carries its own procurement and infrastructure burden separate from the platform license.
What can you actually take with you?
OutSystems offers no runnable source export — apps are compiled to a proprietary runtime. Data and SQL schema are accessible via DBA-level access on O11; ODC customers must coordinate with OutSystems support.
| Asset | Can you export it? | How | Notes |
|---|---|---|---|
| Data | Partial | SQL Server (O11) or Aurora PostgreSQL (ODC) accessible via direct DB connection or integration layer; OutSystems does not provide a single-click DB export tool, but DBA-level access is available on self-hosted O11. | ODC data access requires coordination with OutSystems support before contract ends. |
| Code | No | No runnable off-platform source export exists. | OutSystems' 'standards-based' marketing refers to open standards in the runtime stack, not exportable source. Apps live entirely in the proprietary runtime. |
| Design/UI | No | Screen designs built in OutSystems Studio cannot be exported as HTML/CSS/React. | Screen inventory via screenshots is the practical extraction method. Export Application from Studio for the module list. |
| Logic/Workflows | No | Actions, microflows, integrations, and Timers live in .oap/.osp module files that run only on the OutSystems runtime. | Logic must be reverse-engineered and re-implemented. BPT workflows are the hardest to port — schedule business-owner walkthroughs before writing any Next.js code. |
| Users & Auth | Partial | User records live in the OutSystems Users entity, which is SQL-accessible in O11 via direct DB connection. | Password hashes are not documented as exportable. Plan a forced password reset for all end-users post-migration. |
| Integrations (SAP/Oracle/REST) | Partial | Integration Studio connector configuration is visible and documentable via Studio; the underlying REST/SOAP endpoint URLs and credentials can be extracted. | The connector logic itself runs on the OutSystems runtime; each integration must be re-implemented as a Next.js API Route Handler with the vendor SDK. |
Swipe the table sideways to see the full breakdown.
Where each piece moves in code
OutSystems apps migrate to a Next.js (App Router) + Supabase (PostgreSQL) stack, with n8n for complex workflow orchestration and Vercel Cron Jobs or Supabase pg_cron replacing Timers.
a OutSystems
OutSystems Studio (visual IDE)
In code
VS Code + Next.js App Router
Team writes components in TypeScript/React instead of dragging elements in Studio.
a OutSystems
Reactive Web App screens
In code
Next.js page/layout components (Server Components by default)
Screen inventory from Studio becomes the component spec.
a OutSystems
O11 Actions / Server Actions
In code
Next.js Server Actions or API Route Handlers
One Action = one Server Action function; keep names consistent for traceability.
a OutSystems
Aggregates (data queries)
In code
Prisma or Drizzle ORM queries against Supabase PostgreSQL
SQL schema extracted from O11 database maps directly to Drizzle table definitions.
a OutSystems
OutSystems Users / Groups / Roles
In code
Supabase Auth + Row-Level Security policies
Role-based access modelled as Supabase custom claims; RLS policies replace OutSystems permission rules.
a OutSystems
BPT (Business Process Technology) workflows
In code
Custom server-side state machines or n8n workflows
BPT is the hardest component to port; build a feature inventory with business owners before writing code.
a OutSystems
Integration Studio connectors (SAP, Oracle, REST/SOAP)
In code
Next.js API Route Handlers with vendor SDKs
Allocate 30–40% of the total timeline to re-plumbing external integrations.
a OutSystems
OutSystems Timers (scheduled jobs)
In code
Supabase pg_cron or Vercel Cron Jobs
Document Timer frequency and business purpose before migration; map each to a cron expression.
The migration roadmap
A standard OutSystems migration runs 10–14 weeks. The extraction phase is critical: all documentation, schema, and integration inventory must happen before any Next.js code is written.
Extraction & Audit
Weeks 1–2- Screenshot/document all screens via Studio Export → Application
- Export SQL schema from O11 database directly via DBA access (or engage OutSystems support for ODC)
- Catalogue all Actions, Timers, and their frequency
- Map all external system integrations (SAP/Oracle/REST/SOAP) — these drive the API-layer scope
- Pull the Platform Monitoring report to get exact Application Object counts
Watch out: ODC customers lose managed DB access on contract end — initiate the support data-export request before termination and document this in your service agreement.
Foundation & Stack Setup
Weeks 2–3- Set up Next.js App Router project with TypeScript and Tailwind CSS
- Migrate SQL schema to Supabase PostgreSQL and configure Row-Level Security
- Establish CI/CD pipeline (GitHub Actions → Vercel)
- Configure Supabase Auth with role claims mirroring OutSystems Groups
Data Migration & API Layer
Weeks 3–7- Import production data from O11 SQL Server to Supabase PostgreSQL
- Build Next.js API Route Handlers for each external integration (SAP, Oracle, Salesforce)
- Implement Supabase pg_cron / Vercel Cron Jobs for each OutSystems Timer
- Replace BPT workflows with documented state-machine logic in Server Actions
Watch out: BPT workflows often encode years of undocumented business rules. Conduct structured interviews with process owners before designing the state machine.
Feature Parity & Frontend Build
Weeks 7–11- Build Next.js page components from the screen inventory
- Implement Drizzle ORM queries replacing Aggregates
- Replicate all role-based permission rules as Supabase RLS policies
- Build the forced-password-reset flow and user communication emails
UAT & Cutover
Weeks 11–14- Run OutSystems and Next.js apps in parallel during UAT
- Verify data integrity between O11 export and Supabase import
- Execute forced password reset for all users on cutover day
- Decommission OutSystems environment after 30-day overlap window
Watch out: Check your OutSystems contract renewal date — align cutover before the next billing cycle to avoid paying for an additional term.
Three ways to migrate — honestly
Every path has a real trade-off. Here is what each costs, how long it takes, and where it bites.
DIY (with AI tools)
$500–2,000 (tools + infra)
4–8 months part-time
Fits
In-house engineering teams with Next.js/TypeScript experience who have already extracted the screen inventory and SQL schema from O11.
Risks
OutSystems estate complexity (BPT workflows, Integration Studio connectors) is not a weekend project. Without enterprise integration experience, the SAP/Oracle API layer alone can stall the project for months. Budget at least two senior engineers full-time.
Freelancer
$5K–12K
2–4 months
Fits
Smaller OutSystems apps (under 20 screens, no BPT, 2–3 external integrations) where the scope is well-defined and the client can handle project management.
Risks
OutSystems expertise is scarce in the freelance market. A freelancer unfamiliar with the platform's module structure may misread the screen inventory or miss integration dependencies. Vet OutSystems migration experience specifically.
Agency (RapidDev)
Done-for-you$13K–$25K fixed
6–10 weeks
Fits
Organisations with a defined OutSystems app scope (up to 40 screens, known integrations) that need a predictable fixed price, parallel UAT, and a clean contract-aligned cutover date.
Risks
Fixed-price scope requires a complete screen inventory and integration list before contract sign. Book a free scoping call with RapidDev to confirm scope and get an accurate quote.
The real risks — and how to defuse them
Integration re-plumbing
Mitigation: OutSystems' built-in connectors (SAP/Oracle/Salesforce) have no Next.js equivalent out of the box. Map every external integration in week 1 and allocate 30–40% of the timeline to the API layer.
AO count underestimate
Mitigation: Clients often don't know how many Application Objects they have. Run the OutSystems Platform Monitoring report before scoping to get exact AO counts — this affects both the rebuild scope and the licence-cost baseline.
User password loss
Mitigation: Password hashes are not documented as extractable from the OutSystems runtime. Communicate the forced-reset plan to users 2 weeks before cutover; include the reset date in the migration announcement.
ODC-only customers lose DB access
Mitigation: ODC's Aurora PostgreSQL is fully managed; SQL access is limited. Request data export via OutSystems support before contract ends and document this obligation in your service agreement.
Scope creep from BPT workflows
Mitigation: Legacy BPT workflows may encode years of undocumented business rules. Conduct structured interviews with process owners before design begins; treat each BPT process as a separate user story.
Post-migration O11 license cost
Mitigation: O11 subscriptions often run on multi-year terms. Check contract renewal dates before committing to a migration timeline; misalignment can result in paying two platforms simultaneously.
Should you actually migrate?
Migrating is a real project. Sometimes staying is the right call — here is the honest split.
Stay if
- You have 2,000+ users in a mission-critical regulated app (banking, healthcare, government) and OutSystems' ATO/SOC 2/ISO certifications are harder to replicate than to renew.
- Your team has 3+ trained OutSystems developers and the O11→ODC migration is the near-term priority — rebuilding in custom code adds 6–12 months vs. the in-platform migration path.
- Your app is deeply integrated with SAP BTP or Oracle EBS via OutSystems' certified connectors and the integration complexity would dominate a custom-code rewrite.
- Your annual OutSystems bill is under $30K and the app is in stable maintenance mode — the migration ROI timeline is longer than 2 years.
Migrate if
- Your annual OutSystems bill exceeds $50K and you can't attribute proportional business value — the cost alone justifies a 10–14 week migration investment.
- You're being forced to rebuild for O11→ODC anyway and prefer to own the output rather than re-enter the proprietary runtime with another multi-year contract.
- You need to run on Azure or GCP (ODC is AWS-only) or require genuine on-premises deployment without an OutSystems license.
- Your organisation is standardising on TypeScript/React and OutSystems developer scarcity is creating a hiring and maintenance bottleneck.
Our honest verdict
OutSystems is a legitimate choice for large enterprises with regulated workloads and sizable budgets. For everyone else, the $36,300+ cost floor, the O11→ODC rebuild reality, and the absence of any source export make custom code the rational long-term answer.
Do this today: pre-migration checklist
Whatever path you choose, protect yourself first. Work through this before you touch a line of code.
Pull the full screen inventory from OutSystems Studio (Export → Application)
This becomes your rebuild specification — without it, scope is undefined and the migration cannot be accurately quoted.
Request a database schema export from your OutSystems DBA or support contact before the contract window closes
O11 schema is accessible via SQL Server; ODC requires support engagement. Delay here blocks everything downstream.
Audit Application Objects in Platform Monitoring to get an accurate licence-cost baseline
AO count determines your current contract tier and helps quantify the annual savings from migrating.
List every external system integration (SAP, Oracle, Salesforce, REST/SOAP connectors)
These drive 30–40% of the API-layer scope and are the most common source of timeline overruns.
Document all Timers (scheduled jobs) and their frequency
Each Timer becomes a Supabase pg_cron or Vercel Cron Job; missing one causes silent production failures post-cutover.
Confirm your OutSystems contract renewal date
Align migration cutover before the next billing cycle to avoid paying for an additional term after the new app is live.
Plan the user communication: forced password reset date, downtime window, rollback criteria
Password hashes are not extractable; users must reset on cutover day. Two weeks' notice is the minimum for enterprise apps.
Frequently asked questions
Can I export my OutSystems app code?
No. OutSystems compiles your app to a proprietary runtime — there is no standalone source export for either O11 or ODC. The 'standards-based' language in OutSystems marketing refers to the underlying runtime technology stack, not exportable source files. Leaving OutSystems always requires a full rebuild.
Can I export my OutSystems database?
Partially. On O11 (self-hosted), DBA-level access to SQL Server is available and you can export the full schema and data directly. On ODC, the Aurora PostgreSQL database is fully managed by OutSystems; data extraction requires a formal request through OutSystems support. Initiate this request before your contract ends.
How long does migrating from OutSystems take?
A typical OutSystems migration runs 10–14 weeks for apps up to 40 screens with known external integrations. The timeline extends significantly for apps with extensive BPT workflows, SAP/Oracle integrations, or complex permission models. The extraction and audit phase (weeks 1–2) is the critical path gating factor — complete it before writing any Next.js code.
What happens to my users and passwords after migration?
User records are SQL-accessible in O11 and can be migrated to Supabase. However, password hashes are not documented as extractable from the OutSystems runtime. All end-users will need to go through a forced password reset on cutover day. Communicate this at least 2 weeks in advance.
Is OutSystems shutting down?
No. OutSystems crossed €500M revenue in May 2025, appointed a new CEO, and maintains a 9-consecutive-year Gartner LCAP Leader position. O11 is covered by the Nov 2025 'Build-for-the-Future Promise' with indefinite support. The migration case is cost- and lock-in-driven, not a platform shutdown risk.
Is migrating from O11 to ODC the same as migrating to custom code?
Almost. OutSystems explicitly classifies O11→ODC as a full rebuild of your app logic — you rewrite your screens, Actions, and integrations in the new ODC paradigm. Since you're rebuilding anyway, many teams find that migrating to custom code (Next.js + Supabase) is no harder and eliminates the $36,300+/yr ODC license going forward.
How much does it cost to migrate off OutSystems?
A fixed-price agency migration (like RapidDev) runs $13K–$25K for a well-scoped app and takes 6–10 weeks. A freelancer engagement runs $5K–$12K over 2–4 months. DIY with an in-house team requires at least two senior engineers and 4–8 months part-time. The correct path depends on app complexity and integration count — book a free scoping call to get an accurate estimate.
What replaces OutSystems' BPT workflows in the new stack?
BPT (Business Process Technology) workflows map to custom state machines implemented in Next.js Server Actions with PostgreSQL tracking the state, or to n8n for orchestration-heavy processes. BPT is typically the hardest component to port because it encodes years of business rules that are rarely documented outside the platform. Schedule structured walkthroughs with process owners before writing any code.
We migrate no-code apps to production code
- Fixed price — $13K–$25K (agency, fixed)
- No data loss, no downtime
- You own 100% of the code
30-min call. Quote within 48 hours.