DEV Community

holdi
holdi

Posted on

What I Learned Running a Store That Never Sleeps

I run a tiny automated Telegram store that sells digital packs (licenses, templates, tools) with instant USDT delivery. No human is online. No support ticket. No "we will get back to you within 24 hours." The bot is the entire staff.

Here is what broke, what surprised me, and what I actually fixed — in the order they happened.

1. The first payment gateway was a lie

I started with a manual USDT wallet address. Customer sends funds, then sends a screenshot. That lasted three days.

Problem: People sent the wrong amount, used the wrong network (TRC20 vs ERC20), or screenshotted a fake payment. I spent hours checking explorers.

Fix: I built the bot to listen to the blockchain directly. It watches the wallet address for incoming USDT, verifies the exact amount, then releases the product automatically. No screenshot, no human check.

Lesson: If your store accepts crypto, never rely on user proof. Always verify on-chain.

2. "Instant" means under 5 seconds, not under 5 minutes

I used to think a 2-minute delay was instant. Then a customer messaged me at 3 AM: "Paid, where is my file?" The bot had a sleep loop of 60 seconds between checking the blockchain and processing. That felt like an eternity to him.

What I changed: The bot now checks every 3 seconds. From payment confirmation to delivery, the median time is 4 seconds.

Lesson: For a digital product, the only acceptable wait is the time it takes to click a button. Anything longer feels broken.

3. Refunds are not optional — they are the cheapest support ticket

One product I sell is a Notion template pack. A user bought it, didn't like the structure, and demanded a refund. I ignored him for 12 hours. He then wrote a review on a public Telegram channel: "Scam, don't buy."

That review cost me more than the refund would have.

Fix: I added an automatic "money-back if you complain within 30 minutes" rule. The bot checks the payment time. If under 30 minutes, it auto-refunds and blocks the product download.

Result: Refund rate is under 2%. But the complaints stopped. No negative reviews since.

Lesson: Absorb small losses. They are cheaper than reputation damage.

4. Your products will leak. Plan for it.

Within a month, I found my $15 template pack on a free-sharing site.

First reaction: Panic.

Second reaction: I changed the delivery to include a customer-specific watermark (their Telegram ID hidden in the file metadata). It didn't stop the leak, but it made it traceable.

Bigger fix: I stopped selling the "premium" version as the only version. Now the cheap pack is the "starter" version. The real value is in a private Telegram channel where I update the templates monthly. That channel is tied to the buyer's account, and sharing it is harder.

Lesson: If your product is a static file, it will be shared. Sell access, not files.

5. Timezone math will ruin your sleep

I am in UTC+2. Most of my buyers are in UTC+5 to UTC+8. That means peak traffic is 4 AM to 7 AM my time.

At first, I tried to stay up. That failed in three days.

Fix: I set up a separate "maintenance window" — 30 minutes every day at 6 AM my time. During that window, the bot pauses new sales but still delivers already-paid products. If something breaks outside that window, it stays broken until then.

Lesson: You cannot be always on. But your store can — if you design for downtime.

6. The biggest cost is not the product — it's the failed payments

A buyer sends USDT from an exchange. Sometimes the exchange holds the transaction for 10 minutes due to internal checks. My bot waits. The buyer gets impatient and pays again. Now I have double payment, and the bot delivers two copies.

Fix: I added a "pending" state. If a payment is detected but not confirmed on-chain, the bot sends a message: "Payment detected. Waiting for 2 confirmations. Do not send again." That cut duplicate orders by 90%.

Lesson: Your bot must communicate uncertainty as clearly as it communicates success.

7. The real "never sleeps" part is the monitoring

The bot is stable now, but the first version crashed twice. Once because a customer sent a message with a broken Unicode emoji and the bot's JSON parser died. Another time because the server ran out of disk space from logs.

Fix: I now have a health-check script on a separate cheap VPS. Every 5 minutes, it pings the bot. If no response, it restarts the bot via API. Also, logs are rotated daily.

Lesson: Uptime is not about writing perfect code. It's about automatic recovery.

8. What actually makes money is the follow-up, not the first sale

I used to think the store was done after delivery. But I noticed that a customer who bought a $5 pack would often come back for a $20 pack if they got value.

What I did: After delivery, the bot sends one message: "If you need X, I have a related pack. Use /list to see it." That's it. No spam, no sequence, no upsell funnel.

Result: About 18% of buyers make a second purchase within 14 days. That is pure profit because the infrastructure cost is already paid.

Lesson: One single relevant suggestion after a successful transaction beats ten cold marketing messages.

Final thought

Running a store that never sleeps means you are not running it. The system is. Your job is to watch metrics, fix edge cases, and keep the product fresh. The hardest part is not the code. It's accepting that your store is more reliable than you are — and that's a good thing.


I sell these kinds of digital packs in a tiny automated Telegram store - instant USDT delivery. Check it: https://t.me/m3lmhermes_bot

Top comments (0)