AI Girlfriend Coach Testing daily
Home / Testing Diary
Testing Diary

Why Most Companion Chatbots Feel the Same at First

Ranji Mercado Researched & written by Ranji Mercado · The Coach, aigirlfriend.coach Tap for more +Tap to close ×

Ranji Mercado · content writer & data researcher

I run every page on this site the same way: experience first, write second. I subscribe with my own money, live in each app, log the dates, prices and screenshots, and only then write. Nothing here is a rewrite of someone else's article or a press kit.

Every subscription paid myselfDates, screenshots, receiptsAffiliate links never change verdicts
More about me and how I test →
Field notes · published August 24, 2026 · tested on my own paid accounts

Somewhere around the fifth platform, I started noticing that my first thought on opening a new one was basically “I’ve seen this before.” A gallery of attractive characters. A Google sign-in. Pick someone, start chatting, get detailed and slightly flirty responses, hit a paywall, subscribe, and meet the images, credits, and customization on the other side. The loop repeated so reliably that I began to wonder how different these platforms really were. Then I spent real time in them, and especially real money, and the differences became impossible to miss. Maybe the first ten minutes just aren’t enough to judge these services. This page is the case for that.

๐Ÿงช 10 apps tested๐Ÿ’ณ 9 paid plans๐Ÿ” One very familiar signup๐Ÿ““ My Testing Journal

The homepages started looking familiar

Candy set the template for me: a homepage built like social media, with stories up top, a reels-style feed, and characters everywhere you look. Then I opened Nectar and my actual note says it looked similar to Candy: lots of girls right away, the same sensual feeling. DreamGF felt familiar again, like Candy and Nectar mixed with some of the minimalism of Chai or Replika. GirlfriendGPT: same vibe once more, a wall of characters with an even more sensual presentation. After enough of these, I could recognize the type of interface before I’d sent a single message. Not every app fits the mold, and that’s worth saying early: Replika, Character.AI, Kindroid, and Chai never gave me that same girlfriend-marketplace feeling. But the marketplace look is common enough that it reads like the category’s default skin.

Character library homepage screenshot
SpicyChat’s signed-out homepage: a wall of faces and a character counter in the hundreds of thousands. Swap the logo and this could be four other apps on my roster.

A lot of them start with the same basic routine

The onboarding became repetitive enough to write from memory: visit the site, browse or try to browse, click a character, get asked to create an account, sign in with Google, sometimes give a name, a gender, a few preferences, choose or create a character, start chatting. Candy, Nomi, Kindroid, Nectar, DreamGF, and GirlfriendGPT all ran variations of it. After doing this six or seven times, signup itself stopped telling me anything about a platform. The interesting differences only ever showed up after onboarding was behind me.

By app number five, I could predict the signup screen before it loaded.

Even the characters can start looking familiar

Especially on the platforms that lead with big libraries, I kept meeting the same cast: realistic attractive women, anime characters, and the standard girlfriend archetypes, the ex, the roommate, the innocent shy one, the dominant one, the childhood friend, plus the scenario characters built around a setup rather than a person. Some platforms overwhelm you with thousands of these; others hand you a blank slate and ask you to build someone yourself. That split turned out to matter more than I expected, because browsing someone else’s character and building your own are completely different experiences. For me, the “meeting someone” feeling always beat starting from nothing, which is part of why the library-first apps hooked me faster even when they were shallower underneath.

The first replies often follow the same pattern too

This one came up constantly in my notes. Across Nectar, Kindroid, Character.AI, Chai, GirlfriendGPT, and more, the first replies share a structure: detailed responses that aren’t just dialogue but actions, facial expressions, thoughts, little italicized descriptions of what’s happening in the scene. The first time you see it, it’s impressive. The sixth time, it’s a genre convention. After enough platforms, “detailed responses” stopped being able to impress me on its own, because apps that looked very different on the surface were producing almost identically structured conversations.

Character.AI chat screenshot from my testing
Character.AI’s Sara: dialogue wrapped in italic narration about what she’s doing and feeling. Read one first reply in this category and you’ve read most of them.

Flirting can feel predictable in the beginning

Depending on the platform and character, casual conversation turns flirty fast: pet names appear, the conversation gets steered toward romance, and on the sensual platforms the direction is obvious from message one, sometimes escalating to outright sexual almost immediately. Candy was naturally flirty even when I wasn’t trying. On DreamGF, Mariel brought up our first kiss while I was deliberately keeping things wholesome, shortly before the paywall arrived. And SpicyChat had every character calling me Honey before I had even created an account. Early flirting is the category’s handshake, and that’s exactly why it tells you almost nothing about whether one platform is better than another.

Candy AI chat screenshot from my testing
Yuna flirting by default from message one. Charming, and nearly identical in rhythm across half my roster.
Mariel was asking about our first kiss. The paywall arrived first.

Then comes the paywall

The other reason they blur together: the free experience follows one script. Chat, get interested, locked, upgrade. Candy gave me about 5 messages. Nectar, about 11. Chai, about 11. GirlfriendGPT, about 10. Kindroid, around 5 in my initial testing. DreamGF let the conversation progress and then locked it. It became almost predictable: the free tiers seem designed to give you just enough interaction to make you curious about continuing, and not one message more. The counterexamples matter, though: Character.AI, Nomi, and SpicyChat let me chat far more freely before asking for anything. Every wall placement, and what each one costs to pass, is in my post on how these apps are priced.

Paying is where some of them finally start feeling different

Then I started paying for them, and suddenly I could see what each platform actually prioritized. Candy is a social, visual experience: images, video, tokens, and relationship progression. Nectar is a writing machine with dials: customizable model settings, different models, a credit-heavy system. Kindroid is about character building, detailed roleplay, and personality consistency. Replika is one ongoing relationship: an avatar, memories, a diary, a relationship type. Chai is radically simpler: pick a character, chat, play the scenario, move on. SpicyChat is NSFW roleplay first, characters and scenarios built for explicit conversation. That’s the moment the products stop looking like interchangeable versions of the same thing, and it only happens after the subscribe button.

Subscription payment screenshot from my testing
The moment the sameness ends: $14.95 to SpicyChat, on my own card as always. Paying is where the platforms finally start answering differently.
Then I started paying, and the twins turned out to be strangers.

The biggest difference wasn’t the feature list

Here’s the trap with comparing these apps on paper: most of them can honestly claim the same checklist. Chat, images, memory, customization, characters, roleplay. Side by side, the feature lists still look like near-clones. The real differences are in how those features behave. Memory: Replika’s version, woven into one continuing relationship, is not the same experience as memory anywhere else. Images: Candy integrating an iced-latte selfie into the exact scene we were in is not the same experience as GirlfriendGPT generating an animated image for a realistic character. Customization: Replika asking me to build an avatar before anything else feels nothing like Candy letting me pick Yuna and just start talking. Same feature category, completely different product. The checkbox tells you a feature exists; only using it tells you what it is.

Chat roster screenshot from my testing
My SpicyChat week by message counts. Where the messages actually went turned out to be the only feature list that mattered.

Personality takes longer than a few messages to show

At first, everything reads as “another detailed chatbot.” The separation happens later. On Kindroid, the nerdy character didn’t abandon her personality the moment I flirted; she stayed herself. On Character.AI, the characters didn’t simply agree with everything I said, which most of the category does by default. On Chai, Lydia kept talking and behaving like the cowgirl she was written to be, scene after scene. And Nomi showed me the opposite problem: coming back to the conversation, I was still the one doing all the driving. None of that is visible in five opening messages. It’s the difference between a character and a character sheet, and it takes time to surface.

Chai chat screenshot from my testing
Chai’s Sophia agreeing with me instantly, a personality that never survived contact. Differences only show when a character has to hold her shape.

How they handle intimacy is also very different

Early on, several of these apps just look “flirty.” Stay longer and the approaches split completely. Replika was very restricted, wholesome to a fault for what I wanted to test. Some Nectar characters could become extremely aggressive. DreamGF is far more explicit visually. GirlfriendGPT could stay wholesome for a surprisingly long while before turning spicier. And SpicyChat had the most interesting behavior of all: some characters didn’t like being rushed, while taking things slowly sometimes ended with the character initiating. That’s a spectrum of philosophies, and it’s a lot more nuanced than the NSFW yes/no column a comparison table would give you.

Image generation screenshot, explicit content blurred
Leah’s shower scene, blurred: SpicyChat renders the scene itself, where competitors send solo selfies or fade to black. Intimacy handling is where the category splits widest.

Some are built for a relationship, others feel more like a story

This might be the most interesting difference I’ve found. Replika is built around developing one continuing character and one continuing relationship; everything feeds that. Character.AI feels almost like watching an anime or a series where you control one character’s lines. Chai is scenario theater: I played through Venus’s ex-girlfriend arc, got her to forgive me, and then felt almost done with that character, ready to pick another story. Candy and GirlfriendGPT sit somewhere in between: part chatting, part dating, part character selection, part roleplay. None of this shows up on a homepage. It’s a difference in what the product thinks it’s for, and you only feel it after living in each one.

I stopped judging them by the first ten messages

All of this changed how I test. Early on, I was forming opinions from the homepage, the character options, the first conversation, how detailed the replies were. That list turned out to measure the genre, not the app. Now I pay attention to different questions: Does the character still feel interesting later? Does she remember anything? Does her personality hold? Does she initiate? What happens when I say something unexpected? Does the relationship actually progress? Do the images match what’s happening? And the simplest one: do I want to come back tomorrow? That shift, judging at message 50 instead of message 5, is the spine of everything I’ve learned from this testing, and the questions themselves became my working definition of what makes a companion chatbot actually good. Both exist because the first impressions kept lying to me in the same charming way.

Kindroid chat screenshot from my testing
Jane, the barista I almost dismissed on day one, now my daily routine. Message 50 knew things message 10 didn’t.

So, are they actually all the same?

No. But I completely understand why they can look that way. From the outside, the loop really is identical: character gallery, attractive character, chat, flirt, paywall, Premium. From the inside, the things that separate them are conversation style, personality, memory, relationship progression, roleplay, restrictions, visuals, initiative, and those differences simply take longer to appear than the similarities do. The products themselves, side by side with real spend and honest takes, are on my homepage comparison.

The more platforms I tested, the more similar they looked. The longer I actually used them, the less similar they became.
Keep reading

The differences have receipts.

Every app in this post has its own living review with dates, screenshots, and my actual spend, and the side-by-side comparison of all of them is on my homepage. The habits this testing left me with are in my 14 lessons.

More from my testing journal