Now accepting projects — Q3 2026
Home/Cases/EKel internal HR system

When a consulting firm
replaced Swingvy
with its own system

We started using Swingvy for HR in 2024. As our requirements outgrew what SaaS could comfortably handle, we used Vibe Coding to replace it with our own internal system. Web, iOS, and Android went live in four weeks in May 2026. This is the representative case where we applied the method to ourselves.

Client
EKel Technology
(ourselves)
System replaced
Swingvy
Build timeline
4 weeks
Delivered for
5-person consulting team

Background

Swingvy is an HR SaaS covering employee profiles, attendance, contracts, and payroll basics. We started using it in 2024, and it handled standard HR workflows well enough for a five-person consulting team.

But our operating model became more specific. We needed project cost loading, travel and reimbursement across clients, consultant time reports tied to projects, and workflows that standard HR SaaS does not usually try to solve. We started patching gaps with Slack, Google Sheets, and Notion until HR operations were spread across four tools.

At that point we made the same choice we often advise clients to consider: instead of workaround after workaround, rebuild the system around the real workflow.

Why Replace Swingvy

Swingvy was not broken. It simply no longer matched how we worked. Three triggers made the decision clear:

  1. No project / employee cost mapping. A consulting firm needs to know how many person-months each client project actually consumed. That requires HR cost, time tracking, and client project data to meet in one place.
  2. Travel reimbursement needed AI. Consultants create receipts on the road. We wanted receipt images to become structured reimbursement data automatically. Swingvy could not expose the workflow we needed.
  3. We sell Vibe Coding, so we had to use it on ourselves. Clients ask whether Vibe Coding can really replace SaaS. We needed an answer built from our own daily operations.

Technology Choices

We chose the stack we know best and expect to remain stable five years from now:

  • Next.js 16 (App Router): Web frontend and API routes in one application
  • iOS + Android mobile apps: receipt capture and reimbursement status for travel scenarios
  • Supabase (Postgres): database, auth, and storage
  • Vercel: deployment and edge functions
  • Clerk: employee identity with Google Workspace SSO
  • Anthropic Claude API: receipt / invoice extraction for amount, vendor, category, and tax
  • Tailwind + shadcn/ui: UI component system

No hype-driven choices. Every tool had to justify why it belonged in the system.

Four-Week Build Rhythm

Two sprints, two weeks each. Web, iOS, and Android went live together at the end of sprint two.

Sprint 1 (Weeks 1-2): core employee management and Swingvy migration

  • Employee schema design
  • Auth integration through Clerk and Google Workspace SSO
  • Swingvy CSV export mapped into the new schema
  • Contract management with version history and PDF storage
  • Web application foundation and admin console skeleton

Sprint 2 (Weeks 3-4): workflows, receipt AI, mobile, and switch-over

  • Taiwan labor-law leave rules engine
  • Slack /pto leave request workflow with manager approval
  • Payroll structure including labor insurance, health insurance, and 6% pension contribution
  • Claude API receipt extraction into reimbursement flows
  • Client project / employee cost loading reports
  • iOS and Android apps for receipt capture and reimbursement lookup
  • Five-day parallel run before shutting Swingvy down

Go-Live

In May 2026, the new system went live across Web, iOS, and Android, and the Swingvy subscription was retired.

From day one, the scope was larger than HR. It became an operating hub for our internal business:

  • Receipt Scan: employees photograph receipts; Claude extracts amount, vendor, category, and tax into reimbursement.
  • Client project cost mapping: HR cost, time records, and client project data combine into real project cost visibility.
  • Leave rules engine: Taiwan labor-law annual leave entitlement calculated automatically.
  • Slack /pto workflow: request in Slack, manager approves, result writes back.
  • Contract management: employee contract version history with centralized PDF storage and retrieval.

Unexpected upside: EKel clients saw the demo and asked for similar systems. The system became sales material for Vibe Coding because it was not a mockup. It was something we used every day.

Lessons Learned

This case clarified what Vibe Coding is really for.

Vibe Coding is not cheaper than SaaS; it fits better than SaaS. Swingvy’s subscription cost was not the pain. The pain was that it could not manage the workflows we cared about most.

Build vs. buy depends on the custom-to-standard ratio. Once custom needs exceed about 30%, building often wins regardless of team size. Otherwise you buy 70% of the product and spend 200% of the effort working around the remaining 30%.

AI value is an obvious Vibe Coding advantage. Receipt photos turning into reimbursement items through Claude is not something most SaaS products can add on your timeline. A custom system can evolve with the LLM curve.

EKel turned the architecture decisions, schema design, and AI integration patterns from this system into Vibe Coding training material. Every new client sees this case as a concrete reference for what “build your own” actually looks like.
— Eric Shen, Founder of EKel Technology
When SaaS cannot manage the work you care about most, that is the Vibe Coding moment. Replacing Swingvy was how we proved it on ourselves.
Eric Shen, CTA
Founder, EKel Technology

Debating build vs. buy? Let’s talk.

Not every problem should be custom-built. In 30 minutes we will listen to your custom requirement ratio, team size, and SaaS pain points, then tell you whether to keep SaaS, build, or mix both.

We use cookies

We use strictly necessary cookies to run this site, plus optional analytics cookies (Google Analytics) to understand how visitors use it. See our Cookie Policy and Privacy Policy.