Heidelberg AICurriculum
Track 4 · Intermediate
4.5

Own your app

You hit the platform’s ceiling — export the code and make it yours

5 lessons 2026-08-06 AI-generated

1Overview

The bridge from no-code builder to real development. You shipped an app in Lovable or Base44; now it has hit the platform’s ceiling — a library it won’t add, a cost that climbs, a change a teammate needs to make in code. This chapter is the graduation: decide when it is time to leave, export the app you already built, run it on a machine you control, and make your first real code change with an AI assistant beside you. → Next rung: this hands you off to AI coding assistants (which tool to drive) and Building complex codebases (the discipline that keeps it reliable at scale).

1.1After this chapter you can
Decide when a no-code app has outgrown its platform — and when it has not
Export the app you built and run it on a machine you control (no terminal required to start)
Make your first real code change with an AI coding assistant, then commit it
Know exactly which chapter to step into next — coding assistants, then codebases at scale
1.2When should I leave the platform?

You graduate when your app needs a library the builder doesn’t support, costs start scaling beyond the plan, or a teammate must edit code that the no‑code tool can’t handle.

1.3How do I export my app?

Exporting involves using the builder’s built‑in export feature to download the source files, then setting up the required runtime on your own machine and running the project just like any standard codebase.

1.4Can I modify code with AI help?

Yes—you can make your first genuine code change by prompting an AI coding assistant, which guides you through editing the exported files while keeping the app functional.

2Lessons 5

2.1 Determine if your app should be exported

Open the app you built earlier — your Lovable task tracker or Base44 booking app — to decide if it’s time to leave the platform based on concrete signals.

Identify whether your AI‑built app has outgrown the platform

TryUsing claude-code, analyze the Lovable task tracker code in ./lovable_tracker and evaluate each of these graduation signals: 1) Custom UI needed, 2) External API integration required, 3) Complex business logic beyond platform limits, 4) Performance bottlenecks on scale, 5) Data privacy regulations unmet by platform, 6) Need for offline support. For each signal output "hit" or "not hit" in a markdown table.

Paste the prompt into the Prompt field of the claude-code interface and press Run. Verify that the returned table lists all six signals exactly as written; any missing rows means the analysis didn’t cover a signal.

  1. Open the published version of your app from the Published apps list and use it for two minutes as a typical user would
  2. Review each of the six signals described in the next section and mark each one hit or not hit for your app
  3. Count the number of hits; if you record 0–1, keep using the platform, but if you record 2 or more, plan to export the code
  • You'll see A number indicating how many of the six signals your app meets
  • Takeaway A checklist shows when an app needs its own code rather than staying on the platform
  • Check How many of the six signals must your app hit before you plan to export the code rather than stay on the platform?

2.2 Explore the Nextcloud Developer Resources

The Nextcloud App Store includes a developer section that lists tools and documentation for building apps on the platform.

You will locate and open the developer documentation page for Nextcloud so you can reference it later when exporting an app.

  1. Open a web browser and go to https://apps.nextcloud.com/.
  2. Click the menu item labeled “Resources for developers”.
  3. Select “Develop for Nextcloud” from the dropdown list.
  4. Read the brief description and note the link to the full developer documentation.
  5. Bookmark the documentation page in your browser.
  • You'll see The browser displays a page titled “Developer documentation” with links to API references, translation tools, and app submission guidelines.
  • Takeaway Knowing where official development docs live lets you transition from a no‑code builder to custom code when needed.

2.3 Deploy a Simple Node.js App on Google App Engine

Google Cloud’s App Engine is a fully managed platform that runs applications written in languages like Node.js.

You will create, configure, and deploy a minimal Node.js web app to the App Engine standard environment.

  1. Open the Google Cloud console and start a new project (or select an existing one).
  2. Create a file named app.js with the following content: const http = require('http'); http.createServer((req, res) => { res.write('Hello from App Engine'); res.end(); }).listen(process.env.PORT || 8080);
  3. Create a package.json file that specifies `
  • You'll see The Cloud console shows the new version of your service as ‘Serving’, and visiting the provided URL displays “Hello from App Engine”.
  • Takeaway App Engine lets you move an exported app onto infrastructure you control without managing servers.

2.4 Run your exported app in a GitHub Codespace

Open the repository saved by the builder on GitHub and launch a cloud‑based workspace that runs your exported project independently.

Do this first Determine if your app should be exported

Open the exported project in a cloud‑based workspace you control

macOS
git clone https://github.com/<you>/<your-app>.git
cd <your-app>
npm install
npm run dev
TryOpen the GitHub repo your-name/task-tracker in a new Codespace and start the app’s development server (e.g., run `npm install` then `npm start`).

Paste this into the claude-code input field on the main screen and press Run. Watch for the provisioning messages—once the Codespace is ready, the terminal will show the server URL you can open in a browser.

  1. Open the repository saved by the builder on github.com (e.g., your-name/task-tracker)
  2. Click the green Code button → select Codespaces → choose Create codespace on main and wait for the environment to initialise
  3. Observe the code editor that appears with your app’s files listed in the left pane
  4. If a Preview panel does not appear automatically, click the Open in Browser pop‑up to view the running app at its own web address
  • You'll see Your app loads at a web address that belongs to your own GitHub repository
  • Takeaway A Codespace provides an independent, browser‑based environment where the code runs under your ownership
  • Check Which button on the repository page starts a codespace, and what appears once the environment has initialised?

2.5 Make a code change using Claude Code

Use Claude Code inside your workspace to describe a feature change; review the proposed edits before they are applied.

Do this first Run your exported app in a GitHub Codespace

Add a new feature to your app with Claude Code

TryAdd a priority level (low / medium / high) to each task, show it as a coloured badge, and let me set it when I add a task.

Paste the sentence into the Claude Code input box in your workspace Terminal, then wait for Claude to display the list of files it will modify. Verify the proposed changes before clicking Approve; watch that only the intended task‑related files are listed.

  1. Open the Terminal in your workspace and start Claude Code
  2. Tell Claude Code what you want to add, e.g., a priority badge for tasks
  3. Read the proposed file changes and confirm the edit
  4. Refresh the Preview to observe the new feature
  5. If the result is incorrect, explain the issue in plain words and repeat
  • You'll see The app displays the added priority badge after you approve the file edits and refresh the preview
  • Takeaway Describe a single feature, review exact file edits, and see the change instantly
  • Check What do you read and approve before Claude Code's change reaches your app, and how do you then see it?

3You’ll know it worked 16 checkable outcomes in this chapter

  • A screenshot showing the live app UI and a web address ending in `github.dev`
  • Running the boilerplate builds without errors and shows basic screens (onboarding, paywall)
  • Icons meet App Store size specs and appear correctly in the app preview
  • You have at least three concrete problem statements that you can articulate to a friend who agrees they’re genuine annoyances
  • The plan matches your intended outcome and the resulting code passes a manual sanity check
  • Analytics show an increase in referral visits from the social platform after each post
  • You can log into developer.apple.com and see your account listed as a member with access to Certificates, Identifiers & Profiles
  • Project inspector shows the intended bundle identifier (e.g., com.yourname.app) and Deployment Target matches your desired iOS version

16 outcomes in all — one per recipe below.

4FAQ, Tips & How-to 18

one problem, one solution, one action
How-to Everyone

Need a dev environment without installing anything

A ready-made development environment is provisioned automatically, letting you run the app without local installs

Lesson → AI-generated
How-to Everyone

Can't verify your app runs

The app automatically launches in an embedded preview, giving you a live web address that proves it runs from your copy

Lesson → AI-generated
How-to Everyone

A visible `github.dev` URL proves the app is running from your own repository, not the builder platform

Lesson → AI-generated
How-to Everyone

Not sure which app idea will sell

Using an ASO tool you filter keywords by popularity and difficulty, then examine competitors to spot underserved niches. This ensures the app targets a real user problem that people are already searching for.

Starter Story Build ↗ Lesson → AI-generated
How-to Everyone

I need a ready‑to‑run iOS project skeleton

Creating a reusable SDK/boilerplate with onboarding, paywalls, settings, and payment handling lets you skip repetitive setup and focus on unique features, dramatically speeding up development.

Starter Story Build ↗ Lesson → AI-generated
How-to Claude Everyone

Need UI screens from a feature list

A concise prompt describing the main feature set (camera, gallery, identification, history) lets Claude generate fully compiling code that integrates into your boilerplate, turning ideas into functional UI instantly.

Starter Story Build ↗ Lesson → AI-generated
How-to Everyone

I need ready‑to‑use app icons and matching colors

Prompting an image model (Gemini) with the app description yields suitable accent colors and icon concepts, which you then refine in Figma. This cuts design time while keeping branding relevant to the keyword.

Starter Story Build ↗ Lesson → AI-generated
How-to Everyone

App store listing missing keywords and copy

Using Claude to draft titles, subtitles, keyword lists, and a natural‑language description packed with validated keywords ensures the app is discoverable. Manually inserting the primary keyword into the name/subtitle maximizes search relevance.

Starter Story Build ↗ Lesson → AI-generated
How-to Everyone

Seeing everyday annoyances but no app concepts

Identify daily frustrations by tracking moments from waking to sleeping where you think, “I wish there was an app for this.” Those moments are signals of real user needs because you already experience the pain. Turning them into app concepts ensures market relevance.

Chris Raroque ↗ Lesson → AI-generated
How-to Everyone

I want an AI MVP but can’t code

Platforms like Anything.com, Lovable, Bolt, or VZero abstract away deployment, hosting, and API management, letting beginners focus on prompting an AI to generate UI and logic. This reduces the learning curve dramatically while still delivering a usable product.

Chris Raroque ↗ Lesson → AI-generated
How-to Everyone

Want to double‑check AI‑generated code before it runs

Using plan mode (Shift + Tab in Claude Code or similar) makes the AI output a step‑by‑step execution plan before it writes code. Reviewing this plan catches logical errors early and prevents unwanted changes, especially for beginners.

Chris Raroque ↗ Lesson → AI-generated
How-to Everyone

Can't tell if new signups stay

Integrating PostHog early lets you measure key metrics like signup conversion and week‑one retention, which are critical for product decisions. Seeing a low retention rate quickly signals onboarding or value gaps before you waste resources.

Chris Raroque ↗ Lesson → AI-generated
How-to Everyone

Want early adopters by sharing your build publicly

Documenting your build process on platforms like TikTok, Instagram, or Twitter creates organic interest. Sharing struggles, wins, and behind‑the‑scenes content builds credibility and attracts early adopters who feel invested in your journey.

Chris Raroque ↗ Lesson → AI-generated
How-to Everyone

Built an iOS app and need to get it on the store

After building your app in Xcode you must upload the compiled bundle to Apple’s web portal App Store Connect. There you fill out metadata and request review, which makes the app available on the App Store once approved.

CodeWithChris ↗ Lesson → AI-generated
How-to Everyone

Want to submit apps to the App Store

Only members of Apple’s paid Developer Program can access App Store Connect and submit apps. Enrolling costs $100 per year and provides unlimited app submissions while the membership remains active.

CodeWithChris ↗ Lesson → AI-generated
How-to Everyone

Need to try your iPhone app but have no device

The iOS Simulator bundled with Xcode mimics an iPhone or iPad on your Mac, letting you run and interact with your app instantly, which is essential before submitting to the App Store.

CodeWithChris ↗ Lesson → AI-generated
How-to Everyone

Need the right bundle ID and iOS version for your app

The bundle identifier uniquely identifies your app on the App Store, while setting a minimum iOS version ensures compatibility. These settings are edited in Xcode’s project editor before archiving.

CodeWithChris ↗ Lesson → AI-generated
How-to Everyone

Want to see UI changes as you type

The canvas preview in Xcode renders SwiftUI code live, allowing you to verify UI layout before running the simulator, speeding up development and reducing iteration time.

CodeWithChris ↗ Lesson → AI-generated

The same set on /recipes, filtered by tool and role.

5See also

💬 Discuss this chapter

Ask, share, or report — over on the Heidelberg AI community forum.