Skip to content

Skeuomorphic Software

Can you imagine a world where software lives unencumbered from the artificial limits we've created? One where applications work seamlesly with one another, and silos become a thing of the past.

I can, and this is what it looks like.

A tea set


The word "skeuomorphic" comes from the greek words skeûos (implement, tool, vessel) and morphḗ (form). It can mean "resembling a tool" or "with the form of a tool".

You may already be familiar with skeuomorphic design, or skeuomorphism. In software, it has been used to describe graphical elements that resemble objects from the physical world: a floppy disk used to save files, a trash can that holds deleted files, etc.

Libreoffice's taskbar is a good example of skeuomorphic design

For a long time, we used it to transition from the physical world to the digital world. Today, we're moving on. Digital is already part of most people's life, and the bridge is no longer necessary.

However, when it comes to the way software works (not the way it looks), this bridge was never there. We've come to accept some limitations that don't exist in the physical world.

I have already written about these artificial limitations, and today I want to talk about what things could be like if we manage to break free.

The Platform Split

Maybe the most important limitation keeping us from the future I envision is the lack of interoperability.

In the physical world, we take it for granted. If you've got a tea kettle, you can use it to brew any brand of tea. You can serve it in any brand of cup. And you can combine it with any brand of pastries.

In software, things aren't so simple. If you download an audiobook from Audible, good luck playing it in your favourite media player. Or if you want to share someone's message in another social network, it won't look pretty.

Some of these may improve with regulation, such as the Digital Markets Act. But that's still a far cry from the ideal, and I'm not so naive to believe that any of this would be easy. Although I also believe that if we made the effort, we would be in a much better position than we are right now.

There is actually one piece of technology that embraces this philosophy: The Web. It's called the universal platform for a reason, and that is by design. Not only that, but going against it is frowned upon.

However, when talking about private data, not even The Web lives up to this ideal. As soon as we create an account, we've abandoned any hopes of making it compatible with other services. In a perfect world, you wouldn't even think about this. It would happen by pure serendipity.

But interoperability is only one part of the puzzle. Skeuomorphic software is much more than that.

Personal Software

Something else that happens outside of software is that people is more willing to learn and do things on their own. And so, experiences become more personal.

I'm sure that anyone reading this has at some point considered working on a DIY home project. The most ambitious may have built their own furniture or done some electrical wiring. But things as simple as gardening, making tableware, or even mounting furniture from IKEA show a willingness to learn and understand your environment.

When it comes to software, most people are helpless. Unless they have experience programming or administering software, they see technology as an impregnable black box they will never understand.

But it doesn't have to be that way. Programming is not as difficult as you'd think. Sure, you're not going to make an app from scratch without any prior experience. In the same way that you wouldn't remodel your kitchen without some professional help. However, when the sink is clogged, your first instinct is not to call the plumber.

It gets even worse. Not only don't people do software on their own, they don't even consider hiring a professional to do it for them. Sure, there is some work formatting computers and whatnot, but when was the last time you saw Personal Software? That is, a piece of software that has been built for someone's specific workflow and is not intended to be used by anyone else.

The closer we've got to this is spreadsheets. I'm always surprised to meet people who've mastered the most obscure of Excel's formulas, but are dumbfounded when you show them the simplest of JavaScript code.

On the other hand, everyone has an account on the Social Media platform of the day. Very few people have a place of their own in the Internet, and that's how we end up with a Big Tech ecosystem instead of a person-first indie web. I'd much rather have an ecosystem where software artisans take part in making everyone's experiences better, at an individual or community level.

Small and Open

In this ideal world, my favourite kind of software could thrive: Small and Open.

I strongly believe that great software is born from small teams. There are some exceptions, but software created by big organisations is often bland and complex. Smaller teams, on the other hand, can produce whimsical software that sparks joy.

When I say small, I also mean small in scope. Too large a team often results in a handshake overhead that stiffles innovation. And the attention to detail necessary to craft a great experience can only be achieved with a small surface area.

Small doesn't mean tiny, though. I think a good heuristic for what is "too big" would be Dunbar's number (150 people). Which is already a huge number, if you ask me. But I still believe a company of 150 people or less can make great software.

Now, go ahead and look at the software you use on a daily basis. I'm pretty sure most of it comes from Big Tech. But if you think about the software you love the most, I'm also pretty sure it'll come from a small team.

The other side of the coin is Openness. Not just Open Source, but also open formats and non adversarial practices.

One drawback of "small tech" is that it'll often have some rough edges. And a small scope could mean that it doesn't fit your particular use-case. But if the software is Open, there is room for you or someone else to fill that gap.

Something I would like to see is developers hired to implement Personal Software. In part, that's how I saw the spirit of Github's "Fork me" feature. It's something that didn't catch on, but it happens all the time in the physical world.

Going back to the example of kitchen remodeling, imagine that you hire someone to help you face the task. And right off the bat, they tell you that you can only choose from a catalog of premade designs. I'm sure that would go against most people's expectations. But nobody bats an eye about the lack of personality in Social Media platforms.

This idea may seem dystopian in today's ecosystem that prizes market dominance above all else. But it wouldn't be so if sustainability and versatility were taken more seriously, and we didn't think that small independent software is doomed to fail.

The Long Road

We're still very far from this ideal, and there are many challenges to overcome like standard fragmentation, maintenance burden, sustainability, data ownership, self-hosting, and many more. Though I wonder how many of these are real problems, or they are issues we created ourselves.

I also cannot say that my work lives up to this ideal. But at the very least, I'd like to see that we're moving in this direction. I'd certainly be happy to see people forking my apps!

If history has taught me anything, it is that it goes in cycles. I'm not sure in which part of the cycle we are at the moment, but ultimately progress prevails. And I can't conceive of a world with the same limitations 1000 years from now, if we're still around.


Read more posts →