RSSAmplifier

Blog

Rafael Camargo

rafaelcamargo.comRSS feed ↗10 posts

Latest posts

Alternative solution for small React apps that need i18n

In most projects I've worked on, the default pick for internationalization has always been react-i18next. It works, and it covers a lot of ground. But when I kicked off a tiny personal project called Veedgee, I started wondering: do I really need all of that? It was a simple app. Not much copy, only two languages, and still I'd have to...

Viewing documents at actual size in Affinity 3

The recent release of Affinity 3 shook up the graphic-design world. Just like me, I imagine a lot of people stopped paying for Adobe Illustrator and can now enjoy a high-quality tool for free. But after so many years using Illustrator, switching from one software to another brings its own challenges and demands some real adaptability f...

Making code cleaner by replacing multiple conditionals with a strategy dictionary

When you're on a road with no forks, there's zero chance of taking the wrong path. As the road gains forks, your chances of reaching your destination without getting lost decrease. The same thing happens when we program. The more conditionals we add, the greater the chance of the code taking the wrong path and producing unintended effe...

Principles I keep in mind when starting a side project

Not having a map can lead to wasted time and frustration if you're exploring somewhere new. Starting a side project without a few solid principles can do the same. When you're excited about a new project, it's easy to skip important questions like: what exactly do I want to achieve with this? How much am I willing to spend? And so on. ...

Customizing checkboxes and radio buttons without hacks

For the longest time, I thought it was impossible to style native checkboxes and radio buttons without pulling off some kind of creative stunt — like what the big component libraries do, such as Material UI, Ant Design and VuetifyJS. But guess what? It's totally possible. Checkboxes and Radio Buttons can be customized easily without ha...

Strategies for naming your side project

In the last post, I wrote about how to push side projects forward with almost no free time. The main idea was that the smaller the task, the more likely you are to get it done. One example was spending just 30 minutes of your day coming up with a name for your project. Someone might say that picking a name isn't exactly a small task, a...

Pushing side projects forward with almost no free time

If someone asked me to wash a whole pile of dirty dishes, my inner self would try to postpone it as long as possible. But if the task were just washing one single glass? I'd do it right away. The smaller the task, the more likely I am to get it done. Whenever I get ideas for new side projects, usually web apps, they always feel like a ...

How to easily convert HTML to image in NodeJS or in the browser

Ever thought about turning a piece of HTML into an image? Well, it’s totally possible. And even better, you can do it either on the server or right in the browser. To generate an image from HTML on the server, you'll need a library called Puppeteer. Puppeteer is a NodeJS library that lets you control Chrome or Chromium programmatically...

Conditioning Vercel deployments on successful CircleCI workflows

The way Vercel connects to GitHub is kinda mind-blowing. Getting started is so simple that, before you even google "how to deploy", your app is already live. That first experience is amazing! No doubt, this ease of use is why I keep choosing Vercel for every new API I build. But if you're working solo and committing straight to main, y...

Validating React forms easily without third-party libraries

Even with the advances regarding form validation in React 19, the sad truth is that validating a form is still a boring and repetitive task. The goal of this post is to share an approach that's versatile enough to work with any form while significantly reducing the effort and monotony of coding it. This approach is based on three steps...