I make small software.
A MIDI controller for iPhone that you lay out yourself, native macOS desk toys and instruments that live in your menu bar and never get in your way, and co-op games built on physics and other people. No frameworks, no accounts, no analytics, nothing that phones home.
Istanbul, Turkey · safabulatdev@icloud.com
The current one
Midiboard
On the App Store · iPhone
An iPhone Bluetooth MIDI controller you build yourself. Drop pads, keys, chord buttons, wheels, faders, XY pads and step sequencers onto a grid, drag each one where your hand actually goes, save the screen, and flip between screens with one tap while the song is running.
It exists because I already used a phone controller on stage and the only thing wrong with it was the surface — somebody else's idea of where my hands should be. This one hands you the grid instead. It sends standard Bluetooth LE MIDI, so it works with whatever you already play.
Desk toys & instruments
Things that sit on your desktop and wait
Each one is a native AppKit app of a couple of megabytes with no dock icon, no window in your app switcher and no permissions to ask for. They stop drawing entirely when nothing is moving.
-
Deskestra
A piano, a drum kit, a bass, a guitar, a kalimba, a metronome and a tuner that live in your menu bar. Play them on your computer keyboard while another app has focus. Every instrument is free.
-
Kick Kick
A football goal and a ball floating over your whole desktop. Throw the ball at the goal, let go, try to score. Clicks fall straight through everywhere except on the ball, so nothing you were working in ever loses focus.
-
Hoop Hoop
The same idea with a basketball hoop: throw the ball across your desktop and try to sink it. Built on the same quiet overlay as Kick Kick.
Games
Mostly things you cannot do alone
Built in Godot and Unity. The ones worth making are the ones where the other player is the interesting part of the physics.
-
Mind the Patient
In development · Godot
Co-op physics comedy. Two players carry a stretcher — and whatever is on it — through places a stretcher was never meant to go. Every corner is a negotiation.
-
HOLMGANG
Prototype · Godot
A medieval melee battle royale with a class system and parrying that actually costs you something. Holmgang is the old Norse duel fought to settle a matter for good.
-
Vine Out
In development · Mobile
A colour-match puzzle. Grab the head of a tangled root and drag it out through a matching exit without trapping the ones behind it.
-
HADAL
On hold
Four-player deep-sea salvage horror. The pressure outside the hull is the antagonist, and the lights are on a budget.
How I build
Small on purpose, all the way down
The desk toys ship as a couple of megabytes because there is nothing in them but the app. Every sound is synthesised in code at launch rather than shipped as audio. The landing pages are plain HTML and one stylesheet with no external requests at all, so they work off a disk.
None of it collects anything. No accounts, no analytics, no crash reporting, no network code. That is not a privacy policy written after the fact — there is simply nothing in there to send.
Deskestra exists because I play guitar and keys and produce music, and I wanted a tuner and a metronome that were already open instead of another window to go and find. Most of what I build starts as something I wanted on my own desk.
Before this I worked on embedded systems and .NET, which is where the habit of counting bytes came from and never quite left.
Built with
- Swift
- AppKit
- Core Animation
- AVAudioEngine
- Godot
- GDScript
- Unity
- C#
- TypeScript
- Phaser
- C / C++
- Python
Open source
The parts worth handing over
When something in one of these turns out to be generally useful rather than specific to the toy it was written for, it gets pulled out and given away.
-
QuietOverlay
Swift package · macOS 13+ · MIT
The shell underneath the desk toys. A whole-screen overlay window that clicks fall straight through — except where you say they should not — and that can never steal keyboard focus from the app you were typing in.
None of it asks for anything back.
Contact
Say something
Support questions, bug reports, an idea for something small — the same address reaches me for every app and game here.
- safabulatdev@icloud.comEmail · support for every app
- github.com/safabulatCode
- linkedin.com/in/safabulatThe long version