sandman

Why Sandman looks like this

Why Sandman looks like this

Thick borders, hard shadows, a face that doesn't apologize. Here's why I picked neo-brutalism for Sandman, and what the research says about it.

Jacob Lowe

Jacob Lowe · Founder of Sandman

Published on Apr 16th · 5 min read

Every few weeks someone asks me why Sandman looks the way it does. Usually they're pointing at the borders. Thick, black, a bit heavier than what most apps ship with. Or the drop shadows: hard-edged blocks, offset by a few pixels, like the whole button got pasted onto the screen at an angle. That's on purpose.

The style is called neo-brutalism. I picked it. I should probably write down why.

The short version

Neo-brutalism borrows from the architectural movement of the same name. Architectural brutalism came out of post-war Europe and leaned on raw, unpainted concrete. The name comes from béton brut, which is French for "raw concrete." Big slabs, exposed materials, nothing dressing up what the building was made of. For decades people called it ugly. Lately people have been coming back around.

Web and app design picked up the vocabulary some time in the mid-2010s. Bloomberg Businessweek's stripped-back digital redesign around 2016 was one of the early signals. Figma's 2020 brand refresh leaned on geometric shapes and flat, high-contrast illustrations. By 2022 or 2023 Gumroad went fully neo-brutalist with pink and yellow panels, thick black borders, giant headlines. That's the moment I noticed it had a name. I remember seeing the Gumroad site and thinking: that's what a tool for independent creators should feel like.

It's fresh without being obscure

One of the practical reasons I like it is that it's new enough to feel specific and old enough to not be fragile. If I'd picked something that shipped last Tuesday we'd be migrating off it in a year. If I'd picked flat material or glassmorphism, Sandman would look like every other 2021 app. Neo-brutalism is about four years into its mainstream run. There are real design systems for it, and enough examples in the wild that the pattern language is legible. I can use it without inventing it.

There's a second-order thing too. A lot of well-funded apps are still building inside the same soft-gradient, rounded-rectangle, muted-palette universe. If you're small and you want to look like your own thing, it helps not to look like everyone else. A dream journal app is already a weird object. The design should make that feel like a feature.

The accessibility story is better than I expected

I assumed going in that the aesthetic would fight me on accessibility. Thick borders and huge type sound visually loud. Visually loud usually means visually inaccessible.

The opposite turned out to be closer to true, at least when you do it carefully. Neo-brutalism is built on high contrast. Pure black on pure white hits a 21:1 contrast ratio, which blows past WCAG 2.2's 4.5:1 requirement for normal text and the 3:1 requirement for large text. The bold borders I wanted aren't just decoration, they're doubling as focus rings. Oversized typography that looks stylized is also legible at normal viewing distances without zooming.

The Nielsen Norman Group's guide to neobrutalism says roughly the same thing, but with guardrails. They recommend keeping your palette to two or three high-contrast colors, using generous padding (24–32 pixels) so nothing gets claustrophobic, and pairing unconventional display type with a clean body font. Every one of those rules ended up in our style guide. Bricolage Grotesque for everything, two accent colors against dark surfaces, hard shadows, lots of breathing room.

There's a real caveat. A 2026 usability study referenced in recent design writeups split brutalist sites into two camps. Disciplined ones, with clear grids and actual hierarchy, performed fine. The chaotic anti-design versions, where everything fights for attention, had task success rates as low as 8 to 10 percent on information-heavy pages. That's terrible. It convinced me that the rebellious half of neo-brutalism is the half I don't want. You can be loud about your borders as long as you're quiet about your layout.

It works in black and white

This part mattered more to me than I thought it would. Sandman is mostly dark mode by default. People journal at 6 a.m. with one eye open, or at midnight after a dream wakes them up. You don't want a bright palette blasting into the dark. Most design trends fall apart when you pull the color out. Glassmorphism becomes invisible. Material becomes gray mush. Skeuomorphism becomes sad.

Neo-brutalism actually started monochrome. Early architectural brutalism was raw concrete, the closest thing to black and white a building gets. The digital version isn't afraid of pure black the way most modern styles are, because pure black is how you get thick strokes and hard shadows to read. Pull all the color out of a neo-brutalist interface and it still works. It just looks like a woodcut.

For Sandman that's mattered a lot. We can lean on color when we want to, but we don't depend on it. The app still reads fine in a dim room with the blue light filter cranked up, which is when people actually use it.

Why I actually picked it

I could stop there and pretend the reasoning was purely functional. It wasn't. I like neo-brutalism right now, and that's part of the answer.

I think design preferences are allowed to matter when you're the one doing the design, as long as you're honest that they're in the mix. I've been staring at rounded, soft, generically friendly UIs for years and they all blur together in my head. The apps I remember are the ones that committed to a look. Craigslist. Early Gmail. Teenage Engineering's stuff. Gumroad. None of them are the most refined design, and that's exactly why they stick. Sandman is small and opinionated and I want it to have a face that matches.

The app also feels like an object now, instead of a surface. Buttons feel like you could pick them up. Cards have weight. A dream journal should feel like a real thing, not a web form.

What I'm watching for

A few things I keep checking as we build:

  • Are we drifting into the chaotic version? Every time a new screen starts to feel noisy I pull a border off something.
  • Is the contrast actually passing on real devices, not just in Figma? A yellow CTA we tried failed WCAG on most phone screens. It's gone now.
  • Does the style still feel right in a year? I'll report back.

If it stops working I'll redesign it. No trend survives forever, and the cool thing about having a clear style is you can tell when you've outgrown it. For now the thick borders stay.

About the Author

Jacob Lowe

Jacob Lowe

Founder of Sandman

Jacob is a web developer with over a decade of experience in the field. His passion for coding and open-source technologies drives his desire to create and innovate. He believes that through technology, we have the power to increase access to new experiences and make a positive impact in the world. At the heart of his work lies a love for nature and the beauty of the natural world. He finds solace in the stillness of nature and the abstractions of code.

Remember your dreams