Launch AI Works
InsightsNov 11, 20268 min read

Self-Hosted Occupancy Board: A Simple Way to Know Who’s In the Office

A self-hosted occupancy board gives small teams a glanceable display of who is in the office, built from a single Node.js process and one SQLite file.

LBy Launch AI Works
Self-Hosted Occupancy Board: A Simple Way to Know Who’s In the Office
The short version

A self-hosted occupancy board runs on your own server, showing every tenant and person with their status. It uses one Node.js process and one SQLite file, with no external dependencies.

What Is a Self-Hosted Occupancy Board?

A self-hosted occupancy board is a simple tool that shows everyone in a building and whether they are in, out, or away. Each person chooses what contact information and which picture — photo, company logo, or initials — is shown. The board has five layouts: table, list, cards, tiles, and board. You can switch between them with a layout switcher.

The board is built as one Node.js process plus one SQLite file. It has no dependencies beyond those. It runs on your own server, not on a third-party cloud. The code is public on GitHub, and you can deploy it with a Dockerfile, a compose file, and a systemd unit. The deployment guide is in the repository.

Why Small Businesses Should Care

Small businesses often rely on group texts or hallway conversations to know who is in the office. That can be slow and unreliable. A self-hosted occupancy board gives you a single, glanceable display that updates in real time. You can see at a glance who is in, who is out, and who is away.

The board includes an admin console with a time log, per-person profile pages, and CSV import and export of all people. You can import a list of people from a spreadsheet and export events for record-keeping. The admin console also has a sidebar with overview, tenants, people, and a time log with shifts and hours.

Privacy by Design

The board is built with privacy in mind. Name, title, picture, and status are always shown. Office is shown by default. Phone and email are hidden until the person or an admin turns them on. Search never matches phone numbers or emails. This means anyone who opens the home page can see who is in the office, but personal contact details stay private unless the person chooses to share them.

Each person controls what is shown on their profile. They can sign in at /me to manage their own information. Admins can manage any profile through a dialog. The board also supports tenant logos and a tenant-manager role.

What You Need to Know Before Deploying

The board is self-hosted, so you need a server to run it. The repository includes a Dockerfile and a compose file with an optional Cloudflare Tunnel. The deployment guide explains how to set it up. The live demo runs on GitHub Pages with made-up data stored in the visitor’s own browser.

Two things still need attention: you need to switch on GitHub Pages for the live demo, and you need to decide what to do about real names and phone numbers that are in the public repository. The build log notes that the repository is public, so sensitive data should not be committed.

The board was built by Jordan Mason with Claude Code on November 9-10, 2026. It is merged into main and running on a preview server. The preview is behind Cloudflare Access and uses proxy-aware settings to handle cross-site checks.

How It Compares to Other Options

The build log notes that the team searched similar products — Savance EIOBoard, uSignIn, OnLocation, Creative In/Out — and found no maintained open-source equivalent. Most commercial options are paid and cloud-based. A self-hosted board gives you full control over your data and no recurring subscription fees.

The board is not a Kanban board or a task management tool. It is specifically for showing presence in a physical space. If you need a Kanban board, options like Planka, WeKan, or Kanboard exist. But for a simple occupancy display, this self-hosted board fills a gap.

Takeaways

  • A self-hosted occupancy board runs on your own server with one Node.js process and one SQLite file, no external dependencies.
  • Each person controls what contact information and picture is shown; phone and email are hidden by default.
  • The board includes five layouts, an admin console with time log, CSV import/export, and per-person profiles.
L

Launch AI Works builds practical AI and automation inside small businesses. Notes in Insights are written from sources we cite and checked before publishing.

Your turn

Where would this work in your business?

Take the two-minute AI Opportunity Snapshot and we will point to where automation is most likely to pay off for you.

2mFree AI Opportunity Snapshot →