Logo

Its A match

Date Anyone You've Ever Dreamed Of

Its A match

Its A match

Date Anyone You've Ever Dreamed Of

Screenshots

Screenshot 1
Free Trial
AI Chatbot, Dating
Built with
Ruby on RailsRuby on Rails
OpenrouterOpenrouter
PostgresqlPostgresql

It's A Match: A Fantasy Dating App Built Solo with Rails 8, AI

I'm a solo developer who built a full AI-powered dating simulation platform from scratch. Not a toy demo. A production app with real users, real-time chat, AI-generated profiles with consistent faces, and relationship memory that actually works.

Here's what it does and how it's built.

What It Is

It's A Match lets you create a dating persona, describe who you want to meet in plain English, and get AI-generated matches complete with photos, bios, and personalities. You chat with them. They remember you. The relationship evolves over  time with chemistry, trust, and intimacy scores that change based on your conversations. It's fantasy dating as entertainment.

The AI profiles aren't static chatbots. They message you when you come back after being away. They reference things you talked about weeks ago. They have goals and milestones in the relationship. Think dating app meets interactive fiction, powered by LLMs and vector search.

The Stack

Rails 8.0.3 on Ruby 3.4. No React, no Vue, no Next.js. Just Hotwire.

AI Architecture

Profile generation uses RubyLLM through OpenRouter, so I can swap between GPT-4o-mini, Claude, or any other model with a config change. The LLM gets your match criteria as natural language and returns structured JSON with the full profile plus image generation prompts.

Images are generated on RunPod serverless endpoints. 

Chat memory uses RAG with pgvector directly in Postgres.  Every message gets embedded asynchronously via a background job. The AI remembers your inside jokes from three weeks ago without stuffing the entire chat history into the prompt.

Relationship Simulation

Each match tracks four metrics: chemistry, trust, intimacy, and tension, all on 0-100 scales. These shift based on conversation analysis. The relationship progresses through stages (curious, interested, dating, committed) with automatic advancement when thresholds are hit.

There's a full memory system with typed memories: first meetings, shared jokes, vulnerable moments, milestones. High-emotional-weight events get flagged as "defining moments" and surface more frequently in future conversations.

What I Learned Building This

The hardest problems weren't the AI. They were making the AI feel natural. 

Rails 8 with Hotwire is genuinely underrated for this kind of app. Real-time features that would require a separate WebSocket server and state management library in a JS framework just work out of the box with Turbo Streams and Solid Cable.

Try It

It's A Match is in early access at itsamatch.ai. Free to use. I'm building in public and looking for feedback from people who appreciate the craft behind the product.

Related products

View all
Olmi: Plant Care & Watering App

Olmi: Plant Care & Watering App

Keep plants alive. Skip the homework.

3
Mobile App, Health, AI Chatbot
SpeakGator – AI Language Tutor

SpeakGator – AI Language Tutor

Practice speaking with AI. Improve fluency and confidence.

0
Education, AI Chatbot, Language Learning
SpeakGator – AI Language Tutor

SpeakGator – AI Language Tutor

Practice speaking with AI. Get instant feedback and master real-life conversations.

0
Education, AI Chatbot, Language Learning
Coralflavor

Coralflavor

Secure Unfiltered AI Chat

0
Generative AI, AI Chatbot
MirrorFly AI Chatbot Solution

MirrorFly AI Chatbot Solution

Custom AI Chatbot Solution for Website and App

0
AI Chatbot, AI, AI Assistant
ad-vertly

ad-vertly

Advertise at the speed of thought

0
AI, Advertising, AI Chatbot

Launched in Week 12, 2026

See the week
Blackjack Smack

Blackjack Smack

Think you can beat the house? Our dealer thinks otherwise.

1
Mobile App, Gaming
git-lrc

git-lrc

Free, Unlimited AI Code Reviews That Run on Every Commit

3
AI, Code Review, DevTool
OpenYT

OpenYT

Increase Your YouTube Engagement with OpenYT

1
Marketing
E Greet

E Greet

Create beautiful, personalized greeting cards

5
Marketing, Personalization
Glotti

Glotti

AI Speech & Debate Training Partner

0
Productivity
Onda Sfasata

Onda Sfasata

An authentic Italian learning app

0
Education, Language Learning