I make the background art for every post on the Fern blog. They're all generated from Midjourney, the best text-to-image model to generate high-fidelity imagery.
I wanted Fern's marketing content to feel calm and polished, representing the same craft we put into the product. Midjourney is the only text-to-image model I've found that can truly do that. Its style references and personalization keep every asset in the same visual key.
Landing the template that does that took months of scrapped generations and one museum visit. Here's how I got there.
Technobotanicals
My first prompts tried to make Fern's identity literal. Fern is a developer tooling platform with a plant for a logo, so I fused the organic with the digital and generated a pile of what I started calling technobotanicals:
VELVET-MATTED FERN LEAVES WITH CHROME VEINING, IMPOSSIBLY QUIET, ECHOES OF
ELECTRONIC LIFE, SOFT VIOLET AND PALE GREEN PALETTE, STILLNESS AT THE EDGE
OF A DIGITAL FOREST --exp 100 --profile c6so3sz --sref 2082925974 --raw
--stylize 1000 --sw 200 --v 7.0
MYCELIUM NETWORKS WOVEN THROUGH HAZY SYNTHETIC MIST, SLOW BREATHING LIGHT
PULSES, GREY-GREEN ORGANIC WEBBING MERGING WITH NANOSTRUCTURES, DREAMLIKE
DATA FOREST --exp 100 --profile c6so3sz --sref 2082925974 --raw
--stylize 1000 --sw 200 --v 7.0





Iridescent ferns, glowing spores, a mountain range with a luminescent grid draped over it. Ethereal, but unusable.
The problem is that each one is a subject in its own right. They demand to be looked at. But almost every post on this blog lays a headline and a product screenshot over the hero image, so the background has to do the opposite of demand attention: hold a mood, then disappear behind the content. These fought whatever I put on top of them.
Surreal minimalism
If the technobotanicals were too loud, maybe the answer was almost nothing:
people standing on top of a mountain, walking towards the sky with clouds
and a moon. A large, vertical rectangle floats in front of them. The scene
evokes a sense of minimalism, surrealism, and a dreamy color palette,
characteristic of a digital art style. high definition --exp 100 --v 7.0
--ar 4:5 --chaos 5 --p <your-profile-id> --raw
Beautiful, but it read like an album cover, not a developer blog. The human figures and the giant floating monolith turn it into a scene you're meant to stop and decode. A background can't have a subject staring back at you.
Woodblock landscapes
I'd been here once before. During the site redesign I tried woodblock-style graphics and shelved them: Midjourney copied the surface texture of the prints but not the intent behind them, the deliberate linework and hand-registration.
So I swung back and tried plain woodblock landscapes: a fern forest, spring meadows, Iguazu Falls.



I also re-ran the old technobotanical scenes in the new woodblock style:
A Japanese woodblock print of cherry blossoms in full bloom at the temple,
with people enjoying their time near a pond and pagoda tower in the
background. The sky is a clear blue, and there's an array of green trees
around the scene. This artwork uses vibrant pastel colors to capture the
serene beauty of springtime nature. --sref 2826299952 --v 7.0 --p <your-profile-id>
--sv 4 --exp 100 --raw


The circuitry faded into mountain ranges and weather. Much closer, but still too many strong color notes fighting for attention. I wanted fewer of them, and quieter.
Being inspired
When I'm in a creative rut, I visit whatever art museum is nearby. On a trip to the Philadelphia Museum of Art, I came across Hiroshi Yoshida, and it clicked. He spent the 1920s applying Japanese woodblock printmaking to landscapes, including American ones: El Capitan, the Grand Canyon, Niagara Falls.


Hiroshi's prints had the serenity I was after. The palettes are muted, the weather does the work, and there are no faces, hands, or text, exactly the things image models struggle to render with any exactness. And where my technobotanicals shouted and the surreal pieces posed, these landscapes just recede. That was the quality I'd been missing and couldn't name until I stood in front of them. I took the inspiration, stripped out the intricacy, and added motion blur so the eye glides past the details instead of snagging on them.
The final prompt template
I didn't land the prompt in one shot. Back home, I fed photos of Yoshida's prints into Midjourney's /describe command, which hands back the phrases a model would use to recreate an image, then isolated the ones that captured what I wanted, the muted palette, the analog grain, the smoothing motion, and folded them into a single template:
[scene description in Hiroshi Yoshida landscape style], atmospheric [weather],
long-exposure smoothing motion, muted earthy colors, tactile analog grain
--v 7.0 --p <your-profile-id> --raw --exp 100 --ar 16:9Then I added --p <your-profile-id>, a Midjourney personalization code. Personalization lets you train your own mini Midjourney model by ranking image pairs; it hands back an ID, and appending that ID makes every generation inherit the same look.
I pair that ID with a scene, usually natural scenery or flora and fauna tied to whatever we're launching. Everything else stays fixed, so a background I generated last September and one from this month visually feel the same.
The outputs








![]()
Every asset still gets its own scene. Rust's mascot is a crab, so the Rust SDK generator launch became a low tide beach crawling with tiny orange "Ferris" crabs:
A low tide beach crawling with tiny orange crabs, Hiroshi Yoshida landscape
style, atmospheric coastal haze at dusk, long-exposure smoothing motion,
muted earthy colors, tactile analog grain --v 7.0 --p <your-profile-id> --raw
--exp 100 --ar 16:9The Swift launch swapped in swifts pouring out of a temple. The template holds the look; the scene carries the story.
What's next
I'm still tuning every asset, and each launch is an excuse to go find the next scene. Hope you find them as beautiful as I do.
- See how we put this same prompt system to work in our paid ads (post coming soon).
- DM me on X and I'll send over more prompts, or if you want to jam.
