Architecture/Technology stack

Architecture

Technology stack

One TypeScript application from the browser to the database: Apiko’s stack cut to a 1–2 day demo. The server lives inside Next.js, with no separate backend; PostgreSQL and a job queue keep the walkthrough and a running interpretation through a reload; the suppliers’ documents sit in a store of their own, never on a customer screen.

Web client

What runs in the presenter’s browser, on a desktop screen.

Next.js16

The web application: every party’s screens, the presenter’s switch, and the server side that calls the AI.

React19

The interface, built from the components on this site.

TypeScript5

Types from the screen to the database, so a field of the label is named the same everywhere.

Tailwind CSS4

Styles written from the design tokens; no raw values allowed.

TanStack Query5

Loads the walkthrough’s state and follows it in place: a step that turns interpreted, an answer that lands.

React Hook Form7

The Setup form and the clarification note: entry, validation, the error next to the field.

Zod4

The rules every form and every AI answer is checked against: a mandatory field without its value or unit fails here.

Lucide

The icon set.

Server

The server side, inside the same application: no separate backend for a 1–2 day demo.

Node.js22

Runs the server side.

Next.js route handlers16

The demo’s API — setup, upload, interpretation, review, queries, export; every rule is checked here, whatever the screen allows.

Data and files

Where the walkthrough and the documents are kept.

PostgreSQL

The walkthrough’s state — the example, the requests, the transactions, the review outcomes, the answers — kept through a reload until a new setup or a start-over.

Drizzle ORM

Typed access to the database, and its migrations.

S3-compatible storage · MinIO

The suppliers’ response documents, each kept with its supplier’s response and never served to a customer screen; MinIO on a developer’s machine.

Services

The AI and the work done in the background.

Claude

Generates the prepared example, reads each response document into the label and answers the queries with citations; it proposes, the product checks.

pg-boss

Background jobs kept in PostgreSQL: a running interpretation or generation goes on through a reload and lands where it would have.

ExcelJS

Writes the Excel file of the export; CSV and JSON are written by the server itself.

Hosting and delivery

Where it runs and how it gets there.

Docker

One image of the application, the same on a laptop and on the host.

Hosting in one region

One installation with a managed PostgreSQL and S3 storage; no hosting or data-location requirement, so the provider and the region are chosen when the work is cut.

GitHub Actions

Runs every check on every change before it is merged.

Quality

Tests, linting and the checks every change passes.

Vitest

Unit and integration tests: the label’s checks, the roll-up, the citations.

Playwright

End-to-end tests in a real browser: the whole walkthrough, from setup to export.

ESLint9

Code rules, including one that refuses a raw design value.

Prettier3

One code style for everyone.

The marks are their owners’ trademarks, shown to name each technology; the files come from Simple Icons and the projects’ own sites and are kept in this folder.