-
Mike Futia
AI Automation Made Easy • 31K followers
Claude Code + Nano Banana 2 is f*cking cracked 🤯 I built a skill inside Claude Code that writes JSON image prompts for Nano Banana 2, and the outputs look like they came from a professional photo shoot. One plain-text prompt. Claude rewrites it as structured JSON with lighting, camera, composition, style, and negative prompts. Then fires it off to Nano Banana 2. All inside Claude Code. Perfect for DTC brands and agencies who need high-volume ad creative without booking a shoot. If you're using Nano Banana 2 for product shots and lifestyle images but every generation feels like pulling a slot machine lever — random lighting, inconsistent style, plastic skin, misspelled labels ... This skill fixes the entire output: → You describe what you want in plain English → Claude rewrites it as a structured JSON prompt (lighting, camera angle, lens, depth of field, color grading — all of it) → Fires it to Nano Banana 2 via API → Saves the prompt + image in organized folders → You iterate on the style until it's dialed, then every output matches No more slot machine prompting. No more inconsistent brand imagery. No more burning credits on unusable generations. What you get: - Photo-realistic product shots and lifestyle images on demand - Full control over style, lighting, composition, and camera settings - Saved JSON prompts you can reuse across every campaign - A skill that gets smarter the more feedback you give it Built 100% in Claude Code with a custom skill + Python scripts. I put together a full playbook showing the exact skill, the JSON schema, and the workflow to set this up yourself. Want the full playbook? > Like this post > Comment "BANANA" And I'll send it over (must be following so I can DM)
-
Ahmed Said, PhD, ESB
Tapi • 3K followers
🐘 "PHP Grew Up. Did You Notice?" PHP in 2024 was a completely different language than the one you're making fun of. I get it. The old jokes write themselves. mysql_query(). Global state everywhere. $_POST['whatever']. I lived through that era too. I have the scars. But here's the thing, while a lot of us moved on and kept dunking on PHP from the sidelines, the language kept shipping. Quietly. Consistently. Every year. PHP 8.0 brought named arguments, match expressions, and union types. PHP 8.1 brought enums, fibers, readonly properties, intersection types. PHP 8.2 brought readonly classes, new random APIs, and a serious cleanup of the deprecation backlog. That's not maintenance. That's a language that's actively evolving. Over the next few weeks I'm going to walk through the features I wish I'd paid attention to sooner. Not with docs-style explanations, just real examples of how they changed the way I actually write code day to day. If you still think PHP is stuck in 2009, stick around. I think you'll be surprised. Feature 1: Readonly Classes You were writing 3 files to do what one keyword now does For years, making a truly immutable object in PHP felt like a punishment. You'd write a class, make all the properties private, write a constructor, write a getter for every single property, add a docblock, hope nobody on the team did something creative with reflection... and then do it again for the next DTO. Every. Single. Time. PHP 8.2 just added readonly class and I genuinely felt a little embarrassed about how much boilerplate I used to write. The readonly modifier on the class means every single property is automatically readonly. No setters. No accidental mutation. No defensive getters. You can still make properties public because nothing can change them after construction anyway. This is the kind of feature that makes your DTOs, value objects, and API response models genuinely pleasant to write. I've refactored probably a dozen classes since this landed. Each one got shorter. None got worse. What pattern do you use for immutable data transfer objects? Still doing the old approach? #PHP #PHP82 #WebDevelopment #CleanCode #PHPGrewUp #BackendDev #BackendDevelopment