Back to work

DineSeal

A subscription-to-entitlement path for a restaurant SaaS product

Built and deployed a subscription flow that validated payment state, provisioned accounts, and synchronized product access. Verified eight end-to-end subscription and entitlement scenarios for external demonstrations.

Subscription LifecyclePayment-to-AccessDeployed Demo

Overview

DineSeal was a restaurant SaaS product developed during my full-stack internship at Vision Verse Interactive. I independently built the subscription and entitlement path so a visitor could subscribe, have an account created, and enter the product with the correct access. The completed flow was deployed for external product demonstrations.

Problem Context

For a subscription product, payment is only the beginning. Payment outcome, subscription state, account creation, Firebase role data, and protected-product access all need to agree. If one step is out of sync, a user can be charged without access, or gain access without a valid subscription.

The team needed that path to work reliably in a shared deployed environment for external demonstrations. Local webhook forwarding was difficult to reproduce across developers, so hosting and domain configuration were part of making the integration demonstrable.

Scope

I independently owned the subscription and entitlement flow: data design for subscription and account states, Next.js frontend and backend implementation, Stripe configuration, payment validation, Hasura/Firebase integration, Render deployment, and Cloudflare domain configuration.

This was a deployed product demonstration, not a live service with real paying customers.

What I Did

The flow began on a custom subscription page. A user could select a monthly plan and apply Stripe-managed discount or free-trial codes. After Stripe processed the subscription outcome, the application validated the state, provisioned the account path, and synchronized Firebase-related role and access data through the Hasura-integrated application.

The lifecycle also covered cancellation with access retained through the paid period, expiry restrictions on protected routes and APIs, and renewal. I deployed the flow publicly so payment validation, webhooks, account handling, and the product sign-in journey could be verified together.

Technical Architecture

The application used Next.js with Hasura as the data and API layer, Firebase for identity and entitlement handling, Stripe for subscription lifecycle management, Render for hosting, and Cloudflare for domain configuration. The important boundary was not any single service: it was keeping the payment result, subscription eligibility, account state, role data, and protected access aligned.

Key Decisions

Challenges

Current Outcome

The deployed product completed end-to-end validation across eight key subscription and entitlement scenarios: access gating, monthly subscriptions, discount and free-trial paths, cancellation, expiry restriction, renewal, and webhook/domain integration. The marketing team used the complete payment-to-product journey in external product demonstrations.

  • Validated eight key subscription and entitlement scenarios in the deployed demo.
  • Supported monthly subscriptions, Stripe-managed promotions and free trials, cancellation, expiry restrictions, and renewal.
  • Used the complete payment-to-product journey in external product demonstrations.

8

E2E scenarios validated

Subscription

to entitlement flow