NAP means Not Another Program or Next-generation Accounting Platform. It is a project-native, multi-company enterprise resource planning (ERP) system for construction workflows.
The core includes:
- Multi-tenant infrastructure
- Role-based access control
- Master data
- Projects and activities
- Accounts payable and receivable
- Double-entry accounting
- Cash flow and profitability
- PostgreSQL
- Express
- React
- Node.js
| Path | Contents |
|---|---|
apps/api/ |
Express backend-for-frontend and database maintenance commands. See its README. |
apps/web/ |
React web client built with Vite. See its README. |
packages/shared/ |
Transport contracts shared by the API and web client. See its README. |
scripts/ |
License, release, and roadmap checks run by npm and continuous integration (CI). See its README. |
docs/ |
Architecture, product requirements documents (PRDs), setup and design guides, roadmap, and branding. |
.github/workflows/ |
CI, changelog check, roadmap check, and release on merge. |
render.yaml |
Render Blueprint for the production API service. |
Architecture:
Requirements and delivery:
Setup guides:
Design guides:
The documentation is authoritative, except design guides, which are reference only.
Install the Node version in .nvmrc, then npm ci. The
development setup guide covers PostgreSQL,
roles, and the private apps/api/.env file.
| Command | Purpose |
|---|---|
npm run dev:api |
API on port 3000 with file watching. |
npm run dev:web |
Vite dev server proxying /api to the API. |
npm run db:setup:admin -- --env dev |
Create or verify the admin database and roles. |
npm run db:migrate:admin -- --env dev |
Apply admin migrations and verify the contract. |
npm run db:bootstrap -- --env dev |
Create the Napsoft tenant and its first login, which gets platform_admin when Napsoft tenant setup seeds its cell, from ROOT_* settings. |
npm run db:provision:napsoft -- --env dev |
Provision the first cell and seed the Napsoft roles. |
npm run test:db |
PostgreSQL integration tests on a disposable server. |
Run these checks before requesting review:
npm run lint
npm run format:check
npm test
npm run build
npm run licensesNAP is licensed under the GNU Affero General Public License, version 3 or later (AGPL-3.0-or-later). See LICENSE.
If you run a modified version of NAP over a network, you must make the modified source available to your users.
Every commit must include a Signed-off-by trailer asserting the Developer
Certificate of Origin (DCO) 1.1. See COLLABORATION.md for the
contribution and dependency rules. Pull requests follow the release contract
in scripts/README.md.
The maintainer (Ian Silverstone) has sole enforcement authority over project rules.
Copyright (c) 2026-present NapSoft, LLC. All contributors retain copyright in their contributions, licensed to the project under AGPL-3.0-or-later via the DCO sign-off.