A full-stack pet management SaaS combining authenticated pet records, search, and subscription-based premium features. Built with Next.js, PostgreSQL, NextAuth, Server Actions, and Stripe, with payment state verified through server-side webhooks.
September 2025 · Solo Project · 4 weeks
PetSoft is a full-stack pet management platform built with Next.js 15 and the App Router. Users can authenticate, manage pet records, search their pets, and unlock premium functionality through a real Stripe subscription. The application uses Server Actions for mutations instead of a separate REST or GraphQL API, with PostgreSQL as the data store and NextAuth.js v5 protecting authenticated operations.
The goal was to build a small SaaS product that behaved like a real paid application rather than a CRUD demo. Pet records needed to be tied to authenticated users, premium access needed to reflect actual payment state, and every server-side mutation needed to validate both its input and ownership before touching the database.
Frontend
Backend
Services
Solution
Verified Stripe webhook signatures server-side and updated subscription status only from trusted webhook events, never from client-reported state.
Result
Premium access reflects real payment state with no client-side trust gap.





Server Actions remove the need for a traditional API layer in a Next.js application, but they do not remove the need for authorization, validation, or ownership checks.
Payment state should come from a trusted server-to-server signal. Stripe webhooks provide a much stronger source of truth than anything reported by the browser.
Authentication and authorization are separate concerns: knowing who the user is does not automatically mean they are allowed to access premium functionality or another user's record.
Optimistic UI requires an explicit failure path. Updating the interface immediately is only safe when the application knows how to roll the change back if persistence fails.
Building PetSoft gave me practical experience combining Next.js Server Actions, PostgreSQL, NextAuth, and Stripe into one complete SaaS flow rather than treating each technology as an isolated feature.