<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Liang Tang</title>
    <description>The latest articles on DEV Community by Liang Tang (@lovelettercreator).</description>
    <link>https://dev.to/lovelettercreator</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4148701%2Fbabd7165-914b-4875-a3df-63cecc9f9fc5.jpg</url>
      <title>DEV Community: Liang Tang</title>
      <link>https://dev.to/lovelettercreator</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/lovelettercreator"/>
    <language>en</language>
    <item>
      <title>I built a $2.99 love-letter product that deliberately doesn't use AI</title>
      <dc:creator>Liang Tang</dc:creator>
      <pubDate>Tue, 29 Sep 2026 06:04:06 +0000</pubDate>
      <link>https://dev.to/lovelettercreator/i-built-a-99-love-letter-product-that-deliberately-doesnt-use-ai-5gkc</link>
      <guid>https://dev.to/lovelettercreator/i-built-a-99-love-letter-product-that-deliberately-doesnt-use-ai-5gkc</guid>
      <description>&lt;p&gt;There is no shortage of AI love letter generators. Type a name, pick a mood, get 300 words of statistically probable affection. I built the opposite.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://lovelettercreator.com" rel="noopener noreferrer"&gt;Love Link&lt;/a&gt;&lt;/strong&gt; is a small product with one rule baked in: &lt;strong&gt;it never writes a single word for you.&lt;/strong&gt; You write the letter. It handles the moment — an animated envelope that opens, typewriter-style text, themes, photos, stickers, doodles — and delivers it as a private page your recipient opens via link or QR code. No account needed on their side.&lt;/p&gt;

&lt;p&gt;Writing and previewing is free. Sharing a finished letter costs &lt;strong&gt;$2.99, one time&lt;/strong&gt; (there's an optional $6.99/year subscription for frequent senders). Here's a live demo of what a recipient sees: &lt;a href="https://lovelettercreator.com/p/example" rel="noopener noreferrer"&gt;https://lovelettercreator.com/p/example&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Why refuse the free lunch?
&lt;/h2&gt;

&lt;p&gt;Every competitor in this niche wires an LLM into the text box. It would have taken me an afternoon. I didn't, for three reasons:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. The words are the product.&lt;/strong&gt; A love letter's value is that a specific human wrote it — including the awkward parts. The awkwardness &lt;em&gt;is&lt;/em&gt; the signal. "I don't know how to say this but" outperforms any polished paragraph a model produces, because the recipient knows whose hand was shaking.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Recipients can smell it.&lt;/strong&gt; People are getting very good at detecting generated sentiment. A love letter that reads like it was written by an API call is worse than no letter — it tells someone you couldn't be bothered.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Pricing honesty.&lt;/strong&gt; If the product writes the letter, I'm reselling inference and I have to charge a subscription to cover API costs forever. If the human writes the letter, my marginal cost is hosting a small private page — so I can charge $2.99 once instead of $9.99/month. The no-AI decision is what makes the honest pricing possible.&lt;/p&gt;

&lt;h2&gt;
  
  
  Stack, for the curious
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;FastAPI + Postgres on Vercel serverless&lt;/li&gt;
&lt;li&gt;React 19 + Vite 6 + Tailwind v4, deliberately no React Router — every public page loads through server-side SEO meta injection&lt;/li&gt;
&lt;li&gt;One-time checkout via Dodo Payments; the webhook, the success-page polling, and a reconciliation cron all converge on the same idempotent unlock logic&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The hardest engineering problem wasn't the envelope animation. It was making three payment paths agree with each other under races — solved with row locks and a processed-webhook dedup table, the boring stuff nobody demos.&lt;/p&gt;

&lt;h2&gt;
  
  
  The part nobody warns you about
&lt;/h2&gt;

&lt;p&gt;Saying "no AI" out loud is a positioning choice with real costs. The search volume lives on "AI love letter" queries, and I deliberately don't get to rank for them. Some visitors arrive expecting a generator, find a blank page and a blinking cursor, and leave.&lt;/p&gt;

&lt;p&gt;But the ones who stay are the ones the product is actually for: people who already know what they want to say and just need a better envelope for it.&lt;/p&gt;

&lt;p&gt;If you've been putting off telling someone something, the preview is free and needs no signup: &lt;a href="https://lovelettercreator.com" rel="noopener noreferrer"&gt;https://lovelettercreator.com&lt;/a&gt; — write the words yourself. That's the whole point.&lt;/p&gt;

</description>
      <category>showdev</category>
      <category>webdev</category>
      <category>startup</category>
    </item>
  </channel>
</rss>
