2 min read

Inputs and outputs

The input field is a humble tool. You type something in and that data is shown somewhere else.

In a Content Management System (CMS) it’s the start of everything. You add content to the input field and share it to the world.

Right now I’m typing into a textarea element, a type of input. When I publish my post this will go live on the web. It will also look a little different because my editor isn’t the same as my website. That’s intentional. Mars Edit is a great app that simplifies my process of writing. But it also obfuscates the final output. I have to infer what the design will look like on the other end.

That’s fine for blog posts. You don’t need your writing tool to exactly match what someone else might see in their RSS feed, or a newsletter, or even just browsing your website.

Markdown has also helped a lot in this area. You just keep typing, use a htmlesque form of markup, and ship your words.

However, when you’re trying to put text into a database, and that database will output all that data in different ways across different apps and media—well it gets chaotic quickly.

I deal with this daily in app design. You design a page, mock up content, and then each piece of content is put into lines in a database, and you hope the end result looks somewhat like the original design.

It’s been a sticking point with WordPress for almost a decade. Earlier, in the days of TinyMCE, you just typed everything into a magical WYSWIG box, or used Advanced Custom Fields (ACF) and asked a programmer to connect everything for you.

WordPress mostly, somewhat, solved that with Gutenberg. Everything is now a block. What you see creating the blocks is mostly what will go live when you publish. The 1-1 relationship between typing in the input field and seeing the same thing in the output field is huge.

Despite all my struggles with WordPress, I’m often amazed when I switch to any other website creation tool. WordPress really nailed the user interface. It’s not perfect. In fact I fight it almost daily. But you can do almost anything with it, and the other CMSes (looking at you Webflow and Squarespace and Shopify) have such a strange relationship between the input fields you can customize and the output that will show up on the other side.

It’s headache inducing to try and build out a web page away from the live preview, working in some mysterious backend, then hope and pray that the end result will be close enough to what you want. Such things make me want to pull out my hair.

Having a closer relationship to the live preview simplifies the creation process. This is probably why I’ve fallen in love with Carrd. It’s a limited application, but the few things it does it does better than any other solution.

Maybe AI will save us all by eliminating this problem entirely.