
My Obra Icons project has always been available from the website, but now you can also use the Figma plugin. Earlier this week, we also released a package for React. Any feedback is welcome!
- Posted in figma figma-plugins
My Obra Icons project has always been available from the website, but now you can also use the Figma plugin. Earlier this week, we also released a package for React. Any feedback is welcome!
- Posted in apps build-in-public
Yesterday I took the idea of prompting to make an iOS app much further than with my experiments of last week. I have this web-based version of a currency conversion app – which you can try here – and I converted most of the logic to an iOS app.
I wanted to see how far I could take things. After an intense 7-ish hours of working on the app (and at least 3 coffees) I had something that I almost consider releasable to a general public.
This is a video of the almost-final result, where I was testing some non-phone cases:
When reading this post, keep in mind I am not a developer by trade, I am a UI/UX designer that likes to make front-end prototypes, but most of the time sticks to designing in Figma.
The only apps that I (mostly) coded myself are Screenshot to Layout, a Figma plugin and Obra Icons, my icons project. My day job is design.
After recording this, I fixed a few more bugs and called it a day. About the app itself:
List
in SwiftUI handled item deletion without needing any custom implementation.Secrets.xcconfig
fileLocalizable.xcstrings
to provide a dictionary for localisation. The app is currently working in 7 languages and I can easily add more.VStack, HStack
, Spacer
, and their modifiers). Also, using the system colours (Color(.systemGray6)
and font logic (.font(.caption)
)In the workflow atmosphere, here’s my notes about how I worked:
ContentView.swift
(936 lines now) so I could easily paste that into Claude.All in all I am extremely impressed with this workflow.
It was fast because I didn’t have to bother with implementation details like the exact shape of API calls or how fetching data actually works.
I didn’t have to bother thinking about syntactical details like for example why there is a backspace in this code .environment(\.locale, Locale(identifier: appSettings.language.rawValue)
or why the last step in storing data after retrieving it from the API is a .store(in: &cancellables)
. All of this was handled by prompting and putting some functions logically together (fetchAvailableCurrencies
/ fetchExchangeRates
etc.)
I am sure you can learn to get good at all of that stuff and learn each API by hand, but really, at some point it’s maybe better if a machine talks to a machine than that I as a person need to worry about matching 2 data shapes.
I feel like I’ve gotten some app creations superpowers, enabling me to not get stuck at the point that I used to get stuck (the data part).
There’s still much more to do to make the app the ultimate quality and have something shippable that I am proud of, but I am so happy with the progress so far.
With my “newfound” prompting superpowers, I tried to generate the code for an iPhone app and see how far I could go.
Once again, I was pretty amazed by the Claude/Cursor workflow. In a rather limited time I had the scaffolding for a wedding app done. I ended up getting a subscription to Cursor which I believe is totally worth it.
The idea behind the app is that it shows a map of locations and a calendar, so people can have a reference of things they could do around a wedding. For destination weddings, there is also travel involved, so people might want to receive the couple’s specific tips for a neighorhood.
This idea could also be transformed to a generic “travel guide” type of app, where you have lists of things to do around a certain location.
My tests creating a native iOS app went well. I was able to implement:
SwiftUI is pretty elegant and readable.
The only problem with the code generation at this point is that it doesn’t really know how to fix some issues around scrolling and combining views. It tries to fix things by wrapping (scrollable) NavigationView
s into each other ultimately creating so many problems you have to revert back to working code.
Also, the iPad implementation was kind of broken from the start and I had to prompt quite a bit to fix it. I am sure a senior iOS engineer looking at the specific code to “fix” the views would avert their eyes in horror.
Another thing that I haven’t tried saving data to a database yet, and I can imagine that that part of dev might also lead to some “parts unknown” where I wouldn’t really know how to debug anything. I think prompting superpowers only happen when you have an idea of how you could fix code it generates, not when you are absolutely clueless. I have a fairly good grasp about how iOS apps work and should work (from designing them) – so I can prompt with the right terminology.
Anyway, I just wanted to report on my journey with these new tools as this is quite exciting.
- Posted in aspirations career
Last work week I spent a good chunk of time on my projects Screenshot to Layout and Obra Icons. I also spent some time investing the hype around Cursor and oh boy… the hype is real.
I built a mobile-optimized Currency Converter app in a few hours of work mostly by prompting what I wanted. I estimate Cursor wrote around 80% of the code. I added some features that would be time intensive like language support for RTL languages, flipping the entire UI, just with a single prompt. Something like dark mode was just a prompt away too.
You might have seen videos of 8-year olds coding entire apps using Cursor. It’s pretty amazing what you can build. You have to be quite specific in your prompting but if you know what you want this is definitely a hyper productivity boost for a certain kind of work.
Naysayers will say this will lead to unmaintable code but in the prototyping/ideas stage most of my work lives in, the productivity is unmatched.
In my Twitter/X circle I see talented designers taking their product design skills to AI prompting and hacking things together that a few years ago really needed at least a 2 person team of designer and developer. For example Gabriel built Almanac and Christine a Chinese phrasebook app.
Around nine years ago I really needed a dev to help built Kana Master. Dev agency Underlined jumped in to help at the time. I believe current prompting abilities I could probably build that myself.
I haven’t tried creating anything in the iOS spheres yet (mainly because I don’t want to write the same software three times) but I am curious how far I could take things.
When I said I would quit my main contract my fiancée was worried about me finding new work – I told her that it would not really be a problem. In just one week I’ve been contacted for a short-term UI redesign project and to consult about implementing Figma in an organization.
I am exploring startup ideas, talking to different people about possibilities and overall enjoying some time figuring out what’s next. In the meantime I am available for short freelance opportunities.
If you’re interested in working together, check out my portfolio here and don’t hesitate to e-mail me!
- Posted in aspirations career ondernemen
My search for a new adventure is starting in earnest after some holidays.
Two weeks ago I wrote about two main options, one was getting a product designer role in a US startup/scaleup, the other one was restarting agency life.
I’ve been looking at jobs on read.cv and on workatastartup.com. Ideally I can find a role at a startup that does something exciting in the software space.
Another part of me thinks I should just build that startup. That’s been a lingering idea in the background.
The new agency idea seems pretty hard to pull off “from a distance” (my network is in Europe). I also feel like I could also do that in ten years, I don’t have to do it now.
I feel like I have to make use of the unique part of my life I am in now: no kids (yet), US time zone, easy flights to US, real-life access to build a local team (for example of local devs).
Back to the job sites – it’s pretty rare to see a cool job on the job sites. Some companies are already too big to do meaningful design work and make an impact. Most companies do something I can’t really get enthusiastic about (like crypto and blockchain things, ugh).
When I look at different companies I am focussed on the main ideas behind the company, their business model and (possible) engineering prowess. I am not stopped by a poor current state of design (I can come in to help fix that).
I applied to one company and got rejected outright because of my location in Mexico. Many US jobs are “US remote only” and “US and Canady only”. If anybody knows the logic behind that, I’d be happy to know. When I was an employer myself in Belgium, I didn’t like candidates outside Belgium for administrative reasons, so perhaps something similar is going on.
Some part of me thinks I need to fly to the US and network at the right conferences, but at the moment I don’t have a clear idea of where I would go or which conference makes sense.
In general, I plan to take enough time to find the right project/employer/business to work on and will be working as a freelancer while I figure it out.
These days, I am working on my side projects Screenshot to Layout and Obra Icons.
I am available for freelance projects. Check out my portfolio to get an idea what I could help with and get in touch if you think I could help you with your project.
- Posted in figma figma-plugins
Fresh from the plugin press, this plugin by Vijay Verma provides some shortcuts to easily access important vector tools In Figma. This can help as a bit of a bandaid, since Figma’s UI team inexplicably decided to hide the vector tools behind extra clicks in UI3.
- Posted in resources typography
Did you know that macOS comes with some wonderful, super high quality fonts that normally cost hundreds or thousands of euros to license? I believe they came with an update to Pages templates a few years ago.
If you open Font Book — the app used to manage fonts on macOS — and then search for the fonts below, like “Graphik”- you can download the fonts directly there. These are fonts by some of my favorite foundries.
- Posted in productivity workflow
Today I was converting an mp4
video to a gif
and I figured I’d document some commands that helped in the process. I used ffmpeg
to do this. You can install it on Mac or Linux using homebrew:
brew install ffmpeg
For optimal quality, generate a color pallette based on a timestamp in the video:
ffmpeg -ss 00:00:00 -t 1 -i video.mp4 -filter_complex "[0:v] palettegen" palette.png -frames:v 1
This will generate a palette.png
in the local folder. Now you can use that, to generate a gif:
ffmpeg -i video.mp4 -i palette.png -r 30 'final-gif.gif' -filter_complex "paletteuse"
The command takes an mp4
and the generated pallette.png
as inputs, as well as a framerate (30 in this case) via the r
argument.
- Posted in aspirations career ondernemen
When I started as a freelancer in 2011, I dove into the world of mobile apps.
But that’s the short story. The longer one is that I first did some branding and web design. Then, I had a stint as a photographer. I worked for advertising agencies (not really my thing…), development companies (interesting but hate to be the sole “creative”), UI/UX agencies (better),… all in all I tried a bunch of things, to then land at what we did with Mono: focus on UI design for apps.
The beauty of an agency is that you can choose your own adventure. In these summer days I am dreaming of a new adventure and defining what my new company Obra can be.
With Mono, we really wanted to build out a great design team and that requires working together, bouncing ideas off of each other, and skilling each other up.
At the time we denied working in a manner that we called “bodyshopping” i.e. renting out our designers full-time to companies. This didn’t feel right with the agency vibe we wanted, where we wanted to work together on projects.
We saw a lot of bodyshopping companies dropping unskilled designers, straight from school into projects they could probably not handle, for big consulting fees. These companies had no personality, ugly websites, and you wondered if they even understood design.
The designers hired into projects were essentially powerless to drive change in the company because they were too junior. They were put on a team because somebody rightfully thought that UX was important, but without any support.
My observation was that for a company to put out meaningful work backed by a design process, you’d typically need the right combination of people. A designer obviously, but also another design-minded person to challenge them, and for the implementation you’d typically need a design-minded developer (or a developer-minded designer that could guide a non-designer developer). Not every designer is also the same, so you’d need the right skillset for the project at hand.
Given such a team, you can do wonders with just three persons. With a team of just four, I’ve shipped an entire software design for Ticketmatic that involved a redesign of every module they had (and believe me, there were a lot of them). The speed of working in that team was amazing, due to a great feedback loop between CEO, CTO, a design-minded dev and me as a developer-minded designer.
With Mono, we found that combo in quite a few projects between the designers on our side and designer-minded CEOs, CTOs, product owners and product managers on the client side.
Today, I am wondering what my new adventure will be. My mind is mostly on running an agency again. A part of me wants an ambitious product job in the US: but I see most companies downsizing, or only hiring remotely within the US.
My goal remains the same: shipping the best software. Shipping world-class experiences that matter to people’s computer lives. And keeping that computer life human, por favor.
I am certain the formula to get there will involve multiple designers bouncing ideas and lifting each other’s work. There is simply no better way to get to great work than to revise it in a group of smart minds. I wrote about this a long time ago, in 2017, in a post titled The value of an external design team.
You need a real design team. With emphasis on team. Otherwise, the work will suffer.
It often goes like this: a company decides to hire an in-house designer. One designer, because there is not enough “work” for 2 designers. This person ends up doing — everything — without a feedback loop from another designer.
I find that this situation leads to idea stagnation. The single internal designer has no outside influences outside of his core project and ultimately it leads to poor work. The internal designer suffers from the lack of a feedback loop.
There is no particular golden number of designers and design-adjacent people. It really depends on the projects going on in a particular company and also how much design is being done by non-designers. I’ve always held the belief that design is being done by everyone on the team.
Why am I so obsessed with the number of designers? I believe that when you can get into that design feedback loop, when minds align, but different people come at a problem with different backgrounds and perspectives, the real magic happens. And all too often, that situation just doesn’t occur due to the team setup. If you think too small, the results are too small.
A personal observation is that there are actually relatively few companies in Belgium that have bigger design teams. A lot of companies make do with just 1 or 2 designers. Some of the biggest scale-ups might have… 5-10 designers, max? There are some banks with 15+ or 20+ UX designers, but they are divided into many project teams. The Silicon Valley size of 50-100+ person designer and researcher teams is unheard of in Belgium.
It’s always been my dream to scale things up larger, bigger, better. Why don’t the big tech companies come out of Europe? We are simply not ambitious enough. “One designer is okay” “We don’t have enough capacity to implement the designs anyway” “We already know what the problem is we’re trying to solve“. I’ve heard it over, and over, and over.
But; I did find some limits to my own ideas when I was running Mono. More people is not always the solution. They also need to be good. Upskilling people to the right level was extremely challenging. We held on to a small team of good designers because it was hard to scale up and find the right people. We wanted to deliver a consistent quality, and that was an uphill battle.
When I started in UX, the UX level of people coming out of school was not there. Basically after they graduated, designers needed another education to get to the right level. There were some exceptions (Courses like Devine and MCT were gradually getting better, and changing their curriculums to things that actually mattered in the real world); but the level of a junior was simply not good enough for the kind of work we were doing with Mono. I believe that 10 years later, there are a lot more skilled designers on the job market. But I also believe — I hear this all the time in job interviews — that they are underutilized by companies that seemingly can’t utilise their skills in the right way.
Around 2017 there was the trend towards larger and more involved projects – the internalization of UX was there. Companies had built their first apps with an agency (sometimes ad agency… oops) and were disillusioned, then took the work inhouse.
As Mono we had a problem: we needed to keep designers close to the team to skill them up, but the actual work was moving internally (all too often as part of a sad sprint setup).
Then Covid hit and suddenly all of the work was remote. There was no expectation anymore to send our designers to some random, uninspiring workplace somewhere in Brussels.
I should have used that opportunity to radically rethink the structure of our sales setup, and move more radically to contracting. We were already kind of on that track with 60% or more of our work being long-time contracts.
I remain with some unexecuted ideas as well.
There was an idea to sell product management as a role. As design managers we me and my co-founder were always doing more design management related tasks which have a big overlap with the internally held product manager role. Scoping work, research, getting the work shipped.
I held the belief that that was a deeply internal role to begin with, and it was difficult to juggle multiple projects as a product manager in the Mono context. I also believed it would be difficult to get the deeper internal knowledge often needed to understand every move you are making fully.
But now I’m not so sure anymore. First of all, with a contracting mindset, the person is there for 3 to 6 months or even a year. You can surely make an impact within that timeframe, and have enough time to deeply understand a problem. Second of all, whether someone adds a net positive to a project is not determined by how they are hired into the project, rather it’s about clear communication lines, access to information, and the drive of a company to move forward.
One final idea I am thinking about that has always been on the back of my mind but that we never executed with Mono, was also doing development.
With Mono we focused solely on design and besides front-end prototypes we never did actual development. I feel that restricted us too much to get to a final lovable user experience, since we would always depend on whether the devs of our clients were able to pick up the work. Sometimes it would work, sometimes it wouldn’t. A particular aspect of not doing any of the dev work that bothered me was often not seeing the product actually launch, but only seeing it come back after 6 months, sometimes after a few years, without a correct feedback loop.
Some reasons I remember for not doing development were the contractual risks, and the fact that none of the founders could actually fix deep tech problems themselves if push came to shove. We could also not upskill devs the way we could upskill designers. My argumentation had been at the time, that if we could find a deeply technical person with business aspirations to helm the dev arm of the company, that could be solved. However that’s easily said than done and finding the right person to be at the helm of that kind of position is extremely difficult.
So, to summarize, here’s my thoughts:
Does any of this resonate with you? Let’s talk.
DM on X/Twitter: @wolfr_2 – E-mail: johan@johanronsse.be
- Posted in career
Change is afoot for me; After 2,5 years working with Doccle I’ll be working on finding new design challenges to take on with my agency Obra Studio.
At this moment, I am not sure where things will go. One part of me dreams of going back to agency life and build out a bigger, stronger version of what I did with Mono Design. Another is looking to find a deep product role like my designer role at Doccle, preferably in the US time zone, perhaps with some added product management responsibilities. Most of all I want to work with ambitious teams to ship software that matters.
I loved the deep work of an internal product role, but I also miss the focussed project logic and business potential of an agency. The next few months I’ll be looking for the right opportunity. I built a public portfolio of some of my design work which can be viewed here. I also have a longer, more elaborate portfolio presentation I can give to explain how I can help software companies.
If you’d like to talk about a potential collaboration, either as a potential colleague, employer or a client, reach out at info@obra.studio. I’d love to talk!