2025
Romanian local-services marketplace — clients post tasks, verified taskers send offers, and work is paid by card or cash. Built with Next.js 16, TypeScript, Tailwind CSS, and Django, plus Stripe, TanStack Query, Cloudinary, Mapbox, and PostHog.
Overview
Taskuri (taskuri.ro) is a production Romanian marketplace (similar to Airtasker) that connects people who need help with local professionals and businesses. Clients describe a job, receive offers, pick a tasker, and pay when the work is done.
The public site highlights categories from moving and cleaning to repairs and personal services, with thousands of providers and mobile app download CTAs.
Stack: Next.js 16, TypeScript, Tailwind CSS, Django, Stripe, TanStack Query, Cloudinary, Mapbox, PostHog.
Client experience
Homepage hero drives Postează un task with quick category chips (asamblare, mutare, curățenie, reparații, etc.) and social proof (7k+ prestatori).
- Post a task — describe the job, location, timing, and budget; task detail pages support questions, offer threads, and acceptance flows
- Offers & questions — taskers bid on work; clients compare offers and chat before hiring
- Payments — card offers use Stripe (escrow-style release); cash tasks supported with platform insurance terms
- Discover & listings — browse services/tasker profiles and SEO landing pages under
/listings
Tasker dashboard
Signed-in taskers manage work from /me:
- My tasks — status tracking, edit task, release payment, and post-completion reviews
- Offers — submit and negotiate bids; activity boxes for offer and question conversations
- Business profiles —
for-businessroutes for company accounts with Stripe Connect onboarding - Payments — saved cards, payout methods, and card update flows via Stripe Elements (Romanian locale)
Technical notes
Next.js 16 App Router frontend with TypeScript and Tailwind CSS, backed by Django REST APIs. TanStack Query for server state; Stripe for card payments and tasker payouts; Cloudinary for uploads; Mapbox for location; PostHog for product analytics. Real-time chat between clients and taskers. Romanian date-fns locale across task timelines.
On-demand revalidation routes (/api/revalidatepath, /api/revalidatetag) keep service catalog and listing pages fresh after backend updates.