DEV3 Pegloom – Laundry Pickup & Delivery Laravel Script with Weigh-In Billing, Plant Tracking & Kilo Plans (Flutter)

A self-hosted laundry pickup and delivery platform on Laravel 12 and Filament 4 with customer and driver Flutter apps: sealed bags, weigh-in billing, tagged garments, plant floor panel, kilo plans, claims and partner plants. Admin and plant panels. Installer and demo data included.

by DEV3 TechnologiesVerified Author(0) 0 sales 1 viewsUpdated 05 Nov 2026

Video tour. Pick a section below to browse 115 screenshots in 23 sections.

App & phone tours

Tap play to watch each app. Nothing downloads until you do.

  • Customer app1:14
  • Driver app1:27

Pegloom is a laundry pickup and delivery platform that you host yourself, built by DEV3 Technologies on Laravel 12 and Filament 4, with two Flutter apps: one for customers and one for drivers. A customer books a pickup window, the driver seals the bags, the plant weighs and tags everything, the customer approves any big price change, and the clean laundry comes back in a delivery window that respects real turnaround times. Staff use an admin panel and plant staff use a separate floor panel. The demo business is a fictional laundry with two own plants and one partner plant in the Gulf city of Marsanoor, priced in dirhams with 5% VAT included.

No live demo: 115 grouped screenshots and a desktop video tour show the 3D marketing site, the public price and plan pages, the admin and plant panels and both apps. Install it with the demo data to try every role on your own server.

Customers

  • A public price calculator, prices, kilo plans, how-it-works pages and an account area with orders, a plan ledger and a claim form.
  • A customer app with a service picker, bag estimator, pickup and delivery windows (with a note when a plant is closed), a review and book screen and an auto-approve limit.
  • Pay for what it weighs. There is no deposit: the plant weighs the bags, the bill is computed, and the card on file is charged after the weigh-in. If the weight differs a lot from the estimate, the customer sees why they were asked and approves with a countdown, or returns the laundry unwashed.
  • Tracking with a ribbon, a driver map, a hand-over code, rate and tip, a wallet, recurring pickups, cancellation (free or with a fee), a storage fee for laundry left too long and a claim flow that picks the tag involved.
  • Kilo plans: a gram ledger with grants, rollover, use and expiry, an overage bill, and a renewal-failed state.

Drivers

  • A driver app with shift on and off, run offers with a countdown, a route ribbon and map, and a reorder hint.
  • At pickup the driver scans the seal on each bag, with a count-mismatch warning, a seal-already-used refusal and a bag photo.
  • At delivery the customer gives a hand-over code, cash can be collected with a mismatch check, and failed stops carry a reason and a no-show timer.
  • Cash held, hand-in and a short count, earnings with a per-stop split, payouts, run history, documents and a cash-limit block.

Plant panel and admin

  • A separate plant panel with a floor board, intake, an unknown-seal flow, weigh-in with a live price, a tag sheet, stage scans, quality control, tags outstanding, missing items and capacity for today.
  • An admin panel with a dashboard (plant floor widget in 3D), an ops board, a live map, orders with estimate against actual weights and the money split, holds, claims, the slot calendar, run builder and runs, drivers and plants.
  • Partner plant statements, the kilo ledger, failed renewals, remittances, refunds with a real refund dialog, and reports.

Money and tracking

  • Every garment gets a tag and is scanned through stages, so a missing item is found by tag instead of by guess.
  • Money is applied only when a payment succeeds. Late, stale and duplicate payments are refunded; card refunds go to the gateway after the transaction commits and are retried from the scheduler if the gateway failed.
  • Deadlines are applied when a record is read, so nothing waits for the scheduler. The 17 parallel-request checks on MySQL cover the kilo ledger, runs and refunds.

What is included

  • The Laravel application with Composer packages and compiled assets inside (no Node.js or Composer on the server), both Flutter projects in apps/, the shared DEV3 Flutter package, a web installer and HTML documentation.
  • Demo data for the fictional laundry: 6,050 orders and 6,227 tags across three plants, with drivers, plans, claims and partner statements. It is lighter than a large operation, to keep the install quick.

Good to know

  • Photo upload sends a reference, not a file. In both apps the claim photo and the pickup bag photo send a reference string. The server has an upload endpoint, but there is no image-picker plugin in the apps. Add one to make photo upload real.
  • Forgot-password uses an email code. The customer app resets a password with a one-time code sent by email, because the shared core has no reset route.
  • There is no GPS, geocoder or push token. No location, address lookup or push plugin is in either app, so positions are demo coordinates and push is not wired. Add them for real routes and notifications.
  • There is no deposit, by design. The customer is charged after the weigh-in. A cash booking is refused when two or more fees are unpaid, and a card customer's open fees are charged first.
  • Refund locking uses the cache. Keep a cache store that supports locks (the shipped file store does). The atomic marker on each refund is what prevents a double gateway refund.
  • The demo seed is 6,050 orders, not a large operation's volume.
  • Payments, SMS and push are simulated by default. The simulated payment gateway works out of the box, so booking and paying need no keys. Stripe, Razorpay and PayPal drivers are included but were not run against real accounts.
  • The apps were not tested on physical devices. They build as debug Android packages and run on the iOS simulator.
  • Use MySQL or MariaDB on a live site. The Pest tests run on SQLite, where row locks do nothing; the concurrency checks that prove the locking run on MySQL 8.
  • Name: Pegloom is a working name checked by a web search only, not a trademark clearance. Check it before you launch under it.
  • No hosted demo. Every customer, business and record in the screenshots is fictional. Install it with the demo data to try every role on your own server.

Quality checks

Pegloom 1.0.0 passed the seven release gates of the DEV3 Laravel suite on the final code: static analysis (Larastan level 6, 0 errors), 171 Pest tests with 4,248 assertions, a front-end size budget, migrations and seeding on MySQL 8 and SQLite, a headless-browser pass over 143 pages with 27 happy paths and 17 parallel-request checks on MySQL, an installer test from the zip, and a secret scan. The customer app passed analysis and 93 tests, and the driver app 226 tests, with debug Android and iOS simulator builds. A review of the money and locking code found five issues, four fixed and one listed in the repository notes as a known limit. Lighthouse scores were not measured on the final code.

How it's built

Architecture, stack, key decisions and the quality gates DEV3 Pegloom passed before release.

The engineering behind Pegloom: billing after the weigh-in, a kilo ledger that releases revenue exactly, a fixed lock order and card refunds sent only after commit.

The problem it solves

A laundry bills for something it cannot know until the bags are weighed. Customers have plans measured in kilos that roll over and expire, plants have capacity, and every garment must be traceable. Payments arrive late, twice or for a changed order, and a card refund must neither be lost when the gateway fails nor sent twice after a crash. The kilo balance and the money must always agree.

Architecture and approach

Pegloom is a Laravel 12 application with Filament 4 panels at /admin and /plant, a public site and a REST API used by two Flutter apps.

Billing after weigh-in

The card is charged after the weigh-in against a stored card, one charge row per attempt. Money applies only when a payment succeeds; late, stale and duplicate payments are refunded at once.

Kilo ledger

The ledger is append-only: grant, rollover, use, return and expire. Each source carries a value so revenue is released exactly, and rolled value is carved off the grant.

Lock order and deadlines

Locks are taken in one fixed order (order, stop, run, driver, slot, plant day, plan subscription, wallets), and reads that must see other commits are locking reads. Deadlines are applied when a record is read, so every test passes with the scheduler off.

Refunds

Card refunds go to the gateway only after the outermost commit, reserved atomically on the refund row first, and a sweep from the scheduler retries the ones that failed.

Apps

The customer and driver apps share one API contract and test vectors with the server, and start in a demo mode.

Quality gates and results

Pegloom 1.0.0 passed the seven release gates on the final code: 171 Pest tests with 4,248 assertions, 143 pages in a headless browser with 17 race checks on MySQL, the installer test from the zip and a clean secret scan. The customer and driver apps pass analysis and 93 and 226 tests.

Limits are listed on the item page: photo upload sends a reference, password reset uses an email code, and there is no GPS or push plugin.

Tech stack

Area Technologies
Application Laravel 12, Filament 4, Blade, REST API
Laundry Weigh-in billing, Garment tags, Kilo plan ledger, Plant floor panel
Money Card refunds after commit, Late-payment refunds, Partner statements, Driver cash hand-in
Apps Flutter customer app, Flutter driver app, Shared dev3 Flutter package, Demo mode
Quality Pest, Larastan level 6, Headless browser smoke, MySQL race checks

Inside the build

A front-loader drum and a washing line: The landing hero places the drum in the free column beside the headline, with garments swaying on the line. A front-loader drum and a washing line — The landing hero places the drum in the free column beside the headline, with garments swaying on the line.

Spin: Chapter one tumbles shirts in the porthole while the counters tick up. Spin — Chapter one tumbles shirts in the porthole while the counters tick up.

Guides & articles

Practical guides and engineering write-ups for DEV3 Pegloom.

Laundry delivery software: 7 things to check before you pick one

Last updated
Laundry delivery software: 7 things to check before you pick one: DEV3 Pegloom

Laundry is billed on a weight nobody knows until the bags reach the plant. Here are seven things to check before you pick software, with DEV3 Pegloom as the worked example.

Pegloom hero: a front-loader drum beside a washing line

1. When is the customer charged?

Look for billing after the weigh-in, with an approval step when the weight differs a lot. Pegloom charges after the weigh-in and asks first if it is over tolerance.

2. Is every bag sealed?

Drivers should scan a seal at pickup so the plant can compare it at intake.

The driver scanning a bag seal

3. Can you find one sock?

Every garment needs a tag and a stage scan. Pegloom has a tag sheet, stage scans and a missing-items board.

The plant floor board

4. How do plans work?

A kilo plan needs a ledger with rollover and expiry, not a counter. Pegloom keeps an append-only gram ledger.

5. What happens to late payments?

Payments that arrive after an order changed should be refunded and retried if the gateway fails.

A refund dialog in the admin panel

6. Can drivers hand in cash safely?

Look for cash held, a hand-in and a short count.

7. What is not finished?

Ask for the limits in writing. For Pegloom: photo upload sends a reference, not a file; password reset uses an email code; and there is no GPS, geocoder or push plugin.

Video tour of Pegloom

Frequently asked questions

The complete source code (version 1.0.0) as a download from your account, with the setup and usage guides shown on this page. You can modify the code to suit your product.

Buying guides: Laravel scripts with Filament panels and a web installer · Next.js or Laravel for a SaaS script?

More from this author

View all

Related in Web Scripts & Software

View all