Skip to main content
RapidDev - Software Development Agency
weweb-tutorial

WeWeb Export Code: How to Export and Self-Host Your Vue.js Project

WeWeb lets you export your entire project as a compiled Vue.js SPA — zip file with built files ready for Vercel, Netlify, or Cloudflare. Available on the Essential seat plan and above. Key caveat: plugins that route through WeWeb microservices (Airtable, Stripe, WeWeb Auth) break in self-hosted exports. GitHub sync enables full CI/CD pipelines. Re-export and redeploy any time changes are made.

What you'll learn

  • How to export your WeWeb project as a production-ready Vue.js SPA zip file
  • Which plugins and features work vs break in self-hosted exports
  • How to configure SPA routing (index.html fallback) on Vercel, Netlify, and Cloudflare
  • How to set up GitHub sync for automated CI/CD deployments
  • The re-export workflow for pushing updates after making changes in the WeWeb editor
Book a free consultation
4.9Clutch rating
600+Happy partners
17+Countries served
190+Team members
Intermediate10 min read30-45 minWeWeb Essential plan and above (code export requires Essential+)March 2026RapidDev Engineering Team
TL;DR

WeWeb lets you export your entire project as a compiled Vue.js SPA — zip file with built files ready for Vercel, Netlify, or Cloudflare. Available on the Essential seat plan and above. Key caveat: plugins that route through WeWeb microservices (Airtable, Stripe, WeWeb Auth) break in self-hosted exports. GitHub sync enables full CI/CD pipelines. Re-export and redeploy any time changes are made.

WeWeb Code Export: Deploy Your App Anywhere

WeWeb's code export feature is its strongest differentiator over competing no-code platforms. Rather than locking you into proprietary hosting, WeWeb generates a standard Vue.js 3 single-page application that you can deploy on any web host — Vercel, Netlify, Cloudflare Pages, AWS S3, or your own server. This tutorial walks through the complete export and deployment process: triggering an export, understanding what's in the zip, configuring SPA routing on major hosts, and setting up GitHub sync so every publish in WeWeb automatically triggers a fresh deployment. You'll also learn which plugins continue working after export and which ones require a backend proxy replacement.

Prerequisites

  • WeWeb account on the Essential plan or above (Free plan does not include code export)
  • A published WeWeb project (you must publish before exporting)
  • A Vercel, Netlify, or Cloudflare Pages account for deployment
  • GitHub account if you plan to use GitHub sync for CI/CD

Step-by-step guide

1

Verify your seat plan includes code export

Code export is only available on the Essential seat plan ($16/mo) and above. To check your plan, click your workspace avatar in the top-left corner of the WeWeb editor → Workspace Settings → Billing. You will see your current Seat Plan. If you are on the Free plan, you will need to upgrade to Essential before proceeding. The Free plan includes WeWeb Cloud hosting but not the ability to export code or use GitHub sync. Once on Essential or higher, the Export option will appear in your project settings.

Expected result: You can see your current plan is Essential, Pro, or Partner.

2

Publish your project before exporting

WeWeb generates your export from the last published version of your project, not from unsaved editor changes. Click the Publish button in the top-right corner of the editor. In the publish dialog, choose your target environment (Production or Staging if on Scale hosting plan) and click Publish. Wait for the build to complete — this typically takes 30-90 seconds depending on project size. The publish step compiles your Vue.js SPA and makes it available for both WeWeb Cloud hosting and code export. If you skip this step, your export will contain the previous published version, not your latest changes.

Expected result: The publish dialog shows a success message and your app is live on WeWeb Cloud or your custom domain.

3

Trigger the code export from Project Settings

From the WeWeb editor, click the gear icon in the left navigation bar to open App Settings. Scroll down to find the Export section (or navigate to your project dashboard at app.weweb.io, select your project, and look for the Export option). Click Export Code. WeWeb will prepare a zip file containing two folders: one with built/compiled files (ready for immediate deployment) and one with raw project files (uncompiled source). The download will start automatically. The zip file is named after your project. Extract it to inspect the contents before deploying.

Expected result: A zip file downloads to your computer containing the built and raw project folders.

4

Understand what works and what breaks in exported code

Before deploying, audit your project for plugins that route through WeWeb's microservices — these will break when self-hosted. The following plugins stop working after export: Airtable (routes through WeWeb proxy), WeWeb Auth (uses WeWeb's auth servers), OpenAI and Gemini plugins (use WeWeb API key management), Stripe plugin (routes through WeWeb), SQL direct connections, SOAP APIs, and some Google service integrations. Plugins that continue working after export: REST API calls to your own backend, Supabase native plugin (direct to your Supabase project), Xano native plugin (direct to your Xano instance), custom JavaScript, and CSS. If your project uses breaking plugins, you will need to replace them with direct REST API calls to the same services before exporting.

Expected result: You have a list of which plugins in your project require replacement before self-hosting.

5

Deploy to Vercel with SPA routing configuration

WeWeb exports a Vue.js SPA — a single-page application where all routes are handled client-side. Most hosting platforms serve static files and will return a 404 error when users navigate directly to a deep URL like /dashboard/settings because no physical file exists at that path. You must configure a fallback that serves index.html for all routes. For Vercel: create a file named vercel.json in the root of your extracted built folder with the rewrite rule shown in the code example below. Then drag-and-drop the built folder onto Vercel, or use the Vercel CLI (npx vercel) from within the built folder. Vercel will auto-detect a static site and deploy it.

typescript
1// vercel.json — place in root of your WeWeb built folder before deploying
2{
3 "rewrites": [
4 {
5 "source": "/(.*)",
6 "destination": "/index.html"
7 }
8 ]
9}

Expected result: Your WeWeb app is live on Vercel and all routes (not just the home page) load correctly when accessed directly.

6

Deploy to Cloudflare Pages

Cloudflare Pages is the recommended self-hosting option for WeWeb projects due to its global CDN, free plan, and zero-configuration SPA support. Log into your Cloudflare dashboard at dash.cloudflare.com. Navigate to Pages → Create a project → Upload assets. Drag and drop your entire built folder contents (not the folder itself, but the files inside it) into the upload area. Click Deploy. Cloudflare Pages automatically handles SPA routing without requiring a configuration file. Once deployed, you will receive a pages.dev subdomain. You can connect a custom domain via Pages → your project → Custom domains. Cloudflare's edge network distributes your app globally, typically resulting in faster load times than other hosts for international users.

Expected result: Your app is live on a pages.dev URL and all client-side routes work correctly.

7

Set up GitHub sync for automated CI/CD deployments

Instead of manually exporting and uploading a zip file each time, GitHub sync automates the entire process. In the WeWeb editor, navigate to App Settings → Git Integration (or find the GitHub icon in the left navigation bar). Connect your GitHub account via OAuth. Create a new repository or select an existing one. Once connected, every time you publish your WeWeb project, WeWeb automatically pushes the latest compiled code to your connected GitHub repository. You can then configure Vercel or Netlify to auto-deploy when changes are pushed to your GitHub repo. In Vercel: Projects → Import Git Repository → select your WeWeb repo → configure output directory as the built folder → Deploy. Now your workflow is: edit in WeWeb → Publish → GitHub auto-updates → Vercel auto-deploys.

Expected result: Publishing in WeWeb automatically triggers a new deployment on your hosting platform within 2-3 minutes.

8

Test and validate your self-hosted deployment

After deployment, run through a checklist to verify everything works correctly. Open your deployed URL in a fresh browser window (not the WeWeb editor preview). Test direct URL navigation by typing a deep route like /dashboard directly in the browser address bar — it should load correctly rather than showing a 404. Test all data-fetching features: collections should load from your backend, forms should submit, authentication flows should complete. Open browser DevTools → Network tab and look for any failed requests. Common issues to check: CORS errors from your backend (your deployed domain needs to be whitelisted), any plugin still pointing to WeWeb microservices, and asset loading errors for images or fonts hosted on WeWeb's CDN.

Expected result: All pages load correctly from direct URLs, all data sources return data, and there are no console errors.

Complete working example

deployment-configs.txt
1# ============================================================
2# WeWeb Export Deployment Configuration Files
3# ============================================================
4
5# --- Vercel (vercel.json) ---
6# Place in root of your WeWeb built folder
7{
8 "rewrites": [
9 {
10 "source": "/(.*)",
11 "destination": "/index.html"
12 }
13 ]
14}
15
16# --- Netlify (_redirects file, no extension) ---
17# Place in root of your WeWeb built folder
18/* /index.html 200
19
20# --- Apache (.htaccess) ---
21# For Apache web servers
22<IfModule mod_rewrite.c>
23 RewriteEngine On
24 RewriteBase /
25 RewriteRule ^index\.html$ - [L]
26 RewriteCond %{REQUEST_FILENAME} !-f
27 RewriteCond %{REQUEST_FILENAME} !-d
28 RewriteRule . /index.html [L]
29</IfModule>
30
31# --- Nginx (nginx.conf location block) ---
32# For Nginx web servers
33location / {
34 try_files $uri $uri/ /index.html;
35}
36
37# --- Cloudflare Pages ---
38# No configuration needed SPA routing is automatic
39
40# ============================================================
41# GitHub Actions: Auto-deploy WeWeb export to Cloudflare Pages
42# ============================================================
43# .github/workflows/deploy.yml
44name: Deploy to Cloudflare Pages
45on:
46 push:
47 branches: [main]
48jobs:
49 deploy:
50 runs-on: ubuntu-latest
51 steps:
52 - uses: actions/checkout@v3
53 - name: Deploy to Cloudflare Pages
54 uses: cloudflare/pages-action@v1
55 with:
56 apiToken: ${{ secrets.CLOUDFLARE_API_TOKEN }}
57 accountId: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }}
58 projectName: my-weweb-app
59 directory: ./

Common mistakes

Why it's a problem: Deploying the zip file directly instead of the built folder contents

How to avoid: Extract the zip file first. Deploy only the contents of the 'built' subfolder (the files inside, not the folder itself). The built folder contains index.html, assets/, and other static files.

Why it's a problem: Forgetting to configure SPA routing and getting 404 errors on page refresh

How to avoid: Add the appropriate routing fallback for your host: vercel.json with rewrites for Vercel, _redirects file for Netlify, or nginx try_files directive. Without this, refreshing any page other than / returns a 404.

Why it's a problem: Expecting Airtable, WeWeb Auth, or Stripe plugins to work in the self-hosted export

How to avoid: These plugins route through WeWeb's microservices and break when self-hosted. Replace Airtable with direct REST API calls, WeWeb Auth with Supabase Auth, and Stripe with a backend Edge Function that calls the Stripe API server-side.

Why it's a problem: Editing the exported code and expecting changes to reflect back in the WeWeb editor

How to avoid: Export is one-way only — WeWeb editor to code. Any manual edits to exported files will be overwritten on the next export. Use WeWeb editor for all ongoing changes, then re-export and redeploy.

Best practices

  • Always publish in WeWeb before exporting — exports are generated from the last published version, not from unsaved editor changes
  • Use GitHub sync instead of manual zip exports for any project with ongoing development — it eliminates the manual download-upload cycle
  • Test all routes with direct URL access after deployment to catch missing SPA routing configuration early
  • Audit your project for WeWeb microservice-dependent plugins before committing to self-hosting — replacing them is easier to plan before you export
  • Host static assets (images, fonts) on a CDN like Cloudflare R2 or AWS S3 rather than relying on WeWeb's CDN, since asset URLs in WeWeb's CDN may not be stable long-term
  • Set up a staging deployment in addition to production — push to a staging branch first to validate before promoting to production
  • Configure your CORS settings on your backend (Supabase, Xano, etc.) to whitelist your new self-hosted domain before going live

Still stuck?

Copy one of these prompts to get a personalized, step-by-step explanation.

ChatGPT Prompt

I exported my WeWeb project as a zip file and deployed the built folder to Vercel. When I navigate directly to any page other than the home page (e.g., typing /dashboard in the browser), I get a 404 error. How do I fix SPA routing on Vercel for a Vue.js single-page application?

WeWeb Prompt

My WeWeb project uses the Airtable plugin but I want to self-host the exported code. The Airtable plugin stops working after export because it routes through WeWeb microservices. How should I replace the Airtable plugin with a direct REST API connection in WeWeb so my data fetching continues to work in the self-hosted version?

Frequently asked questions

Can I edit the exported WeWeb code and then re-import it back into the editor?

No. WeWeb export is strictly one-way. Exported code is machine-generated and cannot be imported back. WeWeb is designed to be the single source of truth — make all changes in the editor, then re-export and redeploy.

Do I still need a WeWeb hosting plan if I self-host?

No. If you self-host your WeWeb export (on Vercel, Netlify, Cloudflare, etc.), you do not need a WeWeb hosting add-on plan. You only need a seat plan (Essential or above for code export). Your hosting costs are whatever your chosen host charges.

How do I deploy updates after making changes in the WeWeb editor?

The re-export workflow is: make changes in WeWeb editor → click Publish (top-right) → wait for build to complete → re-export zip (or let GitHub sync push automatically) → redeploy to your host. With GitHub sync enabled, publishing in WeWeb automatically updates your GitHub repo, and if your host is connected to that repo, it auto-deploys.

What is the difference between the 'built' and 'raw' folders in the WeWeb export zip?

The 'built' folder contains compiled, production-ready static files (HTML, CSS, JavaScript bundles) ready to deploy immediately. The 'raw' folder contains uncompiled source files useful for inspection or analysis. Deploy only the 'built' folder. The 'raw' folder does not contain Vue.js components or a complete framework setup.

RapidDev

Talk to an Expert

Our team has built 600+ apps. Get personalized help with your project.

Book a free consultation

Need help with your project?

Our experts have built 600+ apps and can accelerate your development. Book a free consultation — no strings attached.

Book a free consultation

We put the rapid in RapidDev

Need a dedicated strategic tech and growth partner? Discover what RapidDev can do for your business! Book a call with our team to schedule a free, no-obligation consultation. We'll discuss your project and provide a custom quote at no cost.