# Indie hacker marketing: launch graphics without a designer

[Canonical HTML page](https://gradiently.design/guide/indie-hacker-launch-graphics)

You built the product alone. The graphics that sell it are a much smaller job than they look: five assets, one look, and words that say what the thing does.

## The short version

- Indie hacker marketing depends on a small set of graphics: an Open Graph image, an X header, launch day posts and a repeatable build in public template.
- The Open Graph image is 1200×630 pixels and appears on every link you share, so make it before you tell anyone about the product.
- An X header is 1500×500 pixels, and the profile photo covers part of its lower left corner, so keep words away from that area.
- A launch graphic works best with one line that says what the product does for whom, in under eight words.
- Using the same background, font and layout on every asset makes a solo product look established and helps followers recognise your updates.

Good **indie hacker marketing** runs on a handful of graphics you make once and reuse for months: an Open Graph image so every shared link looks finished, an X header, a launch day announcement, and one template for your build in public updates. None of them needs a designer. They need the right sizes, one consistent look, and a line that says what the product does in under eight words. This page covers all three and ends with a launch week checklist you can work through tonight.

## The launch graphics an indie hacker actually needs

Solo founders tend to either skip graphics entirely or spend a week on a landing page illustration nobody notices. The useful middle is short. These are the assets people will actually see, in the order they will see them.

| Asset | Size | Where people see it | Make it |
| --- | --- | --- | --- |
| Open Graph image | 1200×630 | Every link you share on X, LinkedIn, Slack, Discord and in messages | Before you tell anyone |
| X header | 1500×500 | Your profile, which people open after one good reply | Two weeks out |
| X or Bluesky post | 1600×900 | The launch post and milestone posts | Launch week |
| LinkedIn portrait post | 1080×1350 | The launch post for a professional audience | Launch week |
| Build in public card | 1080×1350 | Weekly updates on X, Threads and LinkedIn | Once, then every week |

Five assets cover almost every indie launch. Product Hunt states its gallery size on the launch form, so check it there and reuse your landscape frames.

- Open Graph 1200×630: 1200 × 630
- X header 1500×500: 1500 × 500
- X post 1600×900: 1600 × 900
- Portrait 1080×1350: 1080 × 1350

The four shapes drawn to scale. The header is a thin strip, and a portrait post takes far more of a phone screen than a landscape one.

## Start with the Open Graph image

The Open Graph image is the picture that appears when someone pastes your link. It is the most seen graphic you will ever make, because every share, every reply with your URL and every newsletter mention carries it. Without one, platforms show a blank grey card or a random crop of your page. The full rules are in [Open Graph image size](https://gradiently.design/guide/open-graph-image-size); the short version is 1200×630, product name, one line, large type in the middle.

A 1200 by 630 link preview image reading Invoices that chase themselves, with the product name Paperweight above it

An Open Graph image for an imaginary invoicing app: name, promise, nothing else. It still reads when shrunk to a thumbnail in a reply.

Then add the tags to your page head. Most frameworks have a place for them, but these are the ones that matter:

```html
<meta property="og:title" content="Paperweight: invoices that chase themselves">
<meta property="og:description" content="Automatic payment reminders for freelancers.">
<meta property="og:image" content="https://example.com/og-v1.png">
<meta property="og:image:width" content="1200">
<meta property="og:image:height" content="630">
<meta name="twitter:card" content="summary_large_image">
```

Use an absolute URL for the image. Put a version in the file name, because platforms cache previews and a new name forces a fresh one.

If your product has many pages worth sharing, such as public profiles or reports, generate an image per page instead of one for the whole site. Most frameworks can render these on request from a template.

## Write the words before you choose colours

Indie launch graphics fail on words far more often than on looks. A sentence like "the future of productivity" tells a scrolling stranger nothing. A useful line names the job and the person: what changes for them on Monday. Write ten versions, read them aloud, keep the plainest. [Writing copy for visuals](https://gradiently.design/guide/writing-copy-for-visuals) has more ways to cut a line down.

### Avoid

- "The future of productivity"
- "AI powered platform for modern teams"
- "Version 1.0 is live" with no hint of what it is
- Six features crammed into one image
- A full screenshot where the interface text is unreadable

### Do

- "Invoices that chase themselves"
- "Uptime alerts that text you first"
- "Live today" plus the one line that explains it
- One feature per image, in a sequence
- A tight crop of one part of the interface, enlarged

## Pick one look and keep it for every asset

Indie products blur together because so many reach for the same violet to blue gradient and the same geometric sans. That is fine for a weekend project and a problem for something you want people to remember. Choose a ground colour, one light or accent, and one font, and use them everywhere: the site, the OG image, the header, every post. A look you repeat for months is what makes a one person product feel like a company.

- Dark ground, teal light: `radial-gradient(circle at 80% 20%, #14b8a6 0%, #134e4a 35%, #05100f 75%)`
- Warm paper: `linear-gradient(160deg, #f8f4ec 0%, #efe6d6 60%, #e2d3bb 100%)`
- Dark ground, ember light: `radial-gradient(circle at 20% 80%, #f97316 0%, #7c2d12 40%, #1c0a05 80%)`

Three starting points that avoid the usual violet. A dark ground with one lit colour suits developer tools; warm paper suits writing and finance products.

If you would rather not mix your own, a Mark from the [Gradiently Market](/market) is a ready made living background with its own type voice. You can design with any unclaimed Mark for free; claiming it makes you its only owner, so only you can export with it and your launch cannot match another founder's. Claiming is a one-time payment that includes the first year of keeping, after which keeping is free with Pro or a yearly fee per Mark. It renders fresh at every size and its calmest area moves behind your words, which keeps a busy background readable without boxes or shadows.

## Build in public posts people recognise in a scroll

A weekly update is the backbone of building in public. Use the same layout every week, so followers know it is yours before they read a word. Lead with one real number or one real lesson, and post the slow weeks too: an honest flat week earns more trust than a streak of wins. Only ever share numbers that are true.

A portrait build in public card reading Week 14, First 100 users, with a line promising what worked and what didn't

A milestone week: the number is the headline, the detail promises the story in the post text.

A portrait build in public card reading Week 15, Three things I shipped, listing dark mode, CSV import and faster search

A shipping week in the same frame. Same background, same type, so the series reads as one.

Make a month of these in one sitting rather than one each Friday. [Batch creating social media content](https://gradiently.design/guide/batch-create-social-media-content) walks through the method. Give big moments, such as launch day or a revenue milestone, a layout of their own so they stand out from the weekly rhythm.

## Your X header and profile

The X header is 1500×500. Your profile photo sits over its lower left corner and the strip is cropped differently on phones, so keep words in the centre and towards the right. Put the product name, the one line and the URL there, or nothing but your look. Exact safe areas are in [X header size](https://gradiently.design/guide/x-header-size).

A wide X header reading Building Paperweight in public with a web address below, set to the right of centre

A header that does one job: tells a visitor what you are building. Words sit centre right, clear of the profile photo.

## A launch week checklist

1. **Two weeks out: OG image and header** Ship the meta tags and paste your URL into a private message to yourself to see the real preview.
2. **One week out: the words** Write the one line and three feature lines. Each feature line becomes its own image.
3. **Design one master frame** Make the launch post at 1600×900 with your look, your line and a cropped piece of the interface.
4. **Make the other sizes from it** Lay the same design out again at 1080×1350 for LinkedIn and Threads and 1080×1920 for stories, rather than cropping, with story words inside the central [safe zone](https://gradiently.design/guide/social-media-safe-zones). [Resizing for every platform](https://gradiently.design/guide/one-look-every-size) explains why.
5. **Launch day: one image per post** Post, pin it to your profile, reply to everyone. Keep the Product Hunt gallery in the same look so visitors arriving from either place see one product.
6. **The week after: thank people** Share what happened with real numbers and what you are fixing next. That post often travels further than the launch.

For the wider picture of a launch, see [product launch graphics](https://gradiently.design/guide/launch-day-graphics) and, if you sell software, [SaaS branding](https://gradiently.design/guide/saas-startup-branding). If you spend launch week in your editor, Gradiently also works inside ChatGPT, Claude and other assistants that support remote MCP servers: ask the assistant you already have open for the launch post, and the design opens in the Studio for a final check. Setup is on the [MCP page](https://gradiently.design/developers/mcp).

> **Test every preview before you post** Platforms cache link previews for days. Check yours in a private message first, and if you change the image later, change its file name too.

## FAQ

### What size should an Open Graph image be?

1200×630 pixels. Keep the words large and central, because the image is often shown as a small thumbnail.

### What size is an X header?

1500×500 pixels. The profile photo overlaps the lower left, so keep text in the centre and towards the right.

### Do I need a designer for a Product Hunt launch?

No. You need a clear one line description, a consistent look and a few landscape images that each show one feature, which you can make yourself in an evening.

### What should a build in public post include?

One real number or one real lesson as the headline, the same layout every week, and the story in the post text. Share slow weeks as honestly as good ones.

### How do I keep launch graphics consistent?

Choose one background, one font and one layout, and design every size from the same master rather than cropping a single image.
