webjadi.online — A Multi-Tenant Micro-SaaS Website Builder for Small Businesses
webjadi.online is a multi-tenant platform where Indonesian small businesses build their own product catalog website without writing code. One account can hold several websites; each picks one of three templates (Fashion & Boutique, Food & Café, Minimal Catalog), fills in content through a simple editor, and goes live on its own subdomain — storename.webjadi.online — within minutes. Checkout deliberately skips the payment gateway: the buyer taps one button and an order containing the product name, price, and product-page link lands as a WhatsApp chat with the shop owner, so the transaction happens directly with nothing skimmed off it. Every tenant shares a single Next.js 16 codebase: the proxy only reads the hostname and rewrites to the [subdomain] route, while public catalogs are served as ISR pages revalidated on demand the moment an owner edits a product. The business side runs in full too: a one-month free trial with no credit card, subscriptions at Rp150,000/month or Rp1,200,000/year per website through a payment gateway, automatic deactivation when a subscription lapses, visitor statistics that collect no personal data, and a super-admin panel for pricing, users, and transactions.
Visit Website- Platform
- Web — desktop & mobile browser
- Year
- 2026
- Industry
- SaaS / Small Business & Retail
- Role
- Own product, built solo: research & concept, multi-tenant architecture, all three template designs, backend & data security, payment integration, and day-to-day operations

App screenshots
Click an image to zoom — swipe left/right to browse.
Key features
One shop, its own address
Every website lives on its own subdomain — storename.webjadi.online — ready for an Instagram bio, a WhatsApp status, or Google Maps.
Three templates, twelve personalities
Fashion & Boutique, Food & Café, and Minimal Catalog. The Fashion template ships 12 themes that change more than colour — the page composition shifts too: weddings get a lookbook and fitting packages, batik gets the story of the cloth.
Orders land straight in WhatsApp
One tap sends a message with the product name, price, and page link to the owner's number. No cart, no payment gateway, no per-transaction cut.
Run entirely from a phone
Add products, change prices, manage categories and stock, switch themes, edit the shop profile — all from a dashboard designed for small screens.
Photos optimised automatically
A 3–8 MB photo straight from the phone gallery is compressed in the browser (max 1600px), uploaded directly to Cloudinary, and served as WebP/AVIF — so the catalog stays light on a customer's connection.
A free month, then a subscription
A one-month trial with no credit card and no automatic billing, guarded so a single WhatsApp number cannot claim it over and over.
Several websites under one account
Owners with more than one business can add another website and switch between them from the dashboard; each carries its own subscription.
Statistics without personal data
Visits and most-viewed products are recorded with a random cookie — no IP, no identity — and bots are filtered out first.
Super-admin panel
Set the price of each template, watch users and transactions, grant manual trials, and resolve payments left hanging at the gateway.
Technical highlights
The advanced parts behind the scenes that make this system run smoothly.
- A single codebase serves every tenant: the proxy only reads the hostname and rewrites to /[subdomain] — no database query at that layer, so the benefit of ISR survives. A new tenant is one new row, not a new code folder.
- Public catalogs use ISR with on-demand revalidation: shop pages are served statically and instantly, yet refresh the moment the owner edits a product or a price.
- Images never touch the application server — they are compressed in the browser (max 1600px, ~80 quality), uploaded unsigned straight to Cloudinary, and served through f_auto,q_auto transformations.
- Row Level Security is enabled on every table: the public can only read active tenants and products, while an owner can only touch data belonging to their own tenant.
- Two payment providers (Sumopod and Duitku, each in sandbox and production) sit behind one interface selected by a single environment variable; subscriptions are activated by webhook rather than by the success page, so activation cannot be forged from the browser.
- Lapsed subscriptions are deactivated by a daily pg_cron job, and an inactive shop shows a dedicated page instead of its catalog.
- Template components load through per-tenant dynamic imports, so a visitor's browser only downloads the template that shop actually uses.
Tech stack
Want an app like this for your business?
We've built systems like webjadi.online from scratch all the way to production. Tell us what you need — the initial consultation is free, no strings attached.

