myzkey

Notes on software engineering, systems design, reading, and indie product development.

27 notes

What Is Trunk-Based Development? Its Differences from GitFlow and Its Relationship with CI/CD

Develop with Git for long enough and you will inevitably run into the question of how to branch....

Making the CSS Framework an Implementation Detail: Designing UI Components That Don't Depend on Specific Technology

I don't let application code use any particular CSS framework directly. No Tailwind CSS classNam...

ReactTypeScript

Type-Safe Internationalization in React + i18next

We decided to add multilingual support to a web application built with React.

ReactTypeScript

The Difference Between Latency and Throughput

Bring up system performance and two words show up almost immediately: latency and throughput. Bo...

What Is CI/CD? Understanding It Through Why It Came to Exist

If you write software, you run into the term "CI/CD" practically every day. You run tests with G...

Why Is MySQL on 3306 and PostgreSQL on 5432? I Looked It Up

Start MySQL and you get 3306; start PostgreSQL and you get 5432. I usually accept these numbers ...

Is RLS Being Abused?

If you use Supabase, there is no getting around Row Level Security, or RLS. Create a table, try ...

Sorting Out TypeScript's import type and Runtime Dependencies

For a long time I used TypeScript's import type with a sloppy mental model: "the thing that impo...

TypeScript

What Is an Anti-Corruption Layer

When you integrate with external APIs or legacy systems, code that started life as a simple API ...

Designing Pagination Queries

Designing pagination is not a matter of deciding how many items to return at a time. At first, s...