Can a native Mac code editor really be that much better?

If we're being honest, Mac apps are a bit of a lost art. There are great reasons to make cross-platform apps — to start, they're cross-platform — but it's just not who we are. Founded as a Mac software company in 1997, our joy at Panic comes from building things that feel truly, well, Mac-like. Long ago, we created Coda, an all-in-one Mac web editor that broke new ground. But when we started work on Nova, we looked at where the web was today, and where we needed to be. It was time for a fresh start. A powerful editor.

A themeable interface.

Flexible workflows.

Robust extensions.

And lots of settings.

The Editor. It all starts with our first-class text-editor. It's new, hyper-fast, and flexible, with all the features you want: smart autocomplete, multiple cursors, a Minimap, editor overscroll, tag pairs and brackets, and way, way more. For the curious, Nova has built-in support for CoffeeScript, CSS, Diff, ERB, Haml, HTML, INI, JavaScript, JSON, JSX, Less, Lua, Markdown, Perl, PHP, Python, Ruby, Sass, SCSS, Smarty, SQL, TSX, TypeScript, XML, and YAML. It's also very expandable, with a robust API and a built-in extension browser. (Here's a little editor story for fun. During beta we found some bugs in Apple's text layout engine that we just could not fix. Our solution? Writing our own text layout manager… from scratch. Not only did this fix the bugs, but it also boosted our editor's performance. We're not messing around!) But even the best text engine in the world means nothing unless you actually enjoy spending your time in the app. So, how does Nova look?

The Interface. It's beautiful. And clean. And fun. You can make Nova look exactly the way you want, while still feeling Mac-like. Bright, dark, cyberpunk, it's all you. Plus, themes are CSS-like and easy to write. Nova can even automatically change your theme when your Mac switches from light to dark mode.

The Workflows. Nova doesn't just help you code. It helps your code run. You can easily create build and run tasks for your projects. We didn't have them in Coda, but boy do we have them now. They're custom scripts that can be triggered at any time by toolbar buttons or keyboard shortcuts. Imagine building content, and with the single click of a button watching as Nova fires up your local server, grabs the appropriate URL, and opens a browser for you, instantly. Just think of the time you'll save. Nova supports separate Build, Run, and Clean tasks. It can open a report when run. And the scripts can be written in a variety of languages.

The Settings. People have strong editor opinions. And we're here to help. Nova has a whole host of settings. We have easily customizable key bindings. We have custom, quickly-switchable workspace layouts. And we have loads of editor tweaks, from matching brackets to overscroll. (And if there's something you need to work that Nova doesn't have, just let us know! Nova is always changing, always growing.)