Darwinbox
Enterprise HR platform covering hiring, onboarding, attendance, leave, payroll and performance for the whole org.
This is not a tool you use alone, it is the system of record for every employee your company has. The parts that look buildable, a leave tracker and an org chart, are the cheap 10 percent. The expensive 90 percent is statutory payroll across multiple countries, tax filings, audit trails, role-based access that HR and legal will actually sign off on, and the fact that finance, IT and the auditors all already read from it. A personal replacement makes no sense because there is no personal version of a company's payroll compliance. If you are a founder with eight people, a spreadsheet plus your accountant beats both this and a DIY build.
Build verification: not recorded. How we judge buildability
What you give up
- Statutory payroll, tax and provident fund compliance across jurisdictions, which is the entire product
- Audit trails and access controls that survive an actual audit or an employment dispute
- Integrations with finance systems, background check vendors, job boards and identity providers
- Mobile apps that non-technical employees will use for attendance and expense claims
- Someone to blame, and to call, when a pay run goes wrong on the 30th
Why people still pay
Because HR software is bought to reduce risk, not to save time. A wrong pay run or a missed statutory filing costs more than the annual contract, and nobody in the company wants to personally own that. Add the switching cost: once headcount data, leave history, appraisal cycles and payroll inputs all live in one system that finance and IT are wired into, migration is a project with a budget and a steering committee, not a weekend.
Your build guide
The stack, security requirements, and agent rules for a focused replacement.
Before you start
- Node 20 and a machine to run it on
- Someone external doing actual payroll and tax filing
Use these project rules and optional skill references alongside the prompt. Review each skill before adding it to your agent; the AGENTS.md export includes the same guidance.
Project rule, data: Model employees, leave requests, approval decisions, policy versions, and audit events; keep stable source IDs and timestamps.
Project rule, behavior: Employees table: name, work email, job title, department, manager (self-referencing), start date, employment type, location, status (active, on leave, exited), notes. Full CRUD for admins, read-only directory for everyone.
Project rule, recovery: If Someone external doing actual payroll and tax filing is unavailable, keep the source record and show a recoverable error instead of a fabricated result.
Implementation plan
Phase 1, architecture and data
SQLite via better-sqlite3, file at ./data/hr.db, schema created on first run. Model employees, leave requests, approval decisions, policy versions, and audit events; keep stable source IDs and timestamps.
Phase 2, implement
Employees table: name, work email, job title, department, manager (self-referencing), start date, employment type, location, status (active, on leave, exited), notes. Full CRUD for admins, read-only directory for everyone.
Phase 3, implement
Leave: policies table (name, days per year, carry-over cap), balances computed per employee per calendar year, requests with start date, end date, half-day flag, reason, status (pending, approved, rejected).
Phase 4, review and output
Approval flow: a request goes to the employee's manager, manager sees a queue, approve or reject with a comment. Every state change writes an append-only audit row with actor, timestamp and old/new values. Reports: leave taken per employee per year, headcount by department, and a CSV export of employees plus approved leave for whoever actually runs payroll.
Phase 5, recovery and acceptance
If Someone external doing actual payroll and tax filing is unavailable, keep the source record and show a recoverable error instead of a fabricated result. Verify this invariant with a saved fixture: A rejected or withdrawn request cannot change the approved balance; a policy edit must not rewrite past decisions. State the practical limit: Statutory payroll, tax and provident fund compliance across jurisdictions, which is the entire product.
Build a self-hosted internal HR record app for a small team. Not payroll, not compliance, just records and leave. Stack, no substitutions: - Next.js 15, App Router, TypeScript, Tailwind. - SQLite via better-sqlite3, file at ./data/hr.db, schema created on first run. - No auth provider, no cloud, no telemetry. Single shared password from HR_PASSWORD in .env, checked in middleware, plus an ADMIN_EMAILS list in .env that unlocks admin views. In scope: 1. Employees table: name, work email, job title, department, manager (self-referencing), start date, employment type, location, status (active, on leave, exited), notes. Full CRUD for admins, read-only directory for everyone. 2. Org chart rendered from the manager field as nested lists, no graph library. 3. Leave: policies table (name, days per year, carry-over cap), balances computed per employee per calendar year, requests with start date, end date, half-day flag, reason, status (pending, approved, rejected). 4. Approval flow: a request goes to the employee's manager, manager sees a queue, approve or reject with a comment. Every state change writes an append-only audit row with actor, timestamp and old/new values. 5. Working-day math that skips weekends and a holidays table admins can edit. Store all dates as ISO strings, no timezone conversion. 6. Reports: leave taken per employee per year, headcount by department, and a CSV export of employees plus approved leave for whoever actually runs payroll. 7. Seed script with 12 fake employees, 2 policies and a few requests so the app is not empty on first load. Out of scope, do not build: salary fields, payslips, tax logic, expenses, recruitment, performance reviews, mobile apps, email sending, any integration. Deliverables: working app on npm run dev, npm run seed, a .env.example, and a README that states plainly that this is a record keeper and that payroll and statutory filing are handled by a human accountant outside this system.
$ open in your agent (prompt prefilled, you press enter), copy the prompt or copy AGENTS.md · generated from this app's build plan
prompt copied. want to know what dies next week?
new verdicts + top votes, weekly. free. one-click out.
No prior-art project is listed yet. Compare the scoped build with the paid product before choosing.
Questions about Darwinbox
Can you build your own Darwinbox with AI?
A full replacement is not the recommended project. This is not a tool you use alone, it is the system of record for every employee your company has. The parts that look buildable, a leave tracker and an org chart, are the cheap 10 percent. The expensive 90 percent is statutory payroll across multiple countries, tax filings, audit trails, role-based access that HR and legal will actually sign off on, and the fact that finance, IT and the auditors all already read from it. A personal replacement makes no sense because there is no personal version of a company's payroll compliance. If you are a founder with eight people, a spreadsheet plus your accountant beats both this and a DIY build.
What does the Darwinbox build prompt cover?
The prompt starts with this scope: A self-hosted employee directory with leave balances, approval requests and a CSV export you hand to whoever actually runs payroll. Full-product capabilities excluded from the comparison include: Statutory payroll, tax and provident fund compliance across jurisdictions, which is the entire product; Audit trails and access controls that survive an actual audit or an employment dispute; Integrations with finance systems, background check vendors, job boards and identity providers. Follow the implementation plan and its prerequisites before expanding the build.
How do I use the prompt, AGENTS.md and agent skills?
Start with the Darwinbox prerequisites and stack, then copy the prompt into your coding agent. Save the project rules as AGENTS.md in the project root. Linked skills are optional packages or source instructions for specific tasks; review their current contents and install only those matching the chosen stack. A skill does not supply API credentials or verify the finished app.
How long will this Darwinbox project take?
The catalogue estimate is a weekend for the limited scope. Setup, integration approvals, debugging, deployment and ongoing maintenance can add time. This is an estimate, not a delivery guarantee.
What would I give up by replacing Darwinbox?
Statutory payroll, tax and provident fund compliance across jurisdictions, which is the entire product; Audit trails and access controls that survive an actual audit or an employment dispute; Integrations with finance systems, background check vendors, job boards and identity providers; Mobile apps that non-technical employees will use for attendance and expense claims; Someone to blame, and to call, when a pay run goes wrong on the 30th. Because HR software is bought to reduce risk, not to save time. A wrong pay run or a missed statutory filing costs more than the annual contract, and nobody in the company wants to personally own that. Add the switching cost: once headcount data, leave history, appraisal cycles and payroll inputs all live in one system that finance and IT are wired into, migration is a project with a budget and a steering committee, not a weekend.
What can I use instead of building Darwinbox?
No alternative is listed in this entry yet. That is a gap in this catalogue, not proof that no suitable product exists. Compare the paid product and the proposed scope before committing to a build.