I rebuilt 43 photographic processes from 1839 to today as on-device filters — no backend, no accounts, nothing leaves your phone

I'm a solo iOS dev in Germany. For a while now I've been building an app I think of less as a "filter app" and more as a small museum of photographic history you scroll through like a film strip.

Each "era" is a distinct process rendered on-device with Core Image + Metal: wet-plate collodion from the 1850s, dyed-starch-grain autochrome from 1907, a spirit double-exposure from 1862, subminiature spy film, a two-color office-duplicator print, and so on — 43 of them, in chronological order from 1839 to now, each with a little museum placard explaining the era.

Two constraints I refused to bend on:

  1. Fully on-device. No backend, no accounts, no analytics, nothing uploaded — ever. A camera app that literally cannot see your photos felt like the only honest way to build this. Bonus: zero server costs and zero data to leak.

  2. Brand-free everything. No product names anywhere — it's "Subminiature Spy Film," not the brand; "2-bit Handheld," not the console. Every filter is named after the process or device class, like labels on a gallery wall. That turned out to be harder than the graphics work.

Honestly the hardest part wasn't the code — it was resisting scope creep. "Weniger ist mehr" became a hard filter: no in-app gallery, no cloud, no video that isn't motion-native. Every "wouldn't it be cool if" got killed unless it fit the museum framing.

reddit.com
u/Physical_Ad5017 — 3 days ago

I rebuilt 43 photographic processes from 1839 to today as on-device filters — no backend, no accounts, nothing leaves your phone

I'm a solo iOS dev in Germany. For a while now I've been building an app I think of less as a "filter app" and more as a small museum of photographic history you scroll through like a film strip.

Each "era" is a distinct process rendered on-device with Core Image + Metal: wet-plate collodion from the 1850s, dyed-starch-grain autochrome from 1907, a spirit double-exposure from 1862, subminiature spy film, a two-color office-duplicator print, and so on — 43 of them, in chronological order from 1839 to now, each with a little museum placard explaining the era.

Two constraints I refused to bend on:

  1. Fully on-device. No backend, no accounts, no analytics, nothing uploaded — ever. A camera app that literally cannot see your photos felt like the only honest way to build this. Bonus: zero server costs and zero data to leak.

  2. Brand-free everything. No product names anywhere — it's "Subminiature Spy Film," not the brand; "2-bit Handheld," not the console. Every filter is named after the process or device class, like labels on a gallery wall. That turned out to be harder than the graphics work.

Honestly the hardest part wasn't the code — it was resisting scope creep. "Weniger ist mehr" became a hard filter: no in-app gallery, no cloud, no video that isn't motion-native. Every "wouldn't it be cool if" got killed unless it fit the museum framing.

reddit.com
u/Physical_Ad5017 — 4 days ago

FireCtl beta — building workflows, not just a mobile webif

Hi r/opnsense — quick update on FireCtl, the native iOS app for OPNsense.

The goal isn't to shrink the web UI onto a phone. It's to take the things that are actually painful in the web UI and turn them into one-tap workflows. A couple of examples:

- FreeRADIUS user → VLAN from DHCP scope. Pick the VLAN directly from your existing DHCP scopes when creating or editing a RADIUS user, instead of typing tunnel attributes by hand.

- Send hosts from Safari to an OPNsense alias via the iOS share sheet — long-press a link, share to FireCtl, pick the alias, done

- Pre-update snapshot (next beta). If your OPNsense runs as a VM on Proxmox, FireCtl can take a Proxmox snapshot of the VM before you hit "Update" — and abort or continue if the snapshot fails.

- Minimal Proxmox management. VM/LXC list, start/stop/reboot/shutdown, snapshots — enough to handle the OPNsense host without leaving the app.

Current state:

- 1.4 is in TestFlight right now (Widgets, Certificates, VLAN dual-store, audit log, services hub, lots of fixes).

- 1.5 with the Proxmox module + pre-update snapshot hook goes to TestFlight around mid-week.

Beta: https://testflight.apple.com/join/AcZmwCPX

Feedback very welcome — especially on which workflows or features you'd want next.

u/Physical_Ad5017 — 2 months ago

Any chance to run C&C Generals on Apple Silicon Macs

Hi there,
I read lots of information that C&C Generals runs with winehq in Apple Silicon (M4). I didn't fully get the point how this setup needs to be installed.
Did somebody here succeed?
Thanks guys!

reddit.com
u/Physical_Ad5017 — 2 months ago

[Release] FireCtl 1.3 — A native iOS app for OPNsense, built by an admin for admins

After ~9 months of building, FireCtl 1.3 just hit the App Store. It's a native iOS app for managing OPNsense firewalls remotely. I built it because I run a few OPNsense installations (home plus customer racks) and got tired of squinting at the web UI on my phone.

 Here's what's in 1.3:

 - Real-time dashboard with interface traffic, gateway latency, system resources

- Firewall rules grouped by interface, with per-rule traffic stats, inline editing and toggling

- Aliases (host, network, URL, URL-table) — the share extension lets you add URLs straight from Safari, Mail or any other app, which is great for blocklists or quick blocks while reading articles

- Tunnel services: view and toggle WireGuard, OpenVPN, IPsec, Tailscale, NetBird peers running on the firewall

- FreeRADIUS user management for 802.1X / VLAN / WiFi setups, plus one-tap conversion of a DHCP lease into a RADIUS user

- Live firewall logs streamed to the phone, with filtering

- DHCP lease overview (hostname, MAC, lease state)

- Configuration backups with optional password encryption

- Up to 10 firewall profiles, optional iCloud Keychain sync (E2E-encrypted by Apple)

 A few words on privacy and architecture, because this is the kind of app that holds your firewall credentials:

 The app talks directly to your firewall over HTTPS. There's no FireCtl server, no proxy, no middleman. API credentials are stored locally in iOS Keychain, with optional iCloud Keychain sync (end-to-end encrypted). No analytics, no tracking, no third-party SDKs. The App Store privacy declaration shows "No data collected" — which is verifiable on the listing. Independent app, no affiliation with Deciso B.V.

 

Demo mode: open the app, tap "Demo" on the profile selector at launch. Fully featured, realistic test data, no internet or firewall needed. That's the trial — you can poke around every screen before deciding whether to buy and connect to your real OPNsense.

A few tech notes since this is r/OPNsense:

 Native iOS 17+, Swift / SwiftUI. Talks to the official OPNsense REST API. Self-signed cert pinning supported per profile. One thing I recently fixed in 1.3: plugin detection used to rely on firmware/info, which can hang for 30+ seconds right after an OPNsense package update while pkg-sync is still running. So FreeRADIUS detection now goes through freeradius/service/status first, with firmware/details/os-freeradius as fallback. Small thing, but I had testers report "FireCtl says my FreeRADIUS isn't installed" after an update, and that was the root cause.

https://i.redd.it/imvkao85lq0h1.gif

https://preview.redd.it/pnqbcd95lq0h1.png?width=1320&format=png&auto=webp&s=ce4e58840ee221fc75dbea5b167e3214c2ef75c0

https://preview.redd.it/s4b7mk85lq0h1.png?width=1320&format=png&auto=webp&s=ac5c491f3704f6ce7e400f425de9d3f0db5f00e8

https://preview.redd.it/li62sj85lq0h1.png?width=1320&format=png&auto=webp&s=bde9b5ff3dd54d9c7455c6db55a2c79891bfb3e7

https://preview.redd.it/6xu3rl85lq0h1.png?width=1320&format=png&auto=webp&s=64c7b5eb0b25996d98f26f26c3dde7f05071c91e

 Roadmap stuff I'm working on for 1.4:

 - Unbound DNS-Overrides (Host + Domain Overrides, CRUD)

- Read-only widgets (multi-WAN failover, gateway health, tunnel status, cert expiry — Home Screen and Lock Screen)

- App Intents and Shortcuts for power-user automation

- Rules editor expansion (advanced fields, schedule, gateway, state-type, reply-to)

- VLAN library and FreeRADIUS VLAN field

 

App Store: https://apps.apple.com/de/app/firectl/id6764077509

Privacy policy: https://firectl.com/en/privacy.html

Web: https://firectl.com

 Happy to talk about implementation choices, OPNsense API quirks, why I went native instead of cross-platform, or anything else. Feature requests welcome — if there's something specific you want for your setup, drop it here or at info@firectl.com.

reddit.com
u/Physical_Ad5017 — 2 months ago