What is "ugly" software?

Someone recently mentioned here that a popular new app was “ugly as dirt”. I’m as prone as anyone to characterizing software as “ugly” or “meh” or “ugh”, but I wonder what’s behind that. Of course, the debate on what’s beauty extends from long before the Symposium and long after Molly Bawn (extra credit for looking it up). But what’s that have to do with software?

What are the qualities of “ugly” vs. “nice” or “beautiful” software?

I’ll confess I don’t have an answer – all my favorite (most used) software has been characterized here and elsewhere as “ugly”, LOL.

(Please – the thread is not intended to diverge into trashing.)


If it works well and saves me time it’s beautiful. :grinning:


The first example that comes to mind is the ScanSnap Manager app.

It has “Settings”… and “Preferences” … and “Profile Management” … and a setting that is on by default which prevents you from using other settings until you find it and turn it off. I never know where to find anything, and I’ve used it for a long time (2013?). Just the other day I set it up on a new Mac and realized I couldn’t figure out how to change one of the settings.

It has “scan quality settings” which are something like this:

  • Good
  • Better
  • Best
  • Excellent

How can you have a setting that is better than best?! It’s like having two options and calling one of them. “Medium”! Words mean things!

The UI hasn’t been updated since I bought my first one in 2013.

It had a completely un-Mac-like UI which is the very definition of a Windows “port” with minimal effort involved.

It has a weird updater.

About the only good thing I can say about it is that generally you don’t have to spend too much time using the UI except to configure it. I just have it scan to a folder so I can avoid using the app any more than necessary.


The classic paradigm, as I’m sure you well know, is UI and UX. It’s not only how it looks (UI), it’s also how well it works (UX). And the two mesh together.

UI is a matter of taste, but one could argue that native controls and looks on a platform helps create harmony. UX factors a lot into this as well – is it quick and easy to use, is it reactive, is it well designed? If an app is snappy and efficient, I think it’s easy to subconsciously consider it “beautiful” because it works well.

By that metric, despite all my love for the app, I feel Obsidian to be… erm… ugly as hell. Electron is slow on Macs, it runs but it looks nothing native, despite being a formidable feat of software. Compared to this, Craft is beautiful for exactly the same reasons, despite being nowhere near as a powerhouse. Whether these aspects matter will of course depend on your taste and need, but I’m finding that, since I switched to Mac, I value pretty. I would have stayed with Windows otherwise.

Incidentally, these conversations of “niceness”, “beauty” in apps were almost unknown to me when I was in the Windows world. I think that in the Apple ecosystem we especially value these qualities because the platform puts care into them, while Microsoft has for the longest time cared about things you can do, but not how well you can do them.


First, I’m the guilty one calling Obsidian “ugly.” :slight_smile: I could give a classic definition of beauty, e.g., related to symmetry, but the truth is when it comes to apps I can’t exactly define it but I know it when I see it. For my taste, compared to Craft or Things, Obsidian is ugly. :slight_smile: But I’m giving it a good test drive anyway.


Usually when I say ugly apps, it’s just that. The UI is not pleasant to look at, or the button scrambled like an egg, or it won’t let me see the content clearly, or in some case I can see clearly developer don’t leverage much of the styling framework.

Some of the ugly app have great UX though, so I consider them ‘honest app’.


Not a bad answer. I’m sure Justice Potter Stewart would agree if he were still around : )


Like @anon85228692 both UI and UX have a part in the ugliness of an app. The UI can be ugly due to poor choice of fonts, colors, controls, and layout. The UX, while not visually ugly, can be ugly in how it operates. Features are not discoverable and navigation isn’t obvious.

1 Like

I won’t use “ugly” to describe any software. Last time I used that word and a couple of fan boys jumped on it and making the trend “ugly”. Fan boys… Bought a few really ugly software and regret it; they have terrible interface, UX and/or confusing workflow. Luckily good alternatives are available. Things 3, Agenda, etc are the opposite - simplified, beautiful and functional :+1:

Beauty is in the eye of the beholder…
Some folks like simplicity and others love widgets an gadgets that will resemble and airplane dashboard.

I think a lot is down to the user experience of an app, it’s not just asthetic (although it can be purely in some cases, when old or nonstandard design conventions are followed). I have been designing apps and teaching UI/UX for over a decade (and before that I designed websites and web apps). Listening to the users makes a “beautiful” design. Designers are always wanting to inspire feelings of joy and wonder when working an app, which is not an easy task, and that makes a truely great experience.

A good example is Obsidian. It’s not the look of the app that makes it a joy to use - it’s the design and simplicity. It’s not got “featuritis” (a term designers use), and is modular with its plugin system so you can only have the features you need.


Great term! :slight_smile: …………

I find many FOSS apps to have this particular issue. I don’t expect them to have current UI stuff when they’re compiled on Mac, but it does make them a bit jarring to use when platform conventions are ignored (likely for good reason - hard to be platform-specific when you’re cross-compiling code!)

Calibre’s built-in ebook viewer is a great example. There’s no “Preferences” tab in the menu bar. Right-clicking brings up a menu where the options are arranged…confusingly. And there’s a “preferences” option in there somewhere, which brings up other settings that could’ve easily just been exposed in that first right-click UI.

I love Calibre, and I use it all the time - but there are definitely some rough edges that make it “uglier” than it would have to be.


To me anything that is not a “Mac-assed” app is ugly. A lot of the apps that work dictates I use are ugly. (Slack, Firefox, PyCharm, AppCode, Zoom, web apps, and internal tools). When I have a choice I select tools that are “Mac-assed” (Xcode, BBEdit, Devon Think, Mail, Safari, Fork) and I enjoy using those so much more. I use the keyboard for as much as possible, so anything that doesn’t honor the EMACS motion key bindings, which are built into every Cocoa text field/view, is ugly). I’m so keyboard centric that I bought a keyboard that can move the mouse cursor and left/right click.

There are inconsistencies in my list, Devon Think is a Mac-assed app for the most part, but they override EMACS motion key bindings that makes editing more difficult. Fork is cross platform, but it’s fast and honors Mac UI conventions, sometimes better than Xcode.


I think Killerwhale nailed it. I’ve always felt that if a design is actually distracting and the flow of use is like using left-handed scissors, I would consider it ugly. (I’m right handed) Adding to that, if help is useless that kills it for the users I help.

1 Like

I agree with this. Terminal isn’t pretty but it’s amazing and powerful and (IMHO) one of the most “beautiful” apps on a Mac.


One of the reasons I switched to OS X originally was because of the underlying UNIX core. Having a terminal on OS X that was an actual, legit UNIX terminal let me bring over my server-side skills to my desktop machine.

I use Core Shell now, but yeah - Terminal is a very well-designed, minimalist terminal app. :slight_smile:


I felt this way for a while. But I found the “California Coast” theme and fiddled with some typefaces and now I actually think Obsidian is aesthetically pretty. I actually want to have a reason to take notes now.
I’ve been keeping it open just to look at it :smiley:


I like that. How do you make those changes? I know nothing about CSS

Definitely install the California Coast theme then!

In the .obsidian/snippets folder I have the following

The CSS a `preview.css` file
.markdown-preview-view blockquote {
    border: none;
    font-style: italic;

.markdown-preview-view h1,
.markdown-preview-view h2,
.markdown-preview-view h3,
.markdown-preview-view h4,
.markdown-preview-view h5,
.markdown-preview-view h6
    --font: "Publico Headline";
    font-family: var(--font, var(--default-font));

/* Add quotation character before quote */
blockquote:before {
  font: 14px/20px Italic Times, sans-serif;
  content: "“";
  font-size: 2.5em;
  line-height: 0.1em;
  vertical-align: -0.2em;
blockquote p { display: inline; }

a editor.css file

.cm-s-obsidian, .CodeMirror, .HyperMD-header {
    --font: "iA Writer Quattro S";
    font-family: "iA Writer Quattro S" !important;

:root {
    --font-monospace: "Hack Nerd Font Mono", monospace;

and a chrome.css file

:root, .theme-dark {
    --text-highlight-bg: hsl(206, 68%, 80%, 0.4);
    --text-accent: hsl(206,68%,60%);
    --text-accent-hover: hsl(206,68%,40%);
    --interactive-accent: hsl(206,68%,30%);
    --interactive-accent-rgb: 24,53,76;
    --text: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Microsoft YaHei Light", sans-serif;

.search-result-file-match {
    background: #3a3a3a;

a:hover {
    --text-accent-hover: hsl(206,68%,40%);

.theme-dark .graph-controls{
    background: rgba(60, 60, 60, 1);

div[aria-label="Manage workspaces"],
div[aria-label="Open random note"],
div[aria-label="Insert template"],
div[aria-label="Open command palette"],
div[aria-label="Open Markdown importer"],
div[aria-label="Advanced Tables Toolbar"],
div[aria-label="Open quick switcher"]
    display: none !important;

.workspace-tab-container-after {
  transition: background-color 100ms linear;

.admonition-content-copy {
  margin: 15px 10px;
  opacity: 0;
  transition: 0.4s all ease-in;

.admonition-content:hover > .admonition-content-copy,
.admonition-content-copy:hover {
  opacity: 1;

.graph-view.color-fill-tag {
    color: #B2B2BA;

You’ll need to enable these in the Appearance tab of the settings. You’ll likely also have to install iA Writer Quattro (the iA writer typeface) and install Publico Headline (it’s an Apple font but not installed by default)