Inspiration

Jastip in Indonesia and daigou in China are personal shopping services: travelers go abroad, post what they find in stores, and buyers back home pay them to buy on their behalf. Daigou is already an $8 billion market in China. In Indonesia, much of jastip still runs through Instagram Stories, WhatsApp threads, screenshots, and seller memory.

Regular marketplaces do not fit this model. Jastip has no fixed inventory, no stable price, and no clean catalog. The seller only knows what is available when they are physically standing in the store. Buyers are asking "can you get this?" at the same time the seller is checking colors, stock, currency, luggage space, travel timing, customs news, and local conditions.

The part that quietly kills the trip economics is trust. Buyers say they are interested, sellers plan around that demand, then half of them disappear when it is time to pay. No deposit. No commitment. Just chat history. The seller carries the risk.

I built Jastip Flow to turn that informal trust workflow into a structured campaign system. Buyers commit with deposits. Sellers manage requests in one place. Product posts, payments, chats, exchange rates, weather, and local news all stay attached to the trip.

Sellers run cleaner trips with fewer surprises. Buyers get access to products they could not easily find at home. The trust that makes jastip work stops living only in someone's memory.

What it does

Jastip Flow is a business and e-commerce app for overseas personal shopping campaigns.

A seller creates a trip campaign with location, dates, campaign currency, and deposit fee. During the trip, they post products into a live campaign feed with photos, prices, quantities, and descriptions. Buyers join the campaign by paying a deposit, browse posted products, request items, submit custom requests, and track each request status.

The core workflow is:

  1. Seller creates a campaign for a trip.
  2. Buyer joins by paying a deposit through Stripe.
  3. Seller posts products from stores into the campaign feed.
  4. Buyer requests a product or submits a custom request.
  5. Seller accepts, rejects, reprices, or updates the request.
  6. Buyer pays 50% after acceptance, with deposit credit applied automatically.
  7. Buyer pays the remaining 50% after the seller confirms purchase.
  8. Both sides track transactions, chat inside the campaign, and download invoices.

For sellers, Jastip Flow includes:

  • Campaign creation with location, dates, currency, and deposit settings
  • Live product feed for trip-based inventory
  • Auto-converted product prices using the Exchange Rate plugin
  • Member list with deposit status and total deposits collected
  • Product request queue with accept, reject, reprice, and status updates
  • Per-campaign chat with buyers
  • Transaction history and invoice PDF download
  • Weather tab with live conditions and 7-day forecast
  • News tab with location-specific news grouped by shopping, customs, travel, logistics, and safety
  • Notes tab for saving campaign notes and AI responses
  • AI assistant that can answer trip questions and manage campaign data

For buyers, Jastip Flow includes:

  • Active campaign browsing
  • Deposit payment through Stripe
  • Product search and sorting
  • Converted local prices
  • Product requests and custom requests with reference images
  • Clear payment breakdown before paying
  • Request status tracking
  • Per-campaign chat with the seller
  • Transaction history for each campaign

There is also an admin area for user management and high-level campaign, user, and transaction counts.

The most impressive part

The most impressive feature MeDo helped create is the AI campaign assistant.

It is not just a chatbot placed beside the app. It is connected to the seller's real campaign context and can use tools before answering. When a seller asks whether tomorrow is a good day to shop, the assistant can call the Weather plugin first. When the seller asks about pricing or margin, it can call the Exchange Rate plugin. When the seller asks about customs or local shopping news, it can use the News plugin and AI Search.

I pushed the LLM plugin beyond a normal chat interface. The assistant has a planning step, chooses which tools to call, executes them, and streams progress back to the user so the seller can see it working. I also gave it internal campaign tools, so it can rename campaigns, update dates, and add custom fields in plain language.

That made the AI feel like part of the jastip workflow, not a separate help box.

How I used MeDo

I built Jastip Flow entirely with MeDo. I started with a simple campaign-and-chat marketplace, then kept pushing the product deeper until it became a full-stack app with authentication, database tables, role-based seller and buyer flows, realtime chat, Stripe payments, invoices, plugins, and a tool-using AI assistant backed by 11 tools.

The biggest change in my workflow was learning to talk first and build second. My first attempts burned credits quickly because I asked for direct implementation before the direction was clear. After that, I started asking MeDo for suggestions and at least three approaches before committing to a feature. I would choose a direction, explain why, then ask MeDo to proceed.

  • Talk first, build second. Before important features, I asked MeDo what approach it recommended and requested multiple options before implementation. That made the actual build much closer to the intent because the decision was already clear.

  • Use screenshots for bugs. When I found a campaign status bug, I attached a screenshot and asked why it still showed "upcoming" during the active date. MeDo diagnosed the root cause and produced a 43-task fix that corrected both the campaign status calculation and pricing defaults.

  • Describe outcomes, not steps. Instead of saying "add payment," I described the full behavior:

When the buyer pays a deposit, the seller should see the member status change, the deposit total should update, and the buyer should receive an in-app notification in the same flow.

That gave MeDo enough context to connect the frontend, backend, database, payment state, and notification behavior together.

  • Push past the default. Exchange rates became more than a display widget. Weather and news became live context for the AI assistant. Campaign management became something the assistant could do through plain-language requests.

By the time I submitted, Jastip Flow had reached version 112, used around 3,000 credits, and had gone through many rounds of testing and refinement across multiple MeDo conversations.

How I used plugins and APIs

Jastip Flow uses MeDo's plugin system as the center of the product, not just as separate widgets.

The Exchange Rate plugin powers visible price conversion in the product feed. I also connected it to the AI assistant, so the assistant can reason about price spread, margin, and currency differences before answering.

The Weather plugin powers a forecast tab for sellers. It is also available to the AI assistant, so trip-timing questions are answered using live weather instead of generic advice.

The News plugin powers a location-specific news feed for shopping, customs, import rules, travel, logistics, and safety. I added LLM summaries so sellers can scan important updates faster. The same news context is available to the assistant for questions like "any customs news for Japan this week?"

The LLM plugin became the reasoning layer. I asked MeDo to add tool schemas, a planning step, tool execution, and streamed progress updates. The assistant can choose when to use weather, exchange rates, news, search, or internal campaign tools.

Stripe powers the three-stage payment flow:

  • Deposit to join a campaign
  • 50% payment after a seller accepts a request
  • Deposit credit automatically deducted from that payment
  • Remaining 50% after the seller confirms the purchase

Supabase Realtime keeps buyer and seller views synced, so payment and request changes appear without needing a manual refresh.

Challenges I ran into

Nothing about this build was comfortable. Jastip Flow started with five days left on the hackathon clock. Credits ran low fast enough that I invited friends (to register using my link) just to keep building. That pressure forced me to become more disciplined with prompts, screenshots, and feature planning.

The AI assistant was the hardest part to get right. Connecting 11 tools, choosing the right tool at the right time, streaming progress, and letting the assistant update campaign data was not one build. The breakthrough was describing real seller scenarios end to end instead of asking for isolated pieces.

The payment flow also broke in subtle ways. A normal checkout is simple, but this app needed three connected payment moments: joining with a deposit, paying 50% after request acceptance, then paying the remainder after purchase confirmation. The deposit credit also had to apply automatically. I solved this by building and testing one payment stage at a time before moving to the next.

Realtime state sync was another important challenge. If a buyer pays in one browser tab, the seller should see the update immediately. MeDo helped wire Supabase Realtime so the product feels alive instead of requiring refreshes.

Design iteration was constant too. MeDo produced the foundation quickly, but the campaign feed, product detail layout, request queue, and status indicators needed multiple rounds of specific screenshot-based feedback to make the experience clear.

What I learned

The biggest thing I learned is that MeDo is much deeper than a prompt-to-page builder.

The built-in terminal changed the way I worked. I could test API behavior, inspect backend issues, and redeploy without leaving the same conversation. When a backend function returned the wrong response, I could test it directly, bring the result back into the conversation, and get a useful diagnosis.

The backend and database support also felt deeper than I expected. MeDo could reason about schemas, RLS access rules, realtime subscriptions, migrations, and backend errors in the same conversation as the UI work.

I also learned that long, complete prompts are worth it. When I described the whole behavior from the user's point of view, MeDo was much better at connecting the database, backend logic, payment flow, and frontend state correctly.

Most importantly, I learned that AI is most useful in this product when it helps sellers make small operational decisions during a trip. It should not replace the human shopper. It should help them check weather, understand exchange rates, scan customs news, adjust pricing, and keep the campaign organized while the trip is happening.

One detail surprised me: for a product with an AI agent, live data feeds, realtime payments, invoices, and full-stack database logic, I only needed one separate external API key: Stripe. Everything else came through MeDo and its plugin layer.

What's next

Next, I want to make the mobile seller flow faster for people posting from stores, add more lifecycle detail to requests, expand seller controls for larger jastip campaigns, and add Stripe disbursement to seller accounts so the money flow is complete from buyer payment to seller payout.

Built With

  • ai-assistant
  • exchange-rate-data
  • medo
  • news/search-integrations
  • react
  • remix
  • stripe-sandbox
  • supabase
  • typescript
  • weather-data
Share this project:

Updates