SaaS case study
EZWxBrief
An aviation weather briefing platform with a Next.js frontend and NestJS backend, recurring membership billing, transactional email, and AWS delivery tooling.
Architecture map
Membership billing, email, and AWS delivery pipeline
Business problem
Account and briefing access depended on recurring membership state, payment-profile updates, renewal operations, and dependable transactional communication.
Architecture
Next.js membership flows call NestJS services backed by TypeORM and PostgreSQL, with Payflow profile state, operational reconciliation, direct SES delivery, and containerized AWS stacks.
My contribution
- Integrated Payflow recurring profiles across registration, trials, profile creation, card updates, cancellation, reactivation, and renewal reconciliation.
- Improved membership, pricing, renewal, cancellation, payment-method, validation, and confirmation/error experiences.
- Extended NestJS DTOs, APIs, TypeORM entities, and migrations for billing identifiers, membership state, dates, cards, and email preferences.
- Implemented price synchronization, renewal reconciliation, expiring-card reminders, and configurable subscription pricing.
- Implemented direct AWS SES delivery and worked with versioned Docker/ECR and CloudFormation-to-ECS deployment tooling.
Difficult technical decisions
- Keep Payflow recurring-profile state aligned across the user interface, NestJS domain model, scheduled reconciliation, and operational support paths instead of treating billing as a checkout-only feature.
- Use provider reconciliation for renewal truth while preserving explicit local membership dates and statuses for product access decisions.
- Move transactional email to direct AWS SES delivery and keep deployment infrastructure versioned with the application release path.
Scale and constraints
- Seven recurring-billing lifecycle paths: registration, trial, profile creation, card update, cancellation, reactivation, and renewal reconciliation.
- Frontend, API, PostgreSQL migrations, scheduled operations, email delivery, and infrastructure had to change without breaking existing memberships.
- The AWS delivery surface spans SES, ECS, ECR, CloudFormation, S3, and Secrets Manager.
Security, performance and reliability
- Kept payment-profile identifiers and membership state in the application model while leaving sensitive payment handling with Payflow.
- Used Secrets Manager-backed delivery configuration and versioned container infrastructure to reduce environment drift.
- Added scheduled price synchronization, renewal reconciliation, and expiring-card reminders to move repeatable operational work out of manual support paths.
Measurable result
- Implemented seven recurring-billing lifecycle paths across one coordinated Next.js, NestJS, PostgreSQL, Payflow, and AWS operating model.
- Established an AWS delivery stack spanning six named services for transactional email and containerized releases.
What I learned
- Subscription reliability depends on treating UI states, provider profiles, database fields, scheduled jobs, and support visibility as one product system.
- Cloud delivery work is most maintainable when infrastructure changes are versioned and reviewed alongside the application behavior they support.
Implementation stack
Technologies grouped by responsibility.
Frontend
Backend/CMS
Data
Integrations
Infrastructure/Delivery
Related work
Portfolio and operations management
CEPRA
Established organization-safe operations and connected delivery, billing, capacity, and executive reporting across the web platform.
Assessment and learning platform
Tech Career Assessment
Connected assessment results to administration, learning delivery, program reporting, and assisted career workflows for internal and external users.