Trust and security
Groundskeeping and Floorkeeping are made and run by Robert Spencer, a sole proprietor in Provo, Utah. This page answers what a university's security, privacy, accessibility and purchasing reviewers usually ask. Security questions: rems.byustudies@gmail.com (see also security.txt).
At a glance
Least privilege
A crew phone joins one area with its join code. Manager rights come from a hashed PIN, an authenticator code or campus sign-in, and end by themselves.
Encrypted
Everything travels over HTTPS with HSTS. Google encrypts the database, files and backups at rest.
Your data, your region
Stored in Google Cloud Firestore and Cloud Storage in us-west3 (Salt Lake City, Utah). Never sold, never used for advertising.
Support only with consent
The author enters an area only when its manager or organization allows it, for a set time, visibly, and every step is logged.
Accessible
Built to WCAG 2.2 AA and checked with automated tests on every release. Accessibility Conformance Report.
Checked on every release
A release does not ship unless every automated check passes: security rules, headers, secrets, dependencies, accessibility and the features themselves.
Security
- Sign-in. Each phone signs in to Firebase Authentication. It reads and writes an area only after joining with that area's join code. A manager's rights come from the access function after a right PIN (hashed with a per-site salt, with limited tries), an optional authenticator code, or the university's own sign-in. Supervisors sign in with a code sent to their work email.
- Rules on the server. Firestore security rules decide every read and write: private records (email addresses, PINs, keys, time-off reasons, supply prices, support records) cannot be read by any phone, or only by the manager. The rules are tested on every release.
- Web protections. A Content Security Policy that blocks inline event handlers and plugins, HSTS, nosniff, a referrer policy and a permissions policy. Data from other people is never written into the page as code.
- Keys and secrets live in Google Secret Manager or in documents only the app's server can read; the release checks fail if one appears in the code.
- Records. The app keeps a history of work, changes made by supervisors under their name, a support log, and an audit log for each organization.
Support access
Modelled on how large platforms handle vendor access, and on NIST SP 800-53 MA-4 (non-local maintenance). The author can help set up or troubleshoot an area only when its manager (help, for a day or a week) or the organization's admin (setup or help, up to 60 days) gives access. Changes, and seeing the app as one person sees it, are off unless they are turned on. The author opens an area with an author key and a code sent to their email; the session ends by itself after at most eight hours; the manager is told when the author comes in and leaves; and every grant, session, view and test is written to the support log, which the manager and the organization's admin can download. The organization's admin can switch support access off for every area at once.
Data
- What is kept is listed in the Privacy Policy: crew names, the map and its markers, the work done, problems and photos, and the settings. Contact details are kept only if a person or their manager adds them.
- Where. Google Cloud (Firebase) in us-west3. The app itself is served by Cloudflare.
- Deleting. An organization can ask for an area's data to be exported or deleted; it is done within 30 days. Finished items the app no longer needs (such as a supervisor's finished list lines) are removed automatically.
- Children. The app is for staff and student employees and is not directed at children under 13.
Services used
| Service | What it does | Data it sees |
|---|---|---|
| Google Firebase (Google Cloud) | Database, files, sign-in, server functions, push notifications | Everything the app stores |
| Cloudflare | Serves the app; receives email sent to an area's service-request address | Web requests; service-request emails |
| Resend | Sends email (notices, sign-in codes) | The address and the message |
| Twilio | Sends and receives text messages | The phone number and the message |
| Stripe | Takes payment from the paying organization | Billing details; the app never sees card numbers |
| Anthropic | The AI features (reading a whiteboard photo or a message, answering questions about the library, translating), which a manager can turn off | Only what that feature sends; not used to train models |
| Slack or Microsoft Teams | Only if an organization connects its own channel | What the organization chose to send; no names or words unless it turns them on |
Incidents and support
- If something goes wrong. A suspected breach is investigated at once. Affected organizations are told within 72 hours of confirming a breach of their data, with what happened, what data was involved and what is being done, and are kept informed until it is closed.
- Reporting a problem. Anyone can report a security problem to the address above; reports are answered within two business days.
- Support. Get help, inside the app, reaches the author directly; requests are answered within one business day, Monday to Friday, Mountain Time.
- Availability. The app runs on Google Cloud and Cloudflare, and keeps working offline on each phone; work done offline saves when the phone reconnects. The status page shows whether the app, saving, notices, email and texts are working, checked every five minutes, with the last 90 days and any incident.
Accessibility
Built to WCAG 2.2 Level AA, which also covers WCAG 2.1 AA (the standard in the U.S. Department of Justice ADA Title II rule for public universities) and Section 508. axe-core runs on every screen and dialog, at phone and desktop sizes, on every release, and a release does not ship with a violation. Testing with screen readers and other assistive technology on devices follows a written plan. Read the full Accessibility Conformance Report.
HECVAT answers
Short answers to the questions in the Higher Education Community Vendor Assessment Toolkit (HECVAT 4), grouped as it groups them. The full questionnaire is completed for a university on request. Download these answers as a spreadsheet:
| Section | Question | Answer | Detail |
|---|