A product built in a day can look like a product built in a quarter. Not because you fake anything, but because most of what reads as "expensive" comes from a small number of decisions that cost minutes, while most of what reads as "cheap" comes from a small number of oversights that also cost minutes.
You have four hours and no designer. Spend them in this order.
One: type and spacing
This is eighty per cent of it, and almost nobody does it first.
Pick one typeface. Use the system stack or one well-made font — never two decorative ones fighting each other. Then allow yourself exactly three sizes: something large for the headline, something normal for body text, something small and quiet for labels. Every heading on the page uses one of the three. No exceptions, no in-between sizes chosen by eye.
Then fix spacing to a single rhythm. Pick a base unit and use multiples of it for every gap on the page. The reason polished interfaces feel calm is not that the spacing is large — it is that it repeats. Inconsistent gaps read as carelessness even to people who could never tell you why.
Set body text around sixteen to eighteen pixels, line height around 1.6, and line length capped somewhere near seventy characters. Three numbers, and long-form text stops looking like a wall.
Two: restrain the colour
Use one background, one text colour, one accent, and be ruthless about the accent. It goes on the primary action and almost nowhere else. Amateur interfaces are recognisable by having four colours competing for attention; expensive ones are mostly neutral with a single deliberate note of colour where you are supposed to look.
Whatever you do, do not colour things because a section felt empty. Empty is fine. Empty is, in fact, the aesthetic you are borrowing.
Three: give it room
Increase every margin you think is already correct — particularly around the headline and above the primary action. Generous space is the most reliable signal of confidence in a layout, and it is free. Cramped is the default state of every unstyled page, and it reads as unfinished no matter how good the underlying product is.
Four: fix the edges
Unfinished products are betrayed at their edges, not on their happy path. Spend an hour here and it will be the hour that most changes how the thing is perceived:
- Empty state. What the page says before the user has done anything. This is your most-read screen — make it a short instruction, not a blank rectangle.
- Loading state. Anything that takes more than a moment needs an honest signal. A disabled button that says "Working…" beats a spinner with no context.
- Error state. One plain sentence in human language, with a way forward. Never a raw stack trace, never "something went wrong" with no next step.
- Mobile. Open it on your actual phone. Half of everyone who sees your launch will be on one, and a broken layout there costs you them entirely.
- The title and favicon. A tab reading
localhost:3000 or the framework default undoes every other hour of this work in one glance.
What to skip
No animation library, no custom illustrations, no dark mode toggle, no hero video, no scroll effects. They cost hours and buy less than correct spacing does. The one exception worth the time: a single, short transition on the primary action — the smallest possible amount of motion, so the interface feels responsive rather than decorated.
Check your work honestly
Open it on your phone, then look at it from across the room with your eyes half closed. You are looking for whether the page has an obvious focal point and whether the spacing looks rhythmic. If both hold, you are done. Do not keep tuning — you have a launch page to write.