Columns:
| # | Tweet | User | Followers | Views βΌ | Ratio | Engagement | Posted |
|---|---|---|---|---|---|---|---|
| 1 | [text] I'm looking for Laravel PHP work for last almost two months now, idk if it's AI or something else but market seems lot quiet than ever. Previously I used to get clients on a same day I start looking for work.
Are you feeling the same? | @MrPunyapal β | 7.4K | 13.9K | 1.9x | 163 | Mar 23 |
| 2 | [image] Reminder for Laravel developers π«‘ | @MrPunyapal β | 7.5K | 13.4K | 1.8x | 201 | Apr 25 |
| 3 | [image] Laravel 13.20+ finally brings first-party image processing. πΌοΈ
Huge shout-out to @enunomaduro for cooking this one.
$request->image(), Storage::image(), configurable drivers, and immutable transformations.
This feels like it has always belonged in Laravel. | @MrPunyapal β | 7.6K | 11.3K | 1.5x | 433 | Jul 15 |
| 4 | [image] Laravel devs, one of my followers asked me: βWhere can I see all available PHP attributes in Laravel?β
I thought about it for a bitβ¦ couldnβt find a clear answer.
So I created a repo that lists all PHP attributes used in the Laravel framework.
Link in comments π | @MrPunyapal β | 7.5K | 9.5K | 1.3x | 160 | Apr 18 |
| 5 | [image] Laravel tip:
Dispatching a job inside a DB transaction can be risky.
If the job depends on data created in that transaction, use afterCommit(). | @MrPunyapal β | 7.6K | 8.2K | 1.1x | 124 | Jun 28 |
| 6 | [text] Hey fam, you know I'm looking for Laravel work for last few weeks now. And everyone suggested I'm giving $10 flat discount on my hourly rate.
Let's see if that work π«‘
Your support matters much like/repost and help me find right people to work with π | @MrPunyapal β | 7.4K | 6.9K | 0.9x | 85 | Apr 3 |
| 7 | [image] Laravel 13 welcome page π | @MrPunyapal β | 7.4K | 6.5K | 0.9x | 154 | Feb 21 |
| 8 | [image] Laravel/PHP devs, Do you also look for Spatie package before implementing any new feature? | @MrPunyapal β | 7.5K | 6.5K | 0.9x | 166 | May 10 |
| 9 | [image] Laravel developers, get ready for more PHP attributes π
Laravel 13 is adding:
β’ `#[Middleware]`
β’ `#[ErrorBag]`
Less boilerplate, more declarative code.
The shift is happening. | @MrPunyapal β | 7.4K | 6.4K | 0.9x | 116 | Mar 1 |
| 10 | [image] Laravel devs, in the new Laravel Boost version you can discover fresh AI skills and guidelines with the new `--discover` flag in the `boost:update` command πͺ | @MrPunyapal β | 7.4K | 5.8K | 0.8x | 134 | Mar 20 |
| 11 | [image] Laravel gained 10 million downloads in 1 month. π€―π€―
It seems so many apps updated to Laravel 13? π | @MrPunyapal β | 7.4K | 5.1K | 0.7x | 161 | Mar 26 |
| 12 | [image] Laravel tip:
If you update records while chunking them, be careful with `chunk()`.
Because `chunk()` uses offset pagination, changing the result set during processing can make you skip rows.
Use `chunkById()` when the records can change while processing. | @MrPunyapal β | 7.6K | 5.1K | 0.7x | 79 | Jun 22 |
| 13 | [image] Laravel 13 will have `#[Seeder]` for tests π§ͺ
Declare your seeder on the test class and it runs automatically.
Cleaner tests. Better DX. Less boilerplate.
Laravel keeps leveling up π₯ | @MrPunyapal β | 7.4K | 5.0K | 0.7x | 129 | Feb 19 |
| 14 | [video] #laravel devs, @filamentphp Tabs now support deferred badge rendering π«
Your page loads faster β¨ because expensive count() queries for tab badges run asynchronously instead of during the initial page load.
A small feature that makes a noticeable performance difference. | @JaiveerChavda β | 254 | 4.4K | 17.2x | 68 | Mar 8 |
| 15 | [image] Laravel tip: `diffForHumans()` does more than just β3 hours agoβ β°
You can customize:
π§© number of time parts
β¨ separators between values
β‘ short format like `3h 12m`
Perfect for feeds, notifications, activity logs, and dashboards π
Small method, big upgrade. | @MrPunyapal β | 7.5K | 4.3K | 0.6x | 109 | May 1 |
| 16 | [image] Reminder for Laravel devs π¨
Donβt use `env()` outside config files.
Works locally, breaks with `config:cache`.
Use `config()` instead.
Add Pest Arch or Larastan to catch it early; even AI gets this wrong π€ | @MrPunyapal β | 7.4K | 4.1K | 0.6x | 66 | Apr 5 |
| 17 | [image] Laravel 13.17 introduced first-class route metadata.
Instead of hiding custom data in route defaults or action arrays, you now have a dedicated API.
Feels like a small feature, but it'll make packages and middleware much cleaner. | @MrPunyapal β | 7.6K | 4.1K | 0.5x | 56 | Jul 6 |
| 18 | [image] π #Laravel13 | @MrPunyapal β | 7.4K | 3.9K | 0.5x | 66 | Mar 17 |
| 19 | [image] Laravel developers, are you filtering the same collection twice?
If you need both the matching and non-matching items, partition() does it in a single call.
Bonus: it even supports higher-order messages. π | @MrPunyapal β | 7.6K | 3.7K | 0.5x | 98 | Jul 18 |
| 20 | [image] Laravel developers, I found a sweet spot in routing:
- view() for simple pages
- single-action controllers for focused endpoints
- resource / apiResource for CRUD
- singleton / apiSingleton for one-off resources
Less overthinking, more consistency πͺ | @MrPunyapal β | β | 3.6K | β | 73 | Apr 26 |
| 21 | [image] New in Laravel 13.21: #[RequestAttribute]
The request attributes bag is perfect for data you've already resolved during the current request.
For example, if middleware has already loaded the current tenant, there's no reason to hit the database again later.
#[RequestAttribute] | @MrPunyapal β | 7.6K | 3.6K | 0.5x | 66 | Jul 22 |
| 22 | [image] Laravel tip: Don't repeat authorization logic across your application.
Define the rule once with Gate::define(), then use Gate::authorize() wherever you need it.
When the rule changes, you update one place instead of hunting through your codebase. | @MrPunyapal β | 7.6K | 3.6K | 0.5x | 73 | Jul 12 |
| 23 | [image] Laravel devs, another new attribute is coming in Laravel 13.22. π
#[BindWhen] lets you conditionally bind implementations using a closure.
The closure receives the container, so your condition can depend on configuration, feature flags, or anything resolvable at runtime. | @MrPunyapal β | 7.7K | 3.5K | 0.5x | 44 | Jul 27 |
| 24 | [image] Laravel 13.19 adds support for the new HTTP QUERY method.
Unlike GET, it allows sending a request body while still representing a read-only operation.
Useful for APIs with complex search filters that don't fit naturally into a URL.
Thanks to @ShaneDRosenthal | @MrPunyapal β | 7.6K | 3.4K | 0.4x | 80 | Jul 9 |
| 25 | [image] Laravel tip:
If you use whereHas() and then eager load the same relationship with the same condition, you might be duplicating logic.
withWhereHas() keeps it cleaner. | @MrPunyapal β | 7.6K | 3.3K | 0.4x | 69 | Jun 27 |
| 26 | [image] Contributed a new rule to rector-laravel today π
The rule converts Laravel date comparison queries into the newer shorthand methods like:
wherePast()
whereFuture()
whereToday()
whereTodayOrAfter()
Love contributing to Laravel tooling and OSS. π | @MrPunyapal β | 7.5K | 3.2K | 0.4x | 77 | May 11 |
| 27 | [image] Laravel tip:
If your query should return exactly one record, `sole()` expresses that intent better than `firstOrFail()`.
It will fail if zero records exist and also if multiple records exist.
Small difference. Big guarantee. π | @MrPunyapal β | 7.6K | 3.2K | 0.4x | 63 | Jun 4 |
| 28 | [image] Laravel tip:
Collection-style code is nice.
But if you call each() after get(), you already loaded everything into memory.
For large datasets, use lazy(). | @MrPunyapal β | 7.6K | 3.1K | 0.4x | 83 | Jul 1 |
| 29 | [image] Coming to Laravel 14: you will be able to pass local context with the report helper! π₯³ | @calebdw β | 343 | 3.0K | 8.8x | 73 | Jul 16 |
| 30 | [image] Laravel 13 introduces new Eloquent attributes:
β¨ #[WithoutTimestamps]
π« #[WithoutIncrementing]
π #[DateFormat]
Cleaner syntax, less boilerplate β‘οΈ | @MrPunyapal β | 7.4K | 2.9K | 0.4x | 58 | Mar 27 |
| 31 | [image] Laravel devs, here's a helper you might not know about. π
Str::transliterate() converts Unicode characters to their closest ASCII equivalent.
Great for uploaded filenames, search normalization, and ASCII-only systems.
One of those helpers that's easy to overlook. | @MrPunyapal β | 7.6K | 2.7K | 0.4x | 106 | Jul 25 |
| 32 | [image] Laravel 12.55 (basically Laravel 13 now π₯) just made string validation so much cleaner!
Fluent Rule::string() chaining for min/max/alphaDash etc. β goodbye ugly long pipes, hello readable code π
Who's already refactoring their FormRequests? | @MrPunyapal β | 7.4K | 2.7K | 0.4x | 60 | Mar 18 |
| 33 | [image] Laravel security tip:
Your UI is not your security layer.
Hide the button if you want, but protect the backend action with a policy. | @MrPunyapal β | 7.6K | 2.6K | 0.3x | 61 | Jun 30 |
| 34 | [image] Laravel 13.19 adds a counted() method to the str() helper.
It's a small addition, but it makes formatting user-facing counts much more expressive.
One less place to think about singular vs. plural. | @MrPunyapal β | 7.6K | 2.6K | 0.3x | 68 | Jul 11 |
| 35 | [image] Laravel 13.19 introduces Collection::reduceInto().
It's built for cases where you're mutating a single accumulator, instead of returning it on every iteration with reduce().
A small API, but a cleaner mental model for building DTOs, summaries, and other mutable objects. | @MrPunyapal β | 7.6K | 2.4K | 0.3x | 44 | Jul 8 |
| 36 | [image] Laravel 13.20+ adds #[WithoutMiddleware].
A small addition, but one that makes controllers even cleaner.
Another nice step towards using PHP attributes throughout the framework. | @MrPunyapal β | 7.6K | 2.3K | 0.3x | 64 | Jul 14 |
| 37 | [image] Laravel tip:
chunk() gives you records in batches.
lazy() lets you loop one record at a time without loading everything into memory.
Use chunk() when the batch matters.
Use lazy() when you want a clean loop.
Updating records while processing? Use chunkById() or lazyById(). | @MrPunyapal β | 7.6K | 2.3K | 0.3x | 52 | Jul 2 |
| 38 | [image] Laravel 13.20+ adds support for custom Redis session prefixes.
This is especially useful when using managed Redis services like Upstash or ElastiCache, where sessions and cache often share the same Redis database.
A small change that makes key organization much cleaner. | @MrPunyapal β | 7.6K | 2.2K | 0.3x | 29 | Jul 16 |
| 39 | [image] Laravel tip: Need to dispatch thousands of independent jobs?
Instead of looping over dispatch(), use Bus::bulk().
Laravel can take advantage of the queue driver's bulk push capabilities when available.
Use Bus::batch() only if you need progress tracking or completion | @MrPunyapal β | 7.6K | 2.1K | 0.3x | 76 | Jul 13 |
| 40 | [image] Laravel performance tip:
If you only need one column, donβt load full models first.
Let the database return only what you need.
Small change, less memory, cleaner intent. | @MrPunyapal β | 7.6K | 2.0K | 0.3x | 45 | Jun 29 |
| 41 | [image] Laravel Attribute list directory now has before-after diffs and the version they introduced for attributes. | @MrPunyapal β | 7.6K | 1.9K | 0.3x | 36 | Jul 24 |
| 42 | [image] Most Laravel developers know pipe().
Far fewer know about pipeThrough().
Instead of one transformation, you can pass your collection through multiple reusable callables, keeping each step small, focused, and easy to test.
Have you ever used it? | @MrPunyapal β | 7.6K | 1.9K | 0.3x | 39 | Jul 19 |
| 43 | [image] New #[WithoutMiddleware] attribute already documented in the Laravel attribute list, check it out π | @MrPunyapal β | 7.6K | 1.9K | 0.2x | 42 | Jul 19 |
| 44 | [image] Laravel tip:
Selecting fewer columns can improve performanceβ¦
but if you remove the keys Laravel needs for relationships, you get a very confusing bug.
Optimize carefully. | @MrPunyapal β | 7.6K | 1.9K | 0.2x | 38 | Jun 30 |
| 45 | [image] Laravel 13.20+ adds incrementEachQuietly() and decrementEachQuietly().
Update multiple numeric attributes without firing model events.
Small addition, but a nice quality-of-life improvement for Eloquent. | @MrPunyapal β | 7.6K | 1.7K | 0.2x | 45 | Jul 15 |
| 46 | [image] Laravel 13.21 adds a built-in base64 validation rule.
No more custom validation logic just to verify a Base64-encoded value.
One less custom rule to maintain. π | @MrPunyapal β | 7.6K | 1.6K | 0.2x | 62 | Jul 24 |
| 47 | [image] Laravel developers, ever wanted pluck()-like output with more than one column?
pluck() is intentionally designed for a single value.
Instead, retrieve only the columns you need and use map->only().
Need the collection keyed by id? mapWithKeys() does the trick. | @MrPunyapal β | 7.6K | 1.6K | 0.2x | 40 | Jul 17 |
| 48 | [image] One more attribute for Laravel's attribute lovers. π
Laravel 13.21 introduces #[RouteKey].
If you're only overriding getRouteKeyName() to return a column like slug, you can now replace the entire method with a single attribute.
A nice little quality-of-life improvement. | @MrPunyapal β | 7.6K | 1.5K | 0.2x | 53 | Jul 23 |
| 49 | [image] Laravel tip:
Validating the request and then saving `$request->all()` is like checking IDs at the doorβ¦
then letting everyone inside anyway.
Use the validated data, not the full request. | @MrPunyapal β | 7.6K | 1.5K | 0.2x | 25 | Jun 21 |
| 50 | [image] Most Laravel developers know unique().
But did you know Collections also have duplicates()?
One thing that surprised me is how it works.
If a value appears 3 times, it will be returned twice. Every occurrence after the first is considered a duplicate. | @MrPunyapal β | 7.6K | 741 | 0.1x | 19 | Jul 20 |