Home / Compare builders / SPOE vs Rocket / How to export from Rocket
How to export your code from Rocket, and keep it running
On Pro or above, in a web browser, Rocket saves your whole project as a ZIP from the Download icon in its code view; run a Next.js app with npm install and npm run dev, or a Flutter app with flutter pub get and flutter run, after filling in your own keys in the environment template it comes with. It also pushes to a GitHub repository it creates for you, with two-way sync for Next.js TypeScript projects. An app's database, sign-in and storage are a Supabase project in your own Supabase account, while published web apps run on Rocket's Vercel account.
From Rocket's own docs, read 2026-10-26. Every step links to the page it is from.
Download a ZIP (Pro or above, in a web browser)
- Open your task in the Build editor and click the </> Code button in the top toolbar, the same bar as Preview and Full screen. (source)
- Click the Download icon at the top right of the code view toolbar. Rocket packs the source files, configuration and environment variable templates into one .zip, saved to your browser's download folder. (source)
- Extract it: on Windows, right-click it and choose Extract All, or run Expand-Archive project-name.zip in PowerShell; on a Mac, double-click it or run unzip project-name.zip. (source)
- In the folder, run npm install, then npm run dev, for a Next.js app (it starts on http://localhost:3000), or flutter pub get, then flutter run, for a Flutter app. (source)
- Fill in your own API keys and secrets in the environment template, .env for web apps or env.json for mobile apps: it comes with placeholder values. (source)
- Your real values are in Rocket's Environment panel: click the task name at the top left, then Settings, then Environment under Task, with a tab each for Staging and Production. (source)
- A ZIP is the project as it was when you downloaded it: download again after later changes. (source)
Push to GitHub
- Click the GitHub icon at the top right of the code view toolbar, then Connect. On GitHub, review the permissions and click Authorize DhiWisePvtLtd. (source)
- Click the GitHub icon, then Push. Rocket creates a repository for you; push again any time to update it. (source)
- Two-way code sync needs Pro or above and a Next.js TypeScript project: each push goes to a rocket-update branch with a pull request to main, and Pull from GitHub brings main back into Rocket. Other frameworks push only, when you click Push. (source)
What comes out
- The whole project, with its source files, configuration and environment templates, to open in your own IDE, run locally, test or hand to another developer. (source)
- Web apps are Next.js in TypeScript and mobile apps Flutter in Dart, with Supabase as the back end: a PostgreSQL database, sign-in, storage and edge functions. (source)
- The Supabase project is one you pick or create in your own Supabase account when you connect it to Rocket. (source)
- Each time the app creates or changes tables, Rocket writes a Supabase migration script, applied to your project when you click Push to Supabase. (source)
What stays behind, and needs replacing
- The ZIP's environment template holds placeholder values, not your real keys. (source)
- Rocket keeps separate values for staging, while you build, and for production, once the app is live. (source)
- Published web apps run on Rocket's Vercel account, or on your own Netlify account if you connect one. (source)
- Code download is for paid plans, in a web browser: Rocket's phone app can browse files and push to GitHub, but not download. (source)
- Rocket never re-applies a migration script you skipped, and later scripts may fail without it. (source)
- When you cancel, unused credits expire at the end of the billing cycle; your projects stay, but nothing new is generated once credits run out. (source)
Not on Rocket's pages
- Docker files, or how to host the downloaded app away from Rocket's Vercel account.
- Whether the ZIP includes the Supabase migration scripts.
- Which plans can push to GitHub without two-way sync.
How SPOE differs
- The whole project. A SPOE export is the whole project: the code, the Docker files that start it and, for a full-stack app, its database migrations, with a signed provenance manifest and the verifier inside. It starts with docker compose up, with nothing of SPOE inside, so there is nothing of ours to replace.
- Signed and recorded. Every export is signed by SPOE: an Ed25519-signed provenance manifest, with a record of it on APIR's hash-chained log. APIR is a sister company of SPOE, run by the same founder. spoe.ai/verify checks every file and that spoe.ai signed it, in your browser, so anyone can prove the code is exactly what was exported.
- Yours for good. Your first payment of any size unlocks export permanently, whether or not you ever pay again. Locked or not, the code is always visible and copyable in the editor.
- Coming from Rocket. SPOE does not import a Rocket project. If the app is live and you can show the site is yours, with a DNS record, a file on it or a tag in its pages, Bring your site copies the page at that address, with its styles and pictures, into a SPOE project to keep building; the data and the logic behind it are not copied. Otherwise, describe the app to SPOE and it is built as a Next.js, Fastify and Postgres project you hold. Keep your Rocket export either way: it is yours.
SPOE vs Rocket
Export guides for Lovable · Bolt · Base44 · v0 · Replit · Bubble · Emergent · Anything · Softr
How it works · Features · Models · Pricing · Docs · Blog · Handle checker · App ideas · Templates · Arcade · Compare builders · Alternatives · Best AI app builders · Verify an export · Developer API · Start free