(—) Work — Our own tool
FrontalIn daily use

An AI assistant that runs on our own hardware.

Frontal is the operations assistant we built for ourselves and run on our own server. It brings mail, payments, renewals, deadlines, projects and the health of our systems into one app made for a phone. A local AI model sorts what comes in, drafts replies and flags what matters, and a decision usually takes one tap.

Phone web appTypeScriptNode.jsSvelteKitTailwind CSSPostgreSQLOllamaWhisperDocker

The problem

Small companies lose things between inboxes.

Replies, promises, renewals and failures slip through when they live in five different places. Frontal exists so that they do not.

It was built for one person and is used by one person. It is not a product: it is here as an example of how we build with AI, useful and private where it can be, and plain about what it does by itself.

What we built

01

One app on the phone

A home screen, a queue of decisions, mail, projects, notes and history, and a chat that can check live status.

02

Sorting that learns

A local AI model sorts incoming items by importance, and every correction becomes a rule that overrides the model.

03

Drafts in the owner's voice

Reply drafts written from the thread, past dealings and the owner's own writing style.

04

A careful mail client

Several accounts, new mail as it arrives, 30 seconds to recall a send, and undo on every action.

05

Decisions from the lock screen

Notifications with Send, Later and No buttons, so most decisions take a second.

06

Standing orders

Pre-agreed replies that earn the right to send on their own through approvals, and lose it after a rejection.

07

An overnight shift

Open threads re-read overnight, promises recorded only when the quoted words are really in the thread, and replies drafted for the morning.

08

Voice

Voice memos transcribed on our own hardware into notes and actions, and a spoken morning brief.

09

Watching the systems

An alert when any source goes quiet, read-only checks on servers and backups, and support messages and stuck jobs picked up from connected systems.

Under the surface

The engineering

  1. 01

    Its own containers, network and database, listening only on the machine itself and reached only over a private network.

  2. 02

    One account, made on first run: scrypt with a per-user salt, constant-time comparison, session tokens stored hashed, and a strict HttpOnly cookie.

  3. 03

    Lock-screen links are stored hashed, work once, expire, and allow one action on one item.

  4. 04

    Text from outside senders is marked as untrusted data wherever it is handed to an AI model.

  5. 05

    Payment and server monitoring are read-only, and the certificate of the server it watches is pinned.

  6. 06

    Nightly backups are checked for integrity, encrypted with AES-256 as they are written, test-decrypted on every run, kept for 14 days and 8 weeks, and copied off-site with a key that can only add files. The restore has been tested.

  7. 07

    The sorting model, speech recognition and speech run on our own GPU. Coding work orders go to Claude Code, and phone notifications pass through a public relay.

Private

Frontal has one user and is not for sale. We show it because it is the clearest example of what we build with AI.

Start a project

Tell us what you are building.

A few lines about the problem is enough to start. We reply within one business day.