Why MyD1 Is Mac-Only — And Why That's the Point
Mac-Only. On Purpose.
MyD1 isn't cross-platform because we chose to build the best possible Mac app instead of a mediocre app that runs everywhere.
We get asked this a lot: "When's the Windows version?" or "Will there be a Linux build?" The honest answer is: we're not planning one. Not because we don't care about those platforms — but because going native on Mac is the entire point.
Built with Apple's Frameworks
MyD1 is built entirely with Apple's native stack. No Electron, no web views, no cross-platform wrappers. Every pixel is rendered by the same frameworks that power Finder, Safari, and Xcode.
The entire app compiles from source with a single swiftc command. No SPM packages, no external drivers, no dependency tree. Every database adapter — MySQL, PostgreSQL, Cloudflare D1 — implements the wire protocol natively in Swift.
Electron vs. Native — The Real Difference
Most database clients today are Electron apps: a Chromium browser pretending to be a desktop app. Here's what that means in practice:
- 💾 200–500 MB on disk
- 🧠 300–800 MB RAM at idle
- 🐢 2–5 second startup
- 🔋 High battery drain
- 📋 Broken native shortcuts
- 🎨 Doesn't match macOS look
- 🔐 No Keychain integration
- 📦 Ships Chromium + Node.js
- 💾 ~15 MB on disk
- 🧠 ~50 MB RAM at idle
- ⚡ ~100ms startup
- 🔋 Minimal battery impact
- ⌨️ Full native shortcuts
- 🎨 Native macOS look and feel
- 🔐 Keychain-secured credentials
- 📦 Single compiled binary
The Origin Story
MyD1 wasn't built as a product. It was built for us.
Originally, we used Adminer — the PHP-based database manager — for our daily workflow. We were building apps on Cloudflare D1, and we needed to check configuration tables, verify data, and run routine queries every day. Adminer worked, but it was slow, it ran in a browser, and it didn't support D1.
So we built MyD1 to replace it. The core use case was dead simple: connect to a database, open the core_data_config table, search for a value, and move on. We needed to do this fast — every day, sometimes multiple times a day.
That's where the obsession with speed came from. Not benchmarks. Real workflow speed.
The Daily Routine — Under 10 Seconds
Here's the exact workflow MyD1 was built for. What takes over a minute in most database clients takes less than 10 seconds in MyD1:
-
1
Launch MyD1 — ~100ms startup. No splash screen, no loading bar. The window is ready before your finger leaves the trackpad.
-
2
Connect — saved profiles reconnect near-instantly. Local databases connect in under 50ms. Even remote D1 is sub-second.
-
3
Click the database — the table list loads immediately.
-
4
⌘F — opens the search. Type
core+ Enter. Results appear instantly. -
5
↓ arrow down to the right table. Enter to open it.
-
6
⌘F again — type e.g.
url. The search automatically detects the value type and searches only in compatible columns. No need to specify which field. -
7
Done. The result is on screen. The whole thing took seconds, not minutes.
When a view has multiple search fields (like the table data view), ← and → arrow keys switch between them — so you never reach for the mouse.
This is what we built MyD1 for. Not a feature checklist — a daily routine that respects your time.
What "Native" Actually Means
Going native isn't just about speed. It's about fitting into the ecosystem you already use:
None of these are "features" in the traditional sense. They're just what a Mac app should do. But when you use an Electron app that doesn't do them, you feel the difference immediately.
Why Not Go Cross-Platform?
We could have built MyD1 with Electron, Tauri, or Flutter. It would run on Windows, Linux, and Mac. But it would be a compromise on every platform — native on none.
We chose depth over breadth. Every hour we would have spent fighting cross-platform abstractions, we spent making the Mac experience better instead. The result is an app that:
- Starts in ~100ms (Electron apps take 2–5 seconds)
- Uses ~50 MB of RAM (Electron apps use 300–800 MB)
- Feels like a real Mac app (because it is one)
- Integrates with macOS features that cross-platform apps can't access
The craft matters
Part of why we built MyD1 this way is for the craft itself. There's value in exploring what Apple's frameworks can do — pushing SwiftUI and AppKit to build something that feels truly native. We did this for the exercise, for the culture, and to prove that a small team can build a professional-grade database client without a single dependency.
Every feature in MyD1 exists because we needed it ourselves. Keyboard shortcuts were added to speed up the queries we ran every day. The AI assistant was added because writing routine SQL by hand felt unnecessary. Export and import were added because we kept needing them.
That's why MyD1 feels opinionated — it was built by database users, for database users, on the platform we use every day.