One backend for web and mobile apps: a practical plan
Learn how to design one backend for web and mobile apps with one data model, shared rules, and UI choices that fit office staff and field teams.

Why two apps drift apart
Two apps can start with the same goal and still end up behaving like different systems. The office team needs a clear admin web app. The field team needs a fast mobile app. Both work with the same jobs, customers, forms, and status updates, but each app gets shaped by different daily routines.
That is where the split starts. Office staff may create and schedule work orders, while field staff update them on site. If both teams touch the same records but each app handles them differently, problems show up fast. A job marked "assigned" on the web might be treated as "ready" on mobile. A note required in one app might be optional in the other. Soon, the record stops telling one clear story.
The main cause is duplicated logic. When business rules are built into both apps, small differences turn into real conflicts. One screen may let a technician close a task without photos. Another may block billing until photos are added. Now the status says the work is finished, but the data is incomplete.
Names drift too. One team says "visit completed." Another says "job done." A manager says "closed." Those terms sound close enough in conversation, but in software they become separate steps, filters, and reports. The confusion grows over time, especially when new team members learn the process from whatever screen is in front of them.
Even small changes widen the gap. A new approval step, a required signature, or an extra customer field sounds minor. But if the change must be rebuilt in two places, one app usually gets updated first and the other catches up later. That delay creates rework, support issues, and bad data.
That is why a shared backend matters. When the admin web app and the field mobile app share records but not rules, the system slowly splits in two.
Start with one shared workflow
Before thinking about screens, write down the real process from start to finish. Begin with the moment a request is created and end with the moment the job is closed, approved, or billed. This gives both apps the same backbone.
A common mistake is planning the admin web app and the field mobile app as two separate products. That usually creates two versions of the same process, two meanings for the same status, and extra manual fixes later. The workflow has to come first.
Use plain language. For example: request created, assigned, accepted, in progress, paused, completed, reviewed. Then look at each step and ask who touches it. Some steps belong to both roles. An office team member may assign the work, while the field worker accepts it on mobile. Both are part of one workflow, not two different ones.
Mark the shared steps first
The easiest way to plan this is to separate shared actions from device-specific actions.
Shared actions are things like creating a request, assigning a worker, updating status, adding notes, and closing a job. Web-focused actions usually include reviewing queues, reassigning work, approving completion, and running reports. Mobile-focused actions often include accepting a task, uploading photos, capturing a signature, and marking arrival.
This helps you see where the apps should differ and where they should not. The web app may show more filters and admin controls. The mobile app may use larger buttons and fewer choices. But status logic, validation, and business rules should stay in one place.
Pick one source of truth for status changes early. If a task can move to Completed only after photos and a customer signature are added, that rule should live in the backend. It should not exist only on the mobile screen or only in the admin panel.
A simple test helps: if the same action happens from either app, should the result be identical? If the answer is yes, your workflow is shared. If not, business rules are probably hiding inside the interface.
Define the core data model
Start with the records both apps must agree on. Do not begin with screens. Begin with the real things your business tracks every day: customers, locations, jobs, staff, inventory, invoices, or inspections. If both the admin web app and the field mobile app touch the same job, that job should exist as one record in one shared data model.
A useful test is to ask, "Could these two apps disagree about what is true?" If the answer is yes, the model is split in the wrong place. The backend should hold the single source of truth.
For each core record, keep the shared fields together. A work order might include an ID, status, customer, location, assigned worker, scheduled date, completion date, notes, attachments, and photos.
Those fields matter to both experiences, even if they appear differently. The admin team may edit schedules and assign staff from a web dashboard. The field team may only view the schedule, upload photos, and mark the job complete. It is still the same record, just with different permissions.
Add role-specific fields only when there is a real need. If dispatchers need an internal priority score, that can live on the same work order and stay hidden from field users. If mobile workers need an offline sync flag or device-capture metadata, add it carefully without changing the main business meaning of the record.
Do not forget the support fields that make apps usable in real work. Ownership shows who created, owns, or is assigned to a record. Timestamps show when it was created, updated, started, or completed. Files and images provide proof of work. Notes help people explain exceptions without changing the main data.
If you are using AppMaster, this usually means modeling shared entities first and then applying different UI and access rules in the web and mobile apps. That keeps the logic centered in the backend instead of spreading it across two interfaces.
Keep business rules out of the screens
If the admin web app and the field mobile app each decide what is allowed, they will drift almost immediately. One screen will accept a value that the other rejects, or one app will move a job to "completed" while the other still thinks it is "in progress."
The fix is simple: keep business rules in the backend, and let both apps call the same logic.
Validation rules belong in one place. If a work order must have a customer, a location, and at least one task before it can be assigned, the backend should enforce that every time. The web app can show a helpful message, and the mobile app can do the same, but neither should own the rule.
The same goes for status changes. Use one shared status flow for both apps, such as Draft, Assigned, In Progress, Completed, and Closed. Once that flow lives in the backend, both apps follow the same path. The admin team can assign work from the web app, and the field team can update progress from the mobile app, but neither app can skip steps unless the backend allows it.
Calculations and checks should also run in one place. If total cost depends on hours, materials, tax, or approval limits, do that in the backend. If a technician cannot close a job without a photo or signature, check that there too.
What this looks like in practice
Imagine a service company. The office team uses the web app to create jobs, and technicians use the mobile app on site. Both apps should call the same backend logic for creating jobs, assigning staff, changing status, and calculating totals.
That separation keeps screens simple. Each app focuses on what users need to see and do, while the backend protects the rules that must stay consistent.
How to plan it step by step
Start with people, not screens. Write down who uses the system, what they do, and which choices they are allowed to make.
For an admin web app and a field mobile app, that often means office staff, managers, and field workers. The office team may create jobs, assign people, approve changes, and close work. The field team may only view assigned jobs, update progress, add notes, and upload proof.
Once that is clear, sketch the shared data model on one page. Keep it simple at first: jobs, customers, staff, locations, photos, and status history. Add only the fields each record truly needs.
Design around records and state changes, not around pages. If both apps touch the same job, they should use the same status values, the same assignment rules, and the same approval logic.
A simple planning order
- List the main actions for each user role.
- Note what data each action reads and changes.
- Define the status rules clearly.
- Map each screen to the exact data it needs.
- Test the model with a few real tasks from start to finish.
That last step matters most. Take a realistic case, like a repair request created in the office, assigned to a technician, updated on site, then reviewed by a manager. If your model handles that flow without hidden screen-specific rules, you are on the right track.
What should be different in each app
The backend should stay shared, but the experience should not. An admin web app and a field mobile app serve different jobs, so they should present the same records in different ways.
On the web side, people usually need a wider view. They compare many records, sort columns, scan history, run filters, and make bulk updates. A dispatcher or operations manager may want to update ten work orders at once, assign staff, and check status changes in a table.
On mobile, speed matters more than overview. A field worker usually needs one clear answer: what do I do next? The home screen should bring the next task, address, contact details, deadline, and status update button to the front.
Same data, different presentation
The key idea is simple: keep the records the same, and change the layout around them. If both apps use the same job, customer, status, and note objects, the business rules stay in one place.
What changes is the interface. Web can show dense tables, saved filters, and bulk edit tools. Mobile should highlight the current task and the next action. Mobile can collect camera photos, signatures, barcode scans, or location. Web can support deeper review, reporting, and exception handling.
Offline use is another real difference. A field app may lose signal in a basement, on a road, or at a client site. That affects sync design, conflict handling, and what data must be cached on the device. The admin web app usually assumes a stable connection, so it can rely more on live updates.
A simple example is an inspection process. The office team uses the web app to assign visits, review results, and fix bad entries in bulk. The inspector uses the mobile app to open the next visit, capture photos, confirm arrival, and submit the report. Different screens, same inspection record.
A simple example scenario
Picture a service company that handles equipment repairs. The office team works from laptops, while technicians spend most of the day on the road.
A dispatcher uses the admin web app to create a new work order. They enter the customer name, address, problem details, priority, scheduled time, and assigned technician. That creates one shared record, not a separate web version of the job.
Later, the technician opens the field mobile app and sees that same work order. The screen looks different because the job is being used in a different setting, but the underlying data is the same. The technician can view the address, call the customer, check the task details, and update progress without retyping anything.
On site, the technician adds photos of the damaged part, writes a few notes, and captures the customer's signature. All of that is saved back to the same job record. The mobile app is not creating its own side system for photos or notes. It is simply adding more information to the shared data model.
Back at the office, the manager opens the admin web app and reviews the updated job. They can see what was added in the field, approve the work, and send the order to billing or follow-up. Nobody has to compare two versions of the truth.
The status history is what makes this useful. If the dispatcher sets the job to Scheduled, the technician marks it In Progress, and the manager closes it as Completed, everyone sees the same timeline. That makes it much easier to answer simple questions: who changed the status, when it changed, and what happened before and after the visit.
Common mistakes to avoid
The biggest mistake is putting the same rule in two places. If the admin web app says a job can move from "Scheduled" to "In Progress," and the mobile app checks that too, those rules will drift. Keep status changes, permissions, and required checks in the backend, where both apps follow the same logic.
Another common problem is creating separate records for what is really the same job. Teams do this when they want the office view to feel different from the field view. Then the admin app has an "appointment," the mobile app has a "visit," and someone has to keep them in sync. That usually leads to mismatched notes, duplicate updates, and confusion about which record is real.
Fields are another trap. It is easy to keep adding columns because one team asks for just one more detail. But every field should have a purpose. Ask why it matters, who uses it, and whether it affects a rule, report, or decision. If the answer is unclear, leave it out until the need is real.
Weak connectivity often gets ignored until the first day in the field. A technician may open the mobile app in a basement, on a rural road, or inside a warehouse with poor signal. If the app needs a live connection for every action, work stops. Plan which data must be available offline, which actions can wait and sync later, and how conflicts are handled when the device reconnects.
Names can also break a shared system. If one team calls a step "Assigned," another calls it "Dispatched," and a third uses "Ready," people start treating them as different states. Agree on one shared vocabulary early and use it everywhere.
A good gut check is simple: one job should have one source of truth, one rule should live in one place, and one status should have one clear name.
Quick checks before you build
Before you build anything, test the plan on paper. If the model is simple enough to explain in a few minutes, it is usually simple enough to keep stable as both apps grow.
A good check is this: can both teams point to the same record and mean the same thing? If the office team sees a job, task, customer, or inspection report differently from the field team, drift starts early.
Use a short checklist:
- Pick one core record, such as a work order, and confirm that both apps read the same version.
- Write validation rules once in the backend, not inside each screen.
- Test every status change as one path.
- Sketch the model on one simple diagram.
- Strip the mobile view down to the essentials.
A small scenario helps. Imagine an admin web app that schedules repair visits and a mobile app that technicians use on site. The admin team may need filters, reports, and full customer history. The technician may only need today's jobs, contact details, safety notes, and a way to update status. Different screens are fine. Different business rules are not.
One more practical test: change a rule and see how many places it touches. If changing "a photo is required before completion" means editing backend logic plus several separate screens, the design is already starting to split apart.
Next steps
If you want one backend for both web and mobile, do not start by mapping every screen or every team request. Start with one workflow that matters every day, like creating a job, assigning it, updating status, and closing it. A small workflow is easier to test, and it shows very quickly where the data model is clear and where it still has gaps.
Build the backend rules before polishing the screens. Decide what fields are required, who can change status, what happens when data is missing, and which actions should trigger alerts or follow-up tasks. When those rules live in the backend, the admin web app and the field mobile app can look different on the surface but still follow the same logic.
A practical order is simple: define the main records and their relationships, write the core business rules and status changes, test the workflow with sample data, design the web view for office tasks and the mobile view for field tasks, then review the first version with real users.
That order helps you avoid a common mistake: building two polished apps that disagree with each other.
If you want to move faster, a no-code platform like AppMaster can help. It lets teams define data and business logic in one place, then build a web app and a native mobile app around the same foundation.
Keep the first release small. Ask a manager to use the web app for a real task, and ask one field worker to use the mobile app during an actual shift. Watch where they hesitate, what they skip, and what they expect to happen next. Fix those points first, then expand to more workflows.
That is usually the safest path: one shared model, one set of rules, and two experiences shaped around real work.


