# Migrating Motor Admin to Code: The Complete Playbook (2026)

- Tool: No-Code to Code Migrations
- Last updated: July 2026

## TL;DR

Motor Admin (last release June 1, 2024) is stalled with no security updates for 2+ years. Your data is always in your own database — Motor Admin is a proxy. The motor.yml config file is human-readable and is your migration spec. The standalone Docker image (AGPL v3) creates copyleft risk if you serve the tool to others. Target stack: Next.js + Supabase. Typical timeline: 4–8 weeks.

## Platform status

- Status: maintenance — Last release 0.4.27 on June 1, 2024; approximately 2 years without a release as of mid-2026 (github.com/motor-admin/motor-admin-rails). Dual-licensed: MIT Rails gem / AGPL v3 standalone Docker. No formal corporate support; single-maintainer project with PRs appearing restricted.
- Migration urgency: medium
- Typical timeline: 4–8 weeks
- Typical cost: $13K–$25K (agency, fixed)

## Why migrate

Motor Admin is stalled, not dead — the MIT gem keeps running. But two years without a security patch means accumulating CVE exposure, and the AGPL Docker image creates a real legal risk for SaaS operators. The migration case is security hygiene and, for Docker users, licensing.

- **Stalled release cadence** — Last release was June 1, 2024. No security updates, no dependency bumps for 2+ years as of mid-2026. The Ruby gem dependency chain is accumulating CVEs with no maintainer to address them.
- **AGPL copyleft risk on Docker image** — The standalone Docker distribution (motoradmin/motoradmin) is AGPL v3. If you are offering Motor Admin as a service to others — including internal users in a SaaS context — AGPL requires releasing your modifications. The MIT Rails gem does not carry this restriction.
- **Single-maintainer project** — No formal corporate entity; the project's longevity depends entirely on one maintainer. PRs appear restricted. If the maintainer archives the repo, the gem still runs (MIT) but gets no updates; the Docker image (AGPL) could pose problems without a maintainer to clarify obligations.
- **Pro features gated externally** — White-label, MFA, and SSO/SAML are available on Motor Admin Pro (cloud only). The MIT gem core does not include these; there is no Pro self-host tier. Teams needing SSO on a self-hosted deployment have no path within Motor Admin.
- **motor.yml is a migration asset** — The motor.yml config file is human-readable and version-controllable. It documents exactly what resources Motor Admin surfaces, including columns, filters, scopes, and SQL queries. This is your migration specification — a significant advantage over proprietary internal-tool platforms.

## What you can export

Your data is entirely yours — Motor Admin is a query proxy. The motor.yml config is your human-readable migration spec. There is no UI code to export but the architecture is transparent.

| Asset | Exportable | How |
| --- | --- | --- |
| Data | yes | Motor Admin connects to your own database (Postgres, MySQL, SQLite); data is entirely yours. CSV export available in-app; the tool is a query proxy — no vendor lock on data. |
| Code | yes | config/motor.yml is human-readable, Git-commitable, and synced with rake motor:sync; it is your migration specification document |
| Design/UI | no | Motor Admin UI is the gem's own rendering; no HTML or React export |
| Logic/Workflows | partial | SQL queries and dashboard definitions stored in motor.yml; readable and extractable |
| Users & Auth | partial | Motor Admin manages its own user accounts over your app's auth system; extract user list before decommissioning |

## Stack mapping

Motor Admin maps systematically to Next.js + Supabase: each resource in motor.yml becomes one Next.js page, making this a predictable, scope-bounded migration.

| Platform concept | Code equivalent |
| --- | --- |
| Motor Admin (Rails gem / Docker proxy to your DB) | Next.js admin panel with Supabase or Drizzle direct queries |
| motor.yml (resource definitions, columns, filters, scopes) | Use as spec to build one Next.js page per resource |
| Motor Admin data grids (table + filter + sort) | shadcn/ui DataTable with TanStack Table |
| Motor Admin CRUD forms (create/edit/delete) | react-hook-form + zod + Supabase mutations |
| Motor Admin SQL queries and dashboards | Supabase SQL editor queries surfaced in Next.js charts (Recharts) |
| Motor Admin audit log | Supabase table with server-side write trigger |
| Motor Admin Pro features (SSO/SAML, MFA, white-label) | NextAuth v5 or Clerk with SAML provider |
| Motor Admin Docker (AGPL) | Eliminated — Next.js + Supabase on Vercel removes the AGPL concern entirely |

## Migration roadmap

Four phases: sync and commit motor.yml first (your spec), build the foundation, port each resource as a page, and cut over with an AGPL assessment resolved.

### Phase 1: Spec Extraction & AGPL Assessment (3–5 days)

- Run rake motor:sync and commit the resulting motor.yml — this is your migration spec
- Count resources in motor.yml: this is the exact number of Next.js pages to build
- Determine if you are running the MIT gem or the AGPL Docker image
- If Docker: assess AGPL obligations with legal counsel if operating in a SaaS context
- Run bundle audit (MIT gem) or check Docker image CVEs to quantify security exposure

> Watch out: Do not skip the AGPL assessment if using Docker — migration urgency increases if copyleft obligations are active

### Phase 2: Foundation Setup (1 week)

- Provision Supabase with connections to your existing Postgres/MySQL databases
- Set up Next.js (App Router), Tailwind, shadcn/ui, TanStack Table
- Implement user table and role-based access mirroring Motor Admin's permission model
- Configure Supabase Auth; plan user password reset flow
- If adding SSO (never existed in gem): configure NextAuth v5 or Clerk with your SAML IdP

### Phase 3: Per-Resource Page Migration (2–4 weeks)

- Build one Next.js page per resource listed in motor.yml
- Implement DataTable with sorting, filtering, and pagination per resource
- Add CRUD forms (react-hook-form + zod) for each resource
- Port SQL queries and dashboards from motor.yml to Supabase + Recharts
- Implement audit log table if compliance requires it

### Phase 4: Cutover (2–3 days)

- Validate parity against Motor Admin using screenshots
- Export user list and implement forced password reset flow
- Decommission Motor Admin Docker or remove the gem from your Rails app
- Confirm AGPL Docker image is no longer running in any environment

> Watch out: Every additional day running the AGPL Docker image in a SaaS context extends potential copyleft obligations

## Cost paths

| Path | Cost | Timeline | Fits |
| --- | --- | --- | --- |
| DIY (with AI tools) | $0–500 + time | 3–6 weeks part-time | Rails developers comfortable with Next.js; small motor.yml with fewer than 10 resources; no SSO or audit log requirements |
| Freelancer | $3K–8K | 4–6 weeks | Apps with clear resource inventory in motor.yml and no compliance requirements; a fixed-scope engagement works well here |
| Agency (RapidDev) | $13K–25K fixed | 4–8 weeks | Teams with AGPL compliance urgency, audit log requirements, SSO/SAML addition, or dashboards with complex SQL queries requiring careful porting |

## Risks and mitigations

- **AGPL copyleft exposure from Docker image** — If currently using the AGPL Docker image in a SaaS or multi-tenant context, each day of delay potentially extends copyleft obligations. Get a legal opinion and escalate migration timeline immediately if SaaS use is confirmed.
- **Ruby gem CVE accumulation** — Run bundle audit immediately to quantify current exposure; share results with your security team to establish timeline urgency. Do not patch Basetool — migrate to a maintained stack instead.
- **Single-maintainer longevity** — If the maintainer archives the repo, the MIT gem still runs but gets no updates. Plan migration before a critical CVE forces an emergency rebuild — scheduled migration beats reactive migration.
- **Audit log continuity** — If Motor Admin's audit log tracks compliance-sensitive actions, implement the Supabase audit log table before cutover and validate it captures all required events. Do not decommission Motor Admin until audit continuity is confirmed.

## Stay or go

Stay if:

- You are using the MIT Rails gem (not Docker), your app is internal-only (not SaaS), and your security team has not flagged gem CVEs in any audit
- The core CRUD features cover all your needs and you have no SSO, MFA, or white-label requirements
- The admin panel is low-usage (a few ops people) and migration cost genuinely outweighs risk at this moment — freeze access and plan for the next quarter

Go if:

- You are using the AGPL Docker image in a SaaS or multi-tenant context — AGPL copyleft obligations are a real legal risk that begins on day one
- Your security team has flagged unmaintained gem dependencies in an audit
- You need Pro features (SSO/SAML, MFA, white-label) that are not available in the MIT self-host at any price

Motor Admin is the gentlest migration in this group: your data is external, motor.yml is your spec, and the target architecture is well-known. The primary escalating risk is AGPL exposure on Docker — if you are running Docker in a SaaS context, escalate now.

## Migration checklist

- Run rake motor:sync and commit the resulting motor.yml to Git — motor.yml is your complete migration spec; it must reflect current state before you start building
- Determine if you are running the MIT gem or the AGPL Docker image — The AGPL vs MIT distinction changes migration urgency significantly; Docker users in SaaS contexts have legal exposure
- Run bundle audit (MIT gem) or check Docker image CVEs to quantify current security exposure — The audit output gives you the security argument for timeline and prevents surprises from your security team mid-migration
- Export user list from Motor Admin before decommissioning — Motor Admin manages its own user accounts; extract name, email, and role before the instance is gone
- Inventory every resource in motor.yml — count pages, filters, scopes, and custom SQL queries — Resource count is your migration scope; each resource is one Next.js page; knowing the count gives you an accurate timeline
- Confirm your underlying database (Postgres/MySQL) credentials are accessible outside Motor Admin — Direct database access is the foundation of the new stack; verify credentials before writing a line of code

## Frequently asked questions

### Can I export my Motor Admin configuration?

Yes — config/motor.yml is human-readable, Git-commitable, and fully documents your resources, columns, filters, scopes, and SQL queries. Run rake motor:sync to ensure it reflects the current state before migrating. This is your migration spec; most proprietary admin tools offer nothing comparable.

### Is Motor Admin shutting down?

Not formally — the last release (0.4.27) was June 1, 2024, and the MIT gem can keep running indefinitely without a maintainer. However, there have been no security patches or dependency updates for 2+ years as of mid-2026. The project is effectively in maintenance-only status with a single maintainer and restricted PRs.

### What is the AGPL risk with Motor Admin Docker?

The standalone Docker image (motoradmin/motoradmin) is licensed under AGPL v3. If you are running Motor Admin as a service for other users — including employees in a SaaS product context — AGPL requires you to release your modifications under AGPL as well. The MIT Rails gem does not carry this restriction. If you are unsure whether your use case triggers AGPL, consult legal counsel before continuing to run the Docker image.

### What is the difference between the MIT gem and the AGPL Docker image?

The Rails gem (motor-admin on RubyGems) is MIT licensed — permissive, no copyleft, use it how you want in any context. The Docker image (motoradmin/motoradmin on Docker Hub) is AGPL v3 — copyleft applies if you serve it to others. If you installed Motor Admin as a Rails gem, you are on MIT. If you run it as a standalone Docker container without Rails, you are on AGPL.

### How long does migrating from Motor Admin take?

Typically 4–8 weeks. motor.yml gives you a precise scope: count the resources (each becomes one Next.js page) and the SQL queries (each needs porting). Dashboards with complex SQL are the main variable. Apps with fewer than 10 resources and no dashboards are on the shorter end.

### What happens to my users when I migrate off Motor Admin?

Motor Admin manages its own user accounts over your app's auth system. Extract the user list (name, email, role) before decommissioning. Password hashes are not documented as exportable; users will need a forced password reset on the new platform. Your existing application's auth system is separate and completely unaffected.

### Can RapidDev migrate our Motor Admin instance?

Yes. RapidDev offers fixed-price Motor Admin migrations ($13K–$25K, 4–8 weeks), including AGPL Docker elimination, SSO/SAML addition, audit log implementation, and dashboard SQL porting. Book a free scoping call to count your motor.yml resources and get an accurate estimate.

### Can I just keep running Motor Admin with the MIT gem?

If you are using the MIT Rails gem (not Docker), the app is internal-only (not SaaS), and your security team has not flagged CVEs, you can continue running it while planning a migration. The MIT license does not create legal risk. The risk is purely security: unmaintained Ruby gem dependencies accumulate CVEs. Run bundle audit now to quantify current exposure, then set a migration deadline.

---

Source: https://www.rapidevelopers.com/no-code-to-code/how-to-migrate-motor-admin-project-to-code
© RapidDev — https://www.rapidevelopers.com/no-code-to-code/how-to-migrate-motor-admin-project-to-code
