Captain's Log

Taut: one link for every marketplace, no more tab chaos

Taut: one link for every marketplace, no more tab chaos

It started with a keyboard.

I wanted a budget mechanical keyboard — something under Rp 500k, good switches, available fast. I checked Shopee. Then Tokopedia. Then Lazada. Then TikTok Shop. Thirty minutes later, I had four different prices for what I thought was the same product, three slightly different variants, two sellers with suspicious review patterns, and a headache.

This is the Indonesian online shopping experience. Every marketplace has its own ecosystem, its own promotions, its own seller base. The best deal for a specific product could be on any one of them at any given moment — and the only way to know is to check all of them.

That's the problem Taut solves.

What Taut is

Taut is a price comparison and product aggregation platform for the Indonesian marketplace ecosystem. You search for a product once, and Taut shows you listings from Shopee, Tokopedia, Lazada, TikTok Shop, and Blibli side by side — sorted by price, filtered by seller rating, and linked directly.

The name taut means "link" or "connect" in Indonesian, which captures exactly what it does: links a buyer to their best option across a fragmented marketplace landscape.

The secondary use case is affiliate marketing. Each product link can be tagged with an affiliate ID, making Taut a useful tool for content creators who recommend products — instead of manually generating five links per product for each platform, they generate one Taut link that routes buyers to the best available listing.

The discovery problem

The biggest challenge in building Taut wasn't the UI — it was the fundamental tension between comprehensiveness and reliability.

Indonesian marketplaces don't have public APIs that let you pull product listings freely. This means any real-time aggregation requires a scraping layer, which raises two problems: rate limiting and data drift (prices and stock change constantly).

The current version of Taut sidesteps this with a curated product model. Instead of attempting live scrapes, product listings are manually curated and updated. This is less scalable, but far more reliable — and it validates the browsing experience before investing in the infrastructure for real-time data.

This is a deliberate choice, not a limitation. The question Taut is currently answering is: will people use a tool like this if it exists? Infrastructure comes after the answer.

Design decisions

One product, five cards. The main product view shows a card for each marketplace — even if that marketplace doesn't have the item. An empty card with a "not available" state is more honest and useful than silently hiding platforms. Users learn which marketplaces carry which types of products.

Price is the headline. Everything else — seller name, rating, shipping estimate — is secondary information. The price is what drives the decision, so it gets the visual weight.

Mobile-first layout. The majority of Indonesian e-commerce browsing happens on mobile. The comparison layout had to work in a single-column stacked view, not just a desktop side-by-side grid. This forced a simpler hierarchy that ended up feeling better on desktop too.

No login required. The friction of creating an account to compare prices is unnecessary. Taut should be usable in under ten seconds — open, search, compare, click.

Why Astro, and why it's stack-agnostic

Astro made sense here for the same reason as Seraya — the content is largely static and fast page loads matter on mobile connections.

But Taut's architecture is deliberately portable. The product schema, the comparison logic, the affiliate link structure — none of it is tied to Astro. The same system could run on:

  • A Next.js app with a Supabase backend for real-time price updates
  • A Laravel API serving a Vue or React frontend
  • A serverless function layer with edge caching for scrape results

The current Astro build is the UI prototype. When the data infrastructure is ready, the frontend will follow whatever stack makes the data layer easiest to operate.

The affiliate angle

One thing that surprised me during the design process: the affiliate use case turned out to be as strong as the consumer use case — maybe stronger in the near term.

A tech reviewer who recommends a laptop doesn't want to manage five different affiliate links per product, one per marketplace. They want one link that sends buyers to whichever platform has the best price right now, and that link should work with their affiliate IDs across all platforms.

Taut can be that link. This opens up a B2B-adjacent product story that I hadn't initially planned for, and it changes some of the prioritization around features like link analytics and custom domains.

This is a single-page concept — deliberately

Taut right now is a single-page design. The real-time data layer, the affiliate dashboard, the price history charts — none of that is built yet. That's intentional.

I'm not waiting because I can't build it. I'm waiting because building a data aggregation platform for five marketplaces is a serious infrastructure investment, and I'd rather build it with someone than build it for nobody.

What Taut already has: a clear product vision, a validated UX concept, a defined schema, and a stack-agnostic foundation that can grow in any direction. What it needs: a co-builder who cares about the same problem — whether that's a developer who wants to tackle the scraping layer, a marketplace affiliate who wants a better tool, or a product person who sees the business opportunity.

The roadmap exists. The capability exists. What I'm looking for is someone to share the build with. If that's you — let's talk.


Taut is live at taut-six.vercel.app. If you've ever had twenty marketplace tabs open at once, you already understand the problem.