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:
- Creator: The person who writes and publishes content.
- Reader: The person who consumes, subscribes, and engages.
- 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):
| Priority | Feature | Description |
|---|---|---|
| ✅ Must Have | Publish posts & newsletters | Core functionality |
| ✅ Must Have | Auth + Basic profile | Essential for all users |
| ✅ Must Have | Free subscriptions | Needed for growth |
| 🕓 Next | Paid subscriptions | Introduced after stability |
| 🕓 Next | Analytics dashboard | After user base forms |
| 🕓 Future | Plugins & themes | Part 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.
Leave a comment
Your email address will not be published. Required fields are marked *


