Building ShabDify: A 3-Day Flutter MVP for Multi-Platform Publishing


TL;DR
ShabDify eliminates the manual copy-paste workflow for developers publishing across multiple platforms. Built in 3 days with Flutter + Firebase, focusing solely on the core problem.
The Problem
As developers who write, we spend too much time on publishing overhead. After analyzing my workflow, I discovered 40% of my "writing time" was actually copy-pasting and reformatting across platforms.
Technical Implementation
Stack
Frontend: Flutter 3.16 with Material Design 3
Backend: Firebase (Auth + Firestore)
Platforms: Android, iOS
Core Architecture
enum PublishingPlatform {
medium,
substack,
hashnode,
reddit,
linkedin
}
class UniversalLinkHandler {
static Future<void> openPlatform(PublishingPlatform platform) async {
final url = _getPlatformUrl(platform);
await launchUrl(Uri.parse(url));
}
static String _getPlatformUrl(PublishingPlatform platform) {
// Returns universal link that opens app or web
switch (platform) {
case PublishingPlatform.medium:
return 'https://medium.com/new-story';
// ... other platform links
}
}
}
Key Features
Platform Navigation Tap platform button to reveal bottom sheet with all available platforms for quick switching.
Rich Text Editor Clean, distraction-free writing environment with real-time content persistence.
Universal Link Integration One-tap copying with universal links that intelligently open platform apps or web versions, letting the OS handle navigation.
3-Day Development Timeline
Day 1: Foundation
Project setup with proven Flutter patterns
Text editor with TextEditingController
Platform enum and switching logic
Day 2: Integration
Firebase configuration and authentication
Copy-to-clipboard functionality
Platform-specific formatting
Day 3: Launch
Bug fixes and edge cases
App store deployment
User feedback collection
Technical Decisions
Why Universal Links Over APIs? Universal links provide immediate value without API approval delays. The OS handles app/web navigation intelligently, creating a seamless user experience.
Why Flutter? Two years of experience meant rapid development with proven patterns. No learning curve delays.
Why Firebase? Quick setup, reliable authentication, and real-time sync without backend complexity.
Lessons Learned
MVP discipline is critical - Resist feature creep at all costs
Experience accelerates development - Leverage existing knowledge
User feedback drives everything - Build for real problems, not imagined ones
Current Status
Live on Android, Web platforms with positive user feedback. Focus remains on perfecting the core experience before adding any new features.
Tech Stack: Flutter 3.16, Firebase, Material Design 3
Timeline: 3-day MVP, demand-driven enhancements
What developer workflow would you tackle with a focused 3-day approach? Share your thoughts in the comments.
Subscribe to my newsletter
Read articles from Nash9 directly inside your inbox. Subscribe to the newsletter, and don't miss out.
Written by
