Boris Lepikhin

Ideas out of nothing

January 27th, 2021

The problem

Full-stack developers are passionate about making stuff, so am I. It’s hard to count how many hobby projects I started and abandoned over the years.

Building software is easy nowadays — you merge some pre-made stuff (packages, frameworks, or even apps) together, and wrap it in a whole new thing. But it’s getting tough when it comes to finding ideas and inspiration. No one wants to spend time building stuff that no one would ever use. So here go two problems — an idea and its validation.

Inspiration

The other week I noticed a tweet from Adam Wathan that complained about the lack of simple image converters. It might sound ridiculous, but there’s no app for macOS that does that one single action. I mean, there are lots of bulky tools that could convert, resize, optimize, and even apply filters to the images, but I’m talking about a simple, lightweight thing.

So, let’s build it. How to make a desktop app that uses some complex algorithms you have no clue about? Take a ready-to-use solution, an existing tool … an existing app!

There’s plenty of CLI tools developers are obsessed with. While some of them are really supercharged and feature-rich, many also cannot boast their simplicity.

Validation

The idea needs validation before it comes to a business. Ok, I got a single potential user, but what’s next?

The main trick is that when you dress up an existing tool, the idea is already validated by the original app’s users. That’s how a dozen of Git clients were born, I believe. That’s how macOS, Linux, and Windows were made. We took things, merge them, and get whole new things. That’s what developers do.

Lens

So, that’s how I built Lens. I took FFMPEG, made a dope (I think so) and super light UI for it, and wrapped it in an Electron app. That’s it. End of the story.

In fact the app just runs a single command "ffmpeg {input} -q:v {quality} {output}.{format}".

There’s a bunch of great ideas floating over there. Just look around as a developer, and see how much command-line stuff you are using day by day. Will this or that app be more useful if it gets a UI? I bet lots of will.

And either you’re building a desktop or a mobile app, somehow it always feels more magically than just a website. 

The app is live now. Lens is only available for Mac because I love that native macOS feeling. I wanted the app to be as light as possible, with no extra knobs or something. Just drop a file, or a bunch of them, and get the desired result. I’m pretty happy with how it turned out.

That’s it.

I hope you enjoyed the read. I used a similar approach while I was building Invoker, and it was fun to build a desktop app on top of the PHP backend.

You’re welcome to follow me on Twitter to stay up to date with what’s going on.

Subscribe to my newsletter

I'll only spam you with my thoughts on some tricky dev stuff 🙃