Tonight's Laravel Prompts Lab:
Can I create a bar graph.
...that changes values every second.
...that changes colors every second.
...that animates to the new value.
(Yes. A bit blinky, but yes.)
I'm:
a) teaching myself After Effects
b) blown away by the new
@laravelphp
Prompts package from
@jessarchercodes
so I:
c) made the epic trailer it deserves and
d) hope you enjoy
Tonight's Laravel Prompts experiment:
A simple terminal kanban board, inspired by
@charmcli
's tutorial from last year.
Just going to keep trying things out until I notice patterns, then develop a little TUI framework of sorts.
Starting tooling around with Livewire, seeing what it looks like to extend its functionality.
Snooped around for some simple browser APIs and found BroadcastChannel. Broadcast messages within the same browser across multiple tabs/windows.
Whipped it up and here's the result.
Ok, here's my next NativePHP experiment (woefully unstyled, go easy):
An app to write automations for your Mac.
I already use this via the command line for recorded demos but it's so much easier with a little visual builder.
Thoughts? Use cases? Keep building? Toss it?
Whelp. I've gone full Norton Commander. Using the Laravel Prompts renderer.
Today was about diving deeper into alt screens (thanks
@ryangjchandler
!) which makes a huge difference for this experience. Plus, I got mouse scrolling for free! Dope.
Quick one before I do my actual job this morning: wire:share
A Livewire directive to tap into the native share sheet for your device with a fallback if it isn't supported.
Had an idea and 15 minutes to spare so implemented the Vibration API in Livewire and pretty darn happy with the results.
This one only works under pretty specific conditions on a phone, but it could bring a more native feel to your web app when used well.
I am immensely proud of this one. For something seemingly simple, it took a while to get the details just right.
Major shout out to
@jessarchercodes
for being the ultimate PR sherpa, as always.
I formally nominate
@calebporzio
to give all talks at all conferences going forward.
His
@LaraconUS
talk was funny, engaging, informative, just incredible.
Blasted it straight outta the park.
Tonight's Laravel Prompts exploration torched my brain a bit, but I was determined to put a modal on the screen and by golly I did it.
But then... I had to animate the modal. Because why not.
Please note: The background dims a bit when the modal pops up.
Ok, I can't do a ton of these right now, but had a little bug in my head and it wouldn't go away until I tried it out.
Uses the SpeechRecognition API built right into the browser (except Firefox) and you can target the results directly to a
@LaravelLivewire
property. Blammo.
🎉 It's launch day, folks!
I am beyond excited to announce the release of Bellows.
If you use
@laravelphp
Forge to launch sites with any regularity, Bellows is your new best friend. Forge already makes launching a site easy, Bellows makes it effortless.
Don't know if people are interested in this sort of thing:
Doing quick little post-mortems on CLI Labs. Talk about what the original objective was and what I learned on the other side.
Basically: Every lab is as a specific challenge that I try to execute while having some fun.
Created a quick
@raycastapp
extension this morning that shows a list of my friends and their current time in their timezone.
Adding a friend is as easy as heading to their Twitter page and hitting "Add Friend" from Raycast.
Just a proof-of-concept, but I find it super useful.
OG Laravel Prompts Lab, one of my first from back in the day.
A simple Kanban board in the terminal, originally inspired by a
@charmcli
tutorial.
Right now you can just move the cards around, soon you'll be able to add and delete.
> ssh -t kanban
My
@laravelphp
Forge tool Bellows can now launch load balanced sites right from your computer!
Here it is (at robot speed) launching a balanced site while auto-configuring Postmark, a DigitalOcean database, Bugsnag, and Pusher.
Check it out for yourself:
One of the reasons I'm exploring Replicache + Laravel is you get instant interactions for the initiator, and free bidirectional syncing for any listening clients.
Feels magical.
Built an SSH app that allows you to play music in your
@Spotify
account via an iPod in the terminal. Dope.
Unfortunately, due to their API integration rules, they don't approve hobby projects.
So I filmed a demo.
Built with
@charmcli
Wish and
@laravelphp
Prompts, as per usual.
I've seen a lot of Saloon love on Twitter lately and I'd love to pile on.
Saloon really shines when you're dealing with a wonky API. Does it always return 200? Sometimes JSON and sometimes a string? Sometimes nothing at all?
Normalize it! Abstract it away! Make it feel better.
Random and not very significant, but are people using braces in their PHP string interpolation or nah?
I'm Team Braces Always but I have a feeling I'm about to get roasted for that, unclear why.
Alright, NYC area PHP/Laravel devs! We're starting an in-person meetup, looking to have the first one late January/early February 2024.
If that's of interest to you, pop your email address in here and I'll keep you posted:
Here's a cool undocumented Laravel Prompts feature:
@jessarchercodes
built in the ability to easily add themes to Prompts so you can customize the look and feel.
I whipped up a quick-and-dirty theme to make Prompts look like the (excellent) Clack CLI library.
Code link below👇
Some news: Bellows is now open source!
It feels like the right move and was probably the spirit of the project all along.
I still use it all the time, and I'm looking forward to continue to improve it.
Give it a whirl:
Used the new Laravel PDF package from
@spatie_be
to generate my resume from Blade! Unsurprisingly, works like a dream.
Takes a moment to load, but uses custom fonts, images, and Tailwind.
Happy to announce two more
@LaraconUS
speakers today...
@rissa_bubbles
and
@joetannenbaum
! 🥳
Laracon will likely be sold out within a few weeks. Snag a ticket if you haven't already!
📢 Speaker Announcement!
🎤 Thrilled to announce our next speaker for
#LaraconIN
2024 - the bad man of CLI, Joe Tannenbaum! 🚀
@joetannenbaum
is a Senior Software Engineer based out of New York City.
🎟️ Grab your tickets now!
#speaker
#Laravel
I no longer have a job!
I was part of a big layoff at
@PlanetScale
today. I'll miss working there, it was a great experience.
Feeling bummed, kinda embarrassed, but also slightly optimistic?
Trying to figure out what's next. I'd love to hear any ideas ❤️
Laravel Prompts Lab, night four. Something simpler this time.
Wanted to play with loading state, so I made a little lyrics lookup app.
Love the look of this. Just super clean.
Fooling around with a little DNS manager CLI app this weekend.
I get my domains from GoDaddy and change the NS to DigitalOcean. It's tedious, so I'm bandaid-ing my own paper cut.
Free and open source, out by next week-ish.
Built with
@LaravelZero
+
@laravelphp
Prompts (duh).
Started this year with less than 200 followers, now have almost 900. But it's not about the follower count.
I was quietly watching from the sidelines, craving a dev community, not having one in real life. So I started putting myself out there, and I wholeheartedly recommend it.
If you told me that goofing around with Prompts in my evenings would reap the sort of (dream) things I'm doing today, I would have been pretty confused.
Yet
@aarondfrancis
called it right at the beginning, and I didn't believe him. Won't catch me making that mistake again.
PHP × NYC meetup is happening!
February 29, 2024 from 6:30 - 9:30. More details coming soon.
If you're in the NYC area let me know if you can make it, I'd love to see you there:
I wanted the tables in my terminal to match the styling of
@laravelphp
Prompts as closely as possible, so I hijacked the default "box" styling to fix the alignment with the rest of the prompts output.
Pop it into a console mixin and we're off to the races!
A little update on 🤖 Robit, my NativePHP app:
🎨 Design progress
🚀 Reduced boilerplate for actions a bit via workflow defaults
📁 Type out text from a file (shout out
@vmitchell85
, excellent idea)
💾 Can now save workflows
New blog post!
Wrote up a quick overview on how I created an SSH app using
@charmcli
Wish SSH server and
@laravelphp
Prompts for the TUI.
Link in the next tweet 👇
Ok, I feel like this
@laravelphp
string helper should exist, but it doesn't? I can't find it if it does.
I have a long string I want to display in the terminal, so I want to chop it up and insert line breaks every X chars.
Str::wrapLong(20)? Terrible name, but that's the gist.
Rainy Saturday so I re-created Pong in the terminal while the kiddo was taking a nap.
But it's Prong. Because it's Laravel Prompts + Pong. You get it.
🕹️
Just created my first little NativePHP app: A quick-and-dirty menu bar app for Blip (), allows you to whitelist your IP on a server right quick.
Ton of work to do on my end to make it look better, but y'all are on to something
@simonhamp
/
@marcelpociot
. 👏
We just wrapped our first PHP x NYC and I am deliriously happy. There's nothing like being in the same room with the right crew.
🗣️
@inxilpro
and
@johnrudolphdrex
for the stellar talks
🗣️
@laraveljobs
for helping to make it happen
🗣️ Everyone who came, you made it what it was
Feeling a shift lately, like I had all of this latent energy and now I'm ready to GO.
I want to build something big and difficult, something bewildering, something that abstracts away a really hard problem and makes jaws drop at the ease.
That's my vibe right now. Leaning in.
Thrilled to announce
@laraveljobs
as our first sponsor for the PHP × NYC February meetup! Thank you for your support and for helping make this event happen.
RSVP here:
Want to learn more about LaraJobs? Get clickin':
Ok, the share thing earlier was basically Alpine.js in its current form.
Sharing *files* though starts to feel a bit more Livewire-y maybe, and I think the possibilities are far more intriguing.
Still using the browser's native Share API, single or multiple files.
Having job searched extensively this past year, I have, unfortunately, found this to be true in my experience.
One of the main reasons I'm learning new languages and expanding my tech horizons.
PHP/Laravel is probably the most enjoyable language/Framework to work with, but it’s also the least paying. Ever since I switched to Go/Node my salary almost doubled.
When I start a side project, I always tackle the core problem first and solve it. No UI, usually via a CLI app.
My fatal flaw is that once that core problem is solved, my interest in making it a full, usable app plummets.
Any strategies around this? To ultimately ship?
I was combing through
@RetroTechDreams
last week for some inspirado for the next Laravel Prompts Lab and I found it.
The dashboard of the Nissan 300 ZX from 1984.
Now re-created in the terminal.
Enter: Start/stop the car
Space: Rev the engine
I've been fooling around with Laravel Prompts a lot lately and wanted to see if I could create a paginated data table right in the terminal.
I did this in about *an hour* thanks to the brilliant API that
@jessarchercodes
has created. Unbelievable.
Properly playing with
@LaravelLivewire
for work stuff today for the first time and I, uh... I super get it.
Feels magic. Keeps me largely out of JS. Very fun.
1/2 Passkeys are becoming more widely accepted (cc Google's announcement today, upcoming 1Password support, etc).
I'm going to focus on making a PHP package (framework agnostic + one specific to
@laravelphp
) to make passkey auth as plug-and-play as possible.
Any NYC area Laravel/PHP devs want to meet up in the New Year?
Maybe a talk or two, connecting, sharing what we're working on? Or does this already exist and can I jump in?
Feels like this used to happen more and it died a bit. Craving more community.
Videos from PHP × NYC are up!
@johnrudolphdrex
had all of us devs thinking like product managers and we all came out better for it.
And heads up: John is funny. Yes. This was a funny talk about product management:
Bellows uses the Process facade in
@laravelphp
pretty heavily.
9 times out of 10 I want to show the user real-time output of the command that is running.
This is baked into the Process facade, but it's a little verbose for me.
Macro time, baby!
Started a running list of tech I want to check out/dive deeper into in 2024, in no particular order:
FrankenPHP
VERBS
Replicache
Livewire
Go
Rust
Charm CLI
Anything else I should add? Want to get very exploratory next year.
Next PHP × NYC meetup is on the books!
Join us April 25th at the Zillow offices in midtown Manhattan (thank you,
@therobfonz
)!
@alexandersix_
and I will be speaking, it's gonna be a blast. RSVP here:
Another one from the Laravel Prompts Lab archive.
This one is, admittedly, a bit silly. But it's fun.
Dashboard of a Nissan 300 ZX.
Start the car, stop the car, rev the engine.
Was playing with basic animation at the time.
> ssh -t nissan
Continued working on my little directory watcher tonight.
Played around with adding an "a" hotkey to toggle an activity log on and off.
I think I like it, both views allow you to interpret the incoming data in different ways.
In the next 8 weeks I'll be tackling three different things I've never done before.
I've never been so energized about my professional life. I'm so busy, but I'm genuinely so excited to do everything on my plate.
Feeling incredibly grateful and motivated. Here we go!
Man... design is hard. And it's not my bag. But the ol' personal site needs an update, so I'm fiddling.
Not super happy with this but it's the first kernel of an idea.
Happy to accept some inspirado for simple personal sites if anyone has any.
This was, without a doubt, the hardest lab I've done.
Took 3 nights. Almost gave up on it a dozen times. Finally clicked last night.
Very happy with the results.
Will probably never share the code. It's horrible. But I will take the principles learned to the next lab.
Tonight's the night! The first PHP × NYC meetup! Based on the RSVP's it's going to be a packed house 😃
Thank you again to
@laraveljobs
for the support in putting this event on, I greatly appreciate it!
See everyone tonight!
I'm working on refining my TUI helper package, Chewie, in preparation for its proper release.
I just wanted to highlight a little pattern that I love: Loopables.
Combined with Animatables, it creates some interesting opportunities, and I think it's super clean.
Tonight I wanted to animate as many things in the terminal as possible, all on their own independent timing.
So I built a dashboard. And I gave it a theme.
Everything is automated, including the chat.
Ironed out the rest of my terminal data table. It's looking sliiiick.
- Resizing now properly truncates the data so it fits
- Visually disable hotkey hints when they aren't available
- Validate page jump before jumping
- "No results" message
Feels more real. Blog post incoming.
Ok, probably the last Laravel Prompts Lab for the week.
Continuing from last night, I wanted to see if we could handle keypresses while something was continuously rendering on the screen, and we got there (ish).
Using a Spotify CLI to play/pause, fairly happy with the results.
Starting a little series on some of the custom commands I've built for my day-to-day workflow. Here's the first post!
Starting a
@toggltrack
timer from the command line using
@LaravelZero
: