I’ve switched to Amp full time for all of my build things needs. I used to swing between Claude Code, Codex, and Amp. Amp was always my favorite, but the usage pricing was too restricting to have it as my default. I didn’t want to commit to one model/provider to get an understanding what their strengths and weaknesses are. Sure, there were some differences. I preferred Codex over Claude for…
I came across a subtle Octane but last week. We needed to disable Inertia’s history encryption in some places in the app. By default, it’s enabled everywhere. So we added a route check to the middleware to turn it off. class HandleInertiaRequests { public function handle ( Request $request , Closure $next ) { if ( $request -> is ( 'admin/*' )) { Inertia :: encryptHistory ( false ); }…
As shared by on Simon Willison’s blog, Zig has an interesting anti-LLM policy for contributions in their code of conduct . Zig values contributors over their contributions. Each contributor represents an investment by the Zig core team - the primary goal of reviewing and accepting PRs isn’t to land new code, it’s to help grow new contributors who can become trusted and prolific…
I’ve always been intrigued by Go. It’s powerful, fast (I really like fast), and simple. The tradeoff? It’s simple. Coming from higher level languages like PHP & JavaScript, Go can feel crude . As I’ve recently written, this blog went back to Hugo . Hugo is also fast and crude. But with LLMs, the crudeness of things doesn’t hurt as much as before. I don’t need to…
This is an older post from Jim Nielsen on building user interfaces I came back to last week. With software, the fact is that sometimes there are just too many variables to know and test and smooth out. So I click around, using the UI over and over, until I finally cannot give myself any more splinters. I feel this. I’m better at my job when I’m actually using something. Even better…
When I experimented with Elixir a few years ago, I fell in love with the pipe operator |> . Since then, I’ve always dreamt of a similar tool in PHP. Last year, we finally got it! Unfortunately, the standard array & string manipulation functions in PHP aren’t exactly known for their API consistency, which makes the pipe operator awkward to use. I ported Laravel’s excellent…
This blog has gone through a few technical iterations. Most recently: from a Laravel app with Sheets , to a static site with Hugo , to a CMS-driven site with Statamic . And now, back to Hugo! I love Hugo. It’s purposefully built with the right abstractions, and incredibly fast . The kind of fast that makes you wonder why other software can be that fast. Fast software, the best software . But…
I have a blank canvas problem. I’m way better at staying in flow when I have something to work through, so these days, the first thing I do is ramble. I open Codex or Spiral , turn on Monologue (my preferred text-to-speech tool), and dump everything I can think of on the topic. Before Monologue, I never considered typing speed to be a bottleneck. My fingers move faster than the speed I shape…
I wrote a piece on the Spatie blog about the place packages/library have in the ecosystem when first-party code is cheaper than ever with AI. Scrolling to the end: The question before every composer require is no longer “is there a package for this?” Almost certainly there is. The new question is: “do I want to own this problem?”
This thought came across my mind as I was reading Every’s philosophy on compound engineering : The first three steps (plan, work, review) produce a feature. The fourth step produces a system that builds features better each time. […] Capture the solution. Ask yourself: What worked? What didn’t? What’s the reusable insight? Make it findable. Add YAML frontmatter to make sure it is…