PrimeHQ · Application engineering

Build the software
your business actually needs.

Weeks, not quarters.

Custom web applications delivered through AI-assisted development and a Cloudflare-native architecture. Built to launch quickly, scale naturally and keep evolving as the business changes.

Custom web applications, built faster with AI, engineered for continuous change.

  • Launch measured in weeks
  • A person still approves the release
  • AI inside the app only where it removes work

Example request path

Workers run the application itself: routes, checks, auth decisions, and calls to the data services below. This replaces a traditional application server for the request path.

One possible shape. An application uses the services it actually needs.

Short-cycle development

Software should evolve at the speed of the business using it.

The point is the next release, not a single handover. Each pass is smaller than a traditional project, and a person still decides what is allowed into production.

  1. 1

    Understand

    The users, the real steps, the constraints, and what a finished job looks like.

  2. 2

    Prototype

    A small working slice that a person can click, before the rest of the system exists.

  3. 3

    Build

    The smallest production application that completes the job, including the unglamorous edges.

  4. 4

    Test

    Behaviour, permissions, and failure. Generated tests are read, not trusted on arrival.

  5. 5

    Deploy

    A staged release. A person decides when it is allowed to face real users.

  6. 6

    Learn

    What people actually do, where the process stalls, and which assumption was wrong.

  7. 7

    Improve

    The next change, smaller than the first, shipped the same way.

Applications

Turn complex processes into software.

The work is a business process with users, records and a result. Named case studies are not required to see the kind of application. The longer accounts are custom web applications, AI inside the product, and the Cloudflare architecture.

  • Internal business applications

    A single place for a process that currently lives in a spreadsheet and an inbox.

  • Operational dashboards

    The work in flight, not a wall of charts detached from the queue that produced them.

  • Customer portals

    A customer can see status, documents and requests without emailing to ask.

  • Member portals

    Accounts, bookings, invoices and records for a membership or a program.

  • Workflow automation

    A known sequence of steps, with a person where the decision is not safe to automate.

  • SaaS platforms

    A product used by more than one organisation, with tenant data kept apart.

  • Booking and scheduling

    Availability, bookings and the exceptions that a calendar link does not handle.

  • Transaction systems

    Records of money, stock or entitlements where the state of each item has to be clear.

  • Document workflows

    Intake, extraction, review and filing, with the original file kept beside the fields.

  • Reporting and analytics

    Figures the business already defines, drawn from the application that created them.

  • APIs and integrations

    A clear boundary to Xero, a CRM, a line-of-business system, or another PrimeHQ product.

  • Applications with AI features

    Search, extraction or drafting inside a workflow that still has an owner.

An operations application, not a chart template.

A working internal tool keeps the queue, the exceptions and the last run in one place. This is a conceptual member-operations console.

Example interface. Not a client project.

Operations · 1–28 Sep 2026

Overview

Production

Documents processed

All automation runs this month.

1
7
14
21
28
Recent automation runs
Run State Duration When
Supplier invoice intake Completed 2 min 28 Sep, 14:06
Member document pack Awaiting review — 28 Sep, 13:41
Booking reminder Completed 18 sec 28 Sep, 13:12
Nightly reconciliation Retry 1 4 min 28 Sep, 02:10

The same engineering, on the customer side.

A member should be able to find a booking, a document and an invoice without writing in.

Example interface. Not a client project.

Member since March 2024

Jordan Hale

Active

Membership
Studio · renews 1 Mar 2027
Next booking
Thu 2 Oct 2026, 9:00
Open invoice
$186.00 due 6 Oct 2026

AI-assisted engineering

AI shortens the work. It does not take the decision.

Research, drafts, tests and notes move faster. Architecture, security, data access and the production release stay with an engineer.

  1. Requirements

    Write down the process, the users and the outcome before generating code.

  2. Research

    Read the existing systems, the constraints, and the platform documentation that applies.

  3. Architecture

    Choose the smallest set of Cloudflare services that can hold the application.

  4. Implementation

    AI drafts code and changes. A person reviews the diff before it is kept.

  5. Testing

    Tests are generated and then edited. Passing tests do not replace a look at the behaviour.

  6. Review

    Data access, auth, failure and abuse get a human review on every release.

  7. Documentation

    Decisions and operator notes are written so the next change has a starting point.

  8. Regression

    The last known behaviour is compared with the change, especially around permissions and money.

  9. Iteration

    The next release is scoped from what the running application showed, not from a new slide deck.

A review surface, not an autonomous deploy.

The assistant can explain, draft a test, or propose a check. A person accepts the change. The example never ships it.

Example interface. Not a client project.

member-portal

// Active invoices for one organisation. Archived rows stay out.
export async function listInvoices(db: D1Database, orgId: string) {
  return db
    .prepare(`SELECT id, supplier, amount_cents, status
       FROM invoices
       WHERE org_id = ? AND archived_at IS NULL
       ORDER BY issued_on DESC
       LIMIT 40`)
    .bind(orgId)
    .all()
}

Build passed · 12 tests passed · not deployed

Engineering assistant

Suggestion only. Accepting it keeps the diff for review. It does not deploy.

+ if (status && !['open', 'review', 'paid'].includes(status)) {
+   return Response.json({ error: 'Unknown status' }, { status: 400 })
+ }

Inside the application

AI where it actually removes work.

The model sees a bounded set of records and returns something the workflow can use: a field, a source, a draft, or a flag. It does not become the owner of the process.

  • Semantic search

    Find a passage by meaning, then show the document it came from.

  • Natural-language questions

    Ask a question in English and get a table, not only a paragraph.

  • Document extraction

    Pull fields from an invoice or a form into the workflow that already expects them.

  • Document classification

    Route a file to the right queue, and leave odd files for a person.

  • Summarisation

    Shorten a thread or a document for someone who still needs the source.

  • Workflow routing

    Suggest the next team from the content, without skipping an approval the business requires.

  • Recommendations

    Surface a likely next action from similar past work.

  • Anomaly notes

    Flag a figure that moved, with the rows that explain it.

  • Report drafts

    Assemble a report from data the application already stores.

  • Knowledge retrieval

    Answer from a named set of documents, and say when that set does not contain the answer.

  • Assistants

    A bounded helper for one job, with the tools it is allowed to call written down.

  • Bounded agents

    A short sequence of steps inside a limit, stopped when a step needs authority the agent does not have.

  • Approval-gated AI

    The model proposes. A person approves before a record changes or a message is sent.

A question with sources, not a chatbot.

The useful version shows which records it read, the table it produced, and what it will not do next.

Example interface. Not a client project.

Read invoices and product categories · September 2026

September sales by category

Paid invoices, 1–28 September 2026
CategoryAmountInvoices
Materials$48,20016
Services$31,4409
Membership$18,600100
Hire$6,24011

Hire is down $2,110 on August. The other categories are within 6% of last month. Source: paid invoices in D1, not a forecast.

Extraction proposes. A person confirms.

The file stays visible beside the fields. A low-confidence value is a review, not a silent write.

Example interface. Not a client project.

Westbridge Materials Pty Ltd

Tax invoice

INV-4628

12 September 2026

Supply of paving and sand

Total AUD 4,280.00

GST included 389.09

PO reference not on page 1

INV-4628.pdf · page 1 of 2

  1. Uploaded
  2. Text extracted
  3. Supplier identified
  4. Invoice number extracted
  5. Amount extracted
  6. Categorised
  7. Awaiting approval
  8. Record updated
  9. Notification sent
SupplierWestbridge Materials Pty LtdHigh
Invoice numberINV-4628High
Invoice date12 Sep 2026High
Amount$4,280.00High
GST$389.09High
Needs review · not printed on page 1
CategoryMaterialsMedium

Waiting on a person before the record changes.

A process that can wait without a server waiting with it.

Each stage names the Cloudflare primitive that would carry it. The person at the review gate is still a person.

Example interface. Not a client project.

INV-4628 · elapsed 6 h 12 m · retries 0 · example captured 28 Sep 2026

Manager review

Workflow wait

The workflow waits. No server is held open. Yuki Tanaka in Operations is the named reviewer.

Responsible: Yuki Tanaka, Operations. The run is waiting, not failed.

Cloudflare application stack

A modern stack for modern applications.

The diagram is a set of primitives, not a logo wall. PrimeLabs picks the ones the application needs. Deeper notes on each primitive are planned as their own pages and are not published yet.

What it is

The application runtime. Requests, validation, permissions and integrations run here.

When PrimeLabs uses it

For the request path and for jobs that are still short-lived code.

When PrimeLabs does not

Not a place for multi-day waits or for files. Those belong to Workflows and R2.

The application, seen as the services it actually binds.

This is an operations view of one example application. It is not the Cloudflare dashboard, and PrimeLabs did not build Cloudflare.

Example interface. Not a client project.

Application · Member Portal

Service path

Workers · production

Requests, 30 days
48,216
p95 latency
38 ms
Error rate
0.12%

Releases

Business outcomes

Less infrastructure. More of the application.

  • Less infrastructure

    No application-server fleet to patch, size and watch overnight.

  • Faster deployment

    A release is a Worker deploy and a migration, not a machine build.

  • Shorter release cycles

    A change can ship when it is reviewed, instead of waiting for a quarterly window.

  • Easier iteration

    The next improvement starts from the running application and its logs.

  • Scale without a server fleet

    Traffic is absorbed by the platform. Capacity planning is not a rack diagram.

  • Security controls in the path

    TLS, rate limits and edge policy sit in front of the code. Application rules still live in the code.

  • Infrastructure as code

    Bindings, routes and environments are declared and reviewed with the application.

  • Lower operational drag

    Fewer moving boxes. The remaining work is the application, the data and the releases.

Business areas

Organised by the work, not by a thin industry page.

  • Operations

    Work queues, handoffs and the status of a job.

  • Customer service

    What a customer asked, what was promised, and what is still open.

  • Sales

    Pipeline context that should not be retyped into a spreadsheet.

  • Finance

    Invoices, approvals and the trail back to a source document.

  • Compliance

    Who did what, and the record that shows it.

  • Membership

    People, entitlements, renewals and the documents they are owed.

  • Data

    A defined set of records, with a question interface only where it helps.

  • Reporting

    Numbers that match the application, produced on a schedule.

  • Field operations

    Jobs, evidence and status for people who are not at a desk.

  • Professional services

    Matters, time and deliverables in one record.

  • Digital products

    A product surface that can change without a replatform.

  • Workflow automation

    A process with a named owner at each gate.

Process modernisation

Still running a critical process through spreadsheets, email and shared folders?

PrimeLabs can turn that process into an application one workflow at a time. The first release is the painful path, not a replacement for every adjacent task.

What is there now

  • A workbook with several owners
  • Approvals buried in an email thread
  • The source PDF in a shared folder, named inconsistently

What the application holds

  • One record, with a status
  • A named person at the review step
  • The file and the extracted fields kept together

Talk about that process

Engineering principles

Deliberately simple, and reviewed.

Type-safe
TypeScript at the boundary, so a wrong field fails before a user sees it.
API-first
The screen and any later integration call the same rules.
Observable
A request, a job and a model call can be traced after the fact.
Least privilege
A user, a token and a binding can only reach what that job needs.
Tested
The paths that move data or money have tests a person has read.
Reproducible
A release can be built again from the same source.
Staged deployment
Production is not the first place a change runs.
Secure defaults
Closed unless there is a reason to open it. Secrets stay out of the browser and out of git.
Deliberately simple
Fewer services, fewer concepts, a diagram a new engineer can still read.
AI only where it adds value
A rule, a query or a form wins when the outcome is already determined.

Engagement

Frame, build, operate, evolve.

  1. Frame

    Understand the users, the workflow, the constraints and the outcome.

  2. Build

    Create the smallest coherent production application.

  3. Operate

    Deploy it safely and watch real usage.

  4. Evolve

    Keep changing the application as the work changes.

Contact

Have a process that should be an app?

Write to PrimeLabs . Say who uses the process, what the finished job is, and what must not change. There is no form and no account on this site.

info@primelabs.com.au

What to include