On AI, Star Trek, and Programming
One thing I find interesting in this "Will AI replace programmers?" discussion is that many programmers don't seem to enjoy coding. That's shocking to me. AI can potentially do most of our repetitive tasks (and even creative ones), but I actually enjoy coding. It's by far not the "most boring part" of my job as a programmer, as I see s...
MRSK and Laravel
I've recorded a video version of this article which you can find on my YouTube channel. --- The 37signals folks released a new tool for deploying containerized web apps called MRSK. When we think about deploying containerized apps, we might think of Kubernetes, Docker Swarm, Hashicorp's Nomad, or any container service our cloud provide...
On SaaS and Teams
I tried to explain why I think it's so much simpler to adopt a SaaS boilerplate such as Jetstream instead of rolling your own. I failed. I'm not sure if I did a bad job at explaining or what. Here's another attempt. To me, the best thing about Jetstream is how the teams are set up. People assume that the resources they create in a web ...
Hiding Empty States with CSS
This may be obvious to y'all, but I think it's still worth sharing. Whenever we're building a page, we need to think about its empty state. Sure, your list will look amazing with those icons, shades, typography, avatars... but what about when it's empty? When doing server-side rendering in Blade I used to do something like: <div id="ch...
Stimulus and Laravel
I've been using Stimulus more and more with Turbo since it was made for that. And every time I get myself wanting a simple way to create a Stimulus Controller and register it. I thought of adding a `artisan stimulus:make` command to the Turbo Laravel package, but that would be quite a stretch. That package shouldn't really be concerned...
Rotating Signed Global IDs in Attachments
I was watching the GoRails episode called How To Update ActionText Attachments which deals with the issue that apparently popped up in the Rails 6 to Rails 7 upgrade and it's still undocumented. Looks like the key generator changed from SHA1 to SHA256 in the upgrade, which broke some people's attachments. Here's the discussion about th...
New install commands on my packages
Hey, y'all. 👋 I had to revisit the install commands on my packages because of the recent change in frontend setup in Laravel (from Mix to Vite), so I thought it would be a cool idea to record a video showing y'all how they are currently working. Here's the link to the video: https://youtu.be/Vq82cO_W8cA And here's the script for the vi...
[YouTube] New Install Scripts for Rich Text Laravel, Turbo Laravel,...
A-roll With the recent change in frontend setup in Laravel from Mix, which was an abstraction on top of webpack, to Vue's Vite some of the install command on my packages were no longer working and I thought it was time for a revisit there. I have already done the work and tagged the releases on all of them, but I thought it would be a ...
New Install Scripts for Rich Text Laravel, Turbo Laravel, Importmap...
I had to revisit the install commands on my packages because of the recent change in frontend setup in Laravel (from Mix to Vite), so I thought it would be a cool idea to record a video showing y'all how they are currently working. Here's the link to the video: https://youtu.be/Vq82cO_W8cA You can find the script of the video below, wi...
Environment-Specific Configs Using PHP8's Match
This is gonna be a short one. I previously shared this as a tweet, but thought it would make a nice little blog post. Recently I had the need of having the configuration of my disks in Laravel (docs). I started tinkering with how I wanted to be able to configure it, then I realized I already had a clean way using PHP8's `match` express...
Laravel Frontend Without Depending on Node
There are many options these days when it comes to bundling assets. In Laravel, we had Laravel Mix, which was a wrapper around Webpack, and we're now getting a newer take on this which uses Vue's Vite to bundle our frontend. In a previous blog post I shared two new libraries that allows us to have a frontend setup in Laravel without de...
Globalid Laravel
Polymorphism is a very known concept in programming. To put it simply: it's the idea that many things can play the same role in a system. For instance, think about the Pull Request Reviewer feature on GitHub. You can assign a single team member, multiple, or an entire team as the reviewer. I've blogged about how to make use of the Glob...
Frontend Without Node, NPM, or Webpack in Laravel
I've been following the Rails/Phoenix recent moves to simplify their development workflows and requirements. One interesting thing is that they seem to want to move away from depending so much on Node.js and Webpack for their frontend development. That's interesting! Laravel seems to have a different relationship with frontend tooling....
On Delegated Types
After listening to a recently released interview with DHH in the Maintainable podcast where he shared some of his views on legacy software and how they do it at Basecamp, I realized may have gotten polymorphic associations wrong. Kinda. I've used Polymorphic associations before as a way to apply multiple concerns to a group of entities...
Rich Text Laravel - Introduction
A couple weeks ago I've silently tagged version 1.0.0 of the Rich Text Laravel package and my goal was to ship version 1.0 with some content and tutorials, but my timeline didn't work out. Anyways. I've recorded a video which introduces the package. We're going from the installation steps, to migrating existing data, to implementing a ...
Rich Text Laravel 1.0.0-BETA
Hey, folks. The Rich Text Laravel package is here. After some rewrites and some delay due to another package I needed in order to finish this one, it's time to get it out of development mode. I've been tinkering with this package for a while. I got the idea of building this package when I was watching Chris Oliver's talk at RailsConf 2...
On Wearing Multiple Hats
I find it weird when I hear people saying they act differently whether they are doing programming or going through a code review. As they were wearing different hats and while they are doing that, they act like someone else, with a different mentality. I also find it weird when this analogy is applied to the TDD loop. And it goes as yo...
Turbo Frames, Sidebar Layout, and Details Page
I have been thinking about this problem for a while. There is a page design style that I found hard to replicate in a Hotwire way, but I think I got a good solution. Say you have a sidebar section where you list all notes and the main content section on the right where you render each note. Clicking on a note (or creating a new one) wo...
On Making Software
I've recently joined a technical book club and we are reading a book called "Making Software". I'm only about 20% done with it, but I wanted to test out this new HEY World thing, so I thought I'd give it a shot and write an early review of the book. The book itself is very dense. Very academic. But reeeeallly interesting! Each chapter ...
Subscribe and get the latest posts in your email
Daily digest, no spam, unsubscribe any time
Or simply get the latest posts RSS.
https://world.hey.com/tonysm
Posts: 19
New post: Monthly
Search using free-text and press