FlexiPayroll calculates monthly payroll from attendance, business rules, and employee adjustments. It runs entirely in the browser, stores data in localStorage, and needs no account or backend.
- Employee records, salaries, and probation status
- Entry and exit time tracking
- Workday, holiday, paid-leave, and unpaid-leave records
- Configurable bonuses, deductions, and eligibility rules
- Per-employee payroll adjustments
- Detailed printable salary reports
- JSON backup and restore
- Light and dark themes
- Installable PWA with offline support
Requires Node.js 18 or newer and npm.
npm ci
npm run devOpen http://localhost:5173 in your browser.
| Command | Purpose |
|---|---|
npm run dev |
Start the Vite development server |
npm test |
Run payroll, print, backup, and dialog tests |
npm run build |
Build for deployment under /flexipayroll/ |
npm run build:offline |
Build with relative asset paths |
npm run preview |
Preview the production build |
Vite writes build output to dist/.
- Configure the pay period, working days, and payroll rules.
- Add employees and monthly salaries.
- Record attendance and leave.
- Apply employee-specific adjustments.
- Review and print salary reports.
The browser stores data under the current profile and site origin. Clearing site data removes it. Export a backup before clearing browser data or moving to another device.
Svelte 5, Vite 6, Sass, and vite-plugin-pwa.
