ChatKit-class UI · Any model · Backend included

    A chat UI that runs on any model

    Rich, interactive, production-ready. Drop in one script. Bring any provider — OpenAI, Anthropic, Gemini, or your own.

    Free forever tier · No card · Live in five minutes

    Connecting…

    That widget is live. Type in it.

    Integration

    One script. That’s the whole integration.

    Before </body>
    <script
      id="chatbot-main-script"
      embedToken="Enter Embed Token here"
      src="https://chatbot.gtwy.ai/chatbot.js"
      threadId="Enter Thread ID here"
      bridgeName="agent slug name"
      theme="dark/light"
    ></script>

    Rich by default

    It renders more than text.

    This is the same live widget as above — ask it any of these directly.

    Connecting…

    Any model

    Switch providers without touching your integration.

    Price changes

    A provider repricing overnight is a config change, not a migration.

    Rate limits

    Spread load across providers instead of queueing behind one.

    Outages

    Fallback keeps the conversation alive when a provider doesn’t.

    Someone else’s roadmap

    Model deprecations stop being your emergency.

    Backend included

    A UI kit gives you the frontend. This gives you the whole thing.

    Memory and conversation stateKnowledge retrievalTool callsRouting and fallbackGuardrailsObservability

    Mobile

    Native, not a web view in a box.

    iOS, Android and React Native SDKs. The category is web-first; your users are not.

    • Native SDKs — Swift and Kotlin, not a wrapped iframe
    • React Native — one component, both platforms
    React Native
    import { GtwyChat } from "@gtwy/chat-react-native";
    
    <GtwyChat
      botId="bot_4127"
      token={embedToken}
      theme={{ primary: "#0E9F6E" }}
    />

    Questions

    Including the one you were going to ask.

    Which models can I use?

    Anthropic, OpenAI, Google, Meta, Mistral and others, selected per bot with one fallback — or your own provider key. Switching is a setting, not an integration change.

    How is this different from OpenAI’s ChatKit?

    Fairly: ChatKit is a good UI toolkit, and it does support custom server integration against other agent services — so this isn’t a question of possible versus impossible. It’s a question of cost. The quick ChatKit path keeps you inside one vendor’s ecosystem; the flexible path means converting between its event format and your framework’s, which is a lot of boilerplate to write and then maintain.

    The other difference is scope. ChatKit solves the frontend. Backend complexity, knowledge management and vendor choice stay yours. GTWY gives you the easy path without the lock-in, and the backend with it.

    Can I customise how it looks?

    Colours, typography, radius, position, launcher icon and custom CSS. On paid plans there is no GTWY branding anywhere in the widget.

    Does it work on mobile?

    Native iOS and Android SDKs and a React Native component — not a web view in a box.

    Can it access my documents?

    Yes. Connect a knowledge base and retrieval happens inside the conversation, citing what it used.

    Is it really free?

    There is a free forever tier with no card. The exact conversation limit and what happens when you reach it are on the pricing page.

    Put it on your site.

    Free forever tier, no card. One script and it’s live.