Logistics & Operations Custom Software
A marketing site with a live rate estimator and an authenticated customer dashboard for packages, invoices, receipts, and rewards, running two brands from one codebase.
Shipwize, formerly Circles, is a package forwarding service run by Shipwize Services Ltd that moves packages from the United States, the United Kingdom, and the wider Caribbean to customers in Jamaica. Shoppers buy from overseas retailers, ship to a Shipwize address, and collect at a branch on the island.
FIWB Solutions built the customer facing half of that business: the public marketing site people land on before they sign up, and the authenticated dashboard they live in afterwards.
Both are in production, and the same codebase serves the Shipwize and Circles brands side by side.
A forwarding business lives or dies on two questions a customer asks before they ever create an account: what will this cost me, and where is my package right now.
The existing customer area was a Laravel and PHP application that could not be deployed on the hosting the business was moving to, and the answers to both questions sat behind a phone call or an email. Rates were quoted manually, package status was opaque between the Miami warehouse and the Jamaica branches, and invoices, receipts, and rewards were scattered rather than somewhere a customer could look them up.
FIWB rebuilt the customer experience as two connected products. A public marketing site answers the pricing question up front with a live rate estimator, and explains the service, the branch network, the customs paperwork, and the WizeProtect coverage. An authenticated dashboard answers the second question, giving every customer their own view of packages, invoices, receipts, rewards, referrals, rates, and their personal overseas shipping address.
The legacy PHP customer area was ported to a modern React stack in the process, which is what made the move to the new hosting possible at all.
We treated the two questions as the architecture. Pricing had to be instant and trustworthy, so the estimator posts to our own server route and the upstream pricing service is proxied behind it: the browser never holds the credentials and never talks to the pricing API directly. The dashboard follows the same rule. Every call to the shipping backend is made server side and the session travels in a sealed, HTTP only cookie, so the API token cannot be read out of the browser.
The port itself was deliberately conservative. The existing visual design was kept intact and the application was rebuilt underneath it, so customers got a faster, safer product rather than an unfamiliar one, and the business did not pay for a redesign it had not asked for.
The security boundary is the product decision, not an afterthought. The shipping backend is origin restricted and its token never leaves the server, so every request the browser makes goes to our own server functions rather than to the API directly. The rate estimator works the same way. A customer gets an instant quote and a live package list; what they do not get, and what an attacker reading the page source does not get, is a credential.
The platform is branded, not hard coded. Shipwize and Circles run from the same codebase on separate domains with separate dashboards, and adding another brand or another origin country is configuration rather than a second build. The customs forms already cover eight origin countries, and the branch locator is data driven rather than a fixed list.
Shipwize now sells and serves online. A prospective customer can price a shipment before signing up, and an existing one can check packages, invoices, receipts, and rewards without contacting the branch.
The legacy PHP customer area is retired, and the replacement runs on the hosting the business moved to.
One codebase carries both brands, so a change to the customer experience ships to Shipwize and Circles at once instead of being built twice.
The two questions a forwarding customer actually asks, answered without a phone call: what will it cost, and where is my package.