IronwireTechnologiesIronwire Technologies

Products

Privacy you can verify, not privacy you have to believe.

Every privacy policy is a promise about what a company chooses not to do with data it already has. The Iron suite is built the other way around: the data never arrives. There is no account to create, no server of ours in the path, and in IronTime's case no networking code in the binary at all.

A promise can be revised after an acquisition. A build property cannot.

Project artifacts expressed as code and held in version control

The suite

Software for individuals, families, and small businesses — the people who get the least attention from vendors and have the most to lose from a breach. Every app is built and maintained by the same engineer who runs our client delivery, on the same stack.

Release candidatemacOS

IronTime

Native time tracking and invoicing for macOS. Start a timer, write down what you did, send a letterhead PDF.

What it does with your data

Opens no network connections at all — no account, no sync, no analytics, no crash reporting. Zero third-party dependencies, so nothing can add one. The App Privacy label is "Data Not Collected", literally.

  • Menu-bar timer that survives quit, sleep, and reboot
  • Reports by day, week, month, project, client, or repository
  • Invoices rendered onto your own letterhead as PDF, with totals frozen at issue
  • Commit URLs file themselves under the right repo, parsed locally
  • Swift
  • SwiftUI
  • SwiftData
  • Swift Charts
Release candidateAndroid · macOS

IronBlocker

DNS-level ad and tracker blocking on Android and macOS. No accounts, no resolver of ours in the path.

What it does with your data

Blocking happens on the device. Android intercepts DNS in a loopback VPN; macOS writes /etc/hosts, and Ironwire never receives a query either way. Queries that are not blocked go to an upstream resolver — Cloudflare at 1.1.1.1 by default, changeable in Settings — which sees them as any resolver does.

  • Blocks across every app on the device, not just the browser
  • Live query log on Android; blocking that survives quitting on macOS
  • Four public blocklists, one whitelist model, allow-a-domain-allow-its-subdomains
  • Works offline — a cold start reads the bundled list, not the network
  • Kotlin
  • VpnService
  • Swift
  • SwiftUI
Release candidateAndroid

IronKeyboard

Android keyboard with on-device voice typing. The INTERNET permission is not declared, so keystrokes cannot leave the phone.

What it does with your data

INTERNET is absent from the manifest, which Android enforces at the process level — the app cannot open a network socket. Voice typing runs a Vosk model bundled in the APK on the device CPU. The only permissions declared are VIBRATE and RECORD_AUDIO.

  • On-device voice typing — Vosk model bundled in the APK, never a server
  • QWERTY and DVORAK, glide typing, and a 10k-word offline dictionary
  • Autocorrect separates correction from completion; backspace restores exactly what you typed
  • Suggestions, previews and autocorrect switch off in password fields
  • Kotlin
  • Jetpack Compose
  • Vosk
  • InputMethodService
In buildAndroid · macOS

IronDusk

Evening screen filtering for Android and macOS, scheduled around your bedtime and wake time rather than sunset alone.

What it does with your data

Android: INTERNET is not declared, and neither is location — sunset is computed for a city you pick from a list shipped inside the app, searched on the device. No accessibility service, so it cannot read the screen. macOS: no networking code, and the App Sandbox with no other entitlement. Settings never leave the device on either.

  • One schedule: fades in from sunset, deepens to a night look by bedtime, fades out by wake
  • A red look that removes green as well as blue — on the Mac, all the way to zero
  • Shows the estimated share of blue-green (melanopic) light removed, not just a colour temperature
  • Switching off lasts until morning; Sleep holds the darkest look until you wake
  • Kotlin
  • Jetpack Compose
  • Swift
  • SwiftUI
  • CoreGraphics
In buildmacOS

IronTransfer

Android file transfer for macOS. Two-pane browser, drag and drop both ways — a replacement for the tool Google let rot.

What it does with your data

A direct cable between two machines you own. Nothing is uploaded, and there is no intermediary to trust.

  • Browse the phone and drag files in both directions
  • Transfer queue with live progress
  • MTP backend in build, so a phone with Developer Options off will work too
  • Swift
  • SwiftUI
  • ADB
  • MTP
In buildmacOS · Android

IronArchive

Encrypted photo and video backup with restore on demand, for people who want off-site copies without handing over the originals.

What it does with your data

End-to-end encrypted on the client. Cloud storage holds opaque ciphertext and nothing else — the keys never leave your devices, and we could not read a file if we were asked to.

  • One-way backup: local deletions never propagate to the archive
  • Restore individual files on demand rather than whole-archive round trips
  • One documented wire format every client implements identically
  • Swift
  • Kotlin
  • AWS CDK
  • S3
  • Cognito
In buildmacOS

IronScribe

Push-to-talk dictation for macOS. Hold a key, talk, and the words appear wherever you were already typing.

What it does with your data

No audio and no text leaves the device — transcription runs on the macOS recognizer locally, and the app opens no network connections of its own: no account, no sync, no analytics, no crash reporting. macOS downloads the speech model itself on first use through its own asset system; that transfer comes from Apple and carries no audio or transcript. The microphone opens when the key goes down and closes when it comes up.

  • Push-to-talk on a held modifier key — no wake word, no always-open microphone
  • Words arrive as Unicode key events, so the clipboard is never borrowed
  • Works in Electron apps, terminals and editors, not only native text fields
  • Falls back to the older system recognizer on macOS 14 and 15
  • Swift
  • SpeechAnalyzer
  • AVAudioEngine
  • Accessibility API

Also in design

Specified, not yet shippable. Listed here rather than given a card, because a product page should tell you what exists.

  • IronInbox — mail kept searchable and durable for a lifetime
  • IronAI — a local LLM and agent stack that runs entirely on your own hardware
  • IronVpn — family-scale private networking

Why a services firm ships apps

The same patterns run underneath both. Client work pays for the tooling; the products prove the tooling survives contact with real users, real devices, and a bill we pay ourselves. When we tell a client an architecture holds, we are describing something we operate, not something we read about.

It also keeps us honest about cost. An architecture whose bill we absorb every month gets designed differently from one billed to someone else.

Need something built like this?

Local-first architecture, client-side encryption, and applications that work without phoning home are deliberate engineering choices. We do the same work for clients.