> Documentation index: https://stilldeeppos.com/llms.txt

# StillDeep architecture: server, registers and screens

> How StillDeep is built: one server per business, registers that sell offline, a gRPC contract for every screen, and what is delivered or still in progress.

Source: https://stilldeeppos.com/architecture

Three layers that never mix: the business server, the register engine and the screen. Business rules live in libraries, services only host them.

## The business server

Each business runs one server on its local network:

- **ServerDB:** a PostgreSQL 19 database, the single source of truth.
- **Server.Service:** the gRPC gateway of the registers. Registers never connect to the database directly: every operation goes through this proxy, which checks it and records it.
- **Admin:** the web app to configure the business, on the local network.
- **Report:** the web app for reports, on the local network and optionally on the Internet.

The Internet is only used for optional cloud sync, card payments (from the terminal straight to the processor) and software updates.

## The register

A register is one container (or one native program) that holds:

- **The screen:** any client, in any language, speaking gRPC on the register itself.
- **Intelligence:** the sales engine, business modules and extensions.
- **Communication:** the local SQLite copy, the outbox and the sync with the server.

On a Windows register that drives a thermal printer or a cash drawer, the program can link the libraries in-process: one process, no local network hop, same rules.

## Offline first

At startup, a register drains its outbox to the server before anything else, so that an update never overwrites unsent sales. When the server cannot be reached, the register sells from its local copy. Some checks need the server: stock levels and limited seats are only guaranteed online.

## The contract

Screens use the `stilldeep.v1` gRPC contract: sales, catalog, members, cards, devices, events, receipts, reservations, appointments, rentals, inventory, shifts and more. Version 1 never receives a breaking change; a version 2 would live in its own namespace. Amounts are integer cents, percentages are basis points, quantities are thousandths.

## Technology

.NET 11 and C#, PostgreSQL 19, SQLite, Blazor for the web apps, gRPC over HTTP/2, MCP for the AI tools, OpenTelemetry for logs, metrics and traces. Every component runs on Windows, Linux and macOS and follows the twelve-factor rules (configuration by environment, logs on standard output, health checks, graceful shutdown).

## Delivered and in progress

| Area | State |
|---|---|
| Database, sales engine, offline sync and outbox | Delivered |
| Database proxy for registers | Delivered; TLS hardening and real enrollment in progress |
| gRPC contract and example clients | Delivered |
| Admin and Report web apps | Delivered |
| Receipts, printing, receipt designer, signed offline codes | Delivered |
| Extensions and extension registry | Delivered; package signing in progress |
| Reservations, appointments, rentals, limited resources | Delivered |
| StillDeep AI (local) | Delivered |
| Hybrid post-quantum cryptography | In progress |
| Docker packaging and automatic updates | Planned |
| Per-register licensing, restaurant and bar modules | Planned |

StillDeep is version 0: no customer is deployed yet.
