Model or dataset
Curbob/LobsterBoard avatar
Curbob/LobsterBoard

LobsterBoard: a self-hosted dashboard builder with no build step

OpenClaw Dashboard Builder - Create custom dashboards

975 stars144 forksJavaScriptNOASSERTION

At a glance

What is it?
LobsterBoard is a drag-and-drop dashboard builder that runs as a single Node.js server with no framework and no build step, offering more than sixty widgets, a template gallery, custom pages, five themes and live system statistics streamed over Server-Sent Events, plus a separate agent for pulling data from remote machines.
Who is it for?
LobsterBoard is worth a look if you want a wall display for a homelab, a status board for a small team, or a personal dashboard of stocks, weather and todos, and you are happy to run a Node process on a machine you control. It is the wrong choice if you need a supported product, if you need multi-user accounts and roles, or if your monitoring has to meet a compliance regime.
Can I use it commercially?
Check first. The repository uses a licence we do not classify automatically, so read its LICENSE file before any commercial use.
Is it still maintained?
Yes. The repository last received commits 171 days ago.
What is it written in?
Mainly JavaScript, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on October 24, 2026, and from our analysis. They are not legal advice.

Editorial analysis

One Node process, no framework, no build step

LobsterBoard describes itself as a self-hosted, drag-and-drop dashboard builder with more than sixty widgets, a template gallery, custom pages and zero cloud dependencies, and the architecture claim is in the same sentence: one Node.js server, no frameworks, no build step needed. That last part is what separates it from the build-a-React-app-and-serve-it approach. There is no bundler to run before you can look at your dashboard, no toolchain to install, and the thing you start is the thing you deploy. The quick start is two steps if you already have Node:

bash
npm install lobsterboard
cd node_modules/lobsterboard
node server.cjs

Or you clone it, which is the route to take if you intend to change the source:

bash
git clone https://github.com/Curbob/LobsterBoard.git
cd LobsterBoard
npm install
node server.cjs

Then you open http://localhost:8080, press Ctrl+E to enter edit mode, drag widgets from the sidebar and save. The package is published as lobsterboard on npm, with a binary named lobsterboard alongside the server, and the project also ships a Procfile and a CNAME, so it is clearly meant to be hosted somewhere as well as run on a laptop.

The editor: a snap grid, resize handles and a property panel

The editor is the part you will spend your time in, and the feature list describes it precisely. It is a visual layout with a 20px snap grid, resize handles on the widgets, and a property panel for settings. Widget settings are edited in the right-hand panel during edit mode, and all configuration is saved to config.json, so a dashboard is a file on disk rather than a row in a database. Beyond the grid there are two structural features that make it a dashboard builder rather than a widget demo. Canvas sizes let you pick a preset resolution such as 1920 by 1080 or 2560 by 1440, or a custom size, which is the difference between a page you scroll and a wall display you do not. Custom pages extend the dashboard with full pages of your own, with notes and kanban boards named as examples, so the thing is no longer limited to a grid of tiles. Live data arrives over Server-Sent Events, so system statistics stream to the browser and widgets auto-refresh rather than polling on a timer.

Sixty widgets, and a surprising amount of AI quota tracking

The widget catalogue is grouped by theme, and the groups tell you what the author uses this for. System monitoring covers CPU and memory with real-time load, disk usage with a ring gauge, network speed, an uptime monitor and a list of Docker containers with their status. Weather comes in a local variant for your city and a world variant for a multi-city overview. Time and productivity holds an analog or digital clock, a world clock across time zones, a countdown to a target date, a persistent todo list, a pomodoro timer and persistent rich-text notes with auto-save. Media and content covers an RSS ticker from any RSS or Atom feed, a calendar that reads iCal feeds from Google, Apple or Outlook, now playing, a quote of the day and a quick links bookmark grid. The group that stands out is the AI and LLM monitoring section, which tracks coding subscription quotas across a long list of providers, including Claude Code, Codex CLI, GitHub Copilot, Cursor, Gemini CLI, Amp, Kimi Code, JetBrains AI, Antigravity, MiniMax and Z.ai, with a combined usage view and a monthly cost tracker. That group was inspired by the OpenUsage project by Robin Ebers, and the setup column shows the pattern, several of them read a local CLI's own output.

Remote servers need a second process

Monitoring a remote machine is not done by pointing the dashboard at a URL. There is a separate package, lobsterboard-agent, that has to run on the machine you want to watch, and the setup is three commands:

bash
npm install -g lobsterboard-agent
lobsterboard-agent init     # Generates API key - save it!
lobsterboard-agent serve    # Starts on port 9090

The init step generates an API key, and the readme is emphatic about saving it. You then add the server from the Servers button in the dashboard header, giving a name, the URL in the form http://your-server-ip:9090, and the key, and you press Test Connection to verify it. Only then do the widgets appear, and you choose which server each widget reads from using the Server dropdown in the widget properties, which is what makes a multi-server dashboard possible with one widget type per machine. Five widgets support remote data: the Uptime Monitor, CPU and memory, disk usage, network speed and the Docker container list. The design is sensible, a server exposes only a narrow set of metrics rather than a general remote shell, but the agent is a separate process that has to be installed and kept running on every machine you watch.

Templates are folders, and they import in two modes

The template system is the part that turns a personal dashboard into something a community can share. You export your current dashboard as a template, and the export automatically captures a screenshot preview, so the gallery shows what a template looks like before you commit to it. You browse the gallery to find a layout, and then you import it in one of two modes. Replace swaps your entire dashboard for the template, and merge appends the template's widgets below your existing layout, which is the mode that makes a gallery useful to somebody who already has a working dashboard. Templates are stored in the templates directory and can be shared as folders, so sharing a layout is sharing a directory rather than a file format with a schema. The screenshots are generated by the application itself, which means the export step needs a browser or a renderer on the machine doing the export, and that is a dependency the readme does not spell out.

Themes, configuration and the question of who can reach it

Five themes ship with the project, and they are described with some humour: Default, a dark theme with emoji icons and the classic look, Terminal, a green CRT aesthetic with scanlines and Phosphor icons, Paper, warm cream and sepia tones with serif fonts and a vintage feel, and the two Feminine themes, one in soft pink and lavender pastels with subtle glows and one in pink and purple accents on a dark background. You switch themes from the dropdown in edit mode and the choice persists across sessions. The server itself is configured through two environment variables, and the readme shows both:

bash
PORT=3000 node server.cjs              # Custom port
HOST=0.0.0.0 node server.cjs           # Expose to network

The second of those is where a careful reader should pause. The documentation covers the port, the host, the agent API key and the fact that everything runs locally with no cloud dependency, and the repository does contain a login.html, but the readme does not explain how the dashboard itself is protected when it is exposed beyond your own machine. That is a question to answer before you set HOST to 0.0.0.0 on a machine on a shared network.

Licence, packaging and where the project stands

The package metadata names the licence as BSL-1.1, while GitHub lists it as Other and says it cannot classify it, so the licence file is the place to read. The version is 0.8.6, and the release titles are a good summary of the recent work: v0.8.3 was widget interaction fixes, v0.8.4 was finance and search hardening, and v0.8.6 is the current one, released on 2026-05-07, which is also the date of the last push. The package is structured as a modern JavaScript library even though the server is plain Node. The main entry is a Rollup bundle in dist, with separate exports for the stylesheet, the widget definitions and the builder, a bin entry point, and the server itself published as server.cjs with its own server directory. The scripts show the workflow: Rollup for the build, node server.cjs for start and dev, and Vitest for the tests with a coverage mode, and there is a pre-commit hook in the tree. The description in the package metadata still says fifty widgets while the readme says more than sixty, which is the kind of small drift you will find in a project with a single maintainer and a lot of widgets.

Editorial conclusion

LobsterBoard is worth a look if you want a wall display for a homelab, a status board for a small team, or a personal dashboard of stocks, weather and todos, and you are happy to run a Node process on a machine you control. It is the wrong choice if you need a supported product, if you need multi-user accounts and roles, or if your monitoring has to meet a compliance regime. Before you expose it beyond your own network, read the authentication story yourself, because the documentation covers the port and host environment variables and the agent API key without explaining how the dashboard itself is protected.

Frequently asked questions

What is LobsterBoard?

It is a self-hosted, drag-and-drop dashboard builder with more than sixty widgets, a template gallery, custom pages and no cloud dependency. It runs as a single Node.js server with no framework and no build step, and works standalone or alongside OpenClaw.

How do I start LobsterBoard?

Run npm install lobsterboard, change into node_modules/lobsterboard and run node server.cjs, or clone the repository and run npm install followed by node server.cjs. Then open http://localhost:8080, press Ctrl+E for edit mode and drag widgets from the sidebar.

How do I monitor a remote server with LobsterBoard?

Install the separate agent on that machine with npm install -g lobsterboard-agent, run lobsterboard-agent init to generate an API key and lobsterboard-agent serve to start it on port 9090. Then add the server from the Servers button in the header with its name, URL and key, press Test Connection, and pick the server per widget in the widget properties.

Which LobsterBoard widgets work with remote servers?

Five of them: the Uptime Monitor, CPU and memory, disk usage, network speed and the Docker container list. You can mix servers across widgets, which is how a single dashboard covers several machines.

Official sources

  1. Curbob/LobsterBoard on GitHub
  2. Issues
  3. README
  4. Releases
Add this badge to your README

If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/curbob-lobsterboard.svg)](https://hysenlabs.com/projects/curbob-lobsterboard)

Was this useful?