From 0 to SaaS in 14 Weeks: 38% Trial Conversion

Industry: HR Tech Project Type: Full-Stack SaaS from scratch Duration: 14 weeks Team: 1 architect, 2 full-stack developers, 1 designer, 1 PM Result: 200 paying customers in month 4


The Starting Point

A HR tech founder came with a validated idea: compliance management and onboarding automation for SMBs (10-200 employees). The market existed — enterprise tools like Workday were too complex and expensive, and spreadsheets were the alternative.

The requirements:

The constraint: 14 weeks. Not 6 months. Not 1 year.


Architecture Decisions

Multi-Tenancy Model

Three common multi-tenancy approaches:

ModelData IsolationComplexityCost
Schema-per-tenantHighLowHigh DB cost at scale
Row-level isolationMediumMediumLow cost, needs RLS
Database-per-tenantHighestHighVery high cost

We chose row-level isolation with PostgreSQL Row Level Security (RLS).

Every table has a tenant_id column. PostgreSQL RLS policies enforce that queries only return rows matching the authenticated tenant. This gives strong isolation with a single database and scales well to thousands of tenants before needing to shard.

-- Example RLS policy
CREATE POLICY tenant_isolation ON employees
  USING (tenant_id = current_setting('app.current_tenant_id')::uuid);

Authentication Architecture

We used NextAuth.js with a custom database adapter:

Session management: JWT tokens with 15-minute access tokens and 7-day refresh tokens. Short access token TTL reduces risk if tokens leak.

Billing Architecture (Stripe)

The billing model: per-seat, monthly. Three tiers (Starter: $12/seat, Professional: $24/seat, Enterprise: custom).

Key implementation decisions:

  1. Metered billing: Seat count syncs with Stripe on a daily job. Customers aren't blocked if they add more seats than their plan — they're charged at next billing cycle.

  2. Trial enforcement: 14-day trial, enforced via middleware on all dashboard routes. Stripe webhook updates DB on subscription events.

  3. Usage-based add-ons: Document storage over 5GB billed at $0.10/GB/month via Stripe Metered billing.

Billing flow:
User adds seat → DB update → nightly job → Stripe quantity sync → invoice
Trial expires → Stripe webhook → DB flag → middleware blocks routes → upgrade prompt

File Storage

HR documents (offer letters, NDAs, policies, identification) are sensitive. Architecture:

E-Signature

We evaluated DocuSign ($30/envelope → too expensive for SMBs), HelloSign ($0.50/envelope — acceptable), and building custom.

Decision: HelloSign API for initial launch. Simple e-signature requirements (offer letters, policy acknowledgments) don't need complex DocuSign features. We built a custom UI layer on top of the HelloSign API to match the product's design system.


The Build: Week by Week

Weeks 1-3: Foundation

Weeks 4-7: Core Features

Weeks 8-10: Billing + Notifications

Weeks 11-12: Enterprise Features

Weeks 13-14: Polish + Launch Prep


Results at Month 4

Product Metrics

MetricResultIndustry Benchmark
Trial-to-Paid Conversion38%15-25%
Time-to-First-Value4 minutes8-15 minutes (industry)
Month 1 Churn2.1%5-7%
NPS Score6830-50 typical
Support tickets/customer/month0.82-4

Technical Metrics

MetricResult
Uptime (4 months)99.97%
API P95 response time180ms
Lighthouse (mobile)94
Lighthouse (desktop)98
Build deploy time2.1 minutes

Business Metrics

MetricMonth 1Month 4
Paying customers12200
MRR$8,400$58,400
Avg. seats per customer1823
Enterprise customers (SAML)04

What Made the Difference

Onboarding engineering, not onboarding UX.

The original onboarding flow had 7 steps and took 12 minutes to get to the first "aha moment" (seeing your first employee's onboarding checklist). We rebuilt it as 3 steps (company name, upload logo, invite first employee) that take 90 seconds. The aha moment moved from minute 12 to minute 4.

That change moved trial-to-paid conversion from 22% to 38%.

Multi-tenant architecture done right from day one.

Not retrofitted. This matters because RLS policies have to be designed into the schema. Retrofitting multi-tenancy to a single-tenant app is almost as expensive as a rebuild.

SAML SSO at week 12, not week 24.

Three enterprise deals (worth $4,200 MRR combined) were contingent on SAML. Prioritizing it in week 11-12 unlocked those deals at launch instead of 3 months later.


Lessons

What we'd do differently:

What was validated:


Is This Right for Your SaaS?

This project worked because:

Related resources:

Talk to us about your SaaS →

1,200+

Brands Supported

94

Avg. Lighthouse Performance

99.97%

Infrastructure Uptime

14 Weeks

Avg. SaaS Launch

Designed uniquely. Engineered to scale.

We create custom platforms inspired by great design, built on production-grade infrastructure.

Infrastructure Stack

Built with modern cloud-native technologies

Next.jsShopify PartnerStripeVercelAWSGoogle CloudPostgreSQLSanity

Estimate your project →

Moydus Logo