Lovable Case Study: Building an Internal HR Dashboard in 48 Hours Without a Development Team
The Problem: HR Operations Running on Spreadsheets
A 200-person SaaS company had outgrown its spreadsheet-based HR processes. The head of People Operations managed employee records in a Google Sheet with 47 columns, PTO tracking in a separate sheet with complex formulas that broke quarterly, onboarding checklists in Google Docs (one per new hire, manually duplicated), and an org chart in Figma that was perpetually 3 months out of date.
The pain points were concrete:
- New hire onboarding took 2 hours of manual setup (copying docs, adding rows, sending links)
- PTO balance inquiries required the HR team to look up individual records — 5-10 requests per day
- The org chart was useless because it was never current
- Employee data changes (title updates, team transfers) required updating 3-4 separate documents
- No single source of truth — when data conflicted between sheets, nobody knew which was correct
The company’s engineering team had a 6-month backlog and could not prioritize an internal tool. A commercial HR platform (BambooHR, Rippling) would cost $15-25 per employee per month ($36,000-60,000/year) and require a 3-month implementation. The head of People Operations decided to build the tool herself using Lovable.
Why Lovable Instead of Traditional No-Code Tools
The team had evaluated Retool, Budibase, and Airtable as alternatives:
Retool: Powerful but required SQL knowledge for data queries and had a steep learning curve. The HR team did not have technical skills.
Airtable: Good for data management but limited for building real application interfaces. The PTO approval workflow and onboarding checklist UX would be clunky.
Budibase: Open-source alternative to Retool with the same technical barrier.
Lovable’s advantage was natural language interaction. The HR lead could describe what she wanted in plain English — “a dashboard showing all employees grouped by department with a search bar and filters for location, role level, and hire date” — and Lovable generated the interface with a Supabase backend. No SQL, no component library knowledge, no deployment configuration required.
Day 1: Core Structure (8 Hours)
Morning: Database Design and Employee Directory
The first prompt to Lovable:
"Create an internal HR dashboard with Supabase authentication. The main page is an employee directory showing: name, photo, title, department, location, hire date, email, and manager. Include search by name and filters for department, location, and employment status (active, on leave, departed). Display employees in a card grid with the option to switch to table view."
Lovable generated:
- Supabase database schema with an employees table
- Authentication flow (login page, protected routes)
- Employee directory with card grid and table toggle
- Search bar with real-time filtering
- Department and location filter dropdowns
- Responsive layout for desktop and tablet
The HR lead spent the next 2 hours refining:
- Added employee phone number and Slack handle fields
- Changed the card layout to show department color-coded badges
- Added a “Report to” field linking to the manager’s employee record
- Set up role-based access (HR team can edit, all employees can view)
Afternoon: Org Chart
"Add an org chart page that automatically generates from the employee data. Each employee has a manager_id that links to another employee. Display the org chart as a tree visualization starting from the CEO. Clicking any node shows that person's card with their direct reports listed. The chart should be collapsible — click a department head to expand/collapse their team."
Lovable generated a tree-based org chart using the existing employee-manager relationships. The HR lead noted that the auto-generated chart matched the actual org structure for the first time in months — because it pulled from the same database as the employee directory.
Refinements:
- Added department-level color coding
- Made the chart horizontally scrollable for larger teams
- Added headcount badges on department nodes (“Engineering: 47”)
- Enabled clicking an employee to navigate to their full profile
Evening: Employee Profile Pages
"Create a detailed employee profile page accessible by clicking any employee card. Show: full contact info, employment history (title changes, promotions, team transfers with dates), current PTO balance, upcoming PTO, onboarding status (if within first 90 days), and a notes section visible only to HR."
This established the individual employee record as the single source of truth. The HR lead began importing data from the Google Sheet — 200 employees, each with current information plus historical title changes.
Day 2: Workflows and Automation (8 Hours)
Morning: PTO System
"Add a PTO management system: 1. Employees can submit PTO requests with: start date, end date, type (vacation, sick, personal), and notes. 2. The request goes to their manager for approval. 3. Manager sees pending requests on their dashboard with approve/deny buttons. 4. When approved, the PTO is deducted from the employee's balance. When denied, the employee is notified with the reason. 5. Show a team calendar view where managers can see all their direct reports' approved PTO on a calendar. 6. Auto-calculate PTO balance based on: annual allowance (20 days default), used days, and carry-over from previous year (max 5 days). 7. HR can override balances and add special allocations."
Lovable generated the complete PTO workflow:
- Request submission form with date picker and type selector
- Manager approval queue with one-click approve/deny
- Automatic balance calculation and deduction
- Team calendar view using a calendar component
- Notification system (in-app notifications for request status changes)
- HR admin panel for balance overrides
The HR lead tested the workflow end-to-end: created a test employee, submitted a PTO request, approved it as the manager, and verified the balance updated correctly.
Refinements needed:
- Added half-day PTO option (Lovable initially only supported full days)
- Added public holiday integration (imported the company’s holiday calendar)
- Added “blackout dates” feature for all-hands weeks
- Fixed an edge case where weekend days were counted as PTO days
Afternoon: Onboarding Checklists
"Create an onboarding system for new hires: 1. HR creates a new hire and assigns an onboarding template (different templates for engineering, sales, marketing, etc.) 2. The template generates a checklist with tasks, each assigned to either the new hire, their manager, IT, or HR. 3. Each task has: title, description, due date (relative to start date, e.g., 'Day 1', 'Week 1', 'Day 30'), and assigned person. 4. Dashboard shows all in-progress onboardings with completion percentage. 5. Overdue tasks are highlighted in red. 6. New hire sees their own checklist on login."
The onboarding system replaced the duplicated Google Docs workflow entirely. The HR lead created three templates:
Engineering template (28 tasks):
- Day 1: laptop setup, GitHub access, CI/CD walkthrough, meet buddy
- Week 1: codebase orientation, first ticket, team standup intro
- Week 2: architecture overview, first PR review, 1:1 with skip-level
- Day 30: 30-day check-in, feedback form, goal setting
Sales template (22 tasks):
- Day 1: CRM access, product demo training, territory assignment
- Week 1: shadow calls, messaging doc review, competitive landscape
- Week 2: first solo call, objection handling workshop
- Day 30: pipeline review, quota discussion
General template (18 tasks):
- Day 1: equipment, building access, benefits enrollment, handbook
- Week 1: meet cross-functional partners, company overview
- Day 30: check-in with HR, culture survey
Evening: Reporting Dashboard
"Add an HR analytics dashboard visible only to the HR team showing: 1. Headcount over time (line chart, by month) 2. Headcount by department (bar chart) 3. New hires vs departures per month (dual bar chart) 4. Average tenure by department 5. PTO utilization rate (used vs available across company) 6. Open onboarding tasks count and overdue count 7. Upcoming work anniversaries (next 30 days) 8. Employees by location (pie chart or map)"
The analytics dashboard pulled all data from the existing Supabase tables — no separate data pipeline needed. Charts updated in real-time as employee data changed.
Post-Launch: First Week in Production
Migration from Spreadsheets
The HR lead spent 4 hours migrating data:
- Exported 200 employee records from Google Sheets
- Cleaned data inconsistencies (3 employees with wrong department labels, 7 with outdated titles)
- Imported via Supabase SQL insert (the engineering team helped with a CSV import script)
- Verified PTO balances against the old spreadsheet
- Created user accounts for all employees
User Adoption
Day 1: HR team and managers used the system. Immediately received positive feedback on the PTO approval workflow — managers had been approving PTO via Slack messages, which was error-prone and untracked.
Day 3: All employees received login credentials. The employee directory and org chart were the most-used features. Multiple employees commented that this was the first time they could find anyone’s contact information without asking someone.
Day 5: First batch of PTO requests processed entirely through the new system. The HR team estimated saving 30 minutes per day on PTO balance inquiries alone.
Issues Discovered
Issue 1: Slow org chart rendering. With 200 employees, the full org chart took 4 seconds to render. The HR lead prompted Lovable: “The org chart is slow to load. Start with only the top 2 levels expanded and lazy-load deeper levels when a user clicks to expand.” This reduced initial load to under 1 second.
Issue 2: Mobile layout problems. Several managers tried to approve PTO requests on their phones. The approval buttons were too small on mobile. Fix: “Make the PTO approval buttons full-width on mobile screens and add swipe-to-approve gesture.”
Issue 3: No bulk import for PTO. Employees with existing PTO balances from the old system needed manual entry. The HR lead asked Lovable to add a CSV upload feature for bulk PTO balance imports.
Results After 30 Days
Time Savings
| Task | Before (weekly) | After (weekly) | Savings |
|---|---|---|---|
| PTO balance inquiries | 2.5 hours | 0 hours | 2.5 hours |
| PTO approval tracking | 1.5 hours | 0.25 hours | 1.25 hours |
| New hire onboarding setup | 2 hours/hire | 0.25 hours/hire | 1.75 hours/hire |
| Org chart updates | 1 hour | 0 hours (auto) | 1 hour |
| Employee data lookups | 1 hour | 0.1 hours | 0.9 hours |
| Total weekly savings | ~7 hours |
7 hours per week translates to approximately 350 hours per year — nearly 9 full working weeks recovered for the HR team.
Cost Comparison
| Option | Annual Cost | Implementation Time |
|---|---|---|
| BambooHR (200 employees) | $36,000-48,000 | 2-3 months |
| Rippling (200 employees) | $48,000-60,000 | 1-2 months |
| Custom development (in-house) | $40,000-80,000 | 3-6 months |
| Lovable + Supabase | $1,140 | 2 days |
Lovable cost: $20/month Lovable Pro + $25/month Supabase Pro + $50/month for hosting = $95/month ($1,140/year). This is 97% cheaper than the least expensive commercial alternative.
Employee Satisfaction
An internal survey after 30 days:
- 89% of employees rated the new system “better” or “much better” than the previous spreadsheet approach
- Most-valued feature: self-service PTO balance check (no longer needed to ask HR)
- Second most-valued: searchable employee directory
- Primary complaint: “Wish we had this sooner”
Lessons Learned
Prompt Specificity Saves Iteration Time
The most efficient prompts were highly specific about data fields, user roles, and edge cases. Vague prompts produced functional but incomplete features that required multiple rounds of refinement.
Efficient prompt: “PTO balance calculation: start with 20 days annual. Deduct approved PTO days. Count only weekdays between start and end dates. Allow half-day requests. Carry over up to 5 unused days on January 1. HR can add bonus days with a reason note.”
Inefficient prompt: “Add PTO tracking.” This generated a basic system that missed half-day support, carry-over rules, and weekday-only counting — requiring three additional prompts to fix.
Build for the Admin First, Then the User
The HR lead initially focused on the employee-facing features (directory, profile pages). This was a mistake — the admin features (data import, bulk operations, override capabilities) should come first. Without admin tools, setting up the system was painful. With admin tools, the HR team could configure everything independently.
Supabase Row-Level Security Is Essential
For an HR system, data access control is critical. Employees should see the directory but not salary data. Managers should see their direct reports’ PTO but not other teams’. HR should see everything. Lovable generated RLS policies, but the HR lead worked with an engineer to verify they were correct — one initial policy was too permissive, allowing any authenticated user to read HR notes.
Do Not Skip the Data Migration
The temptation was to launch the new system and enter data going forward, leaving historical data in the old spreadsheets. This would have created a split-brain problem — some data in the new system, some in the old. The 4-hour data migration was tedious but essential for making the new system the single source of truth from day one.
Plan for Growth
The dashboard was built for 200 employees. Within 3 months, the company had grown to 230. Features that worked at 200 needed minor adjustments at scale — the org chart expansion, search indexing, and PTO calendar view all required small optimizations. Building with growth in mind (pagination, lazy loading, caching) from the start would have avoided these touch-ups.
What Would Be Different with a Development Team
A professional development team would have built:
- Integrations with existing tools (Slack notifications, Google Calendar sync, payroll export)
- Role-based permission system with granular controls
- Audit log for all data changes
- Automated reporting (weekly headcount email to leadership)
- SSO integration with the company’s identity provider
These features are possible in Lovable but were deferred to keep the 48-hour timeline realistic. The HR lead plans to add them incrementally, with engineering support for the SSO integration which requires backend configuration beyond Lovable’s scope.
Frequently Asked Questions
Can non-technical users really build this in 48 hours?
Yes, with caveats. The HR lead had no coding experience but was comfortable with spreadsheets and understood her data model well. Knowing exactly what you need is more important than knowing how to build it. The 48 hours assumes focused work, not multitasking.
Is Lovable secure enough for HR data?
Lovable generates standard web applications with Supabase backend. Supabase provides encryption at rest, SSL in transit, and row-level security. For most companies, this meets internal tool security requirements. For companies with strict compliance requirements (SOC 2, HIPAA), additional security review is recommended.
What happens if Lovable shuts down?
Lovable generates standard React code with a Supabase backend. You own the code and can export it. The application runs independently of Lovable once deployed — Lovable is used for building, not hosting.
Can this scale to 1,000+ employees?
The Supabase backend can handle thousands of records. The frontend may need optimization (virtual scrolling for large lists, pagination for search results). For companies over 500 employees, consider the data model carefully — denormalization and indexing become important.
Should I use this instead of a commercial HR platform?
For basic HR operations (directory, PTO, onboarding), a Lovable-built tool is sufficient and dramatically cheaper. For complex HR needs (payroll, benefits administration, compliance reporting, performance reviews), a commercial platform is still more appropriate. Many companies use both: custom internal tool for day-to-day operations and a commercial platform for payroll and compliance.