Case study 03

Product leadership · creator commerce

AstroVista

A production content-and-commerce platform connecting creator publishing, customer access, payments, entitlements, and revenue operations.

Role
CTO / Lead Architect
Period
2024 — present
Repository
astro_vista ↗Private repository
5
connected content formats
28
mapped Firestore data paths
3
supported client platforms
FlutterFirebase AuthFirestoreCloud FunctionsRazorpaySentry
01 — Business problem

What had to change

The original request sounded like an ‘Amazon for astrologers’: a two-month Android build where creators could publish and sell digital content. The scope quickly expanded across articles, books, courses, videos, bundles, administration, payments, and access control.

As CTO / Lead Architect, I own the product architecture, releases, commerce workflows, and production recovery. The platform moved beyond its initial low-code implementation as its operational requirements grew.

02 — Decision journey

How the product
reached this state.

The finished architecture makes more sense when the discoveries, reversals, and responsibility shifts are visible.

  1. 01

    Choose speed with an escape route

    FlutterFlow offered rapid delivery, but source export was the deciding condition. It gave me a path out when custom viewers, performance, and payment behavior exceeded the builder’s comfortable limits.

  2. 02

    Lead architecture and delivery

    I own the technical direction across the Flutter clients, Firebase backend, commerce workflow, releases, and production recovery.

  3. 03

    Connect pricing, access, and creator economics

    Duration-based prices, promotional discounts, free library saves, paid entitlements, and creator revenue attribution had to become one coherent system rather than unrelated screen states.

  4. 04

    Reconcile purchases, not just screens

    A real purchase incident forced me to trace payment, entitlement, and customer access as one recovery workflow rather than three disconnected features.

03 — Engineering decisions

Decisions that shaped the system

Each choice connects a business constraint to an implementation boundary and retained evidence.

01

Keep content varied but administration coherent

Articles, books, courses, videos, and bundles remain distinct feature modules, while publishing and administration share one operational surface.

Evidence · The product contains five creator administration workflows and shared desktop/web CMS views.
02

Resolve duration pricing before payment

A product can expose several access durations and scheduled discounts, but Razorpay should receive one server-validated amount. Pricing selection therefore becomes a product rule before order creation, not a client-side convenience.

Evidence · The retained decision history connects multi-tier duration pricing, scheduled campaign expiry, order creation, and server-side confirmation.
03

Make entitlement a durable state

Payment initiation, confirmation, purchase records, and content access are treated as a state transition that can be reconciled after partial failure—not as a successful button press.

Evidence · Cloud Functions and the Razorpay path create orders, confirm purchases, and support entitlement recovery.
04

Separate discovery from ownership

Free content can be saved to a personal library without pretending it was purchased; paid access requires an entitlement with its own lifecycle and recovery path.

Evidence · Library state and paid purchase records remain distinct while feeding the same customer-facing catalogue.
05

Treat creator commerce as a system

Publishing, catalog visibility, customer purchase, creator attribution, revenue share, and reconciliation must connect without trusting any single client screen.

Evidence · Creator transaction views, content administration, purchase records, and revenue-share summaries form one operational chain.
06

Treat readiness as ongoing product work

Security rules, indexes, schema drift, dependencies, dead code, and production configuration are reviewed as part of carrying the product—not as a one-time launch checklist.

Evidence · The repository retains rules, index definitions, readiness audits, and remediation records.
04 — System model

How the pieces connect

  1. 01Flutter clients
  2. 02Firebase Auth
  3. 03Firestore + Storage
  4. 04Cloud Functions
  5. 05Razorpay & entitlements
05 — Decision models

The logic behind
the interface.

Open any diagram at its original resolution to inspect the complete workflow.

AstroVista payment and entitlement state machineOpen full resolution ↗
01Payment confirmation and content access are recoverable states rather than one optimistic client action.
AstroVista creator publishing commerce and revenue-share systemOpen full resolution ↗
02Creator publishing, customer purchases, entitlement, and revenue reconciliation form one product system.
07 — Implementation and RCA

Where the work
became difficult.

Architecture is only part of the story. These constraints changed how I implemented, tested, and recovered the product.

01

Move beyond generated Flutter

Exportability let me replace restrictive low-code paths with maintained Flutter source while continuing to ship features instead of restarting the product.

02

Learn from a production purchase incident

The incident exposed the gap between payment success and usable access. Reconciliation and entitlement recovery became first-class operational concerns.

03

Operate the product after release

I continue to own architecture, maintenance, release decisions, and recovery when commerce or access workflows fail in production.

08 — Outcomes and boundaries

What the work produced

The product supports user accounts, five content formats, creator and administration workflows, purchases, controlled access, notifications, and multi-platform builds.

The commerce path connects duration pricing and discounts to server-created orders, durable entitlements, customer recovery, creator attribution, and revenue-share visibility.

As CTO / Lead Architect, I continue to own the product’s architecture, releases, commerce controls, and production recovery.

Evidence boundary. The portfolio demonstrates shipped workflows and production responsibility but does not publish private customer, revenue, or creator-volume figures.

5
connected content formats
28
mapped Firestore data paths
3
supported client platforms

Evidence basis

What supports this story

Read the full product-engineering retrospective ↗

AI disclosure. AI tools generated or revised portions of Flutter, Firebase, testing, and documentation work within directed implementation and review workflows. I owned product direction, architecture, release decisions, production incident response, source review, and the continuing commercial and customer consequences of the system.

Next case studySEC ERP