Back to Blog

Building BAU Suite: A Project Management Platform for BAS Engineers

5 min read

Building BAU Suite: A Project Management Platform for BAS Engineers

Building automation is one of those fields where the software hasn't caught up to the work. Commissioning a building means juggling device inventories, IP address plans, daily reports, point mapping, and field notes — usually across a mix of spreadsheets, emails, and whatever's on the job trailer's shared drive.

I work as a controls engineer at Siemens, and after years of this I decided to build something better. BAU Suite is a project management platform built specifically for BAS engineers. It's now at v4.8.7 and the gap between what it does and what existed before is significant.

The Problem

A typical commissioning project involves:

  • Tracking hundreds of field devices across multiple systems
  • Maintaining an IP address plan that stays accurate as things get added and moved
  • Writing daily reports for the general contractor and project record
  • Running diagnostics on drives, tuning PID loops, and testing network connections

None of this is well-served by generic project management tools. Notion doesn't understand point addresses. Excel can't run a Telnet session. And anything cloud-first creates friction when you're on a job site with a spotty connection.

Offline First, Cloud Optional

The core architectural decision behind BAU Suite is that all data lives locally by default. I used IndexedDB as the primary store — it's built into the browser, handles large structured datasets well, and works completely offline.

Cloud sync via Supabase is available, but it's opt-in. You can use the app for years without ever touching a server. When you do want sync — to share a project with another engineer or access your data from a different machine — you configure it once and it stays in the background.

This matters on job sites. Internet access is unreliable, security policies sometimes block cloud services, and some clients want their project data to stay on-site. Offline-first wasn't a nice-to-have; it was a requirement I knew going in.

Shipping as a Desktop App with Tauri

The app runs as both a web app and a native desktop application on Windows and macOS, built with Tauri v2. The reasoning was simple: engineers aren't always working in a browser, and a native app with a proper installer feels more like a professional tool.

Tauri wraps a Next.js frontend in a lightweight Rust shell. The result is a small binary — much smaller than an Electron app — that opens fast, integrates with the OS, and doesn't require a running server. File access and system clipboard integration come through Tauri's plugin system.

// Tauri IPC for reading a file from the local filesystem
import { readTextFile } from "@tauri-apps/plugin-fs";
 
const content = await readTextFile(filePath);

Building for both web and desktop from the same codebase required some careful abstraction around filesystem access and storage. The approach: detect the runtime environment and route to the appropriate adapter. IndexedDB works everywhere; native file access only fires in the Tauri context.

The Engineering Toolset

Project management is the shell, but the tools embedded in it are what make BAU Suite actually useful in the field.

PID Tuner — input your process characteristics and it outputs Kp, Ki, Kd starting values with an explanation of the math. Useful when you're staring at an unstable loop and need a place to start rather than guessing.

Network Diagram Builder — visual drag-and-drop tool for mapping out BAS network topologies. Generates a diagram you can include in project documentation.

Telnet Terminal — a browser-based terminal for connecting to controllers that expose a Telnet interface. Lets you run diagnostics without leaving the app or installing a separate terminal emulator.

PPCL Editor — a code editor for PPCL, the programming language used in some Siemens controllers. Syntax highlighting, basic validation, and a structure familiar enough to not get in the way.

These tools aren't revolutionary on their own. What makes them useful is that they're embedded in context — you're already looking at a device record when you decide to run a diagnostic, already in a project when you need to check the IP plan.

Tech Stack

The frontend is Next.js and TypeScript with Tailwind CSS. Supabase handles auth and the optional cloud sync layer. The desktop shell is Tauri v2 with Rust.

One decision I'd make again: keeping the sync layer strictly additive. Supabase is never in the read path if you're working offline — all queries hit IndexedDB first. Sync runs in the background and doesn't block anything. If the server is unreachable, you notice nothing.

What v4.8.7 Looks Like

After several major iterations, BAU Suite handles the full project lifecycle for a commissioning job:

  • Project setup with device inventory, system types, and location tags
  • IP address plan management with conflict detection
  • Daily report generation and export
  • Device-level notes, status tracking, and point mapping
  • The full embedded toolset described above

It's the tool I wished existed when I started commissioning work. Building it taught me more about what BAS engineers actually need than any spec I could have written up front — most of the v4 features came directly from running it on real projects and noticing what was missing.

If you work in building automation and want to try it or contribute, the repo is on GitHub.

Back to Blog