Preview Nexus – HR, CRM & Project Management System
Nexus runs the people, the pipeline and the projects out of one Laravel application. Employees, attendance, leave and payroll. Leads, deals, quotes, invoices, contracts and support tickets. Projects, tasks, sprints, time and the invoice that comes out the other end. One install, one database, one login.
There is no separate “employee” record. The person who books leave is the same row as the person who owns the deal and the person assigned the task. That is not a schema detail — it is why a developer’s logged hours become a client invoice without anybody retyping a name, why a sales manager’s approvals queue already knows who reports to them, and why nothing has to be kept in step by hand.
Everything is self-hosted, and it runs where you already host. No cron job. No queue worker. No Redis, no websockets, no Node on the server. If it can run Laravel and MySQL, it can run Nexus.
Why buyers pick Nexus
- Three systems in one, actually joined up. HR, CRM & Sales and Projects share one directory of people, one permission model, one calendar, one search box and one activity log. Buy it for one module and the other two are already there when you need them.
- It installs in a browser. A six-step wizard checks the server, tests the database, writes .env, migrates, seeds and creates your account. No SSH, no editing config files.
- It runs on shared hosting, by design. Nothing is scheduled and nothing is queued. Email goes out inline; recurring invoices wait for a button that is safe to press twice. The constraint is deliberate — a product that needs a background worker is a product a shared host cannot run.
- Permissions are real. Twelve sections, seven starting roles, and the middleware on the route is the guard — not a hidden menu link. Self-service and manager approvals need no permission at all, because managing your own team is not the same as running HR.
- Clients get their own front door. A separate portal where they read invoices, accept quotes, sign contracts and raise tickets — not the back office with pieces hidden.
- 8 languages out of the box, including full RTL Arabic — plus a built-in translation editor, so adding a ninth never needs a developer or a template file.
- It tells you what it does not do. There is a section below for that. Every link in the sidebar opens a real screen.
Feature list
1. Web installer
A guided, six-step first-run wizard. Every address on a fresh copy redirects into it.
- Requirements — PHP version, twelve extensions and six writable paths, each shown pass or fail, with a re-check button. Nothing has been written yet.
- Company — name, currency and timezone. An application key is generated for you.
- Database — host, port, name, user and password, with a Test connection button that verifies before it commits. If the database does not exist, Nexus creates it, provided your database user may.
- Administrator — your account, with the admin role.
- Sample data — an optional twelve-person demo company, on a tick box, so you can walk into a populated system instead of an empty one.
- Review & install — writes .env, migrates, seeds the reference data and creates your account. The log narrates each step and stops exactly where a failure happened.
Nothing is written until the last step: the wizard holds your answers in the session, so an abandoned install can never leave a deployment with a rewritten .env pointing at a database that was never migrated. Once finished, the installer seals itself off and /setup redirects away.
2. Roles, permissions & locations
- Twelve permission sections — employees, attendance, leave, payroll, recruitment, performance, CRM, sales, support, projects, reports, settings. Each is a tick box on a person’s record.
- Seven roles ship — Administrator, HR, Manager, Sales, Project manager, Accountant, Employee. A role is a starting point that sets sensible boxes, not a cage: tick and untick from there.
- Self-service needs no section. Every signed-in person sees their own attendance, leave, payslips, expenses, timesheet, goals and tasks — scoped to themselves, always.
- Approvals need no section either. Anybody with people reporting to them gets an approvals queue for their own reports, without being handed the HR module.
- Projects add per-record access — a developer with no projects permission still opens the two projects they were added to, as viewer, member or manager, and nothing else.
- Deactivating somebody stops them signing in immediately and kills their API tokens with them, without deleting a thing they did. Their name stays on the deals they won.
- Locations — an office, a site, a country. Holidays are declared per location, leave counting skips the right ones, and reports filter by them.
Hiding a menu item is presentation. A person who types a URL they may not have gets a 403.
3. Dashboard
Assembled from what you are allowed to see. A sales user gets pipeline and revenue; an HR user gets headcount and who is off today; a project manager gets delivery. Nothing is computed for a section you cannot open, so a narrow account is a fast page.
- Mine — everybody gets this one: today’s clock state, leave balance, tasks due, and what is waiting on you to approve.
- People — headcount and its change, joiners and leavers by month, probations and contracts ending inside 30 days, documents about to expire, present and late today, worked and overtime trends, pending leave and who is off, payroll gross and net by month, the candidate funnel and today’s interviews.
- Commercial — open pipeline with its weighted value and its shape by stage, activities due and overdue, deals won and lost by month; invoiced against received drawn on one money axis, never two, so the gap reads as the collection lag it is; outstanding and overdue balances with the five worst invoices; ticket volume and SLA breaches.
- Delivery — active projects, tasks created against completed per week, overdue and due-this-week, hours logged this week against last, unbilled hours waiting to be invoiced, open issues by severity and the milestones coming up.
Headline figures show their change against the previous period, because a number without a direction is decoration.
4. People
- Employees — the directory, and the record every other HR screen hangs off. Manager, department, designation, location, hire date, employment type, probation end, salary, contact and bank details.
- Employee codes are generated from a prefix and never reused, so a code points at one person for the life of the system.
- The record has tabs — profile, attendance, leave, documents, assets, salary, goals and reviews. Each is the module’s own data filtered to this person; there is no second copy anywhere.
- Departments with an optional head and an optional parent, and designations as job titles. Neither can be deleted while somebody is in it.
- Org chart — the reporting tree drawn from the manager field, clickable through to the person.
- Leavers — set a leave date and the person drops out of headcount, rosters and pay runs while every payslip, approved leave and won deal stays readable.
5. Onboarding, documents, announcements & assets
- Onboarding checklists — build a template once as a list of tasks, assign it to a starter, and the due dates are counted from their start date. A candidate hired through recruitment can have one attached at the moment they are converted.
- Documents — contracts, certificates, ID copies, right-to-work papers, each with a category and an expiry date. The overview filters to expiring within 30 days or already expired, with counts at the top, so a visa or a certification does not lapse quietly.
- Announcements — company notices, optionally scoped to a department or a location, optionally pinned, shown on the dashboard of the people they are aimed at. Drafts appear to nobody.
- Company assets — laptops, phones, keys, cars. Assign from a date, return on another; every assignment is kept, so the asset shows everyone who has held it and the person shows what they currently hold. That second list is the one you want on a leaver’s last day.
6. Attendance & timesheets
- A month at a time — everybody down the side, days across the top, one coloured cell each. Click a cell to open and correct that day.
- Four actions make a day — in, break start, break end, out. People clock themselves, HR can type a day in if manual entry is allowed, and a device or an app can post one over the API. Every row records where it came from, so a hand-entered day stays distinguishable from a clocked one.
- Status against the schedule — present, late (past the start time plus the grace minutes), half day, absent, on leave, holiday. Approved leave and public holidays are drawn into the grid automatically; nobody marks a holiday as an absence.
- CSV import and export — the import takes a header row from a biometric device or a spreadsheet, identifies a person by employee code or email, and skips rows that name nobody rather than guessing at them. It reports how many landed and how many did not.
- Weekly timesheets — press Build to generate the week from the attendance already recorded. Building again refreshes drafts and rejected sheets and leaves submitted and approved ones alone, so it is safe to press twice.
- Draft → submitted → approved. Only approved timesheets feed payroll — overtime sitting in a draft pays nothing.
7. Shifts, rosters & holidays
- Shifts — a named pattern with a start, an end, a break allowance and the days it covers. Anybody without one follows the company default.
- Rosters — assign people to shifts across a week. That is what stops a part-timer or a night-shift employee from looking permanently absent, and it changes what “late” means for them.
- Holidays per year, per location, company-wide or for one office. Subtracted everywhere it matters: not working days for leave counting, not absences on the grid, no cost to pay, and the workload chart does not expect anybody at their desk.
8. Leave
- Leave types are the policy — days per year, paid or unpaid, monthly accrual or yearly allocation, carry-over maximum, whether an attachment is required, and a minimum notice in days. Either accrual prorates a hire year, so somebody joining in September does not start with twelve months of holiday in hand.
- Balances per person, per type, per leave year, holding allocated, carried in, taken and pending. Allocate recalculates a year; Adjust writes a manual correction with a reason — which is how you grant a one-off without lying about the policy.
- Requesting counts the working days in the range, skipping weekends and the holidays at that person’s location, with half days at 0.5, and refuses the request if the balance will not cover it or the notice is too short.
- Deciding happens from the leave screen, the approvals queue or the email. On approval the days move from pending to taken, the attendance grid fills in, and the leave lands on the shared calendar so nobody schedules a workshop into it.
- Team leave calendar — the whole team’s booked leave in a month view. The screen to check before approving anything.
9. Payroll
Real pay runs that read the clock, not a spreadsheet with a nicer font.
- Salary components — earnings and deductions, each a fixed amount or a percent of basic. Housing, transport, pension, union fee: you define the vocabulary your country uses.
- A person’s structure is their basic, a frequency (monthly, weekly or hourly) and the components attached to them. Everything else, payroll reads from the clock.
- A pay run covers a period and moves draft → approved → paid, generating a payslip for every employed person with a structure.
- What builds a payslip — basic (monthly as-is, weekly scaled by the days in the period, hourly by the minutes actually worked), each component, overtime from timesheets approved in the period at the multiplier from settings, expense reimbursements approved and unpaid, unpaid leave and absence at a day’s pay each, and loan instalments for every active loan. Every line shows where it came from.
- Regenerate rebuilds a draft from current data, because somebody always forgets to clock out. Approve freezes the figures — the point of a payroll record is that it says what was actually paid.
- Paying the run stamps the payslips, reduces the loan balances and marks the reimbursed claims paid. A claim is only ever paid once.
- The day rate is the basic over the working days in the period, weekends and that person’s location holidays excluded; the hourly rate is the day rate over their scheduled hours. Nothing is rounded until the payslip is written, so the lines add up to the total exactly.
- Print gives an A4 payslip, Email payslips sends each person theirs, and everybody can read their own whether or not you email them.
No tax engine, on purpose. Income tax and social contributions change by country and by year, and a table that is subtly out of date is worse than none. They are modelled as deduction components with the rates your accountant supplies, and they print on every payslip.
10. Loans, advances & expense claims
- Loans — a title, an amount, a number of instalments and a start date. Each paid run takes one instalment and reduces the balance; the payslip always shows what was taken and what is left, so nobody keeps a side spreadsheet.
- Advances are the same record with one instalment.
- Expense claims — staff file them with a category, an amount, the date it was spent, a note and a receipt. Pending → approved or declined → paid. Mark one paid by hand, or leave it to the next pay run, which reimburses every approved unpaid claim on the payslip.
- Claim categories are yours, set in HR settings.
11. Recruitment & the public careers page
- Job openings — title, department, location, employment type, description, seats, status. Published ones appear on the careers page; drafts and closed ones do not.
- Candidate kanban — new, screening, interview, offer, hired, rejected, moved by dragging. A CV and any other files attach to the record, and a rating out of five can be set from the card.
- Sources — careers page, referral, LinkedIn, job board, agency, other — so you can see which channel actually produces hires rather than which produces applications.
- Interviews — a date, a length, a room or a meeting link, and a panel. Everybody involved is notified and it lands on the shared calendar.
- Scored feedback, one entry per interviewer — a rating, written comments and a recommendation of hire, hold or reject. The decision gets made against something written down rather than the loudest memory in the room.
- Hire creates the user account, allocates the employee code, attaches an onboarding checklist if you pick one, and counts a seat filled. The candidate record stays, linked to the person, so you keep the whole history of how they arrived.
- A public careers page at /careers with a page per opening and an application form that creates a candidate at the first stage. Switch it on or off and write the introduction from settings. It follows your theme and the visitor’s language.
12. Performance — goals, reviews, training, warnings
- Goals & OKRs with key results underneath: a title, a target, a current value and a unit, so “grow trial sign-ups” becomes “trial sign-ups: 340 of 500”. Moving a key result moves the goal’s progress — nobody types a percentage. Goals nest, so a company objective carries the team goals underneath it, each with its own owner.
- Review cycles — a name, a period, a due date and a question set. Opening a cycle hands every employee a self review and their manager a manager review, each question rated one to five with room for comment. A submitted form scores as the mean of its ratings, so a person’s own score sits beside their manager’s — and the gap between the two is usually the conversation worth having.
- Training — a course with a trainer, a date, a location and a cost; add attendees, mark who actually came. Completed training shows on the employee record, which is what a certification audit asks for.
- Warnings — verbal, written or final, with who issued it, why, and an acknowledgement the employee can stamp. Warnings sit behind the performance permission, not the employee one, so a colleague who can read the directory cannot read these.
13. Self-service & approvals
Every signed-in person has this group, whatever their role, and everything in it is scoped to them.
- My Attendance — clock in and out, start and end a break, this month’s grid and the running weekly total.
- My Leave — balances per type, request history, a new request, and cancel on anything still pending.
- My Payslips — every payslip from a paid run, printable.
- My Expenses — file a claim with a receipt and watch it move to approved and then paid.
- My Timesheet — this week’s daily minutes, editable, then submitted for approval.
- My Tasks — every project task assigned to this person, across every project, by due date.
- My Goals — own goals, with a slider to move progress.
- Approvals — one queue with three tabs: leave, timesheets and expense claims from the people who report to you. Decisions taken here are identical to those taken from the module screens: the same rules, the same notifications, the same activity log entries.
14. Leads
- A lead is somebody who is not yet a contact: name, company as they said it, email, phone, source, status, value, owner.
- Statuses and sources are yours to define in CRM settings.
- Email sends one of your templates and files the send as an activity.
- CSV import with a header row, setting one owner and one source for the whole file; export writes the filtered list back out in the same shape.
- Convert turns a lead into a contact, optionally a company, and a deal at the top of a pipeline, in one step. The lead is kept and points at all three, so the source and the campaign survive into the reports — which is the only way to answer “which channel produces revenue” rather than “which channel produces leads”.
15. Deals & pipelines
- Pipelines are ordered stages, each with a colour and a probability. New pipelines start with the standard six — New 10%, Qualified 25%, Proposal 50%, Negotiation 75%, Won 100%, Lost 0% — and you rename, reorder, add and delete from there. A company with a direct and a channel motion runs two.
- A weighted forecast — the sum of each open deal’s value times its stage probability. Move the stages and the forecast moves with them; that is what makes the number mean something.
- The board is a kanban you drag, with column totals across the top.
- Won and Lost close a deal, and losing asks for a reason from your own list — which is what turns “we lose a lot” into “we lose on price”. Reopen puts a closed deal back.
- A deal’s page carries its activities, quotes, comments and files, so the whole story of an opportunity is on one screen. Every move is logged and the new owner is notified when a deal is handed over.
16. Contacts, companies & activities
- Companies — name, industry, website, phone, address, owner. Contacts — a person, optionally at a company, with a job title, email and phone.
- Deals, quotes, invoices, contracts and tickets all point at one or both, which is what makes a company page a genuine account view: everything sold, billed and asked, in one place.
- Portal access is a button on a contact — set a password and they can sign in; revoking shuts the door without touching anything else.
- Activities — calls, meetings, emails and to-dos against a lead, contact, company or deal, with a due date and an owner. Open ones appear on the shared calendar and on the owner’s dashboard. The timeline on a deal or a contact is these records in date order — the answer to “when did we last talk to them”.
17. Campaigns, email templates & web forms
- Campaigns — a type, a period, a budget, the actual cost, an owner and a status. Leads carry the campaign they came from, so a campaign’s page shows what it produced: leads, deals created, deals won and the revenue against the spend.
- Email templates with merge fields in double braces — contact, company, deal, user and application fields. Unknown fields render as nothing rather than leaking the placeholder into a customer’s inbox, and Preview shows the template filled with real data before you send it to anybody.
- Web-to-lead forms — choose the fields, the source to stamp and the owner, and each form gets a public URL with an unguessable key. Share the link or drop it in an iframe on your marketing site. Regenerate issues a new key and kills the old link, which is what you press when a form starts collecting rubbish.
18. Products, quotes & invoices
- Products & services — name, SKU, unit, price, your cost and a tax percentage. Quote and invoice lines are picked from here, so nobody retypes a description, and the cost is what a margin is measured against. Lines can still be typed freehand for a one-off.
- A line editor that agrees with the server. Quantity, price, discount and tax per line, plus a document-level discount spread across the lines pro rata with tax charged on what remains. The running total you watch as you type is computed exactly as the server computes it, so the number you saw is the number that gets stored.
- Quotes — draft → sent → accepted, declined or expired, with a validity date. Send emails it, Print gives the A4 document with your logo, legal name, terms and footer, Duplicate copies it for the next near-identical job. Clients accept or decline from the public link on the email or from the portal, and either stamps the quote and tells the owner.
- Convert to invoice copies an accepted quote — lines, discount, tax and all — into a draft invoice, and links the two.
- Invoices — draft, sent, partial, paid, overdue or cancelled. Sending starts the clock: the due date comes from your payment terms, and an unpaid invoice past it shows as overdue without anybody marking it. Partial appears the moment a payment arrives that does not cover the balance.
- Recurring invoices — mark an invoice recurring with a period, then press Issue due invoices. A button rather than a scheduler, because there is no cron on shared hosting; each parent advances one period per press, so pressing it three times on the first of the month does not bill a client three times.
19. Payments & contracts
- Payments record money received against an invoice — amount, date, method, reference. Part payments are ordinary: record each as it arrives and the invoice moves to partial and then paid on its own.
- The payments list answers “what came in this month”, filterable by method and date, and the aged debt table in the sales report is built from what is still outstanding.
- Contracts — a service agreement, maintenance, subscription or NDA, with a client, a type, a value, a period and the body of the agreement. Draft → sent → signed, and expired or terminated at the end.
- Online signing — Send emails the client a link to the contract as a web page they can read and sign: a typed name and a timestamp, recorded with their IP address. Print gives the paper version on your letterhead.
20. Support tickets & SLA
- A numbered ticket per issue — subject, category, priority, contact, assignee, status. Open → pending → resolved → closed.
- Pending means waiting on the client, and a client reply on a pending ticket reopens it automatically. That single behaviour is what stops things going quiet and getting forgotten.
- An SLA clock per priority — urgent 2 hours, high 8, medium 24, low 72 by default, all editable. The first staff reply stamps the response time; a ticket past its due time with no reply carries a breached badge, and the breach rate is on the dashboard and in the reports.
- Public replies and internal notes on the same thread. Public is emailed to the client and shows in their portal; internal stays inside the team, and the portal never shows it.
- Canned replies — your email templates, offered on the reply box already merged for this ticket’s contact, so picking one drops finished text in rather than something you still have to edit.
- Tickets can be raised in the back office, by a client in the portal, or over the API — which is how you point a support mailbox or a website contact form at it.
21. Knowledge base & client portal
- Knowledge base articles with a category, a slug and a body. Public ones are readable without a login, so you can link one from a ticket reply; the rest stay internal. Each article counts its views, which over a few months tells you what your customers actually keep asking.
-
The client portal is a separate front door at /portal — a different set of screens on a different login, not the back office with things hidden. Staff never use it.
- Home — unpaid invoices with how much is overdue, quotes and contracts awaiting a decision, open tickets, and the projects being run for them.
- Quotes — read, accept or decline. Invoices — read, print, see what has been paid. Contracts — read and sign.
- Tickets — raise one, read the thread, reply. Profile — their own details and password.
- Sign-in is rate limited per email and per address, a client only ever sees documents belonging to their own company, and the whole portal switches off to a 404 rather than to a login form.
22. Projects
- A project has a name, a code, a client company and contact, a category, an owner, a period, a status, a priority, a budget and a colour.
- Two fields decide how it bills — billable, and the hourly rate logged time is charged at. A member can carry their own rate, which overrides the project’s.
- Progress is calculated, not typed: the share of the project’s tasks that are done.
- Membership is per record — viewer, member or manager. This is the one place access is per-project rather than per-section, so a contractor opens exactly the project they were added to and sees nothing else in the portfolio.
23. Tasks — list, board, gantt & calendar
- A task carries a title, description, status, priority, assignees, start and due dates, an estimate in hours, labels and a milestone. Statuses, labels and categories are yours to define; priorities are fixed at four because every screen colours them.
- Four views of the same tasks. List for filtering and bulk work. Board for daily flow — columns are your statuses, drag a card to move it, order within a column is kept. Gantt for dates and dependencies across the whole plan. Calendar for what is due when.
- Subtasks — a checklist inside a task, for work not worth its own card.
- Dependencies — task B is blocked by task A, and trying to finish B while A is open is refused, naming the blocker. The rule is enforced, not advisory.
- Recurring tasks — every n days, weeks or months, with an optional repeat count. Finishing one spawns the next with its dates shifted.
- Assigning notifies the assignee, commenting notifies everyone on the task, every status change is logged, and finishing a task refreshes the project’s progress.
24. Milestones, sprints & issues
- Milestones — dated markers for a delivery, a sign-off, a release. Tasks point at one, so a milestone shows how much of what it depends on is done, and it appears on the gantt and the shared calendar.
- Sprints — a period, a goal and a set of tasks, with a burndown chart: the estimated hours still open at the end of each day against the straight line an even pace would follow. Days that have not happened yet are left blank rather than drawn flat, so the chart stops at today instead of implying a plateau nobody has reached.
- Issues — bugs and problems with a severity, a reporter, an assignee and fields for the steps to reproduce and the environment. Kept apart from planned work so a bug list does not distort the board, and an issue can point at the task that fixes it.
- Discussions, notes, files and expenses each get their own tab — threads about the project as a whole, documents that live with it, every attachment in one list, and costs booked against it as billable or not.
25. Time tracking & workload
- Two ways to log time — press Start on a task and stop when you are done, or type an entry with a date, a duration and a note. One timer runs per person, so starting a second stops the first.
- Rounding to a block — stopping a timer rounds up to the block from settings. With the default fifteen minutes, seven becomes fifteen and sixteen becomes thirty, and the rounded figure is what gets stored, so the entry matches what gets invoiced.
- Billable and approvable — entries are billable or not, and if time approval is switched on, nothing reaches an invoice until somebody approves it. Per-row approve and reject, plus Approve all on a filtered selection.
- CSV export of the filtered list, which is what most people actually want when a client asks for a breakdown.
- Workload — estimated hours of open work due per person per week, against what their week can hold: hours per day times the working days, holidays excluded. An estimate on a task shared by several assignees is split between them rather than counted twice, and over-capacity weeks are coloured. This is the screen to open before promising a date.
26. Project templates & billing a project
- Templates — a reusable project shape whose milestones and tasks carry their dates as offsets (day 0, day 5, day 30) rather than as fixed dates. Creating a project from one asks for a start date and applies the offsets from it. For an agency running the same onboarding on every client, that is the difference between a day of setup and a minute.
-
Invoice time — the one place Projects touches Sales. It collects every billable, approved, not-yet-billed time entry and every unbilled billable expense, previews exactly what would be billed, and creates a draft invoice for the project’s client.
- One line per person per task, so the client sees who did what.
- The rate is that person’s project membership rate if they have one, otherwise the project’s.
- Expenses as their own lines, at the amount spent.
- Entries and expenses are stamped as billed against that invoice, so the same hour is never invoiced twice.
27. Reports
Three screens, each a set of tables with charts over them, and each table downloadable as CSV from the button beside it. The same numbers on screen, in the chart and in the file.
HR — headcount by department, employment type and gender, with probation counts and average tenure; joiners, leavers and month-end headcount per month; attendance per month with present, late, half days, absent, overtime hours and late hours; leave days by type and by department; payroll gross, deductions and net per month; the recruitment funnel by stage, candidates by source, open jobs and average days to hire; expense claims by category and by status.
Sales — leads by status; deals by stage with weighted value; the conversion rate; won and lost per month; revenue per month; receivables aged into not-yet-due, 0–30, 31–60, 61–90 and 90+ days; top customers by invoiced and paid; performance by owner; ticket volume and SLA; campaign results.
Projects — projects by status; tasks completed per week and the on-time rate; hours logged by project and by person; billable against non-billable; estimate against actual with the variance; the workload grid; sprint velocity; issues open and resolved by severity.
Every report takes a preset period or your own date range, and the filters you would expect.
28. Search, calendar, notifications & the activity log
- Global search in the header, across every module: employees, candidates, job openings, leads, deals, contacts, companies, invoices, tickets, projects and tasks. Each module registers what it wants found, and results are filtered by what you may see — a sales user searching a name never gets the candidate record.
- One shared calendar fed by every module: approved leave, holidays, training, interviews, birthdays, CRM activities, invoice due dates, task due dates and milestones. Sources you lack permission for are never even queried.
- Notifications — ten events, each raising the bell always and an email only if its switch is on: leave requested, leave decided, payslip ready, expense decided, task assigned, task comment, lead or deal assigned, invoice or quote sent, ticket reply, interview scheduled. An optional admin copy address receives everything, which is useful while you are setting the system up.
- Mail settings in the panel — SMTP, sendmail or log, with a Send test email button that proves it before you trust it. Saving writes the values to .env and re-binds mail immediately: no restart, no cache clear. The log mailer is the right setting on a staging copy that must not email real clients.
- Activity log — every state change: who, what, when, from which address, against which record. Leave decided, a deal won, an invoice sent, a payslip paid, a setting changed, a backup taken, a failed email. Mail is wrapped so a mail server being down can never stop a leave request being filed — the failure lands here instead of on the screen.
29. REST API
- Versioned /api/v1 with bearer token authentication, for a mobile clock-in app, a website that files leads, a support mailbox that raises tickets, or a status board of your own.
- One response shape everywhere — the payload under data, paging under meta — so a client never has to guess where to look.
- Endpoints across employees, attendance, holidays, leave requests, leads, deals (including a stage move), contacts, companies, invoices, tickets, projects, tasks and time entries.
- Scoped tokens using the same permission vocabulary as the back office. A token can never do more than its owner: take a permission away from somebody, or deactivate them, and their integrations lose it at the same moment.
- Clocking and filing leave need no section — any valid token may call them, always acting as its owner. That is what makes a small clock-in app possible without handing it the employee directory.
- The token is shown once. Only a hash is stored, because a token list that can show you the secret is a token list that leaks every secret.
- Rate limited per token, not per IP, so several integrations behind one office connection do not throttle each other. A 401 reads the same for a missing, an unknown and a deactivated token — a distinct “no such token” turns the endpoint into an oracle.
- Every call runs as a real member of staff, so it appears in the activity log under their name.
30. Languages, RTL & theming
- 8 languages ship complete — English, French, Spanish, German, Portuguese, Turkish, Hindi and Arabic in full right-to-left: layout, icons, tables and charts.
- No English language file exists, deliberately. Every string in the source is its own English text, so an untranslated product reads as English by construction and a missing translation degrades to readable English rather than to messages.save.
- A built-in translation editor. Because there is no template to hunt for, the screen simply lists every string in the product with its translation beside it. Filter to the untranslated ones and type. Download hands a JSON file to a translator, Upload merges it back, Prune drops strings that no longer exist, Enable puts the language in the switcher.
- Adding a ninth language is one entry in a config file plus typing. No developer required.
- Theming — light, dark and system, accent colour presets and a corner radius, chosen per person in their own browser and changing nothing for anybody else. Your logo, favicon, legal name and address throughout, including on printed documents. Built on Tabler, so it is clean and dense from a phone up to a wall screen.
31. Backups, updating & demo mode
- One-click database backup — every table written to a timestamped .sql file, listed for download or deletion. Written in pure PHP rather than shelled out to mysqldump, because plenty of shared hosts disable exec(), and a backup feature that works on the developer’s laptop and nowhere else is worse than none: the buyer only finds out on the day they need it. The output is plain SQL any MySQL client will restore, so your backup is never hostage to this product.
- Updating is a file copy and a migration — and if you have no shell, deleting the install marker lets the wizard run the outstanding migrations and re-seal itself without touching your data.
- Demo mode — one flag prefills the sign-in page with one-click account tiles and adds a Reset demo data button. The same reset runs from the command line, and refuses to run unless demo mode is on, so the one crontab line that keeps a public demo clean does nothing at all if it is ever copied onto a live server.
- Rich demo seeders — a twelve-person company with a pipeline, invoices, tickets, projects and a year of history, so a fresh install is something you can explore rather than an empty shell.
- A troubleshooting guide in the documentation that names the actual symptoms — every page redirecting to setup, an unstyled page, uploads failing, a leave request refused, a task that will not move to done, payroll figures that look wrong — with the cause and the cure for each.
Deliberately not here
Every link in the sidebar opens a real screen. A few things a system like this could plausibly do are absent on purpose, and it is fairer to name them here than to let you find out after you buy:
- No cron and no queue worker. Nothing is scheduled and nothing is queued. That is what lets Nexus run on hosting that forbids long-running processes.
- No payroll tax engine. Rates and bands change by country and by year; model them as deduction components.
- No payment gateway. A payment records money that arrived in your bank. Taking cards would tie the product to particular acquirers, and the ones worth integrating with differ in every country.
- No bulk email sender. Campaigns are the record you attribute revenue against. Sending thousands of messages from a shared host is how a domain gets blacklisted — use a mail platform and attribute the results here.
- No qualified e-signature. Contract signing records that a named person agreed, with a timestamp and an address. Where the law demands more, sign elsewhere and attach the PDF.
- No restore button. Restoring overwrites everything, and a mis-click there costs a company its history. The command is printed on the screen instead.
- No automatic updater. One that half-finishes over a live company is worse than four steps you can see.
- No double-entry accounting. Nexus invoices and records receipts. Export the sales reports into whatever your accountant uses.
Technical
- Framework — Laravel 13
- PHP — 8.3+ (8.3 and 8.4 both tested)
- Database — MySQL 8.0+ / MariaDB 10.6+
- UI — Tabler 1.4, Tabler Icons
- JavaScript — Alpine.js 3, Chart.js 4, SweetAlert2 — no SPA framework
- Build — Vite 8 (compiled assets ship inside the package — no build step to deploy)
- Architecture — One users table as the person; HR, CRM and Projects in their own namespaces, with the rules — accruals, payroll maths, pipeline weighting, task scheduling — in service classes rather than controllers
- Extras — Web installer, REST API with scoped tokens, CSV import and export, printable documents, public client links
- Tests — Feature test suite over the permission model, each state change, and the calculations
Deliberately not required: cron, queue workers, Redis, websockets, Node on the server, exec() access, or a storage symlink. Uploads land in public/uploads/, because the symlink is the first thing a shared host breaks.
Server requirements
- PHP 8.3 or newer
- MySQL 8.0+ or MariaDB 10.6+
- Apache or Nginx with URL rewriting
- Extensions: openssl, pdo, pdo_mysql, mbstring, tokenizer, xml, ctype, json, bcmath, fileinfo, curl, gd
- Writable .env, storage/, bootstrap/cache/ and public/uploads/
- The domain pointed at public/ — and if your host will not allow it, the shipped .htaccess and server.php cover that case
The installer checks every one of these and names the ones that are missing before anything is written.
What’s included
- Full source code, unencrypted and commented
- Compiled front-end assets, ready to deploy
- Browser-based installer
- Demo data seeders — a twelve-person company with history
- 8 languages, Arabic in full RTL, plus the translation editor
- Full HTML documentation, from installing to the API reference
- Free lifetime updates
- 6 months of included support
Ideal for
Small and mid-sized companies running HR on one system, sales on another and delivery on a spreadsheet; agencies and studios billing clients from tracked time; consultancies, software houses, marketing and design firms; IT services and MSPs; construction, engineering and field-service teams; recruitment firms; clinics, NGOs and schools; startups putting their first back office in place; and developers building an internal system for a client who would rather own it than rent it.
Nexus — the people, the pipeline and the projects, in one place.
Note: If you are having trouble with Nexus – HR, CRM & Project Management System Nulled free Download, try to disable AD blocking for the site or try another Web Browser. If disabling AD blocker or change Web Browser not help to you please contact us.