Skip to main content
2026

Curriculum SaaS

Next.js
PostgreSQL
Drizzle ORM
Stripe
next-intl
TypeScript

Description

A resume builder that generates PDFs, with billing in three currencies and routing between Stripe and PIX depending on the country. Interface and content are available in English and Portuguese through next-intl.

Features

  • PDF generation from HTML templates
  • Billing in three currencies, routing between Stripe and PIX by country
  • English and Portuguese through next-intl, with the locale in the URL
  • Subscription lifecycle handling: trials, upgrades and cancellations
  • Four templates written so an applicant tracking system can actually read them: one column, real text, headings the parser recognises

Challenges

  • Getting PDF output to match the template exactly across different content lengths
  • Choosing between currency by IP and locale by URL without blinding the crawler
  • Handling payment providers with different constraints: Stripe bills inline, the PIX provider requires a catalogue

Learnings

  • That currency can follow the visitor, but language has to follow the URL
  • How the Stripe subscription lifecycle behaves outside the happy path
  • Where PDF generation gets expensive, and what to cache