Urgent.News

What's breaking now, across thousands of outlets.

Tech

What It Actually Takes to Run a Cross-Border Marketplace: Six Years of Shpper

Shpper is a cross-border personal-shopping marketplace. A buyer wants something they cannot get where they live. A traveller is already flying that route with unused luggage space. The platform introduces them, holds the money until the item arrives, and turns an empty few kilos in someone's suitcase into a delivery network. I am the CTO. I own the platform end to end — the Flutter apps for both…

Shpper is a personal-shopping marketplace that facilitates cross-border transactions. The platform connects buyers and travellers, who are already flying the same routes with empty luggage space. As the CTO, I am in charge of the entire platform, from the Flutter apps for both sides to the backend, payments, escrow, identity verification, and the release pipeline. We are currently on version 14.2.0, with a rating of 4.64 on the App Store from 72 ratings.

Running a two-sided marketplace like Shpper is far more complex than expected. The app consists of two products with opposing interests: the buyer wants a cheap, quick, and reliable delivery, while the traveller wants to be paid well, with minimal risk, and without blame for customs. Designing features from two perspectives and considering the shared middle, such as requests, offers, and trips, is essential. Any change to the shared middle requires simultaneous updates to both apps, extending the release cadence.

Trust between strangers is the actual product of Shpper. The platform holds money from the moment a deal is struck until the item is confirmed delivered, making escrow the primary trust mechanism. Identity verification is crucial to ensure that the funds are protected if there's a problem. The state machine, which governs the transitions from request to delivery, is the core product, with numerous potential failure points that need well-defined responses.

Money-moving operations must be idempotent, atomic, and append-only to prevent issues. Cross-border transactions introduce additional challenges like fluctuating prices, customs duties, and restrictions on certain items. The engineering team must design for instability, as timelines slip, prices change, and routes vanish. As CTO, my role extends beyond architecture to encompass business decisions, such as handling delivery issues, determining policies, absorbing costs, and communicating with users.

Ultimately, owning Shpper end-to-end means understanding both the engineering and business aspects of the platform. I am responsible for the state machine, the commercial consequences, and choosing what not to build, as the market has an infinite backlog.

Written by urgent.news from Dev.to's reporting — not their text. Machine-written — may contain errors; check the original before relying on it.

Read the original at dev.to →

More in Tech

Your Flutter 404 Page Is Probably Crashing, and Your Server Is Probably Lying About It

Someone sent me a screenshot of my own 404 page. Washed-out grey text on a light background, barely readable, nothing like the dark theme every other page uses. My first thought was a styling bug.

  • Flutter 404 page crashes due to status code bug
  • Firebase Hosting serves 200 status for unmatched URLs
  • Soft 404 occurs when non-existent URLs are indexed as real pages

A Squarified Treemap by Hand, Because Charting Packages Cannot Drill Down

Helm's storage tool shows your disk as a treemap: every folder a rectangle, every rectangle sized by how much space it takes.

  • Author manually creates treemap visualization of disk space
  • Squarified algorithm preferred for readable, visually appealing rectangles
  • Additional features needed for accurate, usable disk browser interface

More from Sunday 6 September →