Sign in

Jack Sleight

@jacksleight.com
142 followers 196 following 55 posts

Freelance full-stack, Laravel and Statamic developer. Love solving interesting problems. jacksleight.dev

PostsRepliesMedia
Jack Sleight @jacksleight.com · 23/09/2026
Naming things is hard. Sometimes fun. A few class names from the current website rebuild: potato, argyle, snuggly, cushion, baking, gloomy, prick.
000
Jack Sleight @jacksleight.com · 08/09/2026
After much procrastination and putting it on the back-burner I’m finally getting close to finishing my new website (only taken two years). This will also include a bunch of new artwork/icons for my @statamic.com addons.
010
Reposted by Jack Sleight
John Koster @johnmkoster.bsky.social · 09/03/2026
I am happy to announce that Forte v1 is now available! Forte is my new library for parsing and modifying #laravel Blade. fortephp.com
fortephp.com
Forte
A complete ecosystem for parsing, analyzing, and transforming Laravel Blade templates. Includes AST querying, code rewriting, formatting, and developer tools.
41710
Jack Sleight @jacksleight.com · 06/03/2026
jacksleight.dev/posts/force-...
jacksleight.dev
Force Alpine component re-initialisation on hot reload
In a previous post I outlined a method for hot reloading Statamic's live preview using Alpine's Morph plugin. It works, but there's an issue: Alpine components on the page don't re-initialise when the...
011
Reposted by Jack Sleight
Statamic @statamic.com · 28/01/2026
Statamic 6 is here! 🚀 A redesigned Control Panel, a modern Vue 3 + Inertia foundation, a new UI component library, a long list of architectural & performance improvements, and that's just scratching the surface. This is a new beginning, ready for what comes next. ❤️
3278
Jack Sleight @jacksleight.com · 21/12/2025
According to Google (AI) they have the same logical widths of 375 px. But maybe there are other factors. Anyway it’s not a major issue at all, especially as it’s so close to the end.
030
Jack Sleight @jacksleight.com · 21/12/2025
Awesome post, incredibly well done as always. 💯 I know I’m in the minority with an iPhone Mini but I noticed a little issue on the smaller screen. The text in this demo wraps, causing height changes that make the rest of the article below jump up and down a bit.
110
Jack Sleight @jacksleight.com · 30/11/2025
Oh thought of another: Ability to pass dynamic vars from the template to the layout (basically the feature from your Antlers Layouts addon, but built in).
010
Jack Sleight @jacksleight.com · 29/11/2025
I would LOVE more control over partial scopes and param parsing. eg: - Ability to prevent partials leaking vars into parent scope. - Ability to prevent partials inheriting parent scope. - Some kind of spread syntax to pass a bunch of specific params to a partial in one go. If that’s what you mean?
120
Jack Sleight @jacksleight.com · 11/11/2025
Ever struggled to debug an intersection observer's root margin? I know I have! So I wrote a little helper that plonks a big red box over the observer's intersection area: gist.github.com/jacksleight/...
gist.github.com
debug-root-margin.js
GitHub Gist: instantly share code, notes, and snippets.
011
Jack Sleight @jacksleight.com · 04/10/2025
Year progress: 75% Website progress: ehhh… 35%?
010
Jack Sleight @jacksleight.com · 02/10/2025
Thanks! Yeah exactly, and it’s my go-to JS framework, so figured it would be useful to have Alpine versions of the techniques for future reference.
010
Jack Sleight @jacksleight.com · 02/10/2025
Thoroughly enjoying @joshwcomeau.com 's Whimsical Animations course! And because I wanted extra work for some reason I’m also doing alpinejs.dev versions of all the exercises.
1151
Jack Sleight @jacksleight.com · 23/09/2025
Agreed! No clue whatsoever.
000
Jack Sleight @jacksleight.com · 23/08/2025
Woop! 🙌 Love the new branding.
140
Jack Sleight @jacksleight.com · 27/07/2025
Have a great time!
120
Jack Sleight @jacksleight.com · 20/07/2025
Totally, Boost is too much.
010
Jack Sleight @jacksleight.com · 20/07/2025
Oh, you’re suggesting Quad (four snack size in one sitting)? Excellent idea! 🍫🍫🍫🍫
110
Jack Sleight @jacksleight.com · 20/07/2025
Also, forget snack size, see if you can find a duo.
110
Jack Sleight @jacksleight.com · 20/07/2025
My #1 favourite chocolate bar. Literally bought one an hour ago. 👍👍
110
Jack Sleight @jacksleight.com · 14/07/2025
Got that universal single-file Blade/Livewire component experiment working pretty nicely now. Here's the repo if anyone's interested: github.com/jacksleight/...
github.com
GitHub - jacksleight/laravel-omni: Laravel package and Vite plugin for building universal single-file Blade and Livewire components.
Laravel package and Vite plugin for building universal single-file Blade and Livewire components. - jacksleight/laravel-omni
121
Jack Sleight @jacksleight.com · 09/07/2025
Now working without the trait and with renderless actions. I do love Livewire!
010
Jack Sleight @jacksleight.com · 09/07/2025
Computed Livewire properties aren't available client-side, but sometimes they'd be really useful. So I built a little utility to make that possible. Under the hood this is just dispatching an event with the data on each update. You can of course do that yourself, but I like the simplicity of this.
120
Jack Sleight @jacksleight.com · 15/06/2025
I’m so glad I found your account, your own posts and the things you share are always so interesting! Thanks for all the good reads. 🙂👍
110
Jack Sleight @jacksleight.com · 18/05/2025
A way to either override the PHP that component tags are compiled to or implement custom component tags without duplicating all that regex would be ace. Within the templates I’m using a prepare strings callback to split out the various parts (using regex) maybe the parser could handle some of that?
020
Jack Sleight @jacksleight.com · 18/05/2025
I’ve been chipping away at this recently: bsky.app/profile/jack... bsky.app/profile/jack... Still pretty rough and kinda hacky but it’s functional. A more official/robust way to do it would be ace. Would love your thoughts on it.
210
Jack Sleight @jacksleight.com · 10/05/2025
Of course! 💯
000
Jack Sleight @jacksleight.com · 07/05/2025
Unified component experiment continues. Blade components now use an inline class for props, so the syntax can be identical to Livewire. Now upgrading a Blade component to Livewire is as simple as switching “BladeComponent” for “LivewireComponent” and adding the Livewire things.
030
Jack Sleight @jacksleight.com · 31/03/2025
Tagged @statamic.bsky.social Bard Texstyle v3.5. Includes a handful of small but hopefully useful features: ✳️ Heading styles that can apply to any level 🫥 Ability to hide parts of text content 🎨 CP CSS for specific attribute values ☑️ A couple of other little extras statamic.com/addons/jacks...
030
Jack Sleight @jacksleight.com · 28/03/2025
Finally (ish) is wildcard heading styles, so you can have a single heading style that can be applied to multiple heading levels.
010
Jack Sleight @jacksleight.com · 27/03/2025
Next up is custom control panel CSS for individual attribute values.
160
Jack Sleight @jacksleight.com · 27/03/2025
Working on some new features for Bard Texstyle 3.5. First one is the ability to hide parts of text content, useful if you need to temporarily remove something. Hidden content is completely excluded from the rendered HTML.
191
Jack Sleight @jacksleight.com · 13/03/2025
So you're saying my code is perfect? That's what you're saying? Great!
010
Jack Sleight @jacksleight.com · 13/03/2025
"We hope you enjoyed your free trial of Twilio. Want to reactivate your app? Upgrade your account here to instantly reactivate."
020
Jack Sleight @jacksleight.com · 08/03/2025
010
Jack Sleight @jacksleight.com · 08/03/2025
And because Livewire synthesizers are awesome you can wire:model attribute bag values. Not sure about the use cases for this (and the bag is locked by default), but it's still cool. 4/3
110
Jack Sleight @jacksleight.com · 07/03/2025
If you don’t need Livewire just drop the `<?php` chunk and it’s a regular Blade component. If it’s full page just wrap the template in your layout. And the best thing is this only requires some very minimal hooks into to the blade compiler, a couple of helpers, and a Vite plugin. 3/3
200
Jack Sleight @jacksleight.com · 07/03/2025
* Every view is a Blade or Blade+Livewire (via Volt) component * Non-Livewire components can be used as full pages * Livewire components get an attribute bag and can have slots * Layouts are included in exactly the same way in both types * Scripts and styles can use imports/tailwind helpers etc 2/3
100
Jack Sleight @jacksleight.com · 07/03/2025
Happy Friday! I’ve been chipping away at an approach to writing Blade and Livewire components that smooths out the differences between the two, letting you write and use everything the same way, and also include scripts and styles that get bundled by Vite. 1/3
161
Jack Sleight @jacksleight.com · 22/02/2025
Be interested what you think of github.com/jacksleight/.... First package I’ve used PHPStan on, although it does still need tests!
github.com
GitHub - jacksleight/laravel-raster: Rasterise views and components to images by simply adding a directive and fetching the URL.
Rasterise views and components to images by simply adding a directive and fetching the URL. - jacksleight/laravel-raster
000
Jack Sleight @jacksleight.com · 20/02/2025
Yep! 🙂 And it’s free if you already have a desktop licence.
010
Jack Sleight @jacksleight.com · 20/02/2025
For iOS, TablePlus and Working Copy are pretty good and can be protected with FaceID or a passcode.
100
Jack Sleight @jacksleight.com · 23/01/2025
Slightly thrown by Tailwind 4 referring to JS based plugins as “legacy”. The new CSS based config is awesome, but anything requiring logic or using helpers like `flattenColorPalette` still needs to be JS based. Hope they don’t disappear one day.
040
Jack Sleight @jacksleight.com · 21/01/2025
Stumbled on a little CSS tip. If you need an absolute value you could use `abs`, but it’s limited availability right now. However `hypot` is newly available and: > If a single parameter is provided, the result is the absolute value of its input. Or you can just use `max`, but it's more verbose.
010
Jack Sleight @jacksleight.com · 08/01/2025
Apparently! I try to keep it quiet.
010
Jack Sleight @jacksleight.com · 07/01/2025
Hey 2025! This is gonna be the year I finally rebuild my own website. 🚀 Probably. Hopefully.
250
Jack Sleight @jacksleight.com · 02/12/2024
Loving how quick Livewire Volt + Flux make building things! Got full CRUD, searching, sorting, pagination, validation, authorisation and toasts in a relatively tiny single file component: gist.github.com/jacksleight/... Wondering what I can improve though. What have I missed?
gist.github.com
Volt + Flux single file CRUD
Volt + Flux single file CRUD. GitHub Gist: instantly share code, notes, and snippets.
020
Jack Sleight @jacksleight.com · 28/11/2024
Published a post on using my @statamic.bsky.social Distill addon to refactor content. eg. if you decide to change the structure of a set and need to update existing content to match: jacksleight.dev/posts/refact...
jacksleight.dev
Refactoring Statamic content with Distill
Sometimes, it's necessary to refactor your blueprints when building a Statamic website—for example, if you decide that some sets should have a different structure. While it's easy to edit the field co...
043
Jack Sleight @jacksleight.com · 25/11/2024
*sigh*
020
Jack Sleight @jacksleight.com · 24/11/2024
Published a quick @statamic.bsky.social field actions tip: jacksleight.dev/posts/adding...
jacksleight.dev
Adding actions to specific Statamic fields
The recently released field actions feature in Statamic allows you to add custom actions to built-in fieldtypes. By default actions apply to every instance of a particular fieldtype, and you can contr...
030