What the AI can and can't build
What you can ask for in the chat, what needs you to step in, and what isn't possible on Draftship.
What you can ask for in the chat, what needs you to step in, and what isn't possible on Draftship.
Draftship builds web apps with Next.js and TypeScript on its built-in backend. If you ask for something outside that, the AI tells you and offers the closest alternative.
| Ask for | How it works |
|---|---|
| Websites and web apps | Next.js App Router, TypeScript and Tailwind CSS. Responsive on phones, and installable to the home screen |
| Saving data | Database tables with row- and field-level permissions, live updates, trash and backups |
| Accounts and login | Email and password, Google, SSO, invitations, roles and private apps |
| Server code | Backend functions in TypeScript, for example to call another service with a secret key |
| Automation | Workflows with schedules, data changes, sign-ups, webhooks, waits and conditions |
| AI features | Text and JSON generation, image generation and chat agents that can use your app's data |
| Files and email | File uploads and sending email |
| Other services | Google Calendar, Gmail, Sheets and Drive, Slack, Notion, GitHub, HubSpot and Linear, or any API through a backend function |
| Quality | SEO, a security scan and browser tests |
Some steps need you, so the AI asks in the chat with a form or a button:
If you paste a recognized key into a message, Draftship saves it as a secret and removes it from the message before the AI reads it. Keys from less common services may not be recognized, so use the form or add them under Dashboard > Secrets.
| Request | Why | What to do instead |
|---|---|---|
| Python, Ruby, PHP, Java or Go code | Apps run only as TypeScript on Node.js | Write the logic in a backend function, or host that code elsewhere and call its API |
| Native iOS, Android or desktop apps | Draftship builds web apps | A responsive web app that installs to the home screen |
npm packages that run code when installed, like canvas or bcrypt |
Installing never runs package code | The AI uses a plain JavaScript alternative, such as bcryptjs |
| Your own database, Docker or shell commands | Apps run in a locked-down container | Use the built-in database, or call an outside service |
| WebSocket servers or always-on background processes | Apps may stop when idle | Live updates and workflows |
| Schedules more often than every 5 minutes | This is the minimum interval | Run every 5 minutes, or react to data changes |
| Saving files to disk | The app's disk isn't kept for this | File uploads and database tables |
| Heavy processing, such as video editing or training models | Each app has 512 MB of memory and 1 CPU | Call an outside API from a backend function |
After each build, Draftship opens your app in a real browser, at desktop and phone widths. The AI looks at the screenshots and at errors you wouldn't see, like console errors, broken images and pages that scroll sideways. If something's clearly broken, it spends one round fixing it, without undoing anything you explicitly asked for. If that fix doesn't build, your app keeps the version that worked.
It only opens pages, and doesn't click anything, so it can't change your data. When your app is already running, the AI also gets a screenshot with each message, so you can say things like "the button at the top looks wrong."
Libraries change, and an AI's memory goes out of date. Before writing code against a library, like a chart or PDF library, the AI reads its current documentation with Context7. You'll see "Read current docs" in the chat log. This is on for every account, and only sends library names and a short topic, never your request or code. To turn it off, open Settings → AI tools (MCP).
On a large project, the AI reads the files your request needs, instead of every file. It also knows your recent requests. To point it at the right place, name the page or file in your message.
When a package is the better choice, like one for charts, maps or markdown, the AI adds it to your app. It lists packages in draftship/packages.json, and Draftship installs them before the build and pins their versions, so a rebuild or a clone gets the same code. You'll see "Installed recharts" in the chat log.
To keep your app and our servers safe:
canvas, bcrypt or puppeteer, are refused, and the AI uses something else.A package runs inside your app's own container, so it can't reach other apps. It can still see what your app can, like its secrets and its users' data in your backend functions, so only add ones you trust. When you export to GitHub or Vercel, your packages go in package.json as usual.
Attach up to 3 files to a message: PNG, JPEG, GIF or WebP images up to 5 MB, or text files such as CSV, JSON, Markdown and code. The AI can see your images, for example to follow a screenshot of a design. If you ask it to use one in your app, like a logo, it adds it to the app.
Ask about your records in the chat, like "How many bookings came in this week?" or "Delete the test users." The AI reads up to 30 of the newest records from up to 3 tables when your message is about them. These records go to the AI model, so they may include your users' personal data.
When the AI suggests a change, you see a card with exactly what will change. Nothing changes until you choose Apply this change, and a backup is saved first. Each card can change up to 50 records, and deleted records go to the trash.
The AI uses the web in two ways, and the chat shows each one as a step:
The AI reads a page's text, colors, fonts and image addresses, but it doesn't see the page as a picture. It uses what it reads as reference and writes original text, unless you say the site is yours. Links to private addresses, such as localhost or your home network, are refused.
The first prompt for a new app starts with a written plan: goal, roles, pages, data, backend and design, all based on Draftship's stack. The plan also names your project, and your app's address and browser tab use that name. You can watch the AI write the plan in the chat as it works, and on Pro and Pro+ you can also follow its reasoning.
The plan ends with a checklist of tasks. The AI builds from the plan and ticks off each task as it reports finishing it, then the build is checked. Every new project also gets a README.md that explains how to edit and publish it. Later messages go straight to the change you ask for. To plan a later change first, use Plan mode.