Groundwork Robotics · Founder and Author · 2026-08

Groundwork Robotics Platform

The public site, staff CMS, and training system for a robotics education nonprofit, in development.

42
Public pages
38
Staff pages
128
Training decks
16
Test suites

Express, EJS, and Node's built-in SQLite, with no build step and no native dependency to compile. Forty two public pages and thirty eight staff pages over thirteen route modules, a training system with a hundred and twenty eight decks, and a set of checks that fail the build on a broken link, an empty section, or a placeholder that reached a visitor.

Discipline Breakdown

What This Was, per Discipline

Software Primary

Express and EJS on Node's built-in SQLite: thirteen route modules, a training system with grading and certificates, a newsletter, and a document library, with no build step and no native dependencies.

Documentation Significant

A governance and training document set generated by a toolchain, with a checker that reads each .docx from inside the zip so a duplicate policy under another file name is still found.

Business Significant

The platform for a nonprofit seeking 501(c)(3) status: the public face, the staff tools, and the training records it has to keep.

Teaching Supporting

A hundred and twenty eight training decks with watch validation and completion rules, built so a volunteer can be trained without a person in the room.

Groundwork Robotics is a California nonprofit, seeking 501(c)(3) status, that trains and supports the students, mentors, coaches, and volunteers behind competitive robotics. This is the software it runs on, and it is not finished: it is in development and has not shipped.

The part worth pointing at is the checks, and there are five that run before any new copy is committed. One crawls the running site for links that do not resolve, fragments included, sections that render blank, and seeded placeholder text that reached a visitor. One holds every count a document states about the repository against the repository, which catches the figure that was correct when it was written and is not now. One compares the training tree against the decks in both directions: files no deck produces, and files a deck produces that are absent.

A document scanner reads .docx directly, because a .docx is a zip holding one XML file and searching a Drive for a policy name therefore returns nothing whatever the answer. Three duplicate policies were written on that false negative before the check existed. It reads each title from inside the file rather than from its name, so a copy under a different name in a different folder is still caught.

The training system is the largest piece: watch validation, grading, completion, and certificates, with the rules in one module and unit tests over them rather than spread through the routes.