Portfolio / Reputation platform
Moving is scary. Picking the movers is scarier.
A move is one of the few purchases where the customer hands everything they own to strangers who drive away with it. The category runs on trust and had nowhere to build it: reviews were scattered across Google, Yelp, Angi and forums, with no way to compare two companies on the same terms. Movers Report was built as that infrastructure: the company's federal accreditation pulled from the FMCSA, reviews from every platform aggregated onto one profile with the total summed — good and bad — and functional certificates for what the company publishes on its own site. One customer's experience becomes a comparable data point, and reputation becomes something earned in public.

01The brief
Trust was scattered across ten sites.
Anyone about to hire a mover is looking for the same things everywhere: whether the company is real, whether it is licensed, whether someone else has already been through this and come out fine. They find a handful of stars on Google, two complaints on a forum, a listing in a directory, and no way to compare. The information exists; what does not exist is a standard.
The brief was to build that standard as a product: one profile per company, one scale to rate it on, one queue where every review is verified before it publishes, and location pages so that a search for “movers in [city]” lands somewhere a decision can be made instead of on another ad.
What it had to solve
- 01Compare two companies on the same terms
- 02Check federal accreditation with the FMCSA
- 03Add scattered reviews into a single total
- 04Tell a real review from a planted one
- 05Put license and insurance where they get seen
- 06Cover searches by city and by route
- 07Give the company a reason to take part
- 08Sustain it without a large moderation team
Our role
Product strategy, information architecture, design system, front-end and back-end development, database schema, moderation workflow, local SEO strategy, and the integration with partner company websites.
02The diagnosis
Three questions no single star rating answers.
An overall 4.6 says nothing useful: it cannot separate the company that shows up late but handles everything carefully from the one that is punctual and breaks things. The Movers Report scale was split into dimensions because dimensions are what decide the hire.
Damage is the real nightmare.
It is the only loss money does not fix, because what breaks tends to be what cannot be replaced. It was rated separately from general service so a reader can search for exactly that.
Silence is what gets reported.
The most repeated complaint in the sector is not price: it is not knowing where your things are. Communication became its own dimension because it is what separates a professional operation from a rented truck.
The surprise charge at unload.
A quote that climbs once the house is already on the truck is the category's classic fraud. Rating pricing fairness puts that risk on the profile, before anyone signs.
03The rule
The decision that shaped the whole architecture.
An unverified review is not evidence.
A review site dies the day someone proves its reviews can be bought. So publication was never automatic: every review enters a queue as pending and only moves to published after an automated filter — language, duplicates, submission patterns — and a human pass over whatever the filter flags.
The entry rules do most of the work before the queue: one review per person per company, service used within the last twelve months, confirmed email. They do not eliminate fraud, but they make it expensive, which is the only thing that works at scale.
SubmitVerifyPublish
04Identity
A shield, because what is bought is cover.

The shield before the name
In a category where the fear is being robbed or having your things broken, the symbol had to say “protection” before anyone read the brand. The check inside the shield joins the product's two ideas: verified, and safe.
Three planes, not a flat icon
The shield is drawn in three tones of the same blue, with the check crossing it in the mid tone. It gives depth without shadows and survives favicon size, which is where a trust mark ends up living.
The tagline, corrected
The delivered file read “TRANSPARECY IS KEY”. The line was re-set inside the same box it occupied — same width, same cap height, same alignment to the wordmark — so the correction does not change the drawing.
The grounds it lives on



Use the shield alone as the badge
It is the piece that goes on a verified company's own site, and the one still standing on shipams.com. It works without the wordmark because its job is to signal, not to name.
Switch to the white version on colour
The shield's three blues disappear against the brand blue. On any saturated ground it goes single-tone.
Recolour the shield by status
The badge is worth something because it is always the same. A green shield for “approved” and a red one for “reported” turns the brand into a traffic light and takes away the work it does.
Put the lockup over a photograph
The tagline is the finest part of the drawing and the first thing to vanish over an image. Over photography it is the shield, or the lockup inside a flat box.
05Visual system
Institutional blue, not startup blue.
Brand, headers and trust surfaces
- HEX
- #03658C
- RGB
- 3 · 101 · 140
Interactive elements and links
- HEX
- #3887B3
- RGB
- 56 · 135 · 179
The check stroke inside the shield
- HEX
- #3F89A6
- RGB
- 63 · 137 · 166
Backgrounds, rest states and shield shadow
- HEX
- #7AACBF
- RGB
- 122 · 172 · 191
Rating stars
- HEX
- #FBBF24
- RGB
- 251 · 191 · 36
06What it checked
Three things a customer cannot check alone.
A review says how it went for one person. It does not say whether the company is allowed to operate, or how it went for everyone else added up, or whether what the company publishes about itself is true. The platform was built around those three gaps.
Wired to the FMCSA.
The profile carried the company's standing with the Federal Motor Carrier Safety Administration, the federal body that licenses carriers to operate. It stops being a badge a company awards itself: either the public register shows accreditation or it does not, and that shows before anyone calls.
Reviews from every platform.
Google, Yelp, Angi, BBB, Facebook and the sector's directories were aggregated onto one profile, with the total summed across all of them. Positive and negative, unfiltered: what the customer is buying is the whole story, not the best version of it.
Certificates for web elements.
The platform could issue functional certificates on what a company publishes on its own site, so the promise made there is backed by a third party. It is the last piece in deciding whether the outfit about to move your house is reliable.
07The system
From one move to one published review.
Submission was split into six steps, one per screen. It takes longer to walk and is harder to fake: each step leaves a signal the filter can read, and none of them asks for more than a person can answer from memory.
Platform
Search, profiles and submissionDatabase
Companies, reviews, users, locationsVerification
Confirmed email and entry rulesModeration queue
Automated filter and human passNotifications
Alerts to the company and the teamLocation pages
City, state and route
- 01
Pick the company
You search the existing registry instead of typing a free-text name. That keeps the review tied to a real profile rather than creating a phantom company with every submission.
- 02
Rate five dimensions
Overall experience, service quality, communication, pricing fairness and care of belongings. Five one-to-five scales, because a single score cannot separate what needs separating.
- 03
Write the experience
Free text with a floor and a ceiling. The floor exists so that “terrible” does not count as a review; the ceiling, so the profile stays readable once there are two hundred of them.
- 04
Attach photos
Optional, up to five images, compressed in the browser before upload. A photo of the scratched dresser is worth three paragraphs, and compressing client-side keeps the upload from being the reason someone abandons.
- 05
Confirm who you are
Verified email, one review per person per company, and the condition of having used the service within the last twelve months. This is where most automated submission falls away.
- 06
Pass through the queue
Automated language and duplicate filtering, a human pass over what gets flagged, and publication or rejection with an appeal path. Anything users report takes the priority lane.
5 dimensions · 6 steps · 1 review per person per company · 12-month window
08The pieces
The product, rebuilt with invented data.

The shield at the centre and the sources around it: Google, Yelp, Angi, BBB, Facebook, LinkedIn, Reddit, AMSA, the Department of Transportation and the sector's directories, with Zapier moving data between them. Reputation was not invented here; it was concentrated.
Northline Moving & Storage 4.6 out of 5
128 verified reviews · Licensed and insured · 11 years in business · Local, long distance and packing
Request a quoteA mockup of the profile: name, coverage, rating by dimension, and the facts that matter more than design in this category — license number, insurance status and years in business.
| Company | Status | Origin | Signal |
|---|---|---|---|
| Northline Moving & Storage | Pending | Confirmed email · 5 dimensions | No flags |
| Harbor Point Movers | Flagged | Third review from the same IP | Review |
| Cedar Route Relocation | Pending | 3 photos attached | No flags |
| Two Rivers Van Lines | Reported | Reported by 2 users | Priority |
| Granite Bay Moving Co. | Rejected | Service outside the 12-month window | Appealable |
The companies, the reviews and the counters are invented. The structure is the real one: what gets reviewed, in what order, and on which signal it is decided.
The panel where every review waits. The companies and the text in this mockup are invented on purpose: the real queue held third-party customers' reviews and is not published.

The platform is offline; the badge is not. shipams.com still serves the “Movers Report Verified Business” SVG on every testimonial, linking to moversreport.com/search/<empresa>. Checked on 25 August 2026.
09The stack
Built to grow in content, not in headcount.
A review site grows by accumulation: every city, every company and every review is one more page. The stack was chosen for that — pages generated from the data, cheap storage for the photos, and per-branch preview deploys so that publishing is not frightening.
Next.js · React · Tailwind CSS
Reusable components for what repeats thousands of times — company card, review card, rating breakdown — and city and route pages generated from the data rather than written by hand.
PostgreSQL
Companies, reviews, users and locations, with the review's status — pending, approved, rejected — as a first-class column: it is the one that governs what publishes and what does not.
Vercel · AWS S3 · CloudFront · Lambda · SES
Deployed on Vercel with per-branch previews, S3 and CloudFront for review photos, functions for background work, and SES for the moderation queue's alerts.
10The work
What was built.
Architecture figures, not operating ones: they are product decisions, verifiable in the design of the system. The traffic and volume numbers the project document records are marked there as targets, which is why they do not appear on this page.
- 5
- Rating dimensions per review
- 6
- Steps in the submission flow, one per screen
- 4
- Schema tables: companies, reviews, users and locations
- 3
- Access levels: admin, moderator and user
11The status
The platform went dark. The badge did not.
moversreport.com no longer serves the product — the domain returns 402 — and this case is published as an archive. What is still standing is the part that was installed outside the platform: shipams.com continues to show the “Movers Report Verified Business” badge on each of its testimonials, with live links to moversreport.com/search/<empresa>. Checked on 25 August 2026.
That is what remains of a reputation project once the server goes quiet: the trust mark the partner chose to keep displaying. It is also the case's own argument — a reputation system works when the company being rated wants it seen that it was rated.
How it was built
- 01Front end in Next.js with React and Tailwind
- 02Relational schema: companies, reviews, users, locations
- 03Deployed on Vercel with per-branch previews
- 04Photo storage and CDN on AWS
- 05Email notifications to the company and the team
- 06Automated filtering plus a human pass
- 07Pages per city, state and route
- 08Schema.org markup for reviews and local business
What this case does not claim
There are no user, review, traffic or ranking figures. The project document records them as targets rather than measurements, and publishing a target as a result is exactly what a review site exists to prevent.
More of the work
A review system holds up on what it rejects, not on what it publishes.
Marketplaces, directories, user-generated content platforms: moderation is not the cost of the product, it is the product. Without it, what is left is a noticeboard with stars on it.
Tell us about your project