← Back to Blog

Building RepoPost: Why We're Using Expo Snack to Build a Mobile-First Publishing App

SelfCEO

I'm writing this post using an app I started building this morning. It's called RepoPost, and it solves a problem I've had for months: publishing blog posts to GitHub from my phone is painful.

Here's the story of why I'm building it, how Expo Snack makes it possible, and what we've shipped in less than 24 hours.

The Problem: Publishing from Mobile is Broken

I build everything on my phone. Mory, offer.guide, this website—all coded on mobile using GitHub and various editors.

But when it comes to actually publishing blog posts, the workflow is terrible:

  1. Write the post (in Notes, Claude, wherever)
  2. Open GitHub mobile
  3. Navigate to the right repo
  4. Find the right folder (content/blog/)
  5. Create new file
  6. Name it correctly (slug.md)
  7. Add frontmatter manually
  8. Paste content
  9. Add footer
  10. Commit

That's 10+ steps just to publish a post. And I'm publishing 2 posts per week to selfceostrategy.com, plus more to offer.guide.

I was spending more time navigating GitHub than actually writing.

The Solution: Email-Style Publishing

What if publishing a blog post felt like sending an email?

That's the core insight behind RepoPost. No file navigation. No frontmatter syntax. No copy/paste between apps. Just write and publish.

Why Expo Snack?

Here's the constraint I gave myself: I can only build products I can develop entirely on my phone.

This eliminates most traditional development workflows. But Expo Snack makes it possible.

What is Expo Snack?

Expo Snack is an online IDE for React Native apps. You write code in your browser, and it runs instantly on your phone via the Expo Go app.

No Xcode. No Android Studio. No local environment setup.

Just a browser and your phone.

Why this matters for RepoPost:

Instant iteration - Write code, see it immediately. Mobile-first by default - I'm testing on the device it's built for. No setup friction - Just start coding. Easy collaboration - Share a link, anyone can see it.

The entire RepoPost development workflow happens on my phone: Code in Expo Snack (mobile browser), test in Expo Go (app), iterate based on real usage, deploy when ready.

What We Built in 24 Hours

Morning: The Core - GitHub authentication, repository selection, email-style composer, publish to GitHub API.

Afternoon: Polish - Custom footer templates, repo-specific path configuration, settings screen, proper error handling.

Evening: Using It - Published first test post to offer.guide, writing this post in RepoPost, already faster than the old workflow.

How It Works (Technical)

For those curious, here's the stack:

Frontend: React Native (via Expo), AsyncStorage for local data, modal-based navigation.

Backend: None! Direct GitHub API calls, Personal Access Token for auth, Base64 encoding for file content.

Publishing flow: User writes post in app, generate frontmatter from title, add selected footer template, convert to base64, GitHub API creates file in repo, success - clear form.

No server. No database. Just GitHub as the backend.

What I'm Learning About Constraints

Building only on mobile is a constraint. But constraints force creativity.

Things I can't do: Run complex build processes, use desktop-only IDEs, test on multiple screen sizes easily, access certain development tools.

Things I can do: Build exactly what I need when I need it, test on the device I'll actually use, ship faster with no environment setup, stay focused with fewer distractions.

The mobile-only constraint isn't limiting. It's clarifying. I can only build simple, focused products. Which is exactly what I should be building anyway.

The Meta Moment

I'm writing a blog post about building a blog post publishing app, using the blog post publishing app I'm building.

This is the essence of building in public. Ship fast, use it yourself, share the journey.

RepoPost isn't perfect. It doesn't have drafts yet. The markdown editor is basic. There's no preview. But it works. And it's already saving me time.

What's Next

This week: Use RepoPost for all my blog posts, find the rough edges, iterate based on real usage.

Next week: Draft saving, markdown preview, better error handling, edit existing posts.

Eventually: Move from Snack to proper GitHub repo, build with EAS, submit to App Store, launch at $9.99/month.

Why Build This Publicly?

Because I've shipped two products (Mory and offer.guide) with zero audience. I'm building the distribution problem and the product problem simultaneously.

Documenting the RepoPost journey serves multiple purposes: Content for SEO, building in public so people follow journeys, product validation to see if others want this, personal accountability because I can't quit if it's public.

Plus, it's just more interesting to share the process than to hide until it's "perfect."

Try RepoPost (Eventually)

RepoPost isn't available yet. It's a few days old and currently just me using it.

But if you publish markdown blogs to GitHub, want to write from your phone, and hate the current mobile workflow, then this might be for you.

I'll share updates as we build. Follow along at @SelfCEOstrategy or right here on the blog.


Follow along: @SelfCEOstrategy | selfceostrategy.com