PUD's product doctrine in one line: we don't bring users to a website — we bring a unit of value to where a billion people already talk about money. Every product decision is tested against that.
A Telegram-native product is not a web app opened from Telegram. It is a product whose every surface — onboarding, action, notification, sharing, support — happens inside the idioms Telegram users already know: chats, bots, Mini Apps, inline cards. The moment a flow leaves Telegram, we have failed that flow.
The PUD bot answers /rate (today's NAV), /mint, /melt (the melt test for any amount + year), and speaks first only when the user asked it to. A bot message is the product's push channel — earned, never spammed.
Mint, redeem, and the basket composer are one Mini App. It opens in under a second — static assets, no framework, exactly like this site — because a Mini App competes with the speed of a chat, not with other websites.
Every result — a composed basket, a melt-test verdict, today's NAV — renders as a card built for forwarding. The unit spreads the way memes spread, or it doesn't spread.
This website wears Telegram's brand colors. The Mini App goes one step further: it wears the user's own theme. Telegram hands every Mini App its live palette — we use it, always.
| Rule | Concretely |
|---|---|
| ALWAYS Adopt themeParams | Colors come from Telegram.WebApp.themeParams (bg, text, hint, link, button) — the user's night theme, tinted theme, whatever they chose. Our palette is only the fallback for browsers. |
| ALWAYS Native chrome | MainButton for the primary action (Mint / Redeem), BackButton for navigation, HapticFeedback on confirm — never custom floating buttons duplicating what Telegram provides. |
| ALWAYS TON Connect only | Login is the Telegram identity plus TON Connect (Telegram Wallet / Tonkeeper). No email, no password, no seed phrase ever displayed inside the app. |
| ALWAYS Chat-length copy | Every sentence must survive being read in a chat bubble. Numbers first, verdicts second, theory linked, never inlined. |
| NEVER Leave Telegram | No external links in core flows. Docs live in the Mini App. The only sanctioned exits: the block explorer for a transaction, and this site as the browser mirror. |
| NEVER Login walls / cookie banners / popups | The app works read-only with zero permissions (NAV, composer, melt test). Connection is requested at the moment of the first mint, not at the door. |
| NEVER Push without a pull | The bot messages a user only about their own positions (mint confirmed, NAV milestone they subscribed to) — one /quiet command away from silence, forever. |
Telegram blue (#0088cc light / #2ea6ff night) is the only accent. Data colors on charts stay semantic and theme-stable. The пуд identity carries the metrology voice; the chrome carries Telegram's.
14px cards, 10px controls, pill chips — the geometry of a chat bubble, not of a terminal. Sharp corners survive only inside charts.
Telegram users live in night mode. Every screen ships in both palettes (Telegram day / Telegram night) and is reviewed in night mode first.
Perceived speed is the aesthetic. Transitions under 150ms, no loading theatre — a Mini App that feels slower than scrolling a chat is dead.
| Loop | Mechanic |
|---|---|
| The melt card | "Your $10,000 from 2015 buys $7,842 of groceries now" — a one-tap forwardable card ending in the bot's handle. The product's core insight, weaponized as a shareable. |
| Group baskets | A group chat composes a basket together; the bot posts the monthly scoreboard: whose unit melted least. Friendly shame as retention. |
| The daily drip | A channel posts the NAV once a day — one number, one sentence. Subscribing is the softest possible conversion. |
| Inline mode | Type @pud_bot 100 USD 2015 in any chat → melt-test card inline, without opening anything. |
The test for every feature: can it be explained in one chat message, used in two taps, and forwarded in one?