hellencharless54 started a new conversation+100 XP
2mos ago
Hi everyone 👋
I’ve recently been working on a project inspired by the Letter Boxed word game (the NYT puzzle where you create the shortest possible word chain using all given letters). I decided to build my own version as a web app using Laravel and would love to get some feedback on architecture and best practices.
Here’s a quick summary of what I’m trying to build:
🔹 A daily puzzle generator that shows a set of letters 🔹 Users can submit solutions — each must follow the Letter Boxed rules 🔹 Store submitted solutions in a database 🔹 Validate word rules server‑side for correctness 🔹 Display leaderboards (fewest words, fastest solves)
I’ve got a working prototype, and I’m tracking progress and pattern analysis on my site here: https://lettersboxdanswers.com/
Right now I’m debating the best way to structure the core logic:
📌 Questions for the community:
Puzzle generation: Should I pre‑generate daily puzzles and store them, or generate on the fly with caching?
Rule validation: What’s the Laravel‑idiomatic way to validate word chains — custom rule objects, services, or jobs?
Database design: Has anyone modeled similar puzzle games? Would you store individual letter positions or just the submitted string + metadata?
Performance: If this scales, would you recommend broadcasting live leaderboards via Laravel Echo / WebSockets?
Right now I’m using:
• Laravel 10 • MySQL • Tailwind + Livewire for interactivity • Jobs + Queues for validation
Any architecture advice, refactoring tips, or performance insights would be much appreciated! Thanks in advance 🙌
If you want, I can also draft sampl
hellencharless54 started a new conversation+100 XP
2mos ago
Hi everyone,
I’m running into a challenge on a shared hosting environment while developing an ad marketplace in Laravel. Everything works perfectly on localhost, but on the live server, images uploaded via Livewire (storage/app/public/ads/content) are not appearing in Blade templates.
Oddly, .AVIF images work in generated previews, but .JPG and .PNG do not. Standard asset('storage/...') calls return broken links across the site. Running php artisan storage:link fails because my host restricts symlink(), giving a 500 Server Error.
I tried updating APP_URL and converting images to Base64, which works for previews, but the rest of the website still doesn’t display images.
It feels a lot like a Letter Boxed puzzle: the pieces (images) are all there in storage, but the usual paths to connect them to the public interface are blocked.
What I’ve Tried / Possible Workarounds:
Serve via a route/controller
Route::get('storage/ads/content/{filename}', function ($filename) { $path = storage_path('app/public/ads/content/' . $filename); if (!file_exists($path)) abort(404); $file = file_get_contents($path); $type = mime_content_type($path); return response($file, 200)->header("Content-Type", $type); });
Then in Blade:
Base64 encoding fallback Works for previews but can bloat page size for large images.
Manual copy to public folder
cp -r storage/app/public/ads public/ads
Then use asset('ads/content/'.$imageName) in Blade.
My questions for the Laracasts community:
Has anyone found a robust way to serve storage files on shared hosting without symlinks?
Any tips to make asset() point to the physical storage path automatically?
Thanks in advance! Would love to hear if others have solved this “Letter Boxed-style” storage puzzle on restricted hosts.
hellencharless54 started a new conversation+100 XP
2mos ago
Hey everyone,
I’ve run into a bit of a problem with Eloquent relationships in Laravel, and I’m hoping someone here can point me in the right direction.
I’m trying to eager-load a relationship between two models — let’s say User and Profile — but the related data isn’t being returned the way I expect. Here’s a simplified version of what I’m doing:
$user = User::with('profile')->find($id);
But when I dd($user), the profile data either doesn’t show up at all, or it appears as an empty object — even though there definitely is a related Profile record in the database.
I’ve already checked the following: ✔ The relationship is defined correctly in both models ✔ The foreign key and local key names match ✔ The database records exist
Here’s the relationship in the User model:
public function profile() { return $this->hasOne(Profile::class); }
And in the Profile model:
public function user() { return $this->belongsTo(User::class); }
Has anyone run into this before? Am I missing something obvious, or is there a deeper query issue I should be aware of? Any suggestions on how to debug this further would be super helpful! 🙏
Thanks in advance!
hellencharless54 liked a comment+100 XP
2mos ago
Hi @LaracastTeam, New player is good. But, I am missing Playback Speed of 0.75X. If possible please bring it back. Thanks.
hellencharless54 liked a comment+100 XP
2mos ago
hellencharless54 liked a comment+100 XP
2mos ago
Hi,
I have a Laravel 12 application that I have build with no starter kit. I have right now simple registration and login forms.
My next steps are to build, email verification into the registration process, and then add the forgotten password functionality.
I have been looking a little around.
If I start a new Laravel 12 application, is asking for React, Vue or Livewire starter kit. I would prefer none; I know I get boilerplate code handed to me, but I would prefer to keep React, Vue and Livewire out of the picture for now.
I have been looking into Laravel Breeze, but sounds like it's not "the way to go" anymore for new projects. Furthermore, I have look at a little into Laravel Fortify, which looks a little like a skeleton I can build on, and currently I think that's the way to go for me.
Do you have any suggestions on how I should approach this? Feedback would be welcomed and appreciated.
Thanks
hellencharless54 liked a comment+100 XP
2mos ago
hellencharless54 liked a comment+100 XP
2mos ago
My Laravel project was running completely fine and then I had to re setup the project in my laptop so I deleted the project directory and cloned the project in a new directory. After that I get 419 page expired error on every network request. It is showing that error in the network tab when any Livewire network request is triggered and also on any form submission eg. login form.
The project is running completely fine on other devices as I have asked my colleague to test it on their devices but only showing error on my device. I have resetup the project in completely new directory as well.
I have a Mac Book, with Laravel Herd recently added. The project is on Laravel 10 and also has Livewire.
I hope this clears my problem, please ask me if you want more details that I have missed out.