<?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: david</title>
    <description>The latest articles on DEV Community by david (@david_off).</description>
    <link>https://dev.to/david_off</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.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3802463%2F8cf1d090-26c0-471d-a84c-aab82f05aee2.png</url>
      <title>DEV Community: david</title>
      <link>https://dev.to/david_off</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/david_off"/>
    <language>en</language>
    <item>
      <title>I Built a Side Project That Works in 4 Languages — Here's What I Learned</title>
      <dc:creator>david</dc:creator>
      <pubDate>Mon, 02 Mar 2026 21:36:11 +0000</pubDate>
      <link>https://dev.to/david_off/i-built-a-side-project-that-works-in-4-languages-heres-what-i-learned-2ff5</link>
      <guid>https://dev.to/david_off/i-built-a-side-project-that-works-in-4-languages-heres-what-i-learned-2ff5</guid>
      <description>&lt;p&gt;When I started building k4pi, I thought the hardest part would be the AI. Spoiler: it wasn't.&lt;/p&gt;

&lt;p&gt;The hardest part was realizing that "marketplace" means completely different things depending on where your user lives.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Accidental Multilingual Product
&lt;/h2&gt;

&lt;p&gt;I didn't plan to support four languages. I planned to build a Telegram bot for buying and selling stuff — simple, useful, done. But Telegram users don't care about your roadmap. They come from everywhere: Russia, India, Latin America, the US, Europe. Within the first few weeks of testing, I got messages in Russian, English, Spanish, and Hindi. So I had a choice: ignore them, or adapt.&lt;/p&gt;

&lt;p&gt;I adapted. And that decision turned into one of the most educational rabbit holes I've ever fallen into.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://t.me/k4pi_bot" rel="noopener noreferrer"&gt;k4pi (@k4pi_bot)&lt;/a&gt; is an AI-powered marketplace bot that runs entirely inside Telegram. No app to download, no website to register on. You post what you're selling, the AI categorizes it, filters inappropriate content, indexes it for search — and buyers find it instantly. The whole thing is powered by vector search and image recognition. But none of that matters if the bot can't understand what language someone is speaking.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Technical Side of i18n (It's Not Just Translation)
&lt;/h2&gt;

&lt;p&gt;Let me be honest: the first version of multilingual support was embarrassing. I used a dictionary of hardcoded strings, ran them through a translation service, and called it done. It worked for about five minutes.&lt;/p&gt;

&lt;p&gt;The problem with translation-first thinking is that languages aren't just different words — they're different sentence structures. Russian is heavily inflected, which means the same word changes form depending on grammatical case. "Buy" becomes "купить", "купил", "куплю", "купленный" — and if you're searching for products, you want to match all of them. This is why I ended up integrating a morphological analyzer (pymorphy3) specifically for Russian-language search. Without it, searching "телефон" wouldn't find listings that said "телефона" or "телефоны".&lt;/p&gt;

&lt;p&gt;Hindi has a similar issue with Devanagari script — compound words and morphological complexity that naive string matching completely misses. Spanish is more forgiving by comparison, but compound nouns and regional vocabulary still trip up basic search.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The real lesson:&lt;/strong&gt; don't translate your product. &lt;em&gt;Localize&lt;/em&gt; it. These are fundamentally different things.&lt;/p&gt;

&lt;p&gt;For auto-detecting language, I ended up using a combination of Telegram's built-in &lt;code&gt;language_code&lt;/code&gt; from the user object and runtime detection on message content. The Telegram language code is a starting point, but it's unreliable — plenty of Russian speakers have their Telegram set to English because they learned the interface that way. Actual message content detection (even something lightweight) is more accurate.&lt;/p&gt;




&lt;h2&gt;
  
  
  Cultural Differences I Did Not Expect
&lt;/h2&gt;

&lt;p&gt;This is the part nobody writes about in i18n guides.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Russian-speaking markets:&lt;/strong&gt; Sellers here are incredibly detail-oriented in their listings. You get precise measurements, condition grades, original packaging details. They also expect negotiation — a fixed price is almost an insult. The bot's "make an offer" flow gets used constantly in Russian-language listings.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;English-speaking markets:&lt;/strong&gt; Much more terse. "iPhone 13, good condition, $400, DM me." That's it. They trust the platform more than the seller's description. They want the AI to surface trust signals — photo quality, listing completeness, seller history.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Spanish-speaking markets (Latin America specifically):&lt;/strong&gt; Wildly more social. The buying process often starts with "Hola!" before any negotiation. Users wanted to chat &lt;em&gt;around&lt;/em&gt; the product before committing. I had to rethink how the conversation flow worked — the bot felt too transactional and cold for this audience initially.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Hindi-speaking markets:&lt;/strong&gt; Price sensitivity is extremely high, and category specificity matters enormously. A "clothing" category doesn't cut it — you need "sarees", "kurtas", "western wear" as distinct buckets. I ended up expanding the taxonomy significantly after looking at what people were actually posting.&lt;/p&gt;

&lt;p&gt;None of this was in any i18n guide I read. You learn it by watching real users interact with your product.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Search Problem Across Languages
&lt;/h2&gt;

&lt;p&gt;Building a search engine that works across four languages is genuinely hard. I'm using Elasticsearch with language-specific analyzers, plus vector search via Qdrant for semantic similarity (powered by a SigLIP model that I quantized down to about 270MB so it actually fits in RAM on a budget VPS).&lt;/p&gt;

&lt;p&gt;The vector search is the great equalizer — because image embeddings don't care what language the listing is in. A picture of a couch is a picture of a couch whether the description is in Russian or Spanish. So cross-language product discovery actually works pretty well at the image level.&lt;/p&gt;

&lt;p&gt;But text search? That's where things get messy. You need separate analyzers, separate tokenization logic, and ideally morphological analysis for heavily inflected languages. The Elasticsearch &lt;code&gt;language&lt;/code&gt; analyzer helps, but it doesn't solve everything. For Russian I added pymorphy3 for lemmatization. For other languages I'm leaning more heavily on the vector search as a fallback.&lt;/p&gt;

&lt;p&gt;The architecture that ended up working:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;BM25 text search with language-specific analyzers (precision)&lt;/li&gt;
&lt;li&gt;Vector search on text embeddings (recall and cross-language)&lt;/li&gt;
&lt;li&gt;Image vector search (language-agnostic discovery)&lt;/li&gt;
&lt;li&gt;Reciprocal rank fusion to combine all three&lt;/li&gt;
&lt;/ol&gt;




&lt;h2&gt;
  
  
  What Actually Surprised Me
&lt;/h2&gt;

&lt;p&gt;I expected the AI part to be the challenge. Instead, the hardest problems were:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Date formats.&lt;/strong&gt; Trivial, right? Not when you have "expired listing" logic. Russia uses DD.MM.YYYY. The US uses MM/DD/YYYY. India often uses DD-MM-YYYY. One wrong assumption and your "remove old listings" job starts deleting active ones.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Currency and price display.&lt;/strong&gt; I show prices as entered by sellers. No conversion, no formatting assumption. The bot just stores the raw string. This sounds lazy but it's actually correct — a seller knows their market, and converting currencies adds a trust problem you don't need.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Moderation across cultures.&lt;/strong&gt; My NSFW filter is trained on mostly English-language concepts of what's inappropriate. It over-flags certain cultural items that are completely normal in some markets. This is an ongoing calibration problem I haven't fully solved.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. Right-to-left languages.&lt;/strong&gt; I don't support Arabic or Hebrew yet, but when I looked at Telegram's user base, I realized this will come up eventually. The entire UI layout assumption changes. Adding this to the backlog now before it becomes painful later.&lt;/p&gt;




&lt;h2&gt;
  
  
  The #BuildInPublic Part
&lt;/h2&gt;

&lt;p&gt;I've shipped a lot of side projects that nobody used. This one got real users, in multiple countries, doing real transactions, within the first month. I attribute that almost entirely to not limiting the language from day one.&lt;/p&gt;

&lt;p&gt;The mistake I see a lot of indie hackers make: building for "English speakers" and planning to add languages "later". Later never comes. The code debt accumulates. The translation architecture you hacked in at the start becomes a prison.&lt;/p&gt;

&lt;p&gt;My advice: decide on your language strategy before you write your first string. Use a proper i18n library. Store user language preference in your DB from day one. Even if you only support one language initially, the scaffolding matters.&lt;/p&gt;

&lt;p&gt;And if your product is on Telegram — which has 950 million monthly active users spread across the entire globe — defaulting to English-only is leaving most of your potential users on the table.&lt;/p&gt;




&lt;h2&gt;
  
  
  Try It Now
&lt;/h2&gt;

&lt;p&gt;If you want to see what a multilingual AI marketplace feels like in practice, the bot is live and free to use.&lt;/p&gt;

&lt;p&gt;Find something to sell. Take a photo. Send it to &lt;a href="https://t.me/k4pi_bot" rel="noopener noreferrer"&gt;@k4pi_bot&lt;/a&gt;. The AI will handle categorization, description, and indexing. Buyers can search by text or photo. Everything runs inside Telegram — no account, no app, no friction.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://t.me/k4pi_bot" rel="noopener noreferrer"&gt;Open @k4pi_bot on Telegram&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I'm building this in the open, learning as I go. If you've solved any of these multilingual problems in your own projects, I'd genuinely love to hear how. Drop a comment below.&lt;/p&gt;

</description>
      <category>programming</category>
      <category>startup</category>
      <category>sideprojects</category>
      <category>beginners</category>
    </item>
    <item>
      <title>How I Added AI Image Search to a Marketplace Bot (And Why It Changed Everything)</title>
      <dc:creator>david</dc:creator>
      <pubDate>Mon, 02 Mar 2026 21:35:52 +0000</pubDate>
      <link>https://dev.to/david_off/how-i-added-ai-image-search-to-a-marketplace-bot-and-why-it-changed-everything-3jfc</link>
      <guid>https://dev.to/david_off/how-i-added-ai-image-search-to-a-marketplace-bot-and-why-it-changed-everything-3jfc</guid>
      <description>&lt;p&gt;My users were frustrated. Not in a "this feature doesn't work" way — in a "I literally don't know what words to use" way.&lt;/p&gt;

&lt;p&gt;A buyer would join the marketplace bot, open the search, and just... stare. They knew exactly what they wanted. They'd seen it at a friend's place, or spotted it in a photo. But they couldn't find the right keywords. "Decorative thing"? "Round wooden thingy"? Every search returned garbage, or nothing.&lt;/p&gt;

&lt;p&gt;That's the moment I decided to build image search. And it turned out to be one of the best decisions I made for the project.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Problem With Text Search in Marketplaces
&lt;/h2&gt;

&lt;p&gt;Text search is great when users know the vocabulary. But in a secondhand or small-seller marketplace, that's rarely the case.&lt;/p&gt;

&lt;p&gt;Sellers list things the way they think about them. Buyers search the way they think about them. Those two vocabularies almost never match perfectly. A seller lists "mid-century credenza." A buyer searches "brown dresser with legs." Even with fuzzy matching and morphological analysis (which I'd already implemented), there's a fundamental gap.&lt;/p&gt;

&lt;p&gt;Photos don't have this problem. A photo of a thing &lt;em&gt;is&lt;/em&gt; the thing. No translation required.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I Actually Built
&lt;/h2&gt;

&lt;p&gt;The core idea is simple: when a buyer sends a photo of something they're looking for, the bot finds visually similar products from existing listings.&lt;/p&gt;

&lt;p&gt;Here's the user flow:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Buyer taps "Search by photo" in the bot&lt;/li&gt;
&lt;li&gt;Sends any image — a photo they took, a screenshot, something from Pinterest&lt;/li&gt;
&lt;li&gt;Bot processes it, searches the catalog, and returns the most visually similar listings&lt;/li&gt;
&lt;li&gt;Buyer taps through results, finds what they want, contacts the seller&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;That's it. No keywords. No categories to navigate. Just "I want something that looks like this."&lt;/p&gt;

&lt;h2&gt;
  
  
  The Tech Stack (Without Getting Too Deep)
&lt;/h2&gt;

&lt;p&gt;I'm using &lt;strong&gt;SigLIP&lt;/strong&gt; — a vision-language model from Google — to convert images into vector embeddings. Think of an embedding as a list of ~1000 numbers that mathematically describes what an image looks like. Images of similar things have similar numbers.&lt;/p&gt;

&lt;p&gt;When a seller uploads a product photo, the bot:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Runs the image through SigLIP's vision encoder&lt;/li&gt;
&lt;li&gt;Gets back a 1152-dimensional vector&lt;/li&gt;
&lt;li&gt;Stores it in &lt;strong&gt;Qdrant&lt;/strong&gt; (a vector database built for this exact use case)&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;When a buyer searches by photo:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Same process — their photo becomes a vector&lt;/li&gt;
&lt;li&gt;Qdrant finds the closest stored vectors using cosine similarity&lt;/li&gt;
&lt;li&gt;Returns the matching products, ranked by visual similarity&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The whole thing runs in under a second on modest hardware (I'm on a $9/month VPS with 2 CPUs and ~6GB RAM, for context).&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="c1"&gt;# Simplified version of what happens during search
&lt;/span&gt;&lt;span class="k"&gt;async&lt;/span&gt; &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;search_by_image&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;photo_bytes&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;bytes&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;-&amp;gt;&lt;/span&gt; &lt;span class="nb"&gt;list&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;Product&lt;/span&gt;&lt;span class="p"&gt;]:&lt;/span&gt;
    &lt;span class="c1"&gt;# Convert photo to embedding
&lt;/span&gt;    &lt;span class="n"&gt;embedding&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="n"&gt;image_service&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;encode_image&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;photo_bytes&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

    &lt;span class="c1"&gt;# Find similar products in vector DB
&lt;/span&gt;    &lt;span class="n"&gt;results&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="n"&gt;qdrant_client&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;search&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
        &lt;span class="n"&gt;collection_name&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;products&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="n"&gt;query_vector&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;embedding&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="n"&gt;limit&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="n"&gt;score_threshold&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mf"&gt;0.75&lt;/span&gt;  &lt;span class="c1"&gt;# Only return reasonably similar results
&lt;/span&gt;    &lt;span class="p"&gt;)&lt;/span&gt;

    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nf"&gt;get_product&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;r&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nb"&gt;id&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;r&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;results&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  The "Why Does This Actually Work?" Part
&lt;/h2&gt;

&lt;p&gt;SigLIP was trained on billions of image-text pairs. It learned to understand visual concepts at a semantic level — not just pixel patterns. So when you send a photo of a red ceramic vase, it doesn't just find other red ceramic vases by color matching. It finds things that are conceptually &lt;em&gt;vases&lt;/em&gt;, even if they're different colors, shapes, or photographed differently.&lt;/p&gt;

&lt;p&gt;This matters a lot in marketplace context. Sellers photograph products in wildly different conditions — different lighting, backgrounds, angles. Classic image similarity algorithms would fail here. Semantic embeddings handle it gracefully.&lt;/p&gt;

&lt;p&gt;I also use the &lt;strong&gt;text encoder&lt;/strong&gt; from SigLIP to power the regular text search and NSFW filtering — same model, different head. That's why you can search with text like "vintage lamp" and get reasonable results even if sellers didn't use those exact words.&lt;/p&gt;

&lt;h2&gt;
  
  
  The ONNX Optimization That Made It Viable
&lt;/h2&gt;

&lt;p&gt;Running SigLIP in production on a budget VPS isn't trivial. The original PyTorch models are huge and slow.&lt;/p&gt;

&lt;p&gt;I converted both the vision and text encoders to ONNX format, then applied INT8 dynamic quantization using &lt;code&gt;onnxruntime&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;onnxruntime.quantization&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;quantize_dynamic&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;QuantType&lt;/span&gt;

&lt;span class="nf"&gt;quantize_dynamic&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="n"&gt;model_input&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;vision_model.onnx&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;model_output&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;vision_int8.onnx&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;weight_type&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;QuantType&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;QUInt8&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;op_types_to_quantize&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;MatMul&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Gemm&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Results:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Vision model: &lt;strong&gt;355MB → 97MB&lt;/strong&gt; (3.7x smaller)&lt;/li&gt;
&lt;li&gt;Text model: &lt;strong&gt;421MB → 176MB&lt;/strong&gt; (2.4x smaller)&lt;/li&gt;
&lt;li&gt;Combined RAM savings: &lt;strong&gt;~500MB&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Speed: &lt;strong&gt;2x faster&lt;/strong&gt; inference&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I benchmarked the quantized models against FP32 on 30 real product photos. NSFW detection agreement was 100%. Category classification agreement was 93% (2 edge cases where "cookware" was classified as "furniture" — acceptable). The quality loss is negligible, the resource savings are massive.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Changed After Launching This
&lt;/h2&gt;

&lt;p&gt;The honest answer: engagement patterns shifted noticeably.&lt;/p&gt;

&lt;p&gt;Before image search, most users who couldn't find what they wanted just left. The bounce rate on the search flow was high. After launch, those same users had a fallback that actually worked.&lt;/p&gt;

&lt;p&gt;More interestingly, image search surfaced &lt;em&gt;unexpected&lt;/em&gt; results that users liked. Someone uploads a photo of a specific chair style and discovers a similar piece they'd never have thought to search for. That serendipity is hard to manufacture with keyword search.&lt;/p&gt;

&lt;p&gt;Sellers noticed too. Products that previously had no text description beyond "nice chair" started getting found because the visual index doesn't care about descriptions.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Stuff That Was Harder Than Expected
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Thumbnail generation.&lt;/strong&gt; When displaying search results, I needed consistent thumbnails. Sellers upload wildly different aspect ratios. Getting crops that looked good without cutting off the actual product required more iteration than I expected.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Score thresholds.&lt;/strong&gt; Setting the right similarity threshold is more art than science. Too strict, and you return zero results even when good matches exist. Too loose, and you show obviously irrelevant products. I ended up at 0.75 cosine similarity after testing with real data, but it took a while to get there.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Cold start.&lt;/strong&gt; Image search is useless with an empty product catalog. The feature became genuinely useful only after a few hundred indexed products. Building the feature before having that scale required some faith.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;NSFW filtering.&lt;/strong&gt; You can't let users upload anything and have it shown to others unfiltered. I repurpose the same SigLIP text encoder to score images against safe/unsafe text prompts before indexing. It's not perfect, but it catches obvious cases without a separate moderation model.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Stack, For the Curious
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Bot framework:&lt;/strong&gt; aiogram 3 (Python async Telegram bot framework)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Database:&lt;/strong&gt; PostgreSQL + SQLAlchemy 2&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Vector search:&lt;/strong&gt; Qdrant&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;ML model:&lt;/strong&gt; SigLIP Base (Google), converted to ONNX + INT8 quantized&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Text search:&lt;/strong&gt; Elasticsearch with morphological analysis&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Caching:&lt;/strong&gt; Redis&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Infra:&lt;/strong&gt; Single VPS, Docker Compose&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The entire thing — bot, databases, ML inference, search — runs on that $9/month server. Cost efficiency matters when you're building something that hasn't proven revenue yet.&lt;/p&gt;

&lt;h2&gt;
  
  
  Try It Now
&lt;/h2&gt;

&lt;p&gt;If you want to see this in action, the bot is live at &lt;a href="https://t.me/k4pi_bot" rel="noopener noreferrer"&gt;@k4pi_bot&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;k4pi&lt;/strong&gt; is an AI-powered marketplace bot for buying and selling on Telegram. You can list products, browse listings, and — yes — search by photo. Send it a picture of something you're looking for and watch it find visually similar items from real listings.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://t.me/k4pi_bot" rel="noopener noreferrer"&gt;Open @k4pi_bot on Telegram&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;It's free to use. If you're building something similar or just curious how the pieces fit together, feel free to reach out. The architecture decisions here weren't obvious at the start, and I'm happy to share what I learned.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Building in public. The mistakes were educational.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>python</category>
      <category>telegram</category>
      <category>machinelearning</category>
    </item>
    <item>
      <title>Why I Stopped Using Facebook Marketplace and Built a Telegram Bot Instead</title>
      <dc:creator>david</dc:creator>
      <pubDate>Mon, 02 Mar 2026 21:29:24 +0000</pubDate>
      <link>https://dev.to/david_off/why-i-stopped-using-facebook-marketplace-and-built-a-telegram-bot-instead-4a00</link>
      <guid>https://dev.to/david_off/why-i-stopped-using-facebook-marketplace-and-built-a-telegram-bot-instead-4a00</guid>
      <description>&lt;p&gt;Every time I listed something on Facebook Marketplace, I felt a quiet dread.&lt;/p&gt;

&lt;p&gt;Not because selling is hard. But because the experience was designed to frustrate you into giving up.&lt;/p&gt;

&lt;p&gt;You upload your item. You wait. Someone messages you — "is this still available?" You say yes. They ghost you. Another person asks the same question. You answer. Ghost. Repeat until you either sell the item or lose the will to live.&lt;/p&gt;

&lt;p&gt;I've been through this cycle with OLX, Facebook Marketplace, and Craigslist. Three platforms. Three different UX disasters. One shared soul-crushing experience.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Problem With Existing Classifieds
&lt;/h2&gt;

&lt;p&gt;Let me be specific, because vague complaints help no one.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Facebook Marketplace&lt;/strong&gt; makes you fight the algorithm. Your listing competes with thousands of others, and unless you boost it with money, it sinks. The messaging system is buried inside Facebook's notification hell. Half the time, legitimate buyers get filtered into a "Message Requests" folder they never check. And if you're in a country where Facebook's infrastructure is spotty? Forget it.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;OLX&lt;/strong&gt; (huge in Eastern Europe, Central Asia, and South Asia) is better in some ways — but it's stuck in 2015. The app is bloated. The search is mediocre. Spam listings are everywhere. And the "premium" placement fees feel predatory when you're just trying to sell a used blender.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Craigslist&lt;/strong&gt; is a different problem entirely. It works fine if you're in the US and don't mind interacting with a website that looks like it was designed during the Clinton administration. But outside North America, it's basically a ghost town.&lt;/p&gt;

&lt;p&gt;The core issue with all of them: &lt;strong&gt;they're destinations&lt;/strong&gt;. You have to go to them. Download their app. Create an account. Learn their interface. And your buyers have to do the same.&lt;/p&gt;

&lt;h2&gt;
  
  
  Then I Looked at Where People Actually Were
&lt;/h2&gt;

&lt;p&gt;Here's the thing. In the markets I care about — Central Asia, Eastern Europe, Southeast Asia — people weren't on Craigslist. They were on Telegram.&lt;/p&gt;

&lt;p&gt;Not just chatting. They had Telegram groups for everything. Local buy/sell groups. Neighborhood communities. People posting photos of stuff they wanted to sell directly into group chats. No middleman platform. Just people talking.&lt;/p&gt;

&lt;p&gt;It worked, but it was chaotic. Listings got buried under conversation. There was no search. No structure. No way to filter "show me all furniture in my city."&lt;/p&gt;

&lt;p&gt;I kept thinking: what if you could keep that organic, chat-native feel but add just enough structure to make it actually useful?&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Telegram Is the Right Foundation
&lt;/h2&gt;

&lt;p&gt;Telegram has crossed 900 million monthly active users. In many emerging markets, it's not just a messaging app — it's the internet infrastructure. People use it for news, for community, for commerce.&lt;/p&gt;

&lt;p&gt;More importantly: &lt;strong&gt;everyone already has Telegram&lt;/strong&gt;. No app download required for buyers. No new account to create. If someone wants to buy something from your listing, they message you on the same app they use to talk to their family.&lt;/p&gt;

&lt;p&gt;That frictionlessness is massive. Every extra step in a buyer's journey kills conversions. "Download our app" is a step that kills a lot of conversions.&lt;/p&gt;

&lt;p&gt;Telegram bots make this even more powerful. A bot lives in the app your users already have. It can process photos, handle commands, maintain state, send notifications — all through the chat interface people already know how to use. Mobile-first by default, because Telegram is mobile-first by default.&lt;/p&gt;

&lt;h2&gt;
  
  
  Building the Thing
&lt;/h2&gt;

&lt;p&gt;So I built it. A marketplace bot for Telegram called &lt;strong&gt;k4pi&lt;/strong&gt; (&lt;a href="https://t.me/k4pi_bot" rel="noopener noreferrer"&gt;@k4pi_bot&lt;/a&gt;).&lt;/p&gt;

&lt;p&gt;The stack is Python (aiogram 3), PostgreSQL, Redis, Elasticsearch for text search, and — this is the part I'm most proud of — an AI image understanding layer using SigLIP embeddings. When you upload a photo of an item, the bot automatically categorizes it, checks it for appropriateness, and indexes it for visual search.&lt;/p&gt;

&lt;p&gt;That last part matters more than it sounds. On a mobile-first platform, most listings start with a photo, not a description. Someone snaps a picture of their old guitar and posts it. If your search only works on text, you miss all the listings where people didn't bother writing much. Visual search closes that gap.&lt;/p&gt;

&lt;p&gt;The flow for sellers is dead simple:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Start a conversation with &lt;a href="https://t.me/k4pi_bot" rel="noopener noreferrer"&gt;@k4pi_bot&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Send your photos&lt;/li&gt;
&lt;li&gt;Add a price and brief description&lt;/li&gt;
&lt;li&gt;Your listing is live&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;For buyers, it's equally straightforward. Search by text, browse by category, or just scroll recent listings. Everything happens inside Telegram. No redirects. No external websites.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Actually Works Better
&lt;/h2&gt;

&lt;p&gt;After running this for a while, a few things stand out:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Notifications are natural.&lt;/strong&gt; When someone is interested in your item, you get a Telegram message. Not an email you might ignore. Not a push notification from an app you might have muted. A message in the same thread where your friends are texting you.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Photos work the way you expect.&lt;/strong&gt; Telegram handles image compression and display beautifully. You can send multiple photos, buyers can zoom in, everything just works. Compare this to OLX where uploading multiple photos feels like filing a tax return.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Trust is higher.&lt;/strong&gt; Buyers and sellers can see each other's Telegram profiles. You're not interacting with anonymous usernames — you're interacting with real accounts that have profile pictures, join dates, and mutual contacts if you happen to share groups. That social graph reduces scam anxiety significantly.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Speed is real.&lt;/strong&gt; No page loads. No switching apps. The whole experience lives in one place, and Telegram's infrastructure is genuinely fast even on mediocre mobile connections.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Honest Limitations
&lt;/h2&gt;

&lt;p&gt;I'm not going to pretend this is perfect.&lt;/p&gt;

&lt;p&gt;Telegram bots have interaction limits. You can't, for example, show a beautiful grid layout the way a native app can. Everything is constrained by what the Telegram bot API allows — which is powerful but not infinite.&lt;/p&gt;

&lt;p&gt;Discovery is also a challenge. If buyers don't know &lt;a href="https://t.me/k4pi_bot" rel="noopener noreferrer"&gt;@k4pi_bot&lt;/a&gt; exists, they can't find it by browsing. You still need word of mouth or community sharing to grow. This is different from a marketplace website that gets SEO traffic.&lt;/p&gt;

&lt;p&gt;And Telegram's API has quirks. Building on someone else's platform always means accepting their constraints and occasionally scrambling when something changes.&lt;/p&gt;

&lt;p&gt;But here's my honest assessment: for peer-to-peer selling in markets where Telegram is already dominant, these tradeoffs are worth it. The activation energy for buyers is so low that it compensates for a lot of UI limitations.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Broader Pattern
&lt;/h2&gt;

&lt;p&gt;What I built is one instance of a broader pattern that I think is underexplored.&lt;/p&gt;

&lt;p&gt;A lot of "we need an app for this" problems are actually "we need a bot for this" problems. Especially in markets where smartphone storage is precious and users are selective about which apps they install. Especially when the use case is occasional rather than daily. Especially when your target users are already organized into communities on a messaging platform.&lt;/p&gt;

&lt;p&gt;The Telegram marketplace isn't trying to compete with Amazon. It's trying to serve the guy who wants to sell his old motorcycle to someone in the same city, without either of them downloading a new app, creating a new account, or navigating a platform built for a different market.&lt;/p&gt;

&lt;p&gt;That's a real problem. And a chat-native bot solves it more elegantly than a classifieds website does.&lt;/p&gt;

&lt;h2&gt;
  
  
  Try It Yourself
&lt;/h2&gt;

&lt;p&gt;If you're curious what this looks like in practice — or if you're in a city where the bot is active and want to buy or sell something — the bot is live and free to use.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://t.me/k4pi_bot" rel="noopener noreferrer"&gt;Start a conversation with @k4pi_bot on Telegram&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;If you're a developer thinking about building something similar: the core insight is that Telegram's bot platform is dramatically underutilized for commerce use cases. The infrastructure is solid, the user base is massive in the right markets, and the friction reduction for buyers is a real competitive advantage.&lt;/p&gt;

&lt;p&gt;The classifieds space is fragmented and frustrating almost everywhere outside North America. That's not a complaint — it's an opportunity.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Built with Python, aiogram 3, PostgreSQL, Redis, Elasticsearch, and a lot of curiosity about whether chat-native commerce could actually work. Spoiler: it can.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>telegram</category>
      <category>startup</category>
      <category>marketplace</category>
      <category>beginners</category>
    </item>
    <item>
      <title>Selling Online Without a Website: How Telegram Bots Are Replacing Storefronts</title>
      <dc:creator>david</dc:creator>
      <pubDate>Mon, 02 Mar 2026 21:29:21 +0000</pubDate>
      <link>https://dev.to/david_off/selling-online-without-a-website-how-telegram-bots-are-replacing-storefronts-4j08</link>
      <guid>https://dev.to/david_off/selling-online-without-a-website-how-telegram-bots-are-replacing-storefronts-4j08</guid>
      <description>&lt;p&gt;Picture this: you've spent three months learning a craft — handmade jewelry, maybe, or you've built a small clothing resale business out of your living room. Your products are beautiful. Your prices are fair. But when someone asks, "Do you have a website?" you feel that familiar sting.&lt;/p&gt;

&lt;p&gt;You don't. Because websites cost money you don't have yet.&lt;/p&gt;

&lt;p&gt;This is the reality for tens of millions of small sellers across India, Nigeria, Brazil, Mexico, and dozens of other markets where entrepreneurship is thriving but infrastructure costs are brutal. A Shopify plan starts at $25/month. Add a domain ($12/year), a decent theme ($80 one-time), and suddenly you've spent more on your "store" than you've made in sales. And that's before you learn HTML, configure payments, or figure out why your product images look blurry on mobile.&lt;/p&gt;

&lt;p&gt;There's a better way. And it's already on your phone.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Telegram Makes Sense as a Storefront
&lt;/h2&gt;

&lt;p&gt;Telegram has over 900 million active users. In many emerging markets, it's not just a messaging app — it's infrastructure. People use it for news, communities, customer support, and increasingly, commerce.&lt;/p&gt;

&lt;p&gt;The math is simple:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Option&lt;/th&gt;
&lt;th&gt;Monthly Cost&lt;/th&gt;
&lt;th&gt;Setup Time&lt;/th&gt;
&lt;th&gt;Mobile Experience&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Custom website&lt;/td&gt;
&lt;td&gt;$20–50+&lt;/td&gt;
&lt;td&gt;Weeks&lt;/td&gt;
&lt;td&gt;Needs optimization&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Shopify&lt;/td&gt;
&lt;td&gt;$25–79&lt;/td&gt;
&lt;td&gt;Days&lt;/td&gt;
&lt;td&gt;Good, but not free&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Telegram bot&lt;/td&gt;
&lt;td&gt;$0&lt;/td&gt;
&lt;td&gt;Minutes&lt;/td&gt;
&lt;td&gt;Native&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Zero dollars. Native mobile. Already where your customers are.&lt;/p&gt;

&lt;p&gt;Telegram bots can handle product listings, search, photos, buyer inquiries, and even payment flows — all inside an app your customers already have installed. There's no download friction, no account creation, no credit card required just to browse.&lt;/p&gt;

&lt;h2&gt;
  
  
  What a Telegram Marketplace Bot Actually Does
&lt;/h2&gt;

&lt;p&gt;Forget the mental image of a clunky chatbot that says "I didn't understand that." Modern Telegram marketplace bots are sophisticated tools.&lt;/p&gt;

&lt;p&gt;Here's what a well-built one can do:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;For sellers:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Upload products with photos, descriptions, and prices in under a minute&lt;/li&gt;
&lt;li&gt;Manage inventory from your phone&lt;/li&gt;
&lt;li&gt;Get notified when buyers contact you&lt;/li&gt;
&lt;li&gt;List in multiple categories without technical knowledge&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;For buyers:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Search products by keyword or category&lt;/li&gt;
&lt;li&gt;Browse photo galleries&lt;/li&gt;
&lt;li&gt;Contact sellers directly&lt;/li&gt;
&lt;li&gt;Save favorites and come back later&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The entire storefront lives inside Telegram. No app to download. No website to load. No "mobile version" that's a stripped-down disaster.&lt;/p&gt;

&lt;h2&gt;
  
  
  A Day in the Life of a Telegram Seller
&lt;/h2&gt;

&lt;p&gt;Let me paint the picture concretely.&lt;/p&gt;

&lt;p&gt;Maria sells handmade bags in São Paulo. She used to post on Instagram, manually responding to every DM with price information, availability, and her WhatsApp number. It worked, but it was exhausting — and Instagram's algorithm meant her posts sometimes reached 40 people, sometimes 4,000, with no consistency.&lt;/p&gt;

&lt;p&gt;With a Telegram marketplace bot, Maria's workflow changed:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;She photographs a new bag on her phone&lt;/li&gt;
&lt;li&gt;Opens the bot, types the product name, price, and description&lt;/li&gt;
&lt;li&gt;Uploads the photo — done in 90 seconds&lt;/li&gt;
&lt;li&gt;Buyers can now search for "leather bag" or browse her category and find it&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;When a buyer clicks "Contact Seller," Telegram connects them directly. No phone number exposed publicly. No inbox management nightmare. Just a clean conversation.&lt;/p&gt;

&lt;p&gt;Her cost? Nothing. Her time to set up? Less than 30 minutes.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Hidden Costs of "Going Digital" the Traditional Way
&lt;/h2&gt;

&lt;p&gt;Let's be honest about what building a real e-commerce website actually requires:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Year 1 costs (conservative estimate):&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Domain name: $12–15&lt;/li&gt;
&lt;li&gt;Hosting: $60–120 (budget shared hosting)&lt;/li&gt;
&lt;li&gt;E-commerce plugin or platform: $0–300&lt;/li&gt;
&lt;li&gt;Payment processing setup: time + 2-3% per transaction&lt;/li&gt;
&lt;li&gt;SSL certificate: usually included now, but setup required&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Total: $72–435 before you sell anything&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;And that's if everything goes right. It often doesn't. You'll spend hours on YouTube tutorials, discover your theme breaks on iPhone, realize your payment gateway doesn't work in your country, and eventually pay someone $50/hour to fix it.&lt;/p&gt;

&lt;p&gt;For a seller making $300/month, spending $200 on infrastructure isn't a business decision — it's a gamble.&lt;/p&gt;

&lt;p&gt;Telegram bots flip this entirely. The infrastructure already exists. The users are already there. You're just adding your products to an existing ecosystem.&lt;/p&gt;

&lt;h2&gt;
  
  
  But What About "Looking Professional"?
&lt;/h2&gt;

&lt;p&gt;This is the objection I hear most: "I need a real website to look legitimate."&lt;/p&gt;

&lt;p&gt;Here's the counterpoint: your customers don't care about your CMS. They care about whether your product is real, whether the price is fair, and whether they can trust you.&lt;/p&gt;

&lt;p&gt;A Telegram bot that responds instantly, has clear photos, accurate descriptions, and lets buyers contact you directly is more trustworthy than a half-finished Wix site with stock photos. Friction kills trust. Telegram removes friction.&lt;/p&gt;

&lt;p&gt;In markets like India and Nigeria, Telegram commerce is already mainstream. Sellers with thousands of customers operate entirely through bots and groups. The "you need a website" assumption is a Western, desktop-era idea that doesn't match how most of the world shops on mobile.&lt;/p&gt;

&lt;h2&gt;
  
  
  When a Telegram Bot Isn't Enough
&lt;/h2&gt;

&lt;p&gt;Fair is fair — there are cases where you'll outgrow a bot-first approach:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;You need complex custom logic&lt;/strong&gt; (subscriptions, tiered pricing, loyalty programs)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;You're scaling to a team&lt;/strong&gt; and need inventory management software&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;You want SEO traffic&lt;/strong&gt; from Google searches&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;You're in a regulated industry&lt;/strong&gt; that requires specific compliance documentation&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;But here's the thing: most small sellers aren't there yet. And trying to build for where you want to be in three years, when you can't afford it today, is how businesses die before they start.&lt;/p&gt;

&lt;p&gt;Start where you are. Build revenue. Then invest in infrastructure when the revenue justifies it.&lt;/p&gt;

&lt;h2&gt;
  
  
  The AI Angle: Not All Bots Are Equal
&lt;/h2&gt;

&lt;p&gt;One thing worth understanding: there's a wide spectrum of Telegram marketplace bots.&lt;/p&gt;

&lt;p&gt;The basic ones just forward messages or maintain a static list. More sophisticated ones use AI to power search (understanding what a buyer means even if they type "blak bag" instead of "black bag"), detect duplicate listings, moderate content automatically, and help sellers categorize products correctly.&lt;/p&gt;

&lt;p&gt;AI-powered search matters more than it sounds. A buyer typing "cozy winter jacket" should find your puffer coat even if you listed it as "warm padded outerwear." Semantic search makes this happen. Basic keyword matching doesn't.&lt;/p&gt;

&lt;p&gt;This is the difference between a bot that's a novelty and one that actually drives sales.&lt;/p&gt;

&lt;h2&gt;
  
  
  Try It Now
&lt;/h2&gt;

&lt;p&gt;If you're a seller looking for a zero-cost, mobile-first way to list your products — or a buyer curious what this looks like in practice — you can try &lt;strong&gt;k4pi&lt;/strong&gt; right now.&lt;/p&gt;

&lt;p&gt;k4pi (@k4pi_bot) is an AI-powered Telegram marketplace for buying and selling. It uses semantic search to match buyers with products, handles photo uploads natively, and connects sellers with buyers without either side needing to share personal contact info upfront.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Start here: &lt;a href="https://t.me/k4pi_bot" rel="noopener noreferrer"&gt;https://t.me/k4pi_bot&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Open it in Telegram. No signup. No credit card. Just tap "Start" and see how a modern Telegram storefront works from the buyer side — then consider what it could look like with your products in it.&lt;/p&gt;




&lt;p&gt;The future of commerce in high-mobile, cost-conscious markets isn't a website. It's the apps people already use, made smarter. Telegram bots are already there. The question is whether you are too.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Have you tried selling through Telegram? Drop a comment — I'd love to hear what's worked (and what hasn't) in your market.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ecommerce</category>
      <category>telegram</category>
      <category>entrepreneurship</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Why WhatsApp Groups Are Killing Your Sales — And What We Built Instead</title>
      <dc:creator>david</dc:creator>
      <pubDate>Mon, 02 Mar 2026 21:20:34 +0000</pubDate>
      <link>https://dev.to/david_off/why-whatsapp-groups-are-killing-your-sales-and-what-we-built-instead-212l</link>
      <guid>https://dev.to/david_off/why-whatsapp-groups-are-killing-your-sales-and-what-we-built-instead-212l</guid>
      <description>&lt;p&gt;&lt;em&gt;How a simple Telegram bot is replacing classifieds for thousands of buyers and sellers across Russia, India, and Latin America&lt;/em&gt;&lt;/p&gt;




&lt;p&gt;Every day, millions of people try to sell something online.&lt;/p&gt;

&lt;p&gt;A used phone. A piece of furniture. Handmade goods. A car part. And every day, they face the same frustrating reality: post it in a WhatsApp group, watch it drown under 200 unread messages, and never hear from a single buyer.&lt;/p&gt;

&lt;p&gt;The problem isn't the product. The problem is the platform.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Chaos Inside Every "Buy &amp;amp; Sell" Group
&lt;/h2&gt;

&lt;p&gt;If you've ever been in a local buy/sell WhatsApp or Telegram group, you know exactly what it looks like.&lt;/p&gt;

&lt;p&gt;Someone posts a sofa at 9am. By noon, it's buried under memes, voice messages, and off-topic conversations. A buyer asks "is it still available?" at 6pm — but the seller has already moved on.&lt;/p&gt;

&lt;p&gt;There's no search. No categories. No structure. No way to browse what's actually for sale right now.&lt;/p&gt;

&lt;p&gt;Traditional classifieds like OLX or Craigslist solve the structure problem — but they're desktop-heavy, slow to load on mobile, and frankly, overkill if you just want to sell one item to someone in your city.&lt;/p&gt;

&lt;p&gt;There had to be a better way.&lt;/p&gt;




&lt;h2&gt;
  
  
  What If the Marketplace Lived Inside Your Messenger?
&lt;/h2&gt;

&lt;p&gt;That's the question we started with when we built &lt;strong&gt;k4pi_bot&lt;/strong&gt; — a Telegram bot that turns any chat into a structured marketplace.&lt;/p&gt;

&lt;p&gt;No app to download. No account to create. No complicated forms.&lt;/p&gt;

&lt;p&gt;You open Telegram, find the bot, send a photo and a short description, and your listing is live in seconds. Buyers can browse by category, search by keyword, or filter by location — all without leaving the messenger they already use every day.&lt;/p&gt;

&lt;p&gt;It sounds simple. That's exactly the point.&lt;/p&gt;




&lt;h2&gt;
  
  
  How It Works (In 3 Steps)
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Step 1: Post your listing&lt;/strong&gt;&lt;br&gt;
Send the bot a photo of what you're selling, add a price and short description in your message. That's it. The listing is created and categorized automatically.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 2: Buyers search&lt;/strong&gt;&lt;br&gt;
Any user can simply type what they're looking for — "phone", "furniture", "jacket" — or send a photo of a similar item, and the bot returns matching listings instantly.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 3: Connect directly&lt;/strong&gt;&lt;br&gt;
Buyers message sellers directly in Telegram. No middleman, no commission, no waiting.&lt;/p&gt;

&lt;p&gt;The entire flow takes under 60 seconds from photo to published listing.&lt;/p&gt;




&lt;h2&gt;
  
  
  Why Telegram — Not an App, Not a Website?
&lt;/h2&gt;

&lt;p&gt;We get this question a lot.&lt;/p&gt;

&lt;p&gt;Telegram already has 900 million active users worldwide. In India, it's one of the fastest growing platforms. In Latin America — Brazil, Argentina, Venezuela — Telegram groups are how communities organize, communicate, and yes, do business.&lt;/p&gt;

&lt;p&gt;People don't need to learn a new app. They don't need to remember another password. The marketplace is already in their pocket, inside the app they open 20 times a day.&lt;/p&gt;

&lt;p&gt;That frictionless entry point changes everything. A seller in Mumbai, a buyer in São Paulo, a trader in Moscow — they all already have Telegram. We just gave them a structured place to transact inside it.&lt;/p&gt;




&lt;h2&gt;
  
  
  Built for Multiple Languages, Multiple Markets
&lt;/h2&gt;

&lt;p&gt;One of the core decisions we made early on: this isn't a Russian product, or an Indian product, or a Latin American product.&lt;/p&gt;

&lt;p&gt;It's a product for anyone who sells things and uses Telegram.&lt;/p&gt;

&lt;p&gt;The bot currently supports &lt;strong&gt;Russian, English, Spanish, and Hindi&lt;/strong&gt; — with Portuguese coming soon for the Brazilian market. Language is detected automatically from your Telegram profile, so you never need to configure anything.&lt;/p&gt;

&lt;p&gt;Listings are organized by country, so a buyer in India sees Indian listings by default, while someone in Mexico sees local results — but can expand their search globally with one command.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Numbers (So Far)
&lt;/h2&gt;

&lt;p&gt;We're still early. But the signals are encouraging:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Active listings across &lt;strong&gt;3 countries&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Average time to post a listing: &lt;strong&gt;under 1 minute&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Categories covered: electronics, clothing, furniture, vehicles, services, and more&lt;/li&gt;
&lt;li&gt;Zero commission on any transaction&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The goal isn't to be another giant marketplace. The goal is to be the fastest, most frictionless way to sell something to someone nearby — using a tool you already have.&lt;/p&gt;




&lt;h2&gt;
  
  
  What's Coming Next
&lt;/h2&gt;

&lt;p&gt;We're actively working on:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;AI-powered listing assistant&lt;/strong&gt; — send a photo, and the bot automatically suggests a category, title, and fair price based on similar listings. No typing required.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;In-bot reviews&lt;/strong&gt; — buyers and sellers build reputation over time, making transactions safer for everyone.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Promoted listings&lt;/strong&gt; — sellers who want more visibility can boost their listing for a small fee. This is how the platform becomes sustainable without taking commission.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;WhatsApp version&lt;/strong&gt; — because in some markets, WhatsApp is simply where the people are.&lt;/p&gt;




&lt;h2&gt;
  
  
  Why This Matters
&lt;/h2&gt;

&lt;p&gt;Here's the thing about classifieds that nobody talks about: the market for peer-to-peer selling is enormous, but most of the people doing it are completely underserved by existing platforms.&lt;/p&gt;

&lt;p&gt;OLX is too complicated for a first-time seller in a small Indian city. Facebook Marketplace doesn't work well on low-end Android phones. Craigslist barely exists outside North America.&lt;/p&gt;

&lt;p&gt;Meanwhile, Telegram works everywhere, runs on any phone, and already has the audience.&lt;/p&gt;

&lt;p&gt;We're not trying to replace OLX or Amazon. We're building something for the seller who just wants to get rid of their old laptop before the weekend — and the buyer who lives three streets away.&lt;/p&gt;




&lt;h2&gt;
  
  
  Try It Now
&lt;/h2&gt;

&lt;p&gt;The bot is free to use. No sign-up. No credit card.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;→ &lt;a href="https://t.me/k4pi_bot" rel="noopener noreferrer"&gt;t.me/k4pi_bot&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Send &lt;code&gt;/start&lt;/code&gt; and you'll be posting your first listing within a minute.&lt;/p&gt;

&lt;p&gt;If you're a developer, community manager, or just someone curious about what peer-to-peer commerce inside Telegram looks like — we'd love your feedback. Reply here or reach out directly through the bot.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Built by a small team passionate about making commerce simpler for everyone, everywhere.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>telegram</category>
      <category>startup</category>
      <category>ecommerce</category>
      <category>sideprojects</category>
    </item>
  </channel>
</rss>
