How text-to-meme matching works
TextToMeme matches your line to a meme layout with an ordered list of keyword and pattern rules — not an AI model. This page is the whole system, published. If your line picks a layout, one of the rules below fired, and the tool tells you which.
The rule table, in order
Rules are checked top to bottom; the first match wins. Order matters — a line about money and a deadline is a disaster story before it is a finance joke.
| # | Pattern your line contains | Layout picked | Why |
|---|---|---|---|
| 1 | “unpopular opinion”, “hot take”, “change my mind”, “fight me” | Change My Mind | A confident claim that invites argument belongs on the sign. |
| 2 | “should I”, “can't decide”, “dilemma”, “either way” | Two Buttons | A stuck choice, one tempting option per button. |
| 3 | “vs”, “versus”, “prefer”, “rather than”, “instead of”, “better than” | Two-panel preference | Two options compared: rejected on top, preferred below. A “vs” inside the line also splits the line into the two panels automatically. |
| 4 | fire, burning, chaos, disaster, meltdown, crashing, deadline, falling apart | This Is Fine | A catastrophe being calmly ignored is this format's entire job. |
| 5 | finally, nailed, passed, won, got the job, finished, first try | Success Kid | An achievement, celebrated with a small fist pump. |
| 6 | invest, stock, crypto, money, profit, buy, sell, price, salary | Stonks | Financial genius — real or deeply questionable — gets the chart treatment. |
| 7 | distracted, procrastinating, shiny, notification, new app/game/show | Distracted Boyfriend | Your line becomes the current thing; your second line becomes the distraction. |
| 8 | shocked, surprised, turns out, plot twist, “who could have…” | Surprised Pikachu | A predictable action meets its obvious consequence. |
| 9 | Nothing matched | Classic top / bottom | First line is the setup, second line is the punchline — the oldest format still works. |
How your text fills the layout
Once a layout is picked, your words are mapped into its caption zones by fixed rules: a comparison line is split at “vs”; in the three-label layout your first line is the current commitment and your second line is the shiny distraction, with “Me” in the middle; a Stonks match joins both lines into a single label. Every slot stays editable after the match, so the auto-fill is a starting draft, never a lock-in.
Rendering is equally literal: the chosen layout — original colour blocks and an emoji character, drawn fresh on a canvas — is painted, caption text is wrapped and shrunk until it fits its zone, and the result is exported as a PNG. No server is involved at any step.
Why rules instead of an AI model?
Three reasons. Predictability: the same line always picks the same layout, so behaviour can be documented — this page is the documentation. Privacy: rules run in your browser, so drafts, rants and unreleased product names are never uploaded. Speed: there is no API round-trip; the meme re-renders on every keystroke. The trade-off is nuance — a sarcastic line with no trigger words falls back to the classic layout — and that is why the manual layout menu is always visible next to Auto.
Try the rules yourself in the text to meme generator, or see them fire on real sentences in the examples gallery.