SKIP TO CONTENT
Monospace

SERVICE / 02

Native Apps

Software that belongs on the machine it runs on — launching instantly, working offline, and keeping its data in a format you still own. Five shipped Mac applications, built on Tauri with Rust, and Swift where the platform demands it.

A focused Mac app ships in a 2–4 week sprint; a full product in 1–3 months.

A native app is one the operating system treats as its own: it opens immediately, keeps working without a network, respects system conventions, and stores its data where you can reach it. That is a different discipline from a web app in a window, and the difference shows up in startup time, memory, and what happens on a plane.

MAC APPS SHIPPED
5
SURFACES
MAC · iOS · CLI
FROM
5,000
CORE
RUST

HOW IT RUNS

WEEK 1 WEEK 4
  1. WEEK 1

    The file format

    What the app writes to disk is decided before the window is drawn. It outlives every version of the interface above it.

  2. WEEK 2

    Window and keyboard

    The main surface, keyboard-first, following platform convention rather than a web layout wearing a native frame.

  3. WEEK 3

    Offline and speed

    Cold start, memory, and behaviour with no network — measured on real hardware instead of assumed.

  4. WEEK 4

    Signed and shipped

    Notarised build, auto-update, crash reporting, and a release that can go straight to a customer.

HOW IT IS BUILT

Local-first, not cloud-tethered
Ampersand keeps every document as plain Markdown on disk. Pastry keeps clipboard history in local SQLite. Cali writes portable .cal files. Nothing is held hostage in a proprietary format or a vendor's cloud.
Rust where speed is the feature
Cali's expression engine is a hand-written lexer, parser, and evaluator with no math library behind it. Where a general-purpose dependency would be slower and vaguer than the thing it replaces, the engine gets written.
Native where native matters
All Things Claude ships in Swift and SwiftUI — a menu-bar meter and an end-to-end-encrypted session mirror. The toolkit is chosen per surface rather than applied uniformly.
Keyboard-first by default
Software used every day is used by hands, not cursors. Pastry is a paste stack reached by a keystroke; Ola is a keyboard-driven inbox. Shortcuts are designed alongside the interface, not added after it.

WHAT YOU GET

  • A signed, notarised Mac application ready to distribute
  • Auto-update channel and release pipeline
  • Local data layer with a documented, portable file format
  • Keyboard model and shortcut map
  • Icon and app identity consistent with the product's brand
  • Homebrew or direct-download distribution set up
BUILT WITH
  • Tauri
  • Rust
  • Swift
  • SwiftUI
  • React
  • SQLite
  • TypeScript

THE ARTIFACT

~/Library/Application Support/AmpersandON DISK
documents/ 2026-03-11-notes.md 4.2 KB 2026-04-02-draft.md 11.8 KB archive/ 212 filesindex.sqlite 96.0 KBsettings.json 1.1 KBformat markdown on disk, sqlite for searchnetwork not required to open, edit, or searchexport already done — the files are the export
Plain files in a documented format. Delete the app and the work is still there, readable by anything.

IS THIS THE RIGHT FIT

YES, IF
  • The product is used daily and startup time is part of the experience
  • Data should live on the user's machine in a format they own
  • You need macOS system integration — menu bar, shortcuts, file handling
PROBABLY NOT, IF
  • A product whose whole value is collaborative and server-side
  • A team that needs one codebase across web, iOS, and Android above all else

QUESTIONS

  • Why Tauri and Rust rather than Electron?

    A bundled browser engine per app is a large amount of memory and startup time to pay for a rendering layer macOS already provides. Tauri uses the system webview and puts the heavy work in Rust, which is why Ampersand, Pastry, and Cali open immediately.

  • Do you handle App Store submission and notarisation?

    Yes — signing, notarisation, and the release pipeline are part of the deliverable, along with an auto-update channel. Distribution outside the App Store via Homebrew or direct download is also set up.

  • Can the same product also run on the web?

    Often, if the core is written for it. Cali runs one Rust engine behind the Mac app, the web version, and a CLI. That is a decision made at the start, not a port made later.

Got something in this shape?

A scoped sprint starts at €5,000 and runs two to four weeks. Every engagement is priced before work starts.