Ordering that says no.
A portal for a franchise group in Manchester. Head office, the warehouse and the sites each log in and see a different system.
The full write-up ↓A multi-role operations portal for a franchise group. A GPS field app that maps 1.79 million addresses. A daily prediction game that settles itself overnight. All three are running right now, and none of them is a website.
Most of what Alvex Studio builds is websites, and most businesses need nothing more than that. Some need the other thing: software with a database behind it, people who log in as different things and see different screens, and rules the software enforces at three in the morning whether or not anyone is watching. That is a different product, and this page is the evidence that we build it.
Three systems, chosen because they are not alike. An internal operations portal with seven roles. A field app that records GPS and draws coverage maps. A public consumer product on a daily cycle. DayOne Drops and Called It are Alvex Studio's own, which is the harder test: nobody signs off and walks away, and every fault stays ours to fix. The franchise portal is a private system and is shown here rather than linked.
A portal for a franchise group in Manchester. Head office, the warehouse and the sites each log in and see a different system.
The full write-up ↓
A tracking system for leaflet distribution. Staff use it on their phones while they walk, so you can see afterwards which streets were covered.
The full write-up ↓
A football prediction game, played once a day. Make your calls before kick-off, wake up to the results. No money involved.
The full write-up ↓
A franchise group in Manchester supplies its sites from a central warehouse. Every week, sites order stock. The trouble is that some of those sites have a food safety certificate that expired in March, and some of them have an invoice that has been sitting unpaid for three weeks, and both of those are things head office only finds out about later, usually after the pallet has already gone out. Add the delivery day rules, the cutoff times, the weight limits on a van and the fact that different sites are on different pricing, and the person on the ordering desk is holding a set of rules in their head that nobody wrote down and everybody breaks.
An operations portal that connects head office, the warehouse, the franchise sites and outside inspectors, with seven roles that each see a different system. Ordering runs through the middle of it, and it is gated on compliance and on money: a site with an expired food safety certificate, or an invoice fourteen or more days unpaid, cannot place an order until head office lifts the block, and the override is logged with the name of whoever lifted it. Weight caps, delivery day rules and per-day cutoff windows are enforced in the same place, so the rules live in the software rather than in one person's memory.
Around that sit stock takes, the product catalogue, pricing tiers, invoicing and credit notes, compliance documents, scored audits, mystery shopping, a performance league table, a marketing calendar, a creative request pipeline, announcements, direct messaging, a document library and a reporting suite. Invoices, credit notes and delivery notes are generated as PDFs on the server and emailed as attachments the moment an order is approved, numbered sequentially with no gaps. Scheduled jobs chase unpaid invoices and pull each site's live Google review rating every day.
It is a web application. Nothing to install, nothing to update, and it works on a laptop in the office and a phone in the warehouse. Everything lives in a Postgres database, so the ordering screen, the invoicing screen and the reporting suite are all looking at the same numbers rather than at three copies that disagree. The roughly 130 operations the front end can ask the server to perform are type-checked end to end, which means a change to the database schema breaks the build rather than breaking a page in production three weeks later. PDFs are rendered on the server, email goes out through a transactional provider, and the whole thing is deployed on Vercel.
For the technical reader: Next.js 16.1.6, React 19.2.3, tRPC 11.10, Prisma 5.22 on Supabase Postgres, NextAuth 5, Tailwind 4, @react-pdf/renderer, Resend, web push, Vercel.
The hardest part was not the ordering screen. It was deciding what happens when the software has to tell a paying site that it cannot have its stock. That rule is easy to write and hard to live with: block too eagerly and the warehouse gets a phone call and someone quietly turns the whole feature off, block too loosely and it is decoration. What made it survivable was the override. Head office can always let an order through, and the system records who did it and when, so the block becomes a question that gets answered rather than a wall that gets resented. Six months later the log is also the most useful report in the building, because it shows exactly which rules the business overrides every single time and therefore did not really mean.
The second hard part was access control, and it is the part that keeps us up. Seven roles, one of them an external inspector who should see scored audits and nothing else, one of them accounts who should see money and not compliance photos. Gating the routes is not enough on its own, because a route guard protects a page and not the data behind it. So permissions are enforced twice: once at the door, and again on every individual server operation, so that a request that somehow arrives without the right role gets refused at the point it asks for data rather than at the point it asks for a screen.
The twenty user guides are generated from the system's own codebase, one per role, so the documentation cannot drift out of date with the software.
Private system, in daily use. Screenshots are from a local database loaded with fictional demo data.
Leaflet distribution has an honesty problem, and everybody in it knows. You pay a distribution company by the thousand, they tell you the thousand went out, and you have no way of knowing whether it went through letterboxes or into a hedge. Take it in-house and you have swapped one unknown for another: your own staff are walking streets you cannot see, and at the end of the week you have a wage bill, a rough idea of the area covered and no answer to the only question that matters, which is whether doing it yourself is actually cheaper than paying someone else.
A tracker that staff open in the browser on their phone. It holds the screen awake for the length of the walk, records GPS continuously as the route is covered, and takes per-brand counts as the leaflets go out. The structure is Area, then Campaign, then Run, so a week's work rolls up into a campaign and a campaign rolls up into a territory. Admins get coverage maps per campaign, which is how the next push gets planned: you can see what was covered, so you can see what was not.
Underneath it are 1.79 million addresses imported from Ordnance Survey Open UPRN data, 1.32 million across Greater Manchester and 467,000 across Tyneside, which is what turns a walked line on a map into a house count. And there is a finance module that computes the cost per thousand leaflets from the actual duration of the actual walk, then sets it against an editable outsourcing benchmark. The system's entire purpose is to answer the question in the paragraph above, in a number, every week.
A web app, opened in the phone's browser. Two things in it exist purely because of where it gets used. It asks the phone to keep the screen awake for the length of a run, because a screen that sleeps halfway down a street takes the tracking with it. And it subscribes to the phone's location for the whole walk rather than asking where you are every so often, so what comes back is a line that was actually walked rather than a scatter of points joined up afterwards. The maps are drawn as real vector maps rather than as pictures, so coverage shades street by street and stays sharp when you zoom. The three roles are separated at the database itself rather than in the interface, so a staff account cannot read another team's data even if a screen asked for it by mistake.
For the technical reader: Next.js, Supabase with row-level security, MapLibre, Tailwind 4, Wake Lock API, geolocation watchPosition.
The number this system produces is an argument. It says: stop paying the distribution company, because in-house works out cheaper. That is a real budget decision, and it means the cost per thousand has to be defensible to somebody who does not want to believe it. So it is computed from the actual duration of the actual walk rather than from an estimate or a target, and the outsourcing figure it is compared against is editable, so anyone doubting the conclusion can put the supplier's real rate in and watch what happens rather than being handed a number and asked to trust it.
Which pushes the difficulty back down the chain onto the phone in someone's pocket. A route is walked through terraced streets with poor signal, in the rain, by someone whose job is delivering leaflets and not operating software. Every design decision in the field app follows from that: the fewer taps a run needs, the more likely the data underneath the finance report is real. A tracker that is annoying to use gets used carelessly, and carelessly recorded runs produce a confident cost per thousand that is quietly wrong, which is worse than having no number at all.
Alvex Studio's own system, login-gated. Screenshots are rendered from the real interface using invented data, so no customer, staff or route information from the live system appears.
This one is ours and it is not solving a business problem, it is a product. Six binary football questions a day, called before kick-off, settled overnight. No money goes in and none comes out. The interesting problem is not the game, it is that a daily game has to actually be daily: the card has to be built before anyone wakes up, the results have to be settled before anyone checks, and it has to happen on a Tuesday in February when nobody is looking at it. A daily product that misses a day is not a product.
Seven scheduled jobs running the daily cycle without anyone touching it. Fixtures come in, the day's card is built, the morning email goes out, results are settled overnight, and a late pass sweeps up anything that was not resolved the first time. On top of that sit XP, streaks, achievements and leaderboards.
The questions are generated from live bookmaker odds rather than written by hand, with the bookmaker's margin stripped out first, and they are then selected for genuine balance. A question that is obviously going to be yes is not a call, it is a formality, and a game made of formalities is boring by the second day.
A web app with a database behind it and a scheduler in front of it. The seven jobs run on a timer on the hosting platform rather than on a machine sitting under a desk, so there is nothing to reboot and nothing that stops when a laptop closes. Odds arrive from a football data provider, email goes out through a transactional provider, and the whole daily cycle is unattended by design.
For the technical reader: Next.js 16, React 19, Supabase, Resend, API-Football, Vercel.
The odds. A bookmaker's prices never add up to 100%, and the excess is how they make a living. Take their numbers at face value and every question you generate looks more likely than it really is, so the first job is stripping that margin out to get back to something like a true implied probability. Only then can you ask the question that matters, which is whether a call is genuinely close to a coin flip. Six questions where the answer is obvious is not a game. Six that could go either way is, and telling those apart is arithmetic, not editorial judgement, which is the only reason it can be done fresh every morning without a human picking them.
Settlement is the other half, and it is less clever and more unforgiving. Every night the system has to decide, for every call every player made, whether they were right, then award the XP, extend or break the streak, check the achievements and rebuild the leaderboards, all with nobody watching. The failure that matters is not a crash, because a crash is loud. It is a match that finished late, or a result that arrived after the settle job had already run, which would leave a player looking at a call that never resolved. That is what the late pass is for: a second sweep hours later that picks up whatever the first one could not see yet.
Public, live, and relaunched for the 2026/27 season. Go and use it.
The three systems above share more parts than they look like they do. Here is what those parts are, and which one of the three proves each of them, because a capability list nobody has shipped is just a list.
Different people log in and get a different system, not the same system with some buttons hidden. Permissions enforced on the data as well as on the screen, so what a role cannot see, it cannot request either.
Work that happens on a timer whether or not anyone is at a desk. Chasing unpaid invoices, pulling in data every morning, sending the email that goes out at eight, settling overnight and sweeping up what was missed.
Invoices, credit notes, delivery notes, certificates, reports. Generated on the server from your own data, numbered without gaps, and emailed as attachments the moment the thing that triggers them happens.
Real vector maps, not screenshots of maps. Coverage shading, territories, routes, and address-level data underneath so a shape on a map corresponds to a number you can act on.
Pricing tiers per customer, invoices and credit notes with sequential numbering, and business rules that react to the money: an account fourteen days overdue is blocked from ordering until someone senior decides otherwise.
Software built for someone using it one-handed, outdoors, in the rain, while doing their actual job. Continuous GPS capture for the length of a route, and the screen held awake so that a walk does not stop recording the moment the phone decides to lock itself.
If the thing you are picturing is not on this list, it is probably still a database, some roles and a rule that has to be enforced every time. Most of them are.
That is a starting price for a single-purpose internal tool, and it is deliberately not a price for anything on this page.
One job, done properly. A single-purpose tool for one team: a database behind it, a login in front of it, screens for the two or three kinds of person who use it, and one thing it produces, whether that is a PDF, a scheduled email or a report that used to be assembled by hand every Monday. Replacing a spreadsheet that four people are editing at once is the classic version of this, and it is the most common thing a business actually needs.
The franchise portal above is not a £2,500 system and nothing on this page should suggest it is. Seven roles, twenty-one modules, twenty-nine database tables and a rules engine sitting on the business's supply chain is a different order of magnitude, measured in months rather than weeks and priced accordingly. We would rather say that here than in an awkward phone call later.
You describe the process. We come back with a fixed price and what it includes, before anything is built. If it is a small tool we say so and the number will be near the bottom of the range. If it is a portal we say that too, and if the honest answer is that an off-the-shelf product does it better for forty pounds a month, we will tell you that instead and charge you nothing for the answer.
A website starts at £500 and that is the right price for what it is: pages that tell people who you are and get you found. This is the other product. It has users, a database and rules to enforce, and it costs five times a website rather than fifty. If a website is what you need, buy the website.
It depends on scope, and any number quoted before scoping is a guess. A single-purpose internal tool is a matter of weeks. Something on the scale of a multi-role operations portal is months, and the one on this page is still being worked on. You get a date with the fixed quote, before anything is built, rather than an estimate now.
Yes. The code, the database and the data in it are yours. By default the system runs on Alvex Studio infrastructure, because that is the arrangement that takes the least thought from you, and you have a documented right to take the code and deploy it to your own accounts whenever you decide to. That right is written down rather than something you would have to argue for. The question underneath this one is usually what happens to your business if we disappear, and the answer is that it carries on, because the way out already exists.
You will need changes, because the business will change. A system is not finished the day it goes live, it just stops being urgent. Small changes are quoted individually. If a system is going to need regular work, an ongoing arrangement is cheaper than paying for each change separately. Either way, you own the code, so you are never stuck with us.
Often, yes, and we will say so. Off-the-shelf wins when your process is the same as everybody else's: accounts, payroll, email. It loses when the thing that makes your business work is the thing the product will not do, and you end up paying monthly for software you fight, plus three spreadsheets covering the gap. Custom is worth it when the gap is the business.
You do not need a spec, a wireframe or a technical brief. Tell us what the job is now: who does it, how long it takes them, and which spreadsheet it lives in. We will come back with a fixed price and a straight answer about whether it is worth building.