00  Software delivery studio · Remote-first

Software that ships.
Teams unblocked.

We build and rescue products. SwiftUI apps in the App Store, web apps on Next.js, and engineering teams that just need a clear path to their next release.

07Apps live
iOS·WebBuild & rescue
RemoteFirst · async
AuroraView.swiftSwiftUI · 66 lines
// live previewrunning
1import SwiftUI
2
3struct Particle: Identifiable {
4    let id = UUID()
5    var position: CGPoint
6    var velocity: CGVector
7    var hue: Double
8}
9
10@Observable
11final class ParticleField {
12    private(set) var particles: [Particle] = []
13    var size: CGSize = .zero
14
15    func populate(_ count: Int) {
16        particles = (0..<count).map { _ in
17            Particle(
18                position: .random(in: size),
19                velocity: .init(dx: .random(in: -50...50),
20                                dy: .random(in: -50...50)),
21                hue: .random(in: 0...1)
22            )
23        }
24    }
25
26    func advance(by dt: Double) {
27        for i in particles.indices {
28            particles[i].position.x += particles[i].velocity.dx * dt
29            particles[i].position.y += particles[i].velocity.dy * dt
30            bounce(&particles[i])
31        }
32    }
33
34    private func bounce(_ p: inout Particle) {
35        if p.position.x < 0 || p.position.x > size.width {
36            p.velocity.dx *= -1
37        }
38        if p.position.y < 0 || p.position.y > size.height {
39            p.velocity.dy *= -1
40        }
41    }
42}
43
44struct AuroraView: View {
45    @State private var field = ParticleField()
46
47    var body: some View {
48        TimelineView(.animation) { timeline in
49            Canvas { ctx, size in
50                field.size = size
51                for p in field.particles {
52                    let dot = Path(ellipseIn: .init(
53                        origin: p.position,
54                        size: .init(width: 6, height: 6)))
55                    ctx.fill(dot, with: .color(
56                        .init(hue: p.hue, saturation: 0.7, brightness: 1)))
57                }
58            }
59            .onChange(of: timeline.date) { _, _ in
60                field.advance(by: 1.0 / 60.0)
61            }
62        }
63        .task { field.populate(140) }
64        .background(.black)
65    }
66}
01  Services

What we do

We ship software, and we help teams ship it themselves. Here's how the work usually breaks down. Tell us what you're up against and we'll narrow it to a plan.

01

Project recovery

Stalled roadmap, brittle releases, a team stuck firefighting? We step in, figure out what's actually wrong, and get delivery moving again.

02

Product engineering

Web, mobile, and SaaS, from the first release through hardening it for real traffic. SwiftUI and React/Next are usually where we start.

03

APIs & integrations

Connect products to billing, auth, data, and internal tools without turning your codebase into a plate of spaghetti.

04

Cloud & DevOps

CI/CD, containers, and infra-as-code, so deploys get boring. In the good way.

05

Embedded support

Short-term staff aug, code review, or hands-on pairing when you need senior judgment without a long hiring cycle.

02  Project recovery

Most rescue work isn't mysterious.

Unclear ownership, tech debt, and pressure without breathing room. We map what's true today, pick a short list of fixes, and work alongside your team so progress sticks.

Where we often start

  • 01Legacy code and frameworks that slow every change
  • 02Missing or wrong documentation
  • 03Architecture that breaks when you scale traffic or the team
  • 04CI/CD that fails quietly or blocks releases
  • 05Scope creep and dates that keep slipping
  • 06Not enough senior capacity to unblock others

Sectors

Not an exhaustive list—if your problem is software delivery, we'll say honestly whether we're the right fit.

FintechSaaSReal estate & hostingHealthcareLogisticsE-commerce
03  Process

How we work

No secret sauce—just tight feedback loops and work broken into slices your team can review and own.

01

Discover

Codebase, infra, and how the team actually works—not just the slide deck version.

02

Plan

A short backlog of fixes and features with dates you can plan around.

03

Ship

Small releases, visible progress, and room to adjust when reality disagrees with the plan.

04

Handoff

Documentation and habits so your team keeps momentum after we step back.

04  Tech stack

Tech we use

We pick the stack to fit the product, not the other way around: web, native iOS/Android, cross-platform, cloud, and data.

Frontend

React·Next.js·Vue·Angular

Backend

Node.js·Python·Go·.NET

Mobile

iOS·Android·Swift·SwiftUI·Kotlin·Jetpack Compose·React Native·Flutter

Cloud

AWS·Google Cloud·Azure

Data

PostgreSQL·MongoDB·Redis

DevOps

Docker·Kubernetes·Terraform

Day-to-day
JavaScriptTypeScriptSwiftKotliniOSAndroidFlutterReactNext.jsNode.jsPythonGoPostgreSQLDockerKubernetesAWSGoogle Cloud
05  Developed apps

Apps we ship

Products from our own shop, live in the stores. They're the clearest reference we can give for how we treat performance, privacy, and App Store polish.

07 live
NFCore app icon

NFCore

Live
SwiftSwiftUIiOSNFC

Professional iOS tools to scan, read, write, batch-write, and clone NFC tags, including raw memory editing, a command console, templates, and tag lock. Built privacy-first: everything stays on-device, with no account, cloud sync, or tracking.

NFCore.app
Privara app icon

Privara

Live
SwiftSwiftUICryptoKitiOS

A private vault for photos, videos, notes, and documents, hidden behind a fully working calculator lock screen. AES-256-GCM encryption, zero-knowledge design, dual vaults with a decoy, escape PIN, break-in alerts, and Secure Enclave-backed keys.

PrivaraHQ.com
QRDock app icon

QRDock

Live
SwiftSwiftUIiOSAndroid

A privacy-first QR and barcode scanner and generator for iOS and Android. It reads every common format, checks links against phishing databases before you open them, and keeps a searchable local history. No accounts, no ads, no tracking, and scans never leave the device.

QRDock.app
Pomlo app icon

Pomlo

Live
SwiftSwiftUIiOSAndroid

A minimalist Pomodoro timer and time tracker for iOS and Android. One tap to start, optional project tags, weekly per-project charts, CSV export, and a REST API on Pro. It works fully offline, needs no signup, runs no ads, and deliberately ships no AI.

Pomlo.app
Margina app icon

Margina

Live
SwiftSwiftUIiOS

A local-first reading app for the PDFs, articles, and documents you send yourself. Share in from Mail, Files, or Safari, then highlight, annotate, and pick up exactly where you left off across PDF, EPUB, Word, and Markdown. Everything stays on-device, with optional encrypted backup to your own iCloud or Drive.

Margina.app
Carets app icon

Carets

Live
iOSAndroidCodeMirror 6

A fast, minimal, Sublime-inspired code editor and notes app built for the phone. Syntax highlighting, multi-cursor editing, regex find-and-replace, a command palette, and Markdown preview. It edits files in place from Files, iCloud, or Drive, stays local-first, and needs no account.

Carets.app
Foldless app icon

Foldless

Live
iOSAndroidon-device

Captures an entire web page as one clean screenshot, with no scrolling or stitched seams. A single tap exports a full-height PNG or vector PDF, with a built-in browser that handles logins and on-device project organization. Nothing leaves the device.

Foldless.app
06  Where you can verify us

Proof beats adjectives.

Public apps and client work we describe honestly.

Apps you can download

Consumer apps we own end-to-end and ship ourselves. NFCore, Privara, QRDock, Pomlo, Margina, Carets, and Foldless are all live today. Install any of them to see how we treat performance and privacy.

View apps above

Consulting & recovery

Engagements vary: greenfield builds, rescue work, and focused spikes (perf, infra, mobile). We don't publish client names without permission—ask for a relevant example when you reach out.

Start a thread
07  Contact

Tell us what you're building

A sentence or two about the product, timeline, and where you're stuck is enough. We'll reply with next steps or a quick no if we're not the right fit.

Honest scoping, no hard sell Remote-first · async friendly A quick no if we're not the fit

Usually a reply within a couple of working days.