Projects/Projexly

Projexly

Production SaaS for freelancers and agencies — Kanban boards, client portals, team collaboration, and Stripe subscription billing under one roof.

Next.jsNestJSPostgreSQLStripeTypeScriptTailwind

Role

Full-Stack Developer

Team

Solo

Duration

Ongoing

Category

SaaS Product

Impact

Billing integration

Full Stripe

Plan tiers

FREE + PRO

Client portal

No login required

Problem

Freelancers and small agencies juggle project tracking, client updates, and billing across separate tools — creating friction, missed payments, and poor client trust.

Solution

Built a unified SaaS platform with role-based project management, a shareable client portal requiring no login, and automated Stripe-powered subscription tiers.

Objectives

  • Build a real, shippable SaaS with end-to-end billing and auth
  • Provide client-facing visibility without requiring client accounts
  • Enforce plan limits programmatically via Stripe webhooks

Key Features

  • Kanban boards with drag-and-drop task management and priority labels
  • Client portal — secure, read-only project view with no account required
  • Stripe billing with FREE / PRO plan enforcement (up to 3 or unlimited projects)
  • Team collaboration with invite links and owner-controlled access approval
  • Analytics dashboard tracking task throughput and project progress
  • Inline task comments with role badges and activity feed
  • Export reports to PDF and CSV

Architecture

  • Next.js App Router frontend + NestJS REST API backend
  • PostgreSQL (Neon) with Prisma ORM for typed data access
  • Stripe Checkout + webhook-driven plan enforcement
  • Resend for transactional email (Mailtrap in dev)
  • Deployed on Vercel (frontend) + Railway (backend)

Challenges

  • Syncing Stripe subscription state reliably via webhooks without race conditions
  • Designing a client portal that feels polished without requiring authentication
  • Keeping FREE and PRO limits enforced at both UI and API layers

Learnings

  • How to architect a multi-tier SaaS with real billing from scratch
  • Webhook idempotency patterns for payment event handling
  • Balancing feature richness with a clean, non-overwhelming UX