Flux: Building an iOS App Overnight

One night, just as I was jumping into bed, I started thinking about the social media system I had patched together a while back. For context, I don’t scroll much on social media. If I do, it is usually on platforms that offer some work-related value. However, I do post a bit more often.

I had built a system where I primarily posted on one platform, and it automatically reposted content to all my other accounts. But it was not reliable. It also didn’t allow me to choose if I wanted certain posts only on specific platforms. Jumping between all the apps manually was not an inviting alternative.

The Gap in the Market

There are plenty of apps that allow cross-posting, but I ran into two main issues.

First, most of them only support the modern platforms like Bluesky, Threads, and Mastodon. I specifically need those in addition to X (formerly Twitter), LinkedIn, and Facebook.

Second, the tools that do support all these platforms are intended for professional enterprise use. They are generally too complicated for casual personal use.

The “Counting Sheep” Experiment

Before turning off the light, I figured I would try letting Claude Code Web write a new app that catered to my needs. I wrote a short prompt, hit send, and went to sleep.

In the morning, I was genuinely surprised. The result was much closer to a fully working app than I expected. Throughout the day, I kept sending occasional tweaking requests to Claude whenever I had a quick waiting moment. These are the kinds of moments where most people usually open social media apps out of muscle memory.

The Result: Flux

By the end of the day, I had a fully functional app that catered to almost all my requirements.

The current app now supports:

  • Platforms: Bluesky, Threads, X, LinkedIn, and Webhooks.
  • Drafts: Writing and saving drafts for later.
  • History: A full archive of all previous posts.
  • Smart Composer:
    • Threaded posts: Automatically combined into a single post on platforms with large character limits like LinkedIn.
    • Link previews.
    • Image and video files.
    • AI Alt Text: Automatic generation using OpenAI or Apple Intelligence.
    • Username mapping: Correctly maps @mentions across different platforms.
    • Contacts: Remembers mapped usernames.
    • Hashtags.
  • iCloud: Backup & Sync

What Comes Next

I still need to figure out how to connect Facebook. They do not allow API access for private accounts, and they really didn’t like my previous solution. That is an adventure for another day.

Okou, Facebook really don’t like my automated cross-posting 😬

— Klemens Arro (@klemens.bsky.social) December 13, 2025 at 8:02 PM

I also need to resolve a few technical limitations. For example, X has API limits on the number of monthly posts. Also, posting media to Threads and handling LinkedIn authentication currently require server-side code.

Once I figure those out, I will likely make Flux public. I suspect there is someone else out there who has the same problem.

In the meantime, I can share a few TestFlight invites. If you are interested, just contact me via any of the channels you see in the site header.

Leave a Reply

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