Payspot's 3DS step yanks the user out of the SPA mid-payment. State had to survive a full-page redirect and reconcile on return without double-charging or stranded orders.
Poslic
Serbia's all-in-one service marketplace — a TaskRabbit-style platform connecting users with service providers, with task booking, in-app chat, ratings, and Payspot payments.
- year
- 2025
- role
- Frontend Developer
- duration
- 6 months
- live
- ↗ open
> stack react · bootstrap · payspot · rest apis
A two-sided marketplace for the Serbian market. Customers post tasks; vetted providers quote, chat, and complete jobs end-to-end. The frontend had to support discovery, booking, real-time messaging, ratings, and a hardened payment flow tied to Payspot (a regional gateway with strict 3DS handling).
- 01Task discovery with filters and category drill-down
- 02Booking flow with quotes, accept / decline, and reschedule
- 03Real-time in-app chat with offline queue + reconcile
- 04Ratings and reviews on both sides of the deal
- 05Earnings dashboard for service providers
- 06Payspot integration with 3DS callbacks and refund handling
Mobile users frequently lose signal mid-conversation. Messages needed to queue locally, send when the socket reopens, and dedupe against the server's own copy.
Customers and providers share screens (chat, booking) but have very different goals on each. Composition over duplication.
Wrapped the SDK in a single typed module. All entry points return discriminated unions so the call site handles every state — pending, success, 3DS-redirect, decline, network failure — explicitly.
Messages render instantly with a client-side id, queue in IndexedDB if offline, then send. On server ACK we replace by id; on rehydrate we dedupe by hash.
Same components for customer and provider screens, driven by a `role` prop and a small permissions map. No parallel codepaths.
- 8f6b1d4chore: scaffold + auth
- 2a8d3c7feat: task discovery + filters
- 4c1e9b3feat: booking + quotes
- 7b4f8a2feat: in-app chat with offline queue
- 9d2c5e1feat: Payspot gateway + 3DS
- 42a3b1ffeat: ratings, reviews, earnings
- productiondeploy: poslic.rs live
- ✓MVP launched in the Serbian market on schedule
- ✓Smooth task → quote → chat → payment flow
- ✓Stable Payspot integration with full 3DS support