Will King



Stop Saying Best Practice

The name best practice tells someone absolutely nothing about what they are practicing. If someone showed you some code and told you “this is the best practice” what are you going to say next? Why do we do it this way?

What reading for 30 years has taught me

When I read a story I immediately read as if every character is me. Their traits, their dialogue, the decisions they make, and along the way certain characters capture more of my attention. Both good…and bad.

Solution: Property 'then' not found

How to solve getting this error in a Playwright test: Page 'then' not found.

Using symbols to create type safe Remix handles without duck typing

Safely type your handle data in Remix without needing to resort to duck typing with Symbols.

Better Remix action responses in Remix with KeyedFlash

On a page with multiple actions in Remix how do you show that the action was successful?

A Pattern for Growth

How do avoid slumps and spinning wheels when it comes to your growth as a developer? After taking a look at my own career here is what I found.

How to solve fallback flickering when using React Suspense.

When trying to implement Suspense in React with multiple promises there is a tricky bug that results in fallback flicker.

How to create one form with many actions in Remix

Here is an easy method for building forms with multiple outcomes using a not well known html feature.

Pattern: One Button to rule them all

A button implementation that removes the need to worry if you're using a Link, anchor tag, or button tag.

A backwards compatible, type safe system for JSON fields in Prisma

Let's cover how you can add type guarantees to your JSON fields in Prisma, and create a migration system to make them backwards compatible.

4 Options for saving user preferences

How do you manage user preferences and persist them to improve user experience in your app? Let's answer that question.

Only Sith deal in absolutes

​​As someone new to software development, the breadth of information to learn is so large that focusing on the best practices first is the right way to go.

You should be wrapping Remix’s Form component with your own

Handle CSRF, redirect fields, and remove code repetition in your codebase by extending Remix's Form component with your own.

TikTok is the new Excel

There is a new unbundling kid on the block. If you're looking for your next business idea spreadsheets are not the best option you have for product unbundling.

How to manually set table names in Prisma and why you should.

Learn why database naming conventions are important and how to manually set table and column names in Prisma.

Safer string props using Typescript's template literals

Sometimes you don't want just any string to be passed as a prop to your React component. Let's take a look at how template literals solve that problem.

How to add a check constraint in Prisma

There is no native way in Prisma to set a check constriant in your schema file. This article will explain how to do it.

Know your high performing customers

Do you struggle trying to decide what to build next? One tool to help get past this road block is to study your high performing customers.

Opinionated products breed passionate customers

Stop building products that work for everyone and build a product that works for someone.

How to code forms with list fields in Remix

Whether you call them list fields or repeater fields these are one of the more complicated patterns when building forms.

Don't design your database like a frontend developer

As you grow a product to adapt to new use cases and customer growth a data layer built like a frontend developer will constantly run into fragility issues.

Remix route helpers: A better way to use parent data

A pattern that will fix concerns with fragile implementation of useMatches when using parent data in Remix.

Content Ideas

Ideas that I am considering, but haven't committed to finalizing. If you like one go ahead and upvote it. It will probably get me to finish it the more traction it has.


How to add likes and upvoting to your Remix app


Everything I know about multiple actions on the same Remix route

Updates and More

Get updated when new articles, products, or components are released. Also, whatever else I feel like would be fun to send out.