RSSAmplifier

Blog

Alem Tuzlak's blog

Making your http://Remix.run experience more enjoyable. Creator of Remix Forge & remix-hook-form & remix-development-tools. OSS contributor and enthusiast.

alemtuzlak.hashnode.devRSS feed ↗20 posts

Latest posts

I've tried Solid.js, now I'm starting to hate React

Before we dive into the meet and potatoes of this article let me give you a bit of background first, I’ve been working with React for almost 8 years and loved every second of it, I’ve created OSS with it, I’ve created apps and everything in between. ...

How 1 LoC randomly broke our website for over a year

Sometimes, it only takes one line of code to bring a production site to its knees. This is the story of how I unintentionally did exactly that, and how I became the prince of Bel-Air… or wait, that’s a different one! The background As any good bug, t...

How a not so "rubber" duck changed my life

Almost two years ago my grandfather was very sick, my grandma had cancer, and my wife was studying and going to college which lead to a very rough period of my life where I was being alone a lot of time and worrying about my grandparents who were lik...

Death and open-source

This won't be a purely technical article per say. I avoid writing about personal things but I have a lot of thoughts I'd like to share with you and maybe it helps somebody make sense of it all. Why write this? My grandparents were the people who rais...

Migrating a v1 CJS Remix project to Remix Vite (ESM)

If you're not living under a rock you're probably aware of the fact that Remix has become a Vite plugin, that also might be the reason you're reading this article. As much as that is awesome the fact that v1 used to be CJS and had no Vite in sight mi...

Stripe Integration for Remix

Stripe is one of the best payment providers on the market. Their developer experience is almost unmatched. From the ability to test all your scenarios with test clocks to extensive and powerful documentation, it is a hard choice to pass up when it co...

Typed server-safe DOM event listeners in Remix

Have you ever written a component that needs to interact with the DOM? For example, you write a tooltip component that needs to listen to the window scroll event to re-position itself in the browser. Maybe a component that listens to the width of the...

Exploring Remix with Vite

Remix v2.2.0 just released and it's really exciting, the vite unstable support is here, and the official templates have been added to the Remix repository. Let's explore what Vite and Remix integration allows us to do that wasn't possible before! Per...

Uploading images to Supabase with Remix

If you love Remix & Supabase this is the article for you. Supabase is an open-source Firebase alternative and it's one of my favorite go-to tools for developing applications. I have been using it for a while and I love it! In today's article, I take ...

Integration testing Remix apps with Vitest, Typescript & Docker

This article goes over integration testing with a real database in your Remix apps, this can be ported over to any JS app like Next.js or any server running JS as it contains universal approaches to integration testing. The tech I will be using is th...

Reusable Progress component in Remix or React Router with tailwind

If you've been using Remix.run to develop applications you have probably run into the following scenario: You have a form that gets submitted to the server / you have a redirect on the page It takes a while to process and transition You want to sh...

Deep dive into package.json scripts

If you've ever worked on a project that includes any sort of Javascript chances are there is a package.json included in the project. This package.json file is a very intimidating one when starting out and you're very scared to touch it in the fear yo...

Why I love Remix

A little over a year ago, I was introduced to Remix.run through a new project I began working on. Our goal was to launch the product on January 1st, and, thanks to Remix, we had our MVP ready two to three months ahead of the release date. This gave u...

Utilizing Global Types for Thoroughly Typed Remix Applications

If you're one of the cool kids who use Remix.run, you'll know that (as of the time of writing this) v2 is just around the corner, and exciting stuff is on the horizon! If you've been actively following Remix development, you probably already know tha...

The Challenges of Loving Bun v1.0 🧄

Preface Bun V1 has just been released, and it's on fire! 🔥 The overwhelming number of articles written about it, along with the buzz on Twitter, clearly indicate its current popularity. The benchmarks are extraordinary, and it outperforms, well, eve...

How to Make a Sliding Login Box with Remix, Tailwind, and Shadcn

Hello fellow reader! Today we will be doing something really cool, We will be creating a sliding login/register screen with Tailwind, Shadcn UI and Remix! If you want to skip the article and see the repo with the code you can find it here: https://gi...

Saving and using custom data before and after redirecting users to external services with Remix

If you've read my other two articles on how to create toast notifications and confetti rain in Remix you would've noticed a common pattern I used among them, and that pattern is flash storage. In today's article, I will show you a little trick on how...

Creating Typed Select/Combobox Components with Downshift and TypeScript Generics

The problem Have you ever worked in a codebase where you have your select and combobox components take in items, onChange, value and other props only to return a generic string which you had to cast back to whatever value you expect, something like t...

Effortlessly Add Confetti to Redirects in Remix: Step-by-Step

Yesterday I wrote about how we can use flash session to show toast messages to the user in this article: https://alemtuzlak.hashnode.dev/handling-toasts-in-remix Well, today I want to expand on this and add a fun little utility that will brighten up ...

Zod Type-Safe Toast Notifications in Remix

Since the writing of this article I have created a utility library called remix-toast that does what is described in this article, you can find it here: https://github.com/Code-Forge-Net/remix-toast As development paradigms on the web are starting t...