1 # Base44 → Replit
2
3 ## Shim files to read first
4
5 - `src/api/base44Client.js`, `src/api/entities.js`, `src/api/integrations.js`
6 - `src/lib/app-params.js`, `src/lib/AuthContext.jsx`
7 - `src/components/ProtectedRoute.jsx`, `UserNotRegisteredError.jsx`
8 - `vite.config.js`
9
10 Grep `base44.entities.*`, `base44.integrations.Core.*`, `base44.auth.*`
11 to enumerate what's actually used.
12
13 ## Layout
14
15 Flat `src/` at repo root → move under `client/src/`, add `server/` +
16 `shared/` (FULLSTACK_JS layout). Follow the `fullstack-js` skill.
17
18 ## Replacements
19
20 | Base44 | Replit |
21 | --- | --- |
22 | `base44.entities.*` | `javascript_database` + drizzle + `/api/*` routes |
23 | `base44.auth.*` | `javascript_log_in_with_replit` blueprint |
24 | `InvokeLLM` / `GenerateImage` / `ExtractDataFromUploadedFile` | AI Integrations (OpenAI) |
25 | `UploadFile` | `javascript_object_storage` blueprint |
26 | `SendEmail` / `SendSMS` | `integrations` skill, else stub |
27 | `base44.appLogs.*` | delete |
28
29 ## Cleanup
30
31 Drop `@base44/sdk` + `@base44/vite-plugin`. Delete
32 `base44Client.js`, `entities.js`, `integrations.js`, `app-params.js`,
33 `NavigationTracker.jsx`, `VisualEditAgent.jsx`,
34 `UserNotRegisteredError.jsx`.
35
36 ## First message
37
38 One short, non-technical line. Just tell the user a migration is
39 running. No surface enumeration, no plan bullets, no tool / library
40 names. Template:
41
42 ```text
43 I've pulled in your Base44 project — looks like *a small business dashboard for tracking revenue, expenses, and customers*. I'll get it running on Replit; this usually takes a few minutes. Nothing needed from you right now.
44 ```
45
46 If you genuinely need a user-supplied secret later, batch it into
47 one request via the environment-secrets skill.