Greg Sullivan
gregsullivan.com
Greg Sullivan
@gregsullivan.com
Freelance WordPress developer. I write about making websites with WordPress, Tailwind CSS and Alpine.js. Working on http://underscoretw.com. He/him.
Hey Adrian—Great to hear from you!

Email is probably best: [email protected]

Happy to discuss things further, and hope things are going well!
October 6, 2025 at 5:50 PM
Claude Code and I came up with a plan to use `tower-lsp` to write our own language server in Rust and optimize it for Zed / `phpcs` specifically, but that might be more work (for me personally, even with AI assistance) than is warranted for a private Zed extension.
July 15, 2025 at 7:14 PM
The one limitation is that EFM and Zed don’t agree on how to handle tabs, and neither has configuration options to resolve the issue. So I just have it underline the first character of lines with errors or warnings. I wanted to underline the entire line, but EFM doesn’t seem to support that.
July 15, 2025 at 7:14 PM
Claude Code also got completely stuck 4–5 times, but was able to pick things up again when I explained what it was doing wrong.

Given that the Zed extension is written in Rust, and I have never used Rust before, this all still feels like a pretty solid outcome.
July 15, 2025 at 7:10 PM
Claude Code told me to give up multiple times, saying it couldn’t be done, which was an interesting experience. (It seemed obvious to me that Claude Code wasn't supplying the YAML configuration properly, but Claude Code really fought me on it.)
July 15, 2025 at 7:10 PM
The last time I went to No Frills, I spent $97.50 on cheese. It didn’t feel great, and I will do it again.
June 9, 2025 at 5:14 PM
...Tailwind colours being overwritten by slugs from the `theme.json` file since it happened somewhat “magically” before. This makes it more explicit: You can see the colours being pulled from `theme.json`, and you need to decide to add them.

Did you notice any other instances of added repetition?
February 24, 2025 at 6:50 PM
My goal with the new approach to `theme.json` was still to avoid duplicating any values, instead referencing them in the CSS config. What are your thoughts on that approach?

I’m not sure I’d exactly qualify it as repetition. The other side of this is that I know there was confusion surrounding...
February 24, 2025 at 6:50 PM
You’re not doing anything wrong! I discussed the change here:

underscoretw.com/release-note...

It would be feasible to bring it back, but you would need to switch to using PostCSS instead of the Tailwind CLI directly:

tailwindcss.com/docs/install...
February 18, 2025 at 7:44 PM
Please let me know if you have any feedback once you do! I’m hoping to make some videos, especially around Tailwind Typography set up, in February, so I’m very open to suggestions on things I should be covering.
January 27, 2025 at 7:06 PM
I’m going to revisit the documentation and inline comments after I get a sense of the questions people have over the next few weeks, but for now you can view the updates on GitHub, or generate a theme for your next project at underscoretw.com.

Any feedback or questions would be much appreciated!
January 24, 2025 at 6:35 PM
And as an added bonus, I upgraded ESLint to version 9, which was its own adventure. (ESLint 9 deprecates earlier approaches to configuration. The new way really does seem better to me, though.)
January 24, 2025 at 6:35 PM
CSS-first configuration also provides an obvious way to support `theme.json` values in Tailwind, removing the need for the Tailwind plugin I wrote to handle automatically adding colours and widths from `theme.json` as Tailwind theme variables.
January 24, 2025 at 6:35 PM
The changes allowed me to remove many things from _tw, some because they were now deprecated, and others because I couldn’t justify keeping them when everything else had been stripped away. Development dependencies in `package.json` went from 23 to 13.
January 24, 2025 at 6:35 PM
There’s a huge amount of new stuff in Tailwind 4, and I’m not going to attempt a recap. It’s really fast, and configuration has been greatly simplified, but that barely scratches the surface. You should read this if you want to know everything that has changed:

tailwindcss.com/blog/tailwin...
January 24, 2025 at 6:35 PM