# Build brief — a focused alternative to Connecteam

> **Verdict:** Not faithfully · **Buildability:** 10/100 · **Category:** HR
> **Source:** https://www.canitbevibecoded.com/connecteam
> Independent editorial assessment from Can It Be Vibe Coded? Not affiliated with, endorsed by, or derived from Connecteam. Verify current pricing and capabilities before acting.

## Context

**Connecteam** — Scheduling, time clocks, tasks, communication, and HR for deskless teams. It currently costs $29/mo.

Not as a one-shot. A narrow scheduler, availability form, shift checklist, and explicit clock-in log are buildable, but Connecteam's real product is the maintained mobile system around them: multi-user permissions, push delivery, GPS and kiosk capture, payroll integrations, audit history, and HR and compliance workflows. That is operational software a team has to trust, not a personal CRUD app.

This brief describes a focused, single-operator replacement for the part of Connecteam that is genuinely reproducible. It is deliberately narrower than the product it replaces, and it says so in writing. Build the useful core; do not pretend to have rebuilt the rest.

## What you are building

Publish a two-week staff schedule, collect availability and time-off requests, approve shift claims or swaps, attach checklists, and record explicit clock-ins with an auditable CSV export.

- Run internal workflows such as time-off requests, onboarding checklists, and review cycles.
- A responsive interface with real empty, loading, success, and error states.

## Requirements

### Functional

- Private HTTPS deployment.
- Node.js 22 and SQLite.
- Documented access, backup, and retention policy.

### Data and integrations

- SMTP credentials for employee magic links.

Each of these needs a real account, credential, or quota. Set them up before writing feature code.

### Non-functional

- Accessibility: semantic markup, labelled controls, visible focus, and reduced-motion support.
- Security: server-side secrets, validated input, and no credentials in the client bundle.
- Reliability: retries with backoff on external calls, and a clear failure state when a provider is down.
- Portability: the operator can export their data and leave without losing it.

## Implementation brief

Build me a narrow small-team workforce scheduler to replace only Connecteam's visible operations loop. Requirements:

- Use Node.js 22, Fastify, Nunjucks, htmx, and better-sqlite3. Run one
  process behind Caddy; do not add a SPA, ORM, or container platform.
- Give one admin a mobile-first two-week schedule editor for employees, roles,
  locations, open shifts, recurring shifts, and per-shift checklists.
- Employees sign in with expiring magic links sent through SMTP credentials in
  .env. No public signup; hash tokens and rate-limit every login endpoint.
- Each employee can set availability, request time off, claim an open shift,
  request a swap, see only their own schedule, and mark shift tasks complete.
- Add explicit clock-in/out buttons. Store server time and optional one-shot
  browser location only after consent; never track location in the background.
- Managers approve requests, publish changes, and see an append-only audit log.
  Export schedules, requests, and worked time as CSV; never calculate payroll.
- Store everything in SQLite, make nightly timestamped backups, and include a
  tested restore command. No telemetry or third-party tracking.
- Out of scope: native apps, push notifications, chat, GPS geofences, kiosk and
  NFC clocks, payroll integrations, training, HR documents, and legal compliance.
- Add focused tests for permissions, overlapping shifts, token expiry, and CSV
  export, plus one Playwright flow from invite through completed shift.
- Include a README for .env, HTTPS, backups, retention, and the employee-data
  risks. End by running tests and listing the exact commands and results.

## Delivery standard

- Inspect the repository first, then write a short implementation plan before writing code.
- Deliver the smallest complete end-to-end workflow first; every primary control must work against persisted data.
- Use real validation and storage; never substitute fake dashboards, decorative controls, hard-coded success states, or mock integrations.
- Include responsive layouts plus genuine empty, loading, success, validation, and failure states.
- Keep secrets server-side in environment variables, provide .env.example, and never commit credentials or user data.
- Add structured logs around every external call and return actionable errors without leaking sensitive details.
- Write unit tests for the core logic and one automated test of the main user journey.
- Finish with a README covering setup, architecture, data location, backups, tests, deployment, and known limitations.

## Acceptance criteria

- [ ] A clean install starts the app using only the README and .env.example.
- [ ] The primary journey works from first visit through saved result, reload, edit, export, and deletion where applicable.
- [ ] Invalid input, missing configuration, provider failure, and an empty database each have a usable state.
- [ ] The interface works at 390px and 1440px, is keyboard navigable, and shows visible focus on every control.
- [ ] Tests, type checking, linting, and a production build all pass with no ignored failures.
- [ ] No part of the interface implies a live integration, security guarantee, or scale capability that was not actually built and verified.

## Non-goals

Do not build these, and do not claim to have replaced them:

- Native iOS and Android apps, offline use, and reliable push notifications.
- GPS geofences, kiosk and NFC clocks, and background location workflows.
- Payroll integrations, overtime rules, and labor-law compliance support.
- Chat, training, HR documents, recognition, and the rest of the three-hub suite.
- Vendor support plus hardened permissions, audit history, and incident response.

## What you still own after launch

- Run migrations, backups, restores, and dependency updates.
- Test the critical journey after every model, API, or hosting change.
- Monitor failures and fix the edge cases a first prompt will miss.
- Maintain every third-party integration as APIs and OAuth rules change.

## Risk

**High consequence.** Use this as a prototype or personal aid. Keep a qualified human and an established provider in the loop for consequential decisions.

Editorial confidence in this assessment: high. No reviewed project implementation is linked yet.

## Existing alternatives

Before building, compare these checked options:

- [Sling Free](https://getsling.com/) — Schedules, availability, time off, shift swaps, news and direct messages for 30 people; clocks and labor reports stay paid
- [Frappe HR](https://frappe.io/hr) — Shifts, mobile check-ins, attendance, leave and payroll in an open-source HR suite; the server and country rules are now your problem
- [OrangeHRM Starter](https://www.orangehrm.com/en/orangehrm-starter-open-source-software) — Employee records, leave, time tracking and mobile clock-in, free in its cloud or on your own server; scheduling and team comms are not the point

## Prior art

Working open-source software you can read, fork, or borrow from before starting:

- [Frappe HR](https://github.com/frappe/hrms) — Active open-source HR suite with shifts, attendance, leave, payroll, and employee self-service

---

Generated by [Can It Be Vibe Coded?](https://www.canitbevibecoded.com) · Full report: https://www.canitbevibecoded.com/connecteam
