The Problematic Direction of Software
The state of software lately is bad and trending downward. This is my typical experience of a new app:
First, I sign up with my email and prepare to receive unsolicited daily marketing emails for life.
I log in by being redirected to a website that sends me an email with a login link that redirects me back to the website and then back to the app. In my head, I start listing the people who I'm trusting with my data, including engineers at the app's company, my email provider, and members of some bureaucratic legal apparatus who ask nicely. I wonder what such a complex login flow accomplished for me.
The app is buggy and slow because it's built with layers of expensive abstractions. It's a native web app using the trendiest javascript framework. The backend covers the whole systems design bingo card by featuring a distributed event streaming platform, an eventually consistent document store, an in-memory cache, probably a websocket, and about a dozen microservices.
I receive daily push notifications reminding me to use the app, to invite my friends, to give feedback, to update to the latest version, and to donate to a social cause the apps developers are so passionate about.
Despite having millions of active users, the app doesn't have the revenue to keep doubling its number of employees every year. The app's charismatic founder takes advantage of the latest round of quantitative easing and raises venture capital funds at a $1 billion valuation. They have their next company offsite in Bali. (Okay, technically the offsite in Bali isn't my experience, but it bothers me and not just because I'm jealous.)
An app should respect the user and define success as fulfilling user needs. It shouldn't expect me to trust it for no reason, its notifications should be worth my attention, and if I wanted marketing emails for life, I'd ask.
Fixing Incentives
The simple explanation for attention-seeking, low quality apps is: they're free. When an app is free, the app asks not what it can do for you but rather what you can do for it. Usually, that includes spending as much time as possible in the app and sharing as much data as possible, and does not necessarily include having a good experience. Facebook designs apps to all but hypnotize you into using them.
One way or another, you're paying for your apps. For apps that advertise, you'll be paying with your attention, and the app will be designed to capture as much of your attention as possible. For other apps, you'll be paying with your personal information which is sold to third parties, and the app will be designed to capture as much of your personal information as possible. In either case, you're not the one the app is designed for. You're a commodity to be extracted and resold. You're the product.
We build Lockbook for a better incentive system. By paying for our app, you incentivize us to prioritize your experience. Be the customer. We won't act like your attention or information belongs to us and we'll always be thinking of new ways to delight you. We'll build you a product worth buying.
Improving Quality
Note-taking makes sense as our first app because it's fundamental. It's common in apps for users to create, organize, and share content. In Lockbook users are managing notes, but the same challenges - like offline access, encryption, and sharing - are solved once for many types of data. Not only do we share our solutions (I should mention we're open source), but we plan to add third party support to enable all developers to build high-quality privacy-conscious apps. We build Lockbook to raise the quality of apps everywhere. Note-taking is just the beginning.
While our infrastructure is designed for anything, it's not like note-taking isn't dear to us. We're enthusiasts. We share grocery lists with our families. We put our most personal and vulnerable thoughts in our journals. We brainstorm ideas for our next company offsite on the subway. We build Lockbook because we're users too.
Growing As Engineers
We don't measure our worth by our number of reports. Every hire is a failure in that it increases the cost of building our app and therefore the cost of buying it. To make the most of every team member, we design for engineering productivity.
We use our own database to share a data model across our clients, server, and storage. We compile that database into our server and our server into our client so we can fly through 10,000 integration tests per second, which we generate in our automatic defect finder. We encapsulate logic in a Rust client library and a cross-platform text editor to share code without compromising quality. Whatever we can do to scale each engineer's productivity, we do it, and this leads to fascinating projects that not only pay for themselves quickly but capture our imaginations. We build Lockbook to hone our craft and grow as engineers.
We also don't measure our worth in interest from venture capital firms. If we do have an offsite in Bali, it'll be because we put users first, not because of a conducive macroeconomic environment.
Conclusion
Lockbook is our contribution to course-correct a troubling trend. We lean against the prevailing tides and reach towards an ideal. We build a note-taking app to change the relationship we have with technology.
If I've piqued your interest and you'd like to learn more, check out our website, GitHub, and Discord.