BrokenGPT is a full-stack AI chat platform where every conversation feels like a distinct persona, not a generic assistant. Users chat with curated AI characters or build their own with custom instructions, tone, and behaviour.
I designed, built, and deployed the entire product solo — from UI design through backend architecture to payment integration.
The Problem
Most AI chat products feel identical regardless of context. There's no personality, no consistency, and no sense of talking to "someone." Users get the same flat assistant experience whether they want a therapist, a coding mentor, or a creative writing partner.
I set out to build a platform where the model stays in character across an entire conversation, and where users have full control over who they're talking to.
What I Built
Predefined characters — ready-made roles (psychiatrist, librarian, friend, and more) so users can start chatting immediately with consistent personalities. Each character has its own system prompt, tone, and behavioural rules baked in.
Custom character creation — users define their own character name, system prompt, and conversational style. Full control over persona behaviour, giving the platform flexibility beyond the curated set.
Token-based credit system — new accounts receive a starting balance of free tokens for immediate use. When credits run low, users purchase more through PayPal. This model keeps hosting and inference costs sustainable while giving users a frictionless onboarding experience.
PayPal payment integration — seamless credit top-ups after the free allocation runs out. The billing flow handles pack selection, payment processing, and real-time balance updates.
BrokenGPT chat UI — conversations scoped to the active character
Architecture
The React client communicates with a Flask backend that manages authentication, sessions, character data, and credit balances. Model requests route to AWS Bedrock for generation, with each character's system prompt injected per-conversation to maintain persona consistency across the entire thread. PayPal handles purchase webhooks and balance reconciliation.
Frontend: React, TypeScript, Vite, and Tailwind CSS for a fast, responsive client. Component-driven architecture with clean navigation between character personas.
Backend: Python and Flask orchestrate all server-side logic: auth, billing, character CRUD, and the Bedrock inference pipeline.
Payments: PayPal API integration for credit pack purchases, webhook handling, and transaction verification.
BrokenGPT credits and PayPal billing flow
Key Decisions
AWS Bedrock over OpenAI — lower per-token cost at scale, native AWS integration, and no vendor lock-in to a single model provider.
Credit system over subscriptions — pay-as-you-go aligns cost with actual usage. Users aren't paying for capacity they don't use, and it reduces churn compared to monthly billing for a chat product.
Character-scoped conversations — each chat thread is isolated to its character context. Switching characters starts a fresh thread with the correct system prompt, preventing persona bleed.
Results
Shipped a production-ready AI chat platform with multi-persona support, real-time billing, and a clean user experience. The entire product — design, frontend, backend, payments, and deployment — was built solo over 6 months.