From Flutter apps on three platforms to a 675-page ASO engine, on-device ML, automated content pipelines, and an internal ops console. The full story of building Sapplify.
Most productivity apps follow the same playbook. Create an account, sync to the cloud, let the company monetize your data. Weight trackers selling health data. Budget apps analyzing spending for advertisers. Period trackers with privacy policies making headlines.
I kept looking for simple tools that just work without all of that. They didn’t exist. So I decided to build them myself. Not just one app, but an entire ecosystem. That decision is where Sapplify started.

All Sapplify apps are built with Flutter. One Dart codebase compiling to native iOS, Android, and Huawei AppGallery apps. As a solo developer, this is what makes shipping across three platforms realistic.
The default architecture is local-first. Data stays on device, stored in SQLite, processed locally. No accounts required, no cloud dependency. But I’m pragmatic about it. sBudget, for example, integrates Supabase with OAuth for cross-device sync because for a budget app, that feature genuinely matters. It’s currently in partial release on iOS. The principle isn’t “never use a server.” It’s “only use one when it actually serves the user.”
Health data is personal. Weight trends, cycle patterns. Machine learning can add real value here by helping users understand their own data and presenting it in a way that actually makes sense. But the obvious path, sending that data to cloud models, would destroy the local-first approach. You lose control over where the data goes and who processes it.
So instead of using external ML frameworks or cloud APIs, I built custom statistical models in pure Dart. sWeight uses linear regression with confidence scoring and trend analysis. sCycle uses weighted prediction engines, anomaly detection, and pattern recognition for cycle and fertility forecasting. Everything runs on device, trained on the user’s own data, with zero network calls.
Building great apps means nothing if nobody finds them. Localizing landing pages, keyword-optimized content, and structured data across 15 languages is impossible to maintain manually. So I built a custom Node.js build system that generates the entire site from templates and JSON translation files.
Static HTML was a deliberate choice. Search engines can crawl it instantly without JavaScript rendering, page loads are fast which improves Core Web Vitals and rankings, and serving 675+ pages from a CDN costs almost nothing. One build script, 2,500 lines, generates every page. App pages, blog posts, privacy policies, changelogs, art exhibitions. Each gets hreflang tags, JSON-LD structured data, Open Graph metadata, and a dynamic sitemap. The entire site rebuilds in seconds and deploys to Netlify.
The apps are local-first, but the ecosystem still needs infrastructure. Instead of one monolith, I built two separate Python backends that share a Supabase database.
The public-facing backend runs on Flask. It handles the waitlist, beta access program, contact form, app feedback, analytics, and payment links. The second backend runs on FastAPI and powers sConsole. App Store Connect data sync, AI-powered content generation, image and video pipelines. Both use Supabase for auth and PostgreSQL, deployed separately so each can scale independently.

Running a multi-app company solo means juggling analytics dashboards, task managers, content tools, and deployment pipelines. I tried existing solutions but nothing fit. Too scattered, too complex, or missing the specific features I needed. So I built sConsole.
It’s a full Flutter app with six toggleable modules. Tasks with projects, tags, and templates. Analytics pulling real App Store Connect data including downloads, revenue, and conversion rates by country. Social media content management with AI-powered generation. API logs for monitoring both backends. Everything I need to run Sapplify lives in one place, built exactly the way I need it.

Sapplify is proof that one person can architect, build, and ship an entire product ecosystem. From custom ML to AI-powered content pipelines, every piece exists because it needed to.
Content that runs itself.
Marketing as a solo developer means automation or nothing. I initially used Make.com for content distribution, but it was too limited. So I built my own content pipeline directly into sConsole’s FastAPI backend.
The system uses Claude for text generation, Google Gemini for images, Veo 3 for short-form video, and OpenAI Whisper for captions. I create a topic, the backend generates a 14-day content calendar with platform-native formats. Carousel posts for Instagram, reels for TikTok, pins for Pinterest. All media gets uploaded to Bunny.net CDN automatically. What used to take hours of manual work now runs from one screen inside sConsole.