banner
crdhd.bsky.social
@crdhd.bsky.social
save this rule for your next landing page.

free design checklist in bio.
May 19, 2026 at 5:18 PM
the text ladder:

1. hero
2. section title
3. body
4. caption

repeat it until the page feels obvious.

readable beats loud.
May 19, 2026 at 5:18 PM
repeat the same text order in every section.

eyebrow → heading → body → CTA button

repetition is what makes a page feel designed.
May 19, 2026 at 5:18 PM
body text is usually too big, too wide, or too gray.

size it for comfort. keep lines short. use contrast that doesn't fade into the background.
May 19, 2026 at 5:18 PM
don't make everything bold. make important things structurally different.

size and weight create the hierarchy. bold is just emphasis within a level.
May 19, 2026 at 5:18 PM
hero text creates direction. body text should disappear into understanding.

when the biggest thing on the page is clear, everything else can relax.
May 19, 2026 at 5:18 PM
start with 4 text levels. not 14.

1. hero
2. section title
3. body
4. caption
May 19, 2026 at 5:18 PM
premium pages are easy to scan. cheap-looking pages make every line fight for attention.
May 19, 2026 at 5:18 PM
the fix: a persistent error section. stays until dismissed. names the field and the reason. scrolls into view if needed.

one component. maybe 80 lines. users stop wondering if they broke something. the app just tells them.
May 18, 2026 at 10:19 AM
the usual suspects:

- toasts (fleeting, missable)
- inline validation (only near the field)
- server errors (logged not surfaced)

vibe coders pick whichever is easiest. all of them hide failure.
May 18, 2026 at 10:19 AM
errors get treated like exceptions. code throws, state updates, ui flashes feedback for the user who wasnt watching.

entropy wins through accumulation not incompetence.
May 18, 2026 at 10:19 AM
if you can't write the problem it solves in one sentence, it's decoration.

three products, one principle: design with purpose.

save this before you ship.
May 14, 2026 at 4:59 PM
Linear's command palette (Cmd+K) is always visible. could've been buried in settings. instead: 2 keystrokes to any task.

stripe errors tell you what broke, why, and how to fix it. debugging as design.
May 14, 2026 at 4:59 PM
the one-sentence test: for every visual element, write 'this solves ____.'

button → solves clarity
empty state → solves first action
shortcut → solves speed

if you can't write it, it's decoration.
May 14, 2026 at 4:59 PM
the fix is not prettier inputs.

add one line of context above the form, one privacy or support note near the button, and error copy that says what broke and how to fix it.

working form -> trustworthy product moment.
May 14, 2026 at 3:56 PM
audit the form in 4 places:

1. expectation: what happens after submit?
2. effort: how many fields feel required?
3. reassurance: is data, payment, or privacy explained?
4. recovery: do errors tell users how to fix them?

if one is missing, the form feels unfinished.
May 14, 2026 at 3:56 PM
save this rule for your next redesign. if it doesn't solve something, cut it.

free UI audit checklist in bio.
May 14, 2026 at 11:59 AM
three products. one principle.

Notion teaches via empty states
Linear saves time via shortcut-first
Stripe debugs via error copy

each solves a real problem. better experiences start with empathy.
May 14, 2026 at 11:59 AM
if you can't write the problem it solves in one sentence, it's decoration.

start with clarity. focus, not flair. solve, don't sprinkle.
May 14, 2026 at 11:59 AM
Stripe's errors aren't red boxes with codes. each message tells you what broke, why, and how to fix it.

debugging as design. treat errors like helpful conversations. clarity builds trust.
May 14, 2026 at 11:59 AM
Linear's command palette is always on-screen (Cmd+K). they could've buried it in settings.

instead: get to any task in 2 keystrokes. saves hours a year.

good design removes friction, not features.
May 14, 2026 at 11:59 AM