I built a demo clothing store that runs entirely inside Telegram.
In Uzbekistan, a lot of small shops sell through Telegram channels: post a photo, then answer "price?" and "do you have size M?" in DMs all day. Orders get lost. This turns the channel into a real store — no website, nothing to install.
For customers:
• Browse products, filter by size and color, see what's in stock
• Add to cart and check out in under a minute (delivery or pickup)
• The bot confirms the order and sends status updates
For the owner:
• New orders arrive in Telegram with an "Open order" button
• One tap to move an order: processing → shipped → done
• Edit products, prices and stock right from the phone
• Pro plan adds analytics: revenue, orders, top products
The part I like most: channel posts become products automatically. Post a photo with a price as usual, and an AI parser turns it into a product card. Ads, giveaways and posts without a price are skipped, and new items stay hidden until the owner reviews them.
Under the hood: Next.js, TypeScript, PostgreSQL, Telegram Mini Apps, Groq for parsing posts. Every visitor gets their own copy of the store that resets every night, so feel free to place orders and edit anything.
The demo is in Russian and Uzbek only, because it was built for local shops first. But all the text lives in separate language files, so adding English or any other language is a small, separate task, not a rebuild. If you run a shop outside Uzbekistan and want something like this, I can set it up in your language.
This is a demo of the general functionality — every client gets their own design and feature set.
Crenaly: a booking SaaS I designed and built end-to-end for appointment-based businesses in France: salons, barbers, beauty and wellness.
The core idea: when a client cancels, the freed slot is automatically offered to clients who asked for an earlier time. The first to accept gets it, their appointment moves in place, and the slot they leave is offered next. No double booking, no manual work.
Around it, a full product:
→ Branded booking page for each business, embeddable on their own site
→ Mobile-first booking flow, no account needed
→ Agenda, client management, team roles & permissions
→ Verified reviews, analytics, Stripe billing
Automatically offering a cancelled slot to the next client is such a practical feature for salons and barbers. Designing and building Crenaly end to end must have made those flows much tighter.
Adloom is an AI-powered canvas that turns one product photo into a complete ad campaign. This shot shows the core canvas: product photo → cutout → generated scene → finished feed ad, with variations, all on one surface.
The problem
Product teams and small brands need a steady stream of fresh ad creative across many sizes. Traditional production is slow and expensive, with shoots, retouching, resizing and approvals. AI image tools help, but they scatter results across chats and tabs, so nobody can tell which prompt made which image.
The solution
A node-based canvas where every generation is connected to its source and its prompt:
Upload anything: a phone photo is enough, and the background is removed automatically
Describe, don’t design: type a scene and choose the model and aspect ratio from a minimal two-line prompt bar
See the whole chain: inputs, prompts and outputs are linked, so iterating is just editing a step
Pick the winner: 4 variations per run, compared side by side
Stay on brand: the brand kit is applied automatically
Ship everywhere: export a full pack (feed 4:5 and 1:1, story, banner, profile, splash) in one click
Impact (target metrics)
Campaign assets in minutes, not days
~80% lower creative production cost
10× more variations for A/B testing
Design decisions
Light dotted canvas, so images stay the focus
One dark prompt bar as the single place to act
Lime accent used only for primary actions and selection
DM Sans throughout for a clean, product-grade feel
My role: product design, UX flow, UI and visual system.