Content & Media

Add real images, icons, and generated assets — and make everything responsive.

14 min read·5 parts·beginner

A site with real routes still feels like a wireframe until you drop in real content. Lorem ipsum, unsplash-generic hero photos, and mismatched icons flatten every design decision you made in Lesson 3. This lesson is about the last mile — the images, icons, and asset choices that make the site feel like yours, and how to keep them fast on every device.


Part 1 · Why content is the design

The agent draws the page around the words and pictures you give it. Placeholder copy hides the real problem: a hero headline that is too long, a bio that is too short, a portrait that doesn't match the palette. Real content forces real design decisions.

Avoid
Placeholders everywhere
Lorem ipsum, stock team-in-a-boardroom photos, and generic icons. The design looks fine — because nothing is really being shown.
Do
Real words, real pictures
Your actual headline, your actual portrait, your actual project screenshots. The layout has to earn its keep, and the design gets sharper because of it.
Working order
Draft the real copy first, then ask the agent to design around it. "Redesign the hero to fit this headline: …" beats "make a hero" every time.

Part 2 · Images: upload, generate, or link

You have three ways to bring an image into a Lovable project. They aren't interchangeable — pick the one that matches what the image is for.

Figure 2.1
UploadYour photos, screenshots, logosGenerateAI images: heroes, illustrations, texturesLinkRemote URLs: news thumbnails, external assetsYour pagehero · gallery · thumbnails
Three sources flow into the same page. Choose by ownership: things you already have, things you can generate, things that live elsewhere on the web.

Upload — for things you own

  • Your portrait, event photos, product shots, screenshots of your own work.
  • Client logos and brand assets you have permission to use.
  • Drag files into the chat and reference them by name in the same prompt.

Generate — for atmosphere and illustration

  • Hero backgrounds, textures, abstract accents, illustrated section dividers.
  • Describe the mood and the palette, not just the subject: "moody navy backdrop, soft coral rim light, editorial photo".
  • Regenerate a few times and keep the one that fits — cheap iteration is the point.

Link — for content that lives elsewhere

  • News thumbnails, third-party article previews, embeddable video posters.
  • Prefer a stable source (official press pages) over social media URLs that expire.
  • If the image is central to your identity, download it and re-upload — don't hotlink your own hero.
"Generate a hero image for the home page: a moody navy studio portrait feel, no faces, soft coral rim light, editorial 3:2. Use it as the background of the hero section behind the existing headline."

Part 3 · Icons & small assets

Icons are the smallest visual element on the page and the fastest way to make a site look amateur. The rule is boring but non-negotiable: pick one family and stick to it.

Figure 3.1
Mixed
Emoji + glyph + filled shape + text. Nothing agrees.
One family
Same stroke, same corners, same weight. Reads as one system.
Mixed icon styles read as noise. One family — same stroke, same corners, same weight — reads as design.

What to ask for

  • Use Lucide icons everywhere on the site. Same stroke width. No emoji.
  • Replace the section icons with Lucide equivalents that match: research → flask, teaching → book-open, contact → mail.
  • Set the favicon to the AN monogram I uploaded, and generate the standard sizes.
Favicons matter more than you think
The tiny square in the browser tab is the only piece of your brand a returning visitor sees. Ship a real favicon early — a generated monogram is fine, a default vite logo is not.

Part 4 · Responsive by default

More than half your visitors will land on a phone. "Responsive" isn't a stretch goal — it's the baseline. The good news: the agent already writes responsive Tailwind by default. Your job is to check it and describe fixes precisely when it breaks.

Figure 4.1
Mobile · 375
ahmadnajmi.com
Tablet · 768
ahmadnajmi.com
Desktop · 1280
ahmadnajmi.com
The same page at three widths. If any one of them looks broken, the page isn't done.

How to prompt responsively

  • Name the breakpoints: "one column on mobile, two on tablet, three on desktop".
  • Call out the hero specifically: mobile heroes usually need shorter headlines and a smaller image, not just a shrunk desktop.
  • Ask the agent to verify: "check the layout at 375, 768, and 1280 and fix anything that overflows or wraps ugly".
Common breaks
Long words in headlines (URLs, product names) push the layout wider than the screen. Fix with break-words or a shorter headline — never by hiding overflow.

Part 5 · Performance basics

When a site "feels slow", it's almost always images. A single 4MB PNG hero can double your load time on a phone. You don't need to become a performance engineer — you just need to ask for the right defaults.

Avoid
4MB hero PNG
Full-resolution photo from your camera, dropped straight into the hero. Looks crisp on desktop, tanks the mobile load, hurts your SEO.
Do
200KB WebP, lazy-loaded
Same image, exported as WebP at the size it actually renders. Below-the-fold images lazy-load. The hero preloads so it appears instantly.
Figure 5.1
  1. 1Prompt

    Describe subject, mood, palette, and aspect ratio.

  2. 2Review

    Reject anything generic. Regenerate cheaply.

  3. 3Refine

    Ask for crop, tone, or a smaller variant.

  4. 4Place

    WebP, right size, lazy for below-the-fold.

A four-move loop for every image: prompt, review, refine, place — with size and format decided before it hits the page.

Prompts that keep the site fast

  • Convert all hero and card images to WebP and generate 1x/2x variants.
  • Lazy-load every image below the fold; preload the LCP image on the home page.
  • Cap the hero image at 1600px wide — I don't need 4K on a landing page.
  • Add descriptive alt text to every image using the surrounding context.

Content & media cheat sheet

Five moves that separate a demo from a real site.

  • Real content first — draft the copy, then design around it. No lorem ipsum.
  • Right source per image — upload what you own, generate what you don't, link only what belongs elsewhere.
  • One icon family — Lucide (or one alternative), consistent stroke and weight, no emoji fallbacks.
  • Check three widths — 375, 768, 1280. Every route, every time.
  • WebP + lazy + alt — the three defaults that make images stop hurting your site.
Recap
Your site now has real routes filled with real content, real images, and a consistent visual language across every device. In Lesson 6 we step past static pages for the first time and wire up forms and data capture: a contact form that actually saves submissions to Lovable Cloud and pings you when someone reaches out.