Services and platforms

On-demand trash pickup service

Client: Takeway

The service lets residents hand off taking out the trash to couriers nearby, and lets the operator manage orders and prepare payouts

Next.js 16App RouterTypeScriptPostgreSQL 16Prisma 7Tailwind 4PWAWeb Push
On-demand trash pickup service

Project at a glance

Problem

The goal was to build a service that lets a resident hand off taking out household trash to a courier nearby. The courier collects the prepared bags at the door and carries them to the trash container. The product had to bring together ordering, the courier’s work and management by the operator. The customer and courier interfaces are designed primarily for mobile screens.

What we did
  • Ordering with address suggestions
  • Customer account with order status
  • Courier sign-up, document upload and moderation
  • Area order feed where each order goes to a single courier
What the client wanted
  • Let residents order trash pickup from their door to the container
  • Help couriers find and complete orders nearby
  • Give the operator tools to manage orders, couriers and payouts

Want the same for your business? Tell us about your task — we’ll propose a solution and estimate the timeline.

From order to photo confirmation

We built a pilot MVP with a customer web interface, a courier PWA and an operator panel. Customers enter their address using suggestions, place an order and can see its status in their account.

Couriers sign up, upload documents and, after moderation, get access to orders in their area. Each order can be accepted by only one courier. A mini-map helps couriers get their bearings, and a link to Yandex Maps lets them plot a route to the customer.

An order is closed with two photos: one at the door and one at the container. The operator manages orders, checks couriers and exports payout data to CSV.

Designing an everyday order

The in-progress order screen shows the address, the route and the courier’s sequence of steps. The main buttons sit at the bottom of the screen. Light-blue accents mark informational actions; green ones mark moving to the next step.

For customers, we designed saved “Home” and “Work” addresses with entrance, floor and apartment. The completed-order design combines rating the courier and repeating the order: both actions are available right after the service is done.

Order in progress: the address, route and steps help the courier find the way and report arrival
Order in progress: the address, route and steps help the courier find the way and report arrival
“Home” and “Work” addresses with entrance, floor and apartment details for future orders
“Home” and “Work” addresses with entrance, floor and apartment details for future orders
Completed order with a courier rating and a button to repeat the service
Completed order with a courier rating and a button to repeat the service

Staying in touch during the job

We designed a chat with the customer that has ready-made arrival messages. The courier can quickly say they are on the way or already at the door and ask the customer to come down.

Support has a separate chat with typical requests about payment and refunds. We also worked out what happens when the customer doesn’t respond: waiting, closing the order as “couldn’t pick up” and passing a disputed case to support.

Customer chat: quick replies let the courier report arrival without typing a message
Customer chat: quick replies let the courier report arrival without typing a message
Support chat for questions about bag pickup, payment and refunds
Support chat for questions about bag pickup, payment and refunds

One foundation for the whole service

The customer interface, courier PWA, operator panel and API are combined in a Next.js 16 monolith. PostgreSQL 16 and Prisma 7 handle the data; the interfaces use TypeScript and Tailwind 4.

Sign-in with a one-time SMS code works through GreenSMS. For other notifications, we set up Web Push and tied courier activation to the successful delivery of a test notification. We also prepared a YooKassa (payment gateway) integration.

Courier documents are kept apart from order photos in private S3-compatible storage. Access to documents is granted through signed links, and each opening is logged.

Target audience

  • Residents who are busy, feel unwell or want to hand off a household chore to someone else
  • Couriers ready to pick up bags in their neighborhood and carry them to the container
  • Service operators

What users need

Job to be done — from situation to outcome

Situation

I need to take out the trash, but I’m busy or don’t feel well and don’t want to go out to the container.

Need

I want to hand this chore off to someone else and know the price of the basic service up front.

Outcome

I get the bags ready, and a courier picks them up at the door and takes them to the container. I don’t have to leave home or break off from what I’m doing.

What’s inside

1

Ordering with address suggestions

2

Customer account with order status

3

Courier sign-up, document upload and moderation

4

Area order feed where each order goes to a single courier

5

Mini-map and a link to the route in Yandex Maps

6

Order closing with photos at the door and at the container

7

Operator panel with metrics, orders and couriers

8

Payout data export to CSV

9

SMS sign-in with a one-time code

10

Private document storage with an access log

How it looks

Need a similar project?

Tell us about your task — we’ll estimate the scope, timeline and cost and propose a solution.