Skip to content

Known Limitations

Capabilities and constraints to be aware of in the current Draftbit release

These are the constraints we hear about most often. Many of them are temporary and being actively worked on — check What’s New for the latest.

  • A project can hold several kinds of app: a Mobile App for iOS and Android (Expo and React Native), a Web App (React), a Website (Astro), an API Backend, and a Supabase Backend. A Mobile App can also be published to the web.
  • Desktop-native apps (macOS, Windows, Linux) aren’t supported.
  • The Builder UI itself is supported in modern Chromium browsers and Firefox. Safari and embedded webviews may work but are not officially supported.
  • You can import an existing JavaScript or TypeScript app from a GitHub repository or a zip file, and you can import apps from Draftbit Classic (v1). See Importing from GitHub and Importing an existing app.
  • Expo mobile apps, Vite web apps, Astro sites, and Hono APIs get the full builder. Other JavaScript frameworks, such as Next.js, and Node.js backends, such as Express, import with your setup preserved and a reduced feature set. Native iOS and Android, Flutter, and other non-JavaScript projects can’t be imported.
  • The Code Editor supports JavaScript, TypeScript, JSX, JSON, and Markdown. Other languages (PHP, Python, C#, native iOS/Android source, etc.) aren’t recognized for autocomplete or linting.
  • The Code Editor needs the Standard plan or above. See Plans and pricing.
  • The default agents are Claude Code (Anthropic) and Codex (OpenAI). Google Gemini is on the roadmap.
  • On the Free plan, threads that use Draftbit credits run Codex with OpenAI models other than GPT-6 Astra. Claude Code, GPT-6 Astra, and other models need a paid plan when they use credits. On any plan, you can use them through your own Claude or ChatGPT subscription or an API key that supports them. If a Free plan thread already uses Claude Code or GPT-6 Astra with credits, Draftbit asks you to upgrade, continue with your Claude or ChatGPT subscription, or start a new Codex thread.
  • If you connect your own provider keys, model availability follows what your account allows on that provider — Draftbit doesn’t impose a separate model gate.
  • When you use your own API key or subscription, your provider’s usage limits, rate limits, model availability, and authentication rules still apply.
  • Your plan sets how many agents can run at the same time across your workspace: one on Free and Standard, up to five on Pro, and no limit on Enterprise. Agents that use your own API key or subscription count toward this limit too. A new app’s first build doesn’t count toward the limit, so you can chat in another thread while it runs. If you send a message in another thread while the limit is reached, Draftbit queues it in that thread and starts it automatically when the running agent finishes (select Start now if it doesn’t), and offers an upgrade to run agents in parallel.
  • Most credits expire one year after they’re added to your account, and the credits that expire soonest are spent first. Credits for importing a Draftbit Classic app expire 72 hours after the import. See Credits for full rules.
  • One-click iOS and Android publishing requires complete credentials in the Publishing configuration. Without them you can still export your code and publish manually.
  • Custom domains for web publishing are supported, but your DNS provider must let you add the CNAME (or ALIAS, for a root domain) and TXT records Draftbit shows you. Some registrars restrict this on entry-level plans.
  • Native iOS and Android previews need a new native preview build when you add, remove, or change packages that include native code.
  • Apple and Google still control app review, policy decisions, account requirements, tester setup, and public release timing.
  • Sensitive values in Settings are intended for build-time configuration and server-side tooling. They aren’t bundled into your app’s code by default, but they can still be extracted from the final app bundle, so keep private keys on a backend. See Visibility.
  • Use plain text EXPO_PUBLIC_ variables only for values that are safe to include in the app bundle.
  • MCP integrations are tools for the agent while it builds. Your published app can’t call them.
  • REST and GraphQL endpoints that are Runtime Ready can be called from your app code with draftbitApi.call. Only endpoints that return JSON qualify, and GraphQL subscriptions aren’t supported. See REST and GraphQL APIs.
  • In a Mobile App, Web App, or Website, header values are part of your app’s code, so anyone with the app can read them. Draftbit keeps secret keys out: an endpoint whose header holds one stays Builder only. Call those services from an API Backend instead.
  • MCP, REST, GraphQL, Supabase, Canva, and publishing integrations can fail when the upstream service is down, credentials expire, required permissions are missing, or the external API changes.

Imported apps can include legacy variables, REST services, theme structures, or signing assumptions from the original project. Draftbit exposes tools for managing these pieces, but complex apps may need manual cleanup before previewing or publishing reliably.

  • Real-time collaboration shows live presence avatars in the top bar, but multi-user editing of the same screen at the same time can produce conflicts. We try to surface them clearly when they happen — when in doubt, save your changes first and reload.

If you hit something that feels like a missing feature rather than a bug, the fastest path is the in‑app support chat (Get Help in the top bar) or the Roadmap, where you can upvote items so we know what to prioritize.