OWN-03Moving, South Florida

Easy Move Florida: a calculator that knows which moves it may not price.

The founder's own moving company in South Florida. Its site quotes a local move before anyone calls, and the interesting part is the requests it refuses to put a number on.

DET-OWN-03 · Quote calculatorLive · try it

OWN-03-AScope of work

What the business does.

Easy Move is Eugene Romanov's moving company: local moves across Miami-Dade, Broward and Palm Beach, priced by the hour with the crew and the truck, and long moves only inside Florida.

It is not a client. It is the business the studio's founder runs, on a site the studio built, and the same company is opening a second branch in Sacramento.

The problem shape.

A moving quote is easy to give and easy to get wrong. A price typed into a page, a minimum stated one way in the copy and another in the calculator, a figure offered for a move the company cannot do: each is a promise made in public.

For a mover the last one matters most. A move that leaves the state needs federal operating authority the company does not hold, so for some requests the honest answer is no price at all, and the site has to know which requests those are.

OWN-03-BDetail callouts

What was built.

A quote that is fast for the moves the company does and silent about the ones it does not.

01

One rate card, priced again on the server

The hourly rates, the three-hour minimum, the truck day and drive time billed in fifteen-minute steps are constants in one module. The home page calculator, the quote wizard and the quote API all call the same function, so a request sent by hand is priced again on the server rather than trusted from the browser. The published price ranges are derived from that module, and the copy file says it holds no numbers of its own.

Proof

src/lib/pricing.ts · calculatePricing, MIN_HOURS · src/lib/pricingCopy.ts

02

The calculator declines what the company may not do

Every request is sorted before it is priced. A local move gets a figure; a long move inside Florida, a leg over fifty miles or an address the distance table does not know gets a written quote from a person; anything leaving the state is referred to a licensed carrier with no figure at all. The owner's alert names which of the three it is.

Proof

src/lib/pricing.ts · routeMode, LONG_DISTANCE_THRESHOLD_MILES

03

A build that fails on a claim it cannot back

Before every build a script reads the source for claims the company cannot support: a rating typed by hand, an hourly figure that is not on the rate card, the words fully insured, an interstate offer, a testimonial nobody gave. Each rule records why it exists. It runs with the pricing, link and notification tests, and any one of them stops the deploy.

Proof

scripts/claims-guard.mjs · package.json prebuild

04

A licence line that waits for the licence

The state registration number and the insurance limits are empty in the site's data, so the site states neither. The day the number is entered, the line Florida's mover statute requires in an advertisement appears by itself, in the statute's own wording.

Proof

src/lib/data/credentials.ts · FDACS_NUMBER, licenceLine

05

Russian and Ukrainian written for their own readers

The Russian and Ukrainian pages are written for the searches people make in those languages rather than translated from the English ones, and the source says so beside the text. One route table produces each page's canonical address and its language alternates together.

Proof

src/lib/data/citiesRu.ts · src/lib/seo/routes.ts · alternatesFor

06

A lead cannot disappear quietly

Both lead endpoints require a phone or an email, carry a hidden trap field and a per-IP rate limit, then send each lead to the CRM table and the owner's messenger at once. If no channel takes it, the visitor sees an error with the phone number instead of a thank-you.

Proof

src/app/api/quotes/route.ts · POST · src/lib/leadGuard.ts

07

Reviews from one file

The review figures live in one file with the date they were read, the structured rating is emitted once for the whole site, and the Google reviews on the page are quoted word for word.

Proof

src/lib/data/credentials.ts · REVIEW_TOTALS · src/lib/data/googleReviews.ts

OWN-03-CReference

Where this lives.

Read from the repository on 22 October 2026, last commit ee123d6. Every item above names the file a reader can open.

Nothing here is a result. This sheet gives no bookings, revenue, rankings or conversion figures, because the repository holds no measured source for any of them, and it leaves the review figures on the company's own site, where they are dated. It is also not a client: Easy Move Florida is Eugene Romanov's own business, and Orium Studios built its site.

System
Easy Move Florida
Repository
easymove
Trade
Moving, South Florida

Files named on this sheet

  • src/lib/pricing.ts
  • src/lib/pricingCopy.ts
  • scripts/claims-guard.mjs
  • src/lib/data/credentials.ts
  • src/lib/data/scope.ts
  • src/app/api/quotes/route.ts

Not a CRM and not built from one. What it shares with the studio's CRMs is the habit underneath them: the rule that decides the money lives in one module, and a check fails the build when the copy stops agreeing with it.

Back to the drawing index

OWN-03-DWhat it costs

What a system like this costs.

A custom CRM built around how your business actually works starts at $4,500. One of the systems that already runs, fitted to your process, starts at $2,500. Both are floors, and the build is priced by the work.

Custom CRM
From $4,500
Fitted System
From $2,500

SHT-10Issued for construction

Start with the free check.

Three questions, one page the same day, and a 15-minute call if you want one. If the answer is that you do not need us yet, the page says that.

  • Where your business shows up, and where it does not, including what ChatGPT answers
  • The three biggest leaks on the path from the search to the booked job
  • The one thing to fix first, and whether you can do it yourself
  • What the next step would be, with its published price
Check my business →

About a minute · one page the same day · no card