
FlyHR is a free HR management plugin that turns your site into a working HR system. Your employee directory, org structure, leave policies and approval workflow all live in one place, on your own server, with no per-employee fees and no data leaving your hosting.
It’s built as a single-page React application on top of a modern PHP backend, so it feels like a real HR product rather than a set of admin screens bolted onto WordPress. You can see what it looks like and read the documentation at flyhr.co.
Why FlyHR?
- It’s genuinely fast – The whole interface is a single-page React 19 app. Going from the employee directory to a leave request doesn’t reload WordPress admin every time.
- Leave balances that actually add up – Most HR plugins track leave with a counter that gets incremented and decremented. FlyHR uses a double-entry ledger, the same approach accounting software uses, so every entitlement, deduction and refund is a recorded entry you can trace.
- Your data stays yours – FlyHR is 100% self-hosted. Salary history, termination records and personal details sit in your database, not on someone else’s cloud. FlyHR is GPL licensed.
- It doesn’t pollute your database – Everything lives in dedicated
wp_flyhr_*tables. No thousands of rows dumped intowp_postsandwp_postmeta, no slowing down the rest of your site. - It’s built to be extended – REST endpoints under the
/flyhr/v1/namespace, a PSR-11 dependency injection container, and Action Scheduler for background work.
Employee Management
Keep every staff record in one searchable place, from the day someone is hired to the day they leave and beyond.
- Employee directory – Search and filter everyone in the company from a single screen
- Full profiles – Personal details, contact information and avatars
- Job and organizational data – Department, designation, location and supervisor on every record
- Job history ledger – Four separate categories tracked over time: employment status, employment type, compensation and job role, so you always know who changed what and when
- WordPress user conversion – Turn an employee record into a WordPress user with the right role in one step
- Email conflict detection – You never end up with two records fighting over the same address
- Private HR notes – Internal notes on an employee that regular staff can’t see
- Termination workflow – Plus reactivation and restoration for when someone comes back
- Safe delete – With a force option for when you really mean it
Departments and Designations
Build the org chart your company actually has, not the flat list most plugins give you.
- Parent and child departments – Real hierarchy, not a single flat list
- Department leads – Assign a lead who can approve leave for their own team
- Designation library – Job titles with descriptions and an active or inactive status
Leave Types and Policies
Leave rules are where most HR plugins fall apart. FlyHR lets you describe how your company actually works instead of forcing one blanket rule on everyone.
- Any leave type you need – Annual, sick, casual, maternity, paternity, unpaid, or something specific to your business
- Multi-attribute policies – Scope a policy across several attributes, so contractors, a single department or one office location can each get their own entitlements
- Ledger-based entitlements – Entitlements are issued through the ledger, so balances are always auditable
Leave Requests and Approvals
Staff request their own time off, managers approve it, and the balances take care of themselves.
- Employee self-service – Staff submit their own requests, validated against their available balance before they can send it
- Two-tier approval – Department lead reviews first, then an HR manager gives final approval
- Mandatory rejection reasons – Rejections need a written explanation, so nobody is left guessing
- Automatic balance handling – Approved days are deducted and cancelled days are refunded, with no manual correction
- Bulk processing – Clear a queue of pending requests in one pass
- Email notifications – Automatic messages at each step of the request
Holidays and Working Schedule
- Public and company holidays – Single-day or spanning several days
- Interactive calendar – See who’s off and when, across the whole team
- Working days and financial year – Configure both to match your company
Administration and Security
- Onboarding wizard – A first-run setup that has you going in minutes instead of an afternoon
- Light and dark themes – Plus a navigation layout you can adjust to your taste
- Role-based access control – Distinct HR Manager and Employee roles, so people only see what they should
Built for Developers
FlyHR is designed to be extended. Connect payroll, build a mobile app, or write your own reporting on top of it.
- Full REST API under the
/flyhr/v1/namespace - Endpoints for employees, departments, designations, leave types, policies, requests and holidays
- PSR-11 dependency injection container in the PHP backend
- Action Scheduler for background jobs, so heavy work never blocks a page load
- Dedicated
wp_flyhr_*database tables with a clean, namespaced codebase - Complete uncompiled source shipped in
assets/src/
Built by weDevs
FlyHR comes from the team behind WP ERP, the business management suite trusted by tens of thousands of WordPress sites. FlyHR is a fresh take on that experience, rebuilt from scratch for today’s WordPress. There’s more about the plugin and the team at flyhr.co.
What’s Included (Free)
- Unlimited employees, with no per-employee charge
- Employee directory with search, filtering and full profiles
- Job history ledger for status, employment, compensation and role changes
- WordPress user conversion and email conflict detection
- Private HR notes on employee records
- Termination, reactivation, restoration, and safe or force deletion
- Hierarchical departments with department leads
- Designation library with descriptions and active status
- Custom leave types and a multi-attribute policy builder
- Double-entry leave ledger with automatic refunds
- Leave requests with two-tier approval and mandatory rejection reasons
- Bulk approval processing and email notifications
- Public and company holidays with an interactive calendar
- Working day and financial year configuration
- First-run onboarding wizard
- Light and dark themes with adjustable navigation
- HR Manager and Employee roles
- REST API under the
flyhr/v1namespace
Source Code & Build Process
The JavaScript and CSS files shipped in the assets/dist/ directory are compiled and minified production builds generated with webpack. The complete, human-readable source code for these files is included inside this plugin so it can be freely reviewed, studied, modified, and rebuilt:
assets/src/– the full React/TypeScript application and Tailwind CSS source.webpack.config.js– the build configuration that compilesassets/src/intoassets/dist/.package.json,tsconfig.json,postcss.config.js– the tooling configuration.
No external download is required – everything needed to read and rebuild the compiled assets ships with the plugin.
Build tools
The frontend is built with webpack via @wordpress/scripts, using pnpm as the package manager. PHP dependencies are managed with Composer.
Building the compiled assets from source
From the plugin directory:
- Install PHP dependencies:
composer install - Install JavaScript dependencies:
pnpm install - Create the production builds in
assets/dist/:pnpm build - For development with hot reloading, run:
pnpm dev
Running pnpm build reads the source in assets/src/ and regenerates every minified file in assets/dist/.
Screenshots

Onboarding wizard — welcome screen. A guided setup gets you running in a few steps.

Onboarding wizard — company profile and financial year.

Onboarding wizard — pick the departments that make up your organization.

Employee directory with status tabs, search, and filtering.

Add a new employee with basic, work, and contact details.

Employee profile — employment and contact overview.

Employee profile — leave balances and history.

Leave requests with pending, approved, and rejected views.

Apply for leave on behalf of an employee.

Settings — set working hours for each day of the week.

Settings — leave options for the company.

Settings — miscellaneous options.