You built an app with Cursor, Bolt, v0, or Claude. It runs locally. It looks great. Now what?
Most deployment guides assume you know Git, have a GitHub account, and understand what CI/CD means. This one doesn't. If you have a folder on your desktop and want a live URL, this guide gets you there in about 30 seconds.
What AI coding tools actually give you
Each tool produces a different kind of output, and understanding what you have determines how smooth the deploy will be.
Cursor and Claude Code produce code directly on your local machine in a standard project folder. You'll see a package.json, some source files, maybe a prisma folder if your app uses a database. These are your cleanest starting points — the code is well-structured because the AI had full context of the project.
Bolt.new produces downloadable projects, but they're often messy. Bolt projects sometimes reference npm packages that don't exist — the AI hallucinated them. Imports might be broken, file structures inconsistent. Don't panic. These are fixable problems.
v0 by Vercel produces React components, not complete applications. What you get looks like an app from the front, but there's often no backend logic, no routing, no database connection. Think of it as a film set — perfect from the front, nothing behind it.
Lovable exports code tightly coupled to Supabase. If you download a Lovable project, you'll find Supabase client references throughout. It won't work without either a Supabase account or a replacement database.
The 30-second deploy with Canner
Here's the actual process:
Step 1: Go to canner.ca. You'll see a dropzone — a large area that says "Drop your project here."
Step 2: Drag your project folder onto the dropzone. Alternatively, click to browse and select a ZIP file. Canner scans the folder in your browser before anything uploads. You'll see a report showing what was detected: the framework (Next.js, Astro, React, Vite), the number of files, any issues found. Nothing leaves your computer until you approve.
Step 3: Enter any missing values. If your project uses environment variables — API keys for Stripe, OpenAI, or other services — Canner will detect them and ask you to fill in the values using plain-language labels, not raw variable names.
Step 4: Click deploy. Canner installs dependencies, builds your project, provisions a database if your code needs one, and publishes it. You can watch the build in real time or wait for the notification.
Step 5: Get your URL. Your app is live at yourname.app.canner.ca. Share the link. That's it.
Common issues in AI-generated code and how they're handled
Hallucinated dependencies are the most common problem in AI-generated projects. The AI references an npm package that sounds plausible but doesn't exist on the npm registry. Canner checks each dependency against the registry before installing. Packages that don't exist are removed automatically, and you're told what was removed.
Missing lockfile is normal if you've never run npm install locally. Canner generates one automatically during the build process. Future deploys will be faster because the lockfile pins your dependency versions.
Hardcoded API keys are a security risk. If Canner's pre-upload scan finds strings that look like API keys in your source code, it flags them and recommends moving them to environment variables. On Canner, environment variables are encrypted at rest and never exposed in your source. The full security model is on the security practices page.
Nested project folders happen when you download a ZIP and it extracts to my-project/my-project/package.json. Canner walks the folder structure to find your actual project root automatically.
What if the build fails?
Build errors are the most intimidating part for people new to deployment. A wall of red text in a terminal log looks catastrophic. Usually, it isn't.
The most common build failure is a missing module — your code imports something that isn't installed. This often means the AI-generated code references a package that's slightly misnamed. Check the error message for the package name and verify it's spelled correctly in your package.json.
The second most common failure is a TypeScript type error. If your project uses TypeScript and the build is strict, type mismatches will fail the build. This is a code fix, not a deployment fix — go back to your AI tool and ask it to resolve the type error.
Keeping your project live
Guest deploys on Canner stay live for 72 hours. After that, the app goes to sleep — it's not deleted, just paused. Create a free account to keep your project live permanently at yourname.app.canner.ca. Paid plans unlock custom domains, managed databases, and higher resource limits.
Every project on Canner is hosted entirely in Montréal, Québec. Your data never leaves Canada. For most side projects that doesn't matter much, but if your app handles customer data for a Canadian business, it means you're compliant with PIPEDA and Law 25 without doing anything extra. The fuller version of why US-incorporated hosting platforms can't make this guarantee is on the CLOUD Act post, and the company-level structure that makes Canner sovereign by construction is on the sovereignty page.