PF Platform
Not screenshots. The real thing.
Everything below is live and interactive. Sort the table, work a ticket, move a deal, build a form, sign it, call the API. All figures are invented sample data.
/ In production
02 Operational data
Dense tables that
hold up under load.
Operators live in tables. They need sorting, filtering, totals that update, and enough density to see a whole market at once. Try the column headers and the filters.
| Rep | ID | Store | Trend | Units | Acts | Gross | Chargebacks | Net | Status |
|---|---|---|---|---|---|---|---|---|---|
| Totals | |||||||||
Sample data. Hover a chargeback figure or a status for the rule behind it.
03 Support
A ticket desk with
two conversations.
Every ticket carries a customer lane and an internal lane. Staff discuss freely in one without it ever reaching the other. Pick a ticket, then switch lanes.
Sample tickets. Service level clocks pause while a ticket waits on the customer.
04 Accounts
Relationship management,
without the bloat.
Accounts, contacts, opportunities, and a timeline of everything that has happened. Click an opportunity to advance it a stage and watch the totals move.
Sample accounts. Every stage change is written to the account timeline with who and when.
05 Forms
Build a form,
then sign it.
Non-technical staff build their own forms. Add fields from the palette, remove what you do not need, and sign in the box with a mouse or a finger.
Add a Signature field, then draw in it. The shipped builder has 23 field types and conditional logic.
06 Mobile
The same data,
in a pocket.
Field staff will not open a laptop. We build the mobile client and the API behind it together, so the API answers the questions the screens actually ask. Tap through the tabs.
Units
112 sold, 9 returned
Chargebacks
$318 across 4 items. 1 disputed.
Next shift
Tomorrow, 09:00 to 17:30, Northgate
Wed 29 Jul
09:00 to 17:30, Northgate
Thu 30 Jul
11:00 to 19:30, Riverton
Fri 31 Jul
Off
Sat 1 Aug
10:00 to 18:00, Northgate
Credit not applied
TKT-4192, awaiting finance
Import failures
TKT-4188, resolved
Access request
TKT-4181, closed
What the client handles
Sign-in with four social providers, device registration so a lost handset can be revoked, push delivery, and account deletion inside the app because the stores require it.
Offline tolerance matters more than it sounds. A stockroom is a signal dead zone, so anything a person does there has to survive the walk back to reception.
Sample build. Tap the tab bar to move between screens.
07 APIs
Versioned, signed,
and documented.
Pick an endpoint and send it. Note the last one: an invalid signature is rejected rather than quietly accepted, which is the whole point of signing a webhook.
Sample responses. Nothing here calls a real system.
08 AI
Claude, wired in.
Not bolted on.
We build with Anthropic's Claude inside products people rely on. The interesting part is not the model, it is the guard rails around it. Ask a question below.
Try one
Sample responses. The permission model still applies to whatever the model proposes.
The model proposes, the platform decides
Claude returns a structured query specification, not SQL. The platform validates that specification against a known schema, applies the caller's permissions, and only then runs it. A model that hallucinates a column produces a rejected spec rather than a broken query, and a user cannot ask their way past what they are allowed to see.
Scoped per customer, cost attributable
AI is a module that is switched on per customer, with its own configuration and its own token accounting, so spend is attributable rather than a single unexplained line on a bill. Customers who do not want it never see it.
Where it earns its place
Shipped: an in-product assistant scoped to what the user can access, generated narrative summarising a reporting period in prose a manager will actually read, and drafting help inside long forms. We are equally clear about where it does not belong: nothing that determines pay is decided by a model.
09 Integrations
The systems you
already pay for.
Most businesses do not need one more system. They need the ones they have to agree with each other. Every platform below is one we have integrated and now operate. Filter by category, hover any of them for what the integration actually involves.
A partial failure raises an alert instead of under-reporting in silence.
All product names, logos, and brands are the property of their respective owners, and are used here to identify the platforms ZircoMedia integrates with. Their appearance does not imply any partnership, sponsorship, or endorsement.
10 App development
Shipped to the App Store
and Google Play.
Building the app is the easy half. Getting it through review, and keeping it through every subsequent review, is where projects stall. We have taken applications through both stores and we build for that from the first commit.
Apple App Store
Offering any third-party social login obliges you to offer Sign in with Apple alongside it, including the private relay address, so the account has to work when the email you receive is not the user's real one.
Review also requires an in-app route to delete an account, a published privacy policy, and an accurate privacy label describing every category of data collected. We build those as real, linkable pages rather than a scramble the week before submission.
Google Play
The Data safety form has to match what the application actually transmits, and a sensitive permission needs a justification a reviewer will accept. Background location is the usual sticking point: if an app geofences a work site, review wants to see exactly why, and a demonstrable path through the feature.
We ship behind staged rollout so a regression reaches a fraction of users rather than all of them.
One push pipeline, both platforms
Notifications go through a single pipeline that reaches Android and iOS at parity, rather than two implementations that drift apart. Device tokens rotate as handsets re-register, and a device can be revoked without forcing a password reset.
Versioned APIs, old clients
You cannot force everyone to update. A user on last year's build must keep working, so the API is versioned and changes are additive by default. This is the single most common reason a mobile product becomes expensive to maintain, and it is a decision made at the start or not at all.
11 Start
Want this shape
of thing built?
Everything on this page is a reduced version of something we have shipped and now operate. If any of it looks like the problem you are trying to solve, tell us about the operation and we will tell you honestly whether we are the right people.
Start a project