Most indie hackers in 2026 start with a SaaS wrapper. They spin up a Stripe account, connect an API key, and hope for the best. I did the opposite.
I built Ledg to run without a server, without cloud storage, and without bank linking. I wanted a tool that lived on the device. This decision changed how I fund Sterling Labs.
In 2024 and 2025, privacy was a marketing angle. In 2026, it is the product. People know their data gets sold to brokers before they even finish typing a username. I built Ledg to prove you can build a profitable business without touching that data.
Here is the exact architecture and workflow I used to ship the app and keep the lights on at Sterling Labs.
The Constraint: No Data Leaves the Phone
The core requirement for Ledg was strict. If you do not have a server, you cannot store the data remotely. This means no iCloud sync and no web dashboard.
When I started, I could have added AES-256 encryption to the database file and called it a day. That is not enough. The threat model changed in 2025 with the rise of AI scraping tools that target public cloud dumps. If your data is in a bucket, someone can find it.
So I removed the cloud entirely. The database lives on the device file system. Users control the keys.
This constraint drove every technical decision from day one. I did not write a single line of backend code. No Node.js services. No Python workers. Just Swift and local storage on iOS.
The Dev Environment for 2026
Running a one-person operation requires hardware that does not slow down. I do not rent cloud instances for development. I compile locally to ensure speed and control.
My setup runs on a Mac Mini M4 Pro. The chip handles Xcode builds in seconds without fan noise or heat throttling. I use https://www.amazon.com/dp/B0DLBVHSLD?tag=juliansterlin-20 for the main unit. It sits on my desk alongside an Apple Studio Display https://www.amazon.com/dp/B0DZDDWSBG?tag=juliansterlin-20 to keep the workflow tight.
I type code using the Logitech MX Keys S Combo https://www.amazon.com/dp/B0BKVY4WKT?tag=juliansterlin-20. The tactile feedback matters. I am typing thousands of lines a day during sprints.
For navigation, the MX Master 3S https://www.amazon.com/dp/B0C6YRL6GN?tag=juliansterlin-20 lets me switch between Xcode and Safari without moving the hand.
I also use a CalDigit TS4 Dock https://www.amazon.com/dp/B09GK8LBWS?tag=juliansterlin-20 to manage inputs. It keeps the desk clean so I can focus on logic rather than cable management.
This hardware choice is not about luxury. It is about reducing friction. When the build takes 10 seconds instead of two minutes, I write more code.
The Architecture: SQLite and SwiftData
Ledg uses a local SQLite database wrapped in SwiftData. There are no external API calls for data retrieval.
The app architecture follows a strict separation of concerns:
1. UI Layer: SwiftUI for the interface.
2. Logic Layer: Swift classes that handle math and categorization.
3. Storage Layer: Direct SQLite access with no ORM overhead.
I avoid heavy frameworks like CoreData for this specific use case because I need direct control over the file. The database is a single file stored in the app sandbox.
I do not use AI to categorize transactions. In 2026, people assume an app is spying on them if it suggests a category without asking. I let the user define the categories. The app supports recurring transactions, but it does not guess what you spent money on.
I also do not support receipt scanning. Optical character recognition requires a server or heavy local processing that drains battery. I want the user to focus on the numbers, not the paper trail.
Pricing: The Value of Privacy
I priced Ledg based on value, not cost-plus. Most budget apps charge a monthly fee. I offer that too.
The lifetime option is the key differentiator. In a market where subscriptions are becoming annoying, people want to own their tool.
I do not use Stripe directly for the lifetime deals on some platforms, but I do process payments through App Store Connect. The revenue comes in monthly for subscriptions and as a lump sum for lifetime users.
This pricing model aligns my incentives with the user. If they stop using Ledg, I do not lose money. They keep paying for value.
How This Funds Sterling Labs
Ledg is not the end goal. It is a cash-flow engine for Sterling Labs.
Sterling Labs provides technical consulting and development services https://jsterlinglabs.com. I take clients who need custom solutions that generic tools cannot handle.
The revenue from Ledg pays for the server costs, marketing, and development time while I handle client work.
I do not mix the codebases. The Ledg app is a standalone iOS product. Sterling Labs handles external projects for other companies.
This separation allows me to say no to bad clients. If a client asks for something that violates my privacy principles, I walk away. Ledg revenue covers the gap while I find better work.
I also use TradingView for market research on tech stocks https://www.tradingview.com/?aff_id=137670. I track the performance of software companies to understand market trends.
For trading signals and analysis, I rely on TC2000 https://www.tc2000.com/download/dallastecson and https://www.tc2000.com/pricing/dallastecson for technical analysis tools. This keeps my investment side separate from the product code.
The "No Marketing" Workflow
I do not run ads for Ledg. I do not pay for influencer shilling. In 2026, ad costs are too high for a niche product like this.
The marketing strategy is simple: build something people trust and let them find it.
1. App Store Optimization: I focus on keywords like "offline budget" and "privacy finance".
2. Product Hunt Launches: I launch when the app is stable, not beta.
3. Community Feedback: I listen to users who leave reviews on the App Store.
I do not have a blog for Ledg updates. I use X to post changes. If a user asks how to export data, I answer the question publicly so others can see it too.
This transparency builds trust. People know the app is not a scam if I am open about how it works.
Why I Cut the "Cloud Sync" Feature
Many competitors offer iCloud sync for free. It is a major selling point. I removed it from the roadmap to keep the scope small.
I do not want to manage encryption keys for users. If my server goes down, their data is gone. If I do not store the data, I cannot lose it.
This also means no shared budgets. You cannot share a Ledg budget with your spouse. Each device is an island.
For most users, this is a feature not a bug. They want control over their financial data. They do not want to invite family members into their private accounts through a cloud portal.
I added manual entry as the primary input method. This forces the user to engage with their numbers every time they add a transaction. It creates awareness that apps like YNAB try to automate away.
The Bottom Line
If you want a budget app that does not sell your data, try Ledg. If you need custom automation or consulting, check out Sterling Labs.
The playbook is simple: build something offline-first, price it fairly, and let the product speak for itself.