DataHub Subscriptions Feature Phases

"Subscriptions" is often deceptive—it sounds like a single feature (a button that says "Subscribe"), but in reality, it is an entire business logic engine that touches almost every part of your application.

You are effectively building a mini-SaaS platform for your publishers.

Here is the breakdown of the hidden complexity (the "Iceberg") involved in building a robust subscription system for a data platform.

I. The Publisher Side (The "Business" Dashboard)

For the publisher, your platform becomes their workplace. They need tools to manage their "business."

  1. Audience Management (CRM):
  • List View: Who are my subscribers? (Name, Email, Join Date, Status).
  • Import/Export: "I want to bring my 500 emails from Substack to here" (Import) or "I want to leave" (Export CSV).
  • Manual Actions: The ability to manually unsubscribe someone (e.g., a harasser) or manually grant a free subscription to a colleague ("Comping").
  1. Financial Operations (The Hardest Part):
  • Onboarding: Connecting a bank account (usually via Stripe Connect).
  • Taxes: Handling VAT/Sales tax (often offloaded to the payment processor, but the UI needs to reflect it).
  • Refunds: Users will ask for refunds. Does the publisher do it? Do you do it? ( MVP: You do it manually via support).
  • Payouts: Showing "Pending Payouts" vs. "Paid Out."
  1. Analytics (The Feedback Loop):
  • Growth Charts: Active subscribers over time.
  • Churn Rate: How many people canceled this month?
  • Post Performance: Open rates and Click-through rates (CTR) on the emails sent.
  1. Content Strategy (The "Gate"):
  • Paywall Control: Deciding exactly where the paywall hits. (e.g., "Show the first 10 rows of the CSV, hide the rest").

II. The Subscriber Side (The Consumer Experience)

For the user, the complexity lies in frictionless access and trust.

  1. The "Teaser" Experience (Crucial for Data):
  • Metadata Preview: They need to see the column names, data types, and update frequency before they subscribe.
  • Visual Teasing: Blurring out charts or showing a locked icon on the "Download" button.
  • Search/Discovery: Subscriptions are useless if no one finds the publication. You need a recommendation engine or a "Trending Publications" index.
  1. Account Management:
  • Billing Portal: "I need to update my credit card" or "I want to cancel." (Don't build this yourself; use Stripe Customer Portal).
  • Email Preferences: "I want the weekly digest, but stop sending me the instant alerts."
  1. Access State (The "Login Wall"):
  • The frustrating experience of clicking a link in an email and being asked to log in again. You will eventually need "Magic Links" (login via email token) to reduce friction.

III. The Platform Side (The Invisible Glue)

This is the part users and publishers don't see, but you have to build.

  1. The State Machine:
  • Keeping the database in sync with the Payment Processor.
  • Scenario: A user's credit card fails on the 1st of the month. Stripe retries on the 3rd. Failed again. Stripe cancels subscription on the 5th. Your database needs to listen to these "Webhooks" to downgrade access automatically.
  1. Email Deliverability:
  • You are sending emails on behalf of others. You need to manage Sender Reputation. If one publisher sends spam, it could hurt the delivery rates for everyone else.

IV. How to Tackle This (Phasing Strategy)

Since you are in the PoC/Early phase, do not build everything. Here is a prioritized roadmap to avoid getting overwhelmed.

Phase 1: The "Free" MVP (Current Focus)

  • Publisher: Can see a list of emails. Can toggle posts to "Subscribers Only."
  • Subscriber: Can sign up (Free). Can access gated content if logged in. Receive basic "New Post" email.
  • Platform: Basic email dispatching (SendGrid/Mailgun). No payments yet.

Phase 2: The "Simple Paid" Layer

  • Publisher: Connect Stripe account. Set a Monthly/Yearly price.
  • Subscriber: Pay via Stripe Checkout.
  • Platform: Listen to checkout.session.completed (Start sub) and customer.subscription.deleted (End sub).
  • Refunds: Manual (User emails Support -> Dev handles it in Stripe dashboard).

Phase 3: The "Pro" Features (Future)

  • Publisher: Analytics dashboard, Import tools, Coupons/Discounts.
  • Subscriber: Gift subscriptions, Group/Team subscriptions.
  • Refunds: Automated button in UI.

Summary: Yes, it involves a lot. The "Subscription" feature is actually the core engine of the business model. Start with Phase 1—focus on the Notification Loop (getting emails to users) and the Access Gate (blocking content). Leave the complex billing/refund logic for later.