Utility classes aren't Tailwind's invention and neither are style systems/constraints.
I even believe that their particular implementation is a total mess with way too much and continuous overhead, and that you're probably better off building your own system.
Tailwind's implementation is a total mess. I have a custom preset for UnoCSS [1] focused on Tailwind compatability and use that for my company's low code platform. It's a couple orders of magnitude better for both size and latency and switching has allowed me to delete all the supporting code I'd written to work around Tailwind-the-implementation's shortcomings. I have minor complaints about Uno but I recommend it if you're having trouble with Tailwind.
If you mean build your own design system then I've built four separate design systems in SCSS since 2009. I've been fine with switching to Tailwind instead because I can get similar results customizing the theme, it's more comprehensive than my systems, and the network effect advantages of somethign popular vs my one-off thing.
I even believe that their particular implementation is a total mess with way too much and continuous overhead, and that you're probably better off building your own system.