Surota
Surota
A micro-service freelance platform for location-based
The "Help" Fragmentation
We live in an era of instant gratification for digital goods, yet finding reliable help for physical micro-tasks—like delivering a forgotten charger, queuing for a ticket, or fixing a leaky faucet—remains fragmented. People rely on scattered WhatsApp groups, unreliable word-of-mouth, or overpriced specialized services. There was no unified "operating system" for the informal economy of neighborhood assistance.
The Real Problem
The challenge wasn't a lack of willing workers; it was trust and orchestration. Creating a platform where a stranger feels comfortable handling your house keys or shopping list requires more than just a chat interface. It demands a system that bridges the gap between digital ease and physical reliability, ensuring safety without killing the spontaneity of "I need help now."
Strategic Decisions & Trade-offs
1. Hyperlocal "Gojek-for-Simple-Service" vs. Classifieds Model Most service platforms act as static directories (Yellow Pages style).
- The Decision: I envisioned Surota as a dynamic, real-time marketplace. Using Mapbox GL, I implemented location-based matching that connects users with freelancers in their immediate vicinity.
- The Trade-off: This exponentially increased complexity regarding geospatial queries and real-time state management, but it allows for the "instant" fulfillment promise that defines the product's core value.
2. Modern Visuals (Three.js) vs. Standard UI Marketplaces often look utilitarian and boring.
- The Decision: I integrated Three.js (@react-three/fiber) and Framer Motion to create a rich, interactive landing experience with 3D infinite galleries and floating nodes.
- The Trade-off: Managing WebGL context and bundle sizes on mobile devices was a challenge, requiring aggressive code-splitting and dynamic imports (
ssr: false
), but it established a premium brand identity that builds higher user trust than a generic template.
3. Next.js 16 App Router & Server Actions
- The Decision: Built on the bleeding edge with Next.js 16 and Tailwind CSS v4 to leverage Server Components for ensuring fast initial loads and SEO dominance—critical for a public marketplace.
- The Trade-off: Navigating the strict server/client boundaries while managing complex client-side state (Zustand) for the application flow required rigorous architectural discipline, but resulted in a snappy, app-like feel on the web (PWA).
Execution
I architected Surota as a robust Progressive Web App (PWA) to serve both desktop and mobile users seamlessly.
- Unified Logic: Leverage Zustand for global state management to handle complex flows like multi-step job postings and real-time status updates without prop-drilling hell.
- Safety First: Implemented a secure escrow system and identification verification flows using Zod for strict runtime validation, ensuring that every transaction and user data input is sanitized and safe.
- Performance: Utilized
use client
directives strategically only where interactivity was needed, keeping the core shell lightweight and server-rendered.
Outcome & Growth
Surota transforms the chaotic process of finding help into a streamlined, safe 3-step action: Post, Deal, Done. It empowers the local community by unlocking economic opportunities for micro-entrepreneurs while buying back time for busy urbanites. This project pushed me to master the intersection of complex location services, 3D web graphics, and secure transactional logic in a modern full-stack environment.
Role: End-to-End Developer
Starting at: Jan 2026
Tech Stack: Next.js 16, TypeScript, Tailwind CSS v4, Prisma (PostgreSQL), Mapbox GL, Three.js, Zustand, NextAuth.
