Johan Ronsse

  • Home
  • Projects
  • Blog
  • Combining puma-dev (for RoR projects) with regular localhost (for Next.js and node-type projects)

    September 17, 2025 - Posted in development Uncategorized workflow

    This is a blog post that I wish I didn’t have to write because it’s one of those annoying things that you just want to work.

    Anyway, I am working on a Ruby on Rails project where I am using puma-dev.

    But to prepare the templates, I spun up a little project using Pug and a combination of chokidar and browsersync to write the initial code in my preferred way.

    I ran into a roadblock where I can run either my Rails project using puma-dev, or my node-based project, but not both at the same time.

    When accessing the node-based project when puma-dev was running, I would run into this browser error:

    This site can’t provide a secure connection
    localhost sent an invalid response.
    ERR_SSL_PROTOCOL_ERROR

    The general idea behind puma-dev is that you would access your Ruby on Rails projects by linking their folders, and resolving them to a test domain.

    For example the folder is called banana and you would be able to access your Ruby on Rails project at https://banana.test . It’s similar to an older project the old schoolers might know called dnsmasq.

    Now, installing puma-dev messes with how IP addresses resolve on your system. When you follow the base instructions on their Github, you might find yourself in the same position as me: that your Next.js/Svelteki/regular node projects/or whatever that runs on localhost:xxx does not work anymore.

    The culprit is that as part of the installation process, puma writes a file called test to /etc/resolver with the following contents:

    # Generated by puma-dev
    nameserver 127.0.0.1
    port 9253

    If I comment out this file, my setup works again. In general it’s good to know which symlinks exist, which you can check here:

    cd ~/.puma-dev
    ls

    Normally this folder will contain a symlink to your project folder (which you previously linked with puma-dev link in the folder itself.

    You can stop puma-dev with this command:

    puma-dev -stop

    You might get an error, after which you can try:

    pkill puma-dev || true

    It could be loaded in launchd (depending on how you set it up):

    launchctl list | grep puma
    # If you see io.puma.dev loaded:
    launchctl remove io.puma.dev

    In this situation, your Next.js/Sveltekit/Node.js projects will work.

    If you then want to get back:

    sudo puma-dev -setup
    puma-dev -install
    puma-dev

    Now, how do we make both things work at the same time?

    Well, turns out the solution is actually quite simple. Since puma-dev is hijacking 127.0.0.1 aka localhost, visit something else than localhost but point it to localhost.

    To achieve this, add an entry to your /etc/hosts file:

    127.0.0.1 localhost-workaround

    Then, instead of visiting http://localhost:3000 – when Puma is on, visit http://localhost-workaround:3000. Done!

  • Hollow Knight

    September 17, 2025 - Posted in games nederlands

    Nooit geprobeerd en nooit het punt gezien, maar met de release en de hype rond Silksong heb ik de originele Hollow Knight gekocht, voor de Nintendo Switch.

    En t’is betrekkelijk moeilijk: over de 1e “grote” baas heb ik toch een goed uur gedaan. En die verslaan gaf dan wel enige voldoening.

    Silksong zou nog een pakje moeilijker zijn dan Hollow Knight.

    Dit vond ik wel een goede video essay:

  • Een dagje verlof

    September 15, 2025 - Posted in lifelog

    Ik zou eigenlijk wat meer verlof moeten nemen. Een “normaal” werkmens heeft minstens 20-tal dagen verlof.

    Maar de laatste 9 maanden heb ik amper verlof genomen — en waar ik kon ook soms in het weekend doorgewerkt.

    Dat begint zich wat te wreken, denk ik.

  • Ambitieniveau

    September 4, 2025 - Posted in agency-life entrepreneurship obra-studio

    Ik denk sinds kort veel na over welk ambitieniveau ik wil nastreven. Uiteraard ben ik geïnteresseerd in mijn eigen business uit te bouwen. Ik werk er elke dag aan.

    We gaan in het eerste jaar van Obra naar een omzet van €250 000 en een fulltime equivalent van gemiddeld 2,5 personen.

    Ik hoop die cijfers volgend jaar te verdubbelen.

    Maar afhankelijk van nog te nemen beslissingen kan het ook meer of minder zijn. Ik stel me de vraag: is €150 000+ ook niet meer dan oké voor een eerste jaar met een klein team?

    Na eerst zeven maanden hard timmeren, ondertussen trotse vader te zijn en het een maand of twee uit noodzaak nét iets rustiger aan te doen, komt het besef dat er ook wel een leven naast werk is.

    Als ik voor mijn medewerkers nastreef dat ze 38u per week werken, of zelfs wat minder, waarom zou ik dat voor mezelf niet nastreven?

    Mijn zoon is maar één keer in zijn leven 2 maanden oud. Sommige momenten wil je niet missen.

    Als iemand die al sinds 2011 zelfstandige is, zit het billable hours-principe er bij mij ingebakken als heilig: er moeten en zullen factureerbare uren zijn. Dat is de enige manier om aan je omzet te komen.

    Nu denk ik daar toch anders over, en zet ik steeds vaker een businesshoedje op: marge op een project met een vaste prijs, marge op werkuren van anderen. Het is expliciet de bedoeling om van Obra een groter vehikel te maken dan mezelf.

    Ik werk met een een heel team waar ik dankbaar voor ben.

    Eén streefdoel dat in mijn hoofd zit, is om met een team van elf te zijn. We zijn op weg om dat te bereiken, maar het is een meerjarenplan – en natuurlijk is headcount niet alles.

    Ik stel vast dat ik toch op een heel andere manier dan vroeger werk. Ik werk véél meer aan het bedrijf dan in het bedrijf.

    Ik faciliteer projecten; ik help ervoor te zorgen dat ze slagen. Ik hoef niet noodzakelijk de uren zelf te werken, zolang het werk maar op een goede en vlotte manier gebeurt.

    Ik help met de kwaliteitsnorm. Hoe kwalitatief moet het project zijn, en waar steken we aandacht in? Hoe leveren we waarde voor de klant? Hoe kan een medewerker groeien in het project zonder in de kwaliteit van het project te snijden. Waar betaalt de klant voor en wat is een interne kost?

    Ik help met tooling. Welke taken nemen veel tijd in beslag? Waar kunnen we iets doen met een goede template? Waar kan een Figma-plugin ons veel tijd besparen?

    Uiteraard werk ik ook zelf aan projecten. Maar eigenlijk probeerde ik dat tot voor kort zoveel mogelijk te vermijden. Recent heb ik wel beslist om daar meer een nieuw midden in te vinden.

    Ambitieniveau, dus.

    Ik denk vaak aan de parabel van de Mexicaan en de Amerikaan.

    Ik weet niet meer waar ik dit gehoord heb, maar het gaat ongeveer als volgt: de Mexicaan zit rustig te vissen. Om 10:30 gaat hij naar huis, naar zijn familie. De Amerikaan zegt: “Je zou toch beter de hele dag doorvissen? Dan kan je je vis verkopen.” De Mexicaan zegt: “Waarom zou ik dat doen?” Waarop de Amerikaan zegt: “ja, zodat je geld hebt voor meer jezelf en je familie.“

    Wat zou ik doen met wat meer vrije tijd?

    Ik mis op de racefiets zitten en mijn fietsvriendjes, en ik zou eigenlijk wat meer in de keuken willen staan. De receptjes van Jonathan Zaragoza eens proberen.

    Het zou ook niet slecht zijn om nog eens een date te hebben met vrouwlief; en om nog eens naar de cinema te gaan. Al is er lately een gebrek aan goede films in de bioscoop.

    Uiteindelijk gaat het om het vinden van een correcte balans. En die balans wordt constant gezocht.

    Met Obra Studio helpen we softwarebedrijven om het volgende niveau te bereiken. We helpen start-ups met het valideren van hun idee, en scale-ups om design systemen en front-ends te bouwen om op een goede manier te kunnen groeien.

  • Baby op de arm

    August 31, 2025 - Posted in accessibility lifelog nederlands

    Er is die bekende graphic van Microsoft dat we toch allemaal ook tijdelijk een beperking kunnen hebben.

    Je kan bijvoorbeeld maar 1 arm hebben omdat je maar 1 arm hebt, je arm hebt gebroken – of ook omdat je een baby op de arm hebt.

    Dat is nu exact de situatie waar ik mij in bevind deze ochtend. Een baby op de arm, flesje in de hand, zondagochtend, geen zin om nóg eens passief YouTube te kijken.

    Ik ben dan maar in de settings van iOS gegaan om de tutorial rond voice dictation/voice control te lezen.

    Ik gebruikte de dictatie feature al regelmatig om berichten te dicteren. Soms de native feature en soms via Wispr Flow.

    Maar nu dus een nieuw element: via voice control kan ik mijn iPad met mijn stem bedienen.

    In mijn beperkte ervaring werkte dit redelijk goed om de kranten te lezen. De Standaard en De Tijd kon ik goed lezen door tegen mijn iPad mini “scroll up”, “scroll down” en dergelijke te zeggen.

    Een blog post schrijven ging wat minder goed.

    Maar voor iemand die graag gestimuleerd is en dus bored wordt van een 20 minuten een flesje geven, is dit een goede ontdekking: ik kan de krantensites lezen tijdens flesje geven.

    Het is tegelijk professioneel ook een goede ontdekking om de accessible names op knoppen die enkel een icoon hebben na te kijken met een eenvoudig stemcommando.

    Nu hoop ik dat niemand mij hier komt betichten om niet 100% aandacht aan mijn kind te geven. Ik hou van mijn kind, het is een schatje, maar ik denk dat elke ouder de inherente saaiheid van een newborn wel snapt.

  • From a revenue goal to a profit goal

    August 25, 2025 - Posted in bootstrap entrepreneurship

    I’ve read the phrase “revenue is vanity, profit is sanity” and that triggered me to write this post.

    Up until 2 weeks ago I had been chasing a specific revenue goal for the first year of Obra.

    The theory was that if we hit a certain growth stride and headcount, we would be set up for the future.

    As the founder, I could sacrifice my own wage for long-term growth.

    But recently, running the numbers, I believe that creates a problem. Not having profit affects my own motivation. Not enough profit also affects cashflow in general.

    I decided to turned the revenue goal I had into a profit goal. The only way we will last as a company is if we are profitable from the start.

    The next few months, I aim to be working much more in the company then on the company.

    In other words, it’s time to make some money working on projects instead of too much marketing, pseudo-sales and tinkering with too many side projects.

    With Obra Studio we help software companies reach the next design level. We help startups validate their ideas, and scale-ups to build design systems that scale with their businesses.

  • Optimally presenting Figma-based designs with SwitchResX and the right shortcuts

    August 22, 2025 - Posted in figma workflow

    This is one of those nerdy things that I keep coming back to.

    In this remote world, we are often screen sharing designs. I believe you need to be accutely aware of how the other side is receiving your output.

    Next to making sure you output good sound (a good microphone helps) and while presenting, being wary of not too much “swaying” around, there is one thing that is not that apparent, until you see it on the receiving side. That thing is how your own screen resolution affects how you are able to present designs.

    Basically, many designers work on a 27″ desktop screen. If you present directly from a 27″ screen without doing anything specific, the other party is going to have a hard time seeing things from their laptop. The same counts for recording screencasts.

    This topic is top of mind because I’ve been recording some videos for the shadcn/ui docs.

    So how do you find a good middle ground?

    I use this macOS app called SwitchResX which allows you to bind a resolution switch to hotkeys.

    I bound the regular resolution of my 27-inch display to F16. This creates the visual equivalent of 2560×1440 (even though the display is actually 4K). I use this when doing actual design work and working.

    But when I have a meeting, or I am recording a screencast, I like to hit F17, which I bound to setting up the display for the visual equivalent of 1920×1080. This makes it much clearer to the viewer what is going on.

    I also give workshops about Figma often. When screen sharing an app like Figma, and discussing the intricacies of the UI, it makes a world of difference to the viewer that the controls are slightly bigger.

    The receiving side might be on a laptop, watching your screen share in a Google Meet meeting, already reducing the visible size once again.

    Depending on what you are doing, there’s more you can do:

    • For presenting designs: You can hide the Figma UI using ⌘+/ and use N or ⇧+N to jump between designs
      • Jumping between designs helps create a static image that then has time to get uploaded, for clarity on the other side – swaying around too much while sharing creates a blurry image when network conditions are bad
    • You can zoom completely into specific frames using ⇧+2 to Zoom to Selection
    • For talking about Figma itself: you can also change the size of the Figma UI itself. There’s a shortcut for this: ⌥⌘⇧+ or ⌥⌘⇧-.

    I hope this helps someone in their workflow to present designs in a smoother way!

  • Op en neer

    August 20, 2025 - Posted in agency-life obra-studio

    We gaan bijna onze negende maand in als agency.

    En ik stond weer voor een moeilijke keuze: iemand aannemen, super veelbelovend, maar toch telkens een beetje een risico – of kiezen voor stabiliteit.

    Normaal gezien zou ik een risico nemen, maar de nachten zijn kort en de dagen onderbroken.

    Als nieuwe papa is het zoeken naar een nieuw ritme.

    Daarnaast zal het toch nog hard werken zijn om voor dit jaar als bedrijf toch ietwat betere punten te halen: de omzet en de klanten zijn er wel, maar er zijn voorlopig te veel kosten, en te weinig marge.

    Dus, met bovenstaande in het achterhoofd, is de keuze stabiliteit geworden. Ik kies ervoor om met iemand samen te werken waar ik echt op kan rekenen. Welkom in het team, Marina! Of welkom terug moet ik misschien zeggen: Marina was onze eerste werknemer bij Mono.

    Er was deze week ook een ander de-cirkel-is-rond moment: iemand die ik ooit opgeleid heb, kwam nu terug met projectwerk.

    Ik denk eraan om in oktober nog eens hallo te komen zeggen in België. Een plan wordt gevormd. Misschien naar een conferentie; misschien een dineetje met collega’s. Maar sowieso trots de nieuwe spruit aan familie tonen.

  • Omgekeerd

    August 2, 2025 - Posted in agency-life

    De laatste dagen heb ik zitten werken aan het herinterpreteren van een vibe-coded prototype naar een wireframe. Een beetje omgekeerd werken dan anders dus.

    Maar het is leuk en spannend: het project team zit goed met slimme mensen, ik leer veel bij over het onderwerp van de app – sales – en het project heeft een stevig tempo.

    Ik ben ook blij dat we in de zomermaanden een stevig project hebben kunnen scoren. Altijd goed voor de omzet en de werkzekerheid.

  • Hiring again

    July 26, 2025 - Posted in agency-life build-in-public hiring industry jobs

    I started hiring again at Obra Studio. Find our jobs at our website:

    • Digital Product Designer (Belgium)
    • Diseñador/a de productos digitales (Mexico City)

    We’ve grown a lot since we started the agency in the beginning of 2025. We’re a solid team now looking to grow to the next level.

    A few things keep coming back in calls so I thought I’d write about them to avoid giving the same explanation to everyone.

    Language requirements

    Requiring Dutch as a language has given me a lot of pause over the years. Why is Dutch a hard language requirement when more than 80% of our internal communication is in English, and clients in general don’t mind working in English…?

    This requirement is about the Belgian market. Currently we have 6 Belgian clients and 2 clients in the US.

    Team members are encouraged to use public channels on Slack, avoid too many DMs (especially when they contain project info or discussions) and speak English in general.

    So why still this language requirement for Dutch? The reality of the Belgian IT market is that a significant part the taxes we pay flow into government and government-subsidized projects (18.15 billion EUR in 2024).

    The environments you end up working in for some projects (universities, government departments, subsidized orgs like VDAB, VRT etc.) are typically 100% Dutch and projects require you to speak Dutch. As such to be hirable for these types of contracts, you need to speak Dutch as well. We haven’t had this type of project yet, but with Mono in the last two years, a rather significant part of our income came via these types of projects.

    These projects have been a reality to keep an interface design agency afloat in Belgium. For all the buzz around Belgian startups, the scene in general is relatively immature with most funding floating to the same types of parties; funding in general being severely compared to a few golden years ago if you exclude the outliers (e.g. Lighthouse) or companies that don’t hire for project work anyway (Odoo).

    A secondary reason is that some of our work is in an industry context where the users of our work (e.g. factory workers) do not speak English. The usability test has to be conducted in Dutch.

    Company hubs

    It is our intention to create two company hubs: one in Belgium and in Mexico City.

    Belgium is pretty small and we focus on the triangle Antwerp – Brussels – Ghent. Currently most of the team is based around Ghent, but we have people from Brussels and Limburg as well.

    Mexico City is a huge city and travelling within the city can take as much time as switching cities in Belgium by train. We are generally centered around the neighborhood of Condesa.

    Generally work is 100% remote with exceptions for meeting the other team members for design workshops or limited social activities. Independence to go towards our clients and conduct workshops with the client, do usability tests and field research on location (in hospitals, factories, schools…) is a requirement for designers.

    I don’t want to be the company that sends their employees on an Ardennes weekend twice a year, taking away their free time. However, I am planning to do a Christmas dinner in Belgium, and eventually want to make enough money to have the team gather in a place with a latin vibe, realistically a good place in Spain would be the stand-in for the ultimate dream, sending Belgian to visit Mexico or the other way around; sending the Mexican team to visit Europe.

    For Mexico City, the idea is to get an office in a co-working space and work together 1-2 days a week. Ideally the person we find is a real chilango, and communication is in both English and Spanish. We have been doing designer, developer & PM meetup events in the city to grow our network.

    Some freelancers have already decided to travel on their own to Mexico and say hi. I myself travel 2-3 times per year to Belgium and then spend time with the team and clients.

    Freelance vs payroll

    We are not ready to hire payroll.

    I wrote on this blog earlier that I made the decision to go for freelancers only. We split our job in 2 roles: hiring in Belgium for a freelancer that works part-time and hiring in Mexico for either part-time or full-time.

    I feel like eventually we will want to work with mostly people on payroll when we reach a stable point when it comes to how the business works. But right now, the talent we need is usually with freelancers; and I believe a payroll job is a (very) long-term promise for a stable job, which we can’t provide yet.

    The risk I can realistically assume is to give a freelancer a 3/5 contract for 1 year (132 days); this ties the freelancer to the company but also allows them to do other projects. When there’s a lot of incoming work we can give more work to the freelancer; but if not, in general they have much more certainty having an agency contract than being a freelancer having to sell all of their own projects.

    When a freelancer joins with a year contract, they don’t have to worry about sales or marketing themselves. Projects get sold for them. You have stability for 1 year and possibly much more if the agency grows.

    This stability comes at a certain price where the agency obviously takes a margin on the work to grow itself and to pay the roles not directly generating revenue (business development, sales, marketing)

    Design level expectation & Obra Education

    In many applications, designers mention that they are not learning; either they are in an environment where they are the only designer, or the environment they are working in does not value design.

    Obra is 100% the polar opposite of that, where if you’re looking to expand your skills and to grow as a designer, you are in the right place.

    That doesn’t mean we don’t have a baseline expectation in place for the level of design you already have. We want you to grow from a good designer to an excellent designer.

    At Obra, we have an education pillar where we focus on Figma workshops, we’ve been actively exploring how to design with AI (in a good way) for almost a year now; and in general, we are focused on reaching a very high level of design.

    If a high enough level cannot be attained, the designer is mentored to get there (and the more senior designers compensate to deliver a great project). There’s my profile as an agency owner, but next to this we currently have 2 senior design mentors to help grow medior designers to a senior level.

    Interested? Know someone?

    Are you interested? Know someone that is perfect to join for an important role to grow a new boutique design studio, that helps software companies to the next level? Find our jobs at our website:

    • Digital Product Designer (Belgium)
    • Diseñador/a de productos digitales (Mexico City)
← older
  • ©2025 Johan Ronsse
  • X
  • Mastodon
  • Portfolio 2024