CLOSE
Updated on 26 Oct, 202518 mins read 10 views

From the previous module we have a clear "why", now it's time for the “what”.

Before a single line of code is written, I need to know exactly what the system must do – its functional requirements.

What are Functional Requirements?

As we all know that Functional requirements describe what the system should do – the operations, actions, and tasks that delivers value to users.

They are user-facing and business-driven.

In simpler terms:

If you can explain it to a non-technical person and they nod, it's a functional requirement.

The Three Core Actors

Every digital platform has its key participants.

For this product, there are three main actors:

  1. Creator: The person who writes and publishes content.
  2. Reader: The person who consumes, subscribes, and engages.
  3. System: The invisible engine that connects and manages both.

Creator Requirements

Creators are the heart of this platform – everything revolves around their ability to write, share, and grow.

1 Content Creation & Management

  • Write and edit posts in a rich editor (Markdown).
  • Save drafts, schedule posts, and update published ones.
  • Upload images, audio, or embedded media (like podcasts).
  • Organize posts by tags or categories.

2 Newsletter Publishing

  • Send new posts as newsletter to subscribers.
  • Choose between free or paid newsletter types.
  • Schedule newsletter for automatic delivery.
  • Track delivery status and email open rates.

3 Subscriber Management

  • View all subscribers and their plans (free/paid).
  • Segment subscribers (by activity or tier).
  • Export email list (for creator ownership).

4 Analytics & Insights

  • Track post views, email opens, and subscription trends.
  • View earnings breakdowns and growth charts.
  • Understand audience engagement via analytics dashboard.

5. Payments & Earnings

  • Connect Stripe account for payouts.
  • View monthly revenue and payment history.
  • Manage subscription tiers and pricing.

6 Community Interaction

  • Enable/disable comments per post.
  • Reply to reader comments.
  • Get notified about engagement and feedback.

Reader Requirements

Readers are the second half of the ecosystem – their journey must feel effortless, personal, and trustworthy.

1 Account & Onboarding

  • Sing up with email or OAuth (Google, Apple).
  • Verify email and manage their profile.

2 Subscription Management

  • Subscribe to creators (free or paid).
  • Manage active subscriptions.
  • Cancel, upgrade, or downgrade anytime.

3 Reading Experience

  • Read posts on the web or via email.
  • Access past newsletter and archives.
  • Adjust reading mode (light/dark font size).

4 Engagement

  • Like, comment, and share posts.
  • Save posts to “Favorites”.
  • Reply directly via email thread (like Substack).

5 Billing & Payments

  • Secure payment via Stripe.
  • View invoices and transaction history.
  • Update payment methods.

System Requirements

The system is the invisible middle layer that ensures everything runs seamlessly.

1 Authentication & Authorization

  • Register, login, logout, and reset password.
  • Handle OAuth and session management securely.
  • Role-based access: Creator vs Reader vs Admin.

2 Email & Notification Engine

  • Deliver newsletters and verification emails.
  • Handle failed delivers and retries.
  • Manage notification preferences per user.

3 Content Delivery

  • Optimize for fast read experience (CDN caching).
  • Auto-generate SEO-friendly URLs and metadata.
  • Support AMP/email-friendly HTML

4 Payment Integration

  • Connect to Stripe for recurring subscriptions.
  • Support refunds, invoices, and webhooks.
  • Securely manage payment tokens and receipts.

5 Analytics & Tracking

  • Record post views, signups, and conversions.
  • Generate reports for creators and admins.

6 Administration & Moderation

  • Manage reported content.
  • View system-wide analytics (users, revenue, health).
  • Approve or flag abusive user/content.

Example User Flow

Let's take an example journey – a creator publishing a paid newsletter.

Creator logs in
 → Opens editor → Writes post → Marks as 'Paid Newsletter'
 → Schedules for tomorrow 9AM
 → System queues delivery
 → Newsletter sent to all paid subscribers
 → Readers receive it in inbox → Some open & engage
 → Analytics dashboard updates stats in real time

This simple flow involves five different services:

  • Auth
  • Post Management
  • Subscription
  • Payment
  • Email Queue

That's how a functional requirement later translates into modular backend services.

Feature Prioritization (MVP vs Later)

Not everything will be built at once.

Here's how I will prioritize for the MVP (Minimum Viable Product):

PriorityFeatureDescription
✅ Must HavePublish posts & newslettersCore functionality
✅ Must HaveAuth + Basic profileEssential for all users
✅ Must HaveFree subscriptionsNeeded for growth
🕓 NextPaid subscriptionsIntroduced after stability
🕓 NextAnalytics dashboardAfter user base forms
🕓 FuturePlugins & themesPart of ecosystem expansion

This ensures I stay focused – no distractions from the shiny stuff until the fundamentals work perfectly.

Reflection

Defining functional requirements isn't exciting – it's not UI or coding – but it's the foundation of all engineering clarity.

If I skip this, I will end up with a patchwork of features and no cohesive product.

But with this clarity, every service I design next will have purpose, boundaries, and ownership.

Buy Me A Coffee

Leave a comment

Your email address will not be published. Required fields are marked *

Your experience on this site will be improved by allowing cookies Cookie Policy