Marcel's avatar in comic style

I've been sharing my opinions online since I was 14. Something that has changed over the years is my relationship with the reactions I receive.

When you share something online, people will react. Most of the time, they try to one-up you, either by pointing out something you apparently missed or by flat-out telling you that you're wrong and they know better.

That's not surprising. It's how people operate.

In my early years of blogging, I viewed this behavior as a challenge. My whole personal brand was about "being combative." "Don't feed the trolls" was still a saying back then, and I completely ignored its inherent truth.

It's not just trolls, though. My recent post about filter icons resulted in quite a few reactions, most of them telling me things I already knew. I struggle with people implying I haven't thought about what they're now kindly offering me as new information. It's likely one of those ego things where I feel undervalued if people consider me uninformed.

My first reaction—and I've started and deleted quite a few responses like this over the last couple of days—is to react with some witty "You think you've accomplished something here, but let me show you that you're actually not that smart" remark. It's an asshole move and exactly the behavior I've trained myself to stop doing over the last few years. It's not easy, but it's worth it. Letting things go always feels better than trying to win something that isn't even a competition.

All of this influences my writing. I knew that these reactions would be the result of my short and not very in-depth argued post about filter icons. I could have written a 5,000-word piece on the ins and outs of why the status quo is the way it is, offered alternative icons, and talked about their pros and cons to anticipate those reactions as well. But that wouldn't have been fun. Everything requires a disclaimer.

I would lose my voice if I tried to optimize my writing around the expected reactions. I'd dumb everything down, argue in every direction, just to be safe. That's just not an option. Just like trying to outwit the people reacting to my writing isn't one.

Am I suggesting that you should ignore your readers? Perhaps!

A funnel icon

This icon represents a funnel. A funnel is used to help move liquid from one container to another.

A hydration highway.

If the funnel is handled by a person with adequate motor skills, no liquid will be lost. The same amount of liquid that was in the initial container will be moved to the second container.

A funnel does not filter liquid. That's what filters are for.

Those of you visiting this site in your browsers—like peasants in the Middle Ages—will notice that one of my favorite blog features is back: short posts without headlines. Rejoice! That's not all, though! I redesigned the main page to show full posts. Back to classic blogging!

"The Truth of a Thing Is in the Feel of It, Not in the Think of It"

Since I heard this quote from Stanley Kubrick for the first time a few weeks ago, I couldn’t let go of it. It encapsulates a moment in design that makes me feel like a hack every time it happens.

I’m a stern believer that software design is a craft, not an art. There are artsy aspects to it, but for most of the time, rules can and should be followed. They’re flexible and complex, but not inexistent.

Another belief of mine is that designers have to be able to argue for their solutions. A working designer’s inner monologue should be the Socratic method that is being applied to every design decision, no matter how small.

Sometimes, truly not often, there are moments where this isn’t enough. You know what the correct solution would be, the one with the most arguments, the one that fits the rules, but it just doesn’t feel right.

There’s no way to explain this to those who don’t feel it. They just have to trust your instincts. Sometimes, designing something the wrong way creates the right solution.

Gavin Nelson recently redesigned his portfolio and it's looking ✨crisp✨. I wondered how to get an iPadOS hover effect like that to work and with quite a bit of help of my friend Nils, a few discussions with ChatGPT and finally understanding LayoutGroups in Framer Motion, I present to you this solution. I'm sure it's far worse than Gavin's, so please don't think I know what I'm doing.

Read More

I've been coding for about two years now and it changed my relationship to my role as a run-of-the-mill product designer spending most of his day in some sort of design software.

It already began many, many years ago: Moving rectangles on a canvas started to feel like a crutch. Most of the time I already know what needs to happen and what lies between me and having done a good job is pushing stuff around in Figma until what I think should be visible is actually visible. It feels like a chore.

Even though my day job isn't a Swift/SwiftUI based project, I've started creating prototypes with SwiftUI just to scratch my itch to do something "real". The code is as throwaway as it can get but it feels better — and somehow more productive — to create an empty data state based on if an array is empty or not than to duplicate a frame, call it "FeatureName / Empty Data State" and consider my job done.

Screenshot of Figma, a design tool

Enter: The Design Engineer

"Design Engineer" is not a new term. I've known about the concept for years but somehow only considered becoming one after reading Jim Nielsen's piece on Design Engineers the other day:

The problem of innumerable artifacts helps show why design engineers are worth their weight in gold. They can bridge the chasm of design to browser engineering, skipping the need for 60+ artifacts. How? They have an understanding of the constraints of the medium, so from sketches to wireframe to high fidelity mocks, they only have to produce one or two artifacts while simultaneously keeping a picture in their head of how the elements of those designs flex and flow and change across different sizes. They can imagine how it works, so they don’t have to articulate it for every iteration. There’s no need to explicitly design and document all possible states for whoever is downstream of the designs because they are the ones downstream of the designs.

That could be me! Most of it is me already, I only lack some of the skills (and currently also the environment) to produce code on a reliable basis.

In Jim's second post he shares an example of what a Design Engineer could bring to the table and I adore everything about this. This is the stuff I love spending hours and hours on to get right. For most of my career I was dependent on a developer who put up with me and my dEsIgN-eXcElLeNcY shenanigans. It's hard to find frontend devs with an appreciation for this kind of work and even if you find them, there's still an obvious translation layer that can be a barrier between vision and result.

Screenshot of VS Code
The design tool of my future?

Transforming Marcelf Transforming myself

So, what's next? Do I want to become a Design Engineer? Imposter Syndrome and fear of failure tell me that it's a safe bet to just stay in my lane, create my little PNG files and be happy with what I've got.

However, I doubt that this will be good enough for me in the medium term. I very much enjoy fiddling with code to get something working in a user-friendly and good looking way. I even believe that the future of computing requires designers to code. So there's really no choice, if I'm honest with Marcelf myself.

I'm on a good trajectory with Swift and SwiftUI. It's the iOS/iPad OS/VisionOS framework of the future and Apple's ecosystem is the playground of my choice.

My HTML and CSS skills aren't embarrassing but especially the latter has quite a few depths I haven't charted yet. I built one or two things in React and played around with Framer Motion. Both are fun.

I feel like this could be a solid foundation for a toolkit that helps me to morph from "just" being a designer who codes to becoming a design engineer. It's time I get the reps in, especially in terms of all things web development. I want to become very good at using Framer Motion.

All of this is of course only relevant if I can't come up with a solid project that catapults me into the indie dev league. At the same time becoming a design engineer is the best way of honing my coding skills to become an indie dev.

That's what I like to call a win-win situation.

Comparing the current Quest ecosystem to the very first iteration of Apple's Vision Pro doesn't make sense. This isn't because it wouldn't be a fair comparison, given that Vision Pro is still in its infancy, but rather because the Quest lacks an app ecosystem.

The word and definition of "app" do the heavy lifting in that sentence.

The Quest has a plethora of amazing experiences. It's the best platform for diving into literal virtual reality and shared (mostly gaming) experiences. While these are technically applications, they're not what people commonly think about as apps.

Spatial Computing

If you go ahead and browse through Meta's Quest Store, you'll find everything from drawing in the space around you, to virtual meeting spaces, to ways to learn piano and even a handful of solutions for those who want to work out while wearing their headset, for whatever reason. What you won't find are Slack, Discord, any kind of note-taking app, a way to write down tasks, or anything else you'd expect from your computer.

That's where Spatial Computing comes into play. The term is more than Apple slapping their branding magic onto something that was already available. Spatial Computing is computing. You, using a computer, in the space around you.

Let's consider the Xbox. Yes, tEcHniCalLy the Xbox is a computer but only pedants would call it that. It's a console and does a great job at being one. Sure, you can open a web browser on it but there's really no reason to do so on a regular basis. The Quest is more like a console than a computer.

A shared design language

As far as I know, there's not even a UI framework for Quest development. Most of it happens in Unity, which is notoriously bad when it comes to creating 2D interfaces. There are a handful of other solutions to get something running on Quest but there's no chance of Quest apps actually getting to a point where the system as a whole has a unified design language.

Which is fine for games/experiences, there's no unified design language between Fortnite and Assassin's Creed either. It doesn't matter, because they're unique experiences.

This is not fine for an operating system of a computing platform.

It might feel like a small and obvious thing that Apple allows iPad apps to run on Vision Pro but it isn't. On day one of Vision Pro, there were more apps to manage your calendar than after years and years of Quest's existence. Which makes sense, since one of them is a game console and the other is a computer. One of them more or less requires you to start your development in a game engine, the other allows you to create a good-looking, albeit basic todo app with 30 lines of code.

Can Meta massage Quest into becoming an app platform?

I guess?!

It would be a long way to get there and you'll arrive at the same "quality" of apps Android can try to boast about but it's possible in theory. Can Vision Pro be used for VR experiences? Sure. It's already possible, with the only caveat being that there are no available controllers at the moment.

Quest and Vision Pro only share one similarity: People strap displays to their heads to interact with software. Everything else is fundamentally different. It can be compared but there's not really a good reason to do so.

Not necessarily directly but perhaps slightly related to my Year of Friendship, I bought a bag of shelled peanuts and stuffed a handful of them in my jacket pocket.

I'm befriending crows now.

Nothing can stop me.

It's legal, it's possible, it's necessary.

This is what you see before I become your BFF. (Bird Friend Forever)

This is not my first foray into bird friendship territory. After reading The Bird Way, a fantastic book by the way, I started greeting crows. Jennifer Ackerman's half-joking conclusion was that there's a non-zero chance that crows will rule the world one day, and I want to be on their good side, in case this happens faster than expected. Even if they keep their talons still and don't overthrow us, they also can remember human faces for years and are not shy to declare certain people their enemies and even tell their friends about them.

Anyway! In hopes of being recognized as a good source of snacks, I started throwing peanuts in the general direction of crows.

There are so many people with crow friends sharing their corvid adventures online, why shouldn't I be one of them?

I'm not lonely, you're lonely! Expect my pivotal role in some Home Alone remake in the future.

By the way: For more about a world ruled by corvids, I suggest Children of Memory. However, it's best to start with the first two books of the trilogy.

After babbling about Products People Want to Use I started to work on a shopping list app. Not because I had a strong vision of what I wanted to build, no, only to have something to work on and not lose my momentum.

The app, called Zettel, reached an interesting stage I felt was worth sharing. It looks great, it is more or less feature complete and it works, I've used it for all of my recent grocery shopping trips.

There's only one catch: It doesn't feel right. Stanley Kubrick said "The truth of a thing is in the feel of it, not in the think of it." and this is one of those moments. Something about the gestures, the giant tap targets and how adding items works is not right. The vibe is off.

I still have a couple of ideas that will most likely result in a complete redesign of the whole app. Before that happens, I wanted to share the current state for archival purposes.

Read More

Remember how I proudly proclaimed that I'm done with Wordpress and moved this blog to Astro? Well, that didn't last very long. I still think that Astro is great but it feels like it's better suited for marketing websites and maybe web apps than blogs. The one thing that got me in the end was the fact that I did not manage to create a proper RSS feed with images and other bells and whistles.

Read More