The Diagrams Story

During my computer science studies, I switched from Windows to Mac and was amazed by all the high-quality native apps from independent developers. Their gorgeous designs and well-crafted user experiences attracted me to the point where I started thinking of building one myself. At that time, I lacked a proper tool for sketching software architecture diagrams. And so the idea for building a native diagram editor for the Mac was born.

Diagrams’ App Icon

Since then, I’ve been pouring all of my energy into what eventually became Diagrams. The app was successfully launched on the Mac App Store and Setapp in early 2020. It’s been continuously receiving positive feedback from users, who appreciate its ease of use and visual appearance. I’m also proud of the fact that Apple featured Diagrams on the Mac App Store several times. Two and half years in, and a few updates later, the app is used by around 1,300 unique users every week.

Getting Diagrams off the ground was a challenging undertaking for a solo developer. When I got started, the macOS development landscape looked very different. Frameworks were harder to use, the tooling was far less capable, and Swift was still in its infancy. However, the greatest difficulty was posed by the implementation of the app’s central piece, the interactive canvas. Unfortunately, there wasn’t any first-party framework to build upon, so I set out to design and develop a custom one from scratch, and I called it CanvasKit. Inspired by the React and Redux frameworks from JavaScript land, I decided to make use of advanced concepts like declarative UI composition and unidirectional data flow. Nowadays, this is a widespread approach found even in Apple’s frameworks, but this wasn’t the case when I got started.

Diagrams’ Xcode Project

In addition to designing the app’s concept and the technical work, I’ve taken on all the necessary roles of an early-stage entrepreneur. I’ve been involved in marketing, press, support, hiring, collaborating with freelancers, getting funding, and analyzing business indicators. My range of tasks has spanned from the day-to-day logistics of running a company to high-level strategic matters. And while, at the end of the day, I love programming the most, I truly enjoy the variety of tasks involved in running a business.

Diagrams remains the most important project in my portfolio that I’d like to keep improving. I also have a few ideas for new projects, which I’d like to pick up at some point. However, I’ve decided to venture into freelancing next. So, if you’re looking for a Swift developer to join your iOS or macOS projects, feel free to let me know.