Neo by Hugh Howey

The Neo system doesn’t have to be chapters. And the Shelves don’t have to hold books.

It would be simple for you to have a Shelf be a book, have everything in it be Arcs, and then write scenes either in the section slot or the chapter slot. There’s a lot of flexibility. It’s possible to export a shelf together and combine what’s on it.

It does have search, but idk if it has been improved yet. Outlines are based on the chapter slot, which in your case would be scenes.

But it is a simple program, and that’s its appeal. Hugh has stated that he’s more productive with it and that I can well understand. But I’d say it’s a very good program for pantsers, but plotters who want to do their plotting in their writing app are likely to find it insufficient.

1 Like

He’s said that he now does all his writing in Neo. And he doesn’t use AI in writing - to the extent that he spent a lot of effort removing the Siri options when Apple forced it on all apps; there are many users of course who want the Siri menu items back. And his well known books were all written and published pre-AI.

1 Like

I think AI use by coders has reached the point that it will soon be hard to find apps that haven’t been programmed with some AI input. Even if it is not admitted or denied. And it is as capable of writing Mac native as Electron. The big advantage of Electron is that it is relatively straightforward to use produce Linux, Mac, and Windows versions - an equivalence issue Scrivener has always struggled with.

Hugh uses Claude because it works and he can write a program to suit himself. And, having made it open source, anyone else can take the code and vibe code it into something that suits them better.

Going forward, I suspect these possibilities are going to be a huge challenge to closed source paid writing apps.

1 Like

Remember it’s HTML + CSS. Quite complex.

The best text is just text. Plain text without formatting. Usually the easiest to read.

Everything else is about display/printing and whether the writer has wanted extra formatting like italics, fonts etc.

ODT isn’t as comprehensive as docx. Docx is the lingua franca and many people, including writers, need 100% compatibility when working with other people. There may come a time when ODT becomes the new English but I doubt it will be any time soon.

No. For one, You can use italics and such purely for the purpose of design or as semantic elements.

And headings and blockquotes, which are visually distinct from the main body of the text, as well as footnotes and endnotes, make a text easier to read by making its structure clear.

2 Likes

Up to a point.

But there are two issues here. How an app stores the data and how an app exports the data. Most people don’t want to be given books that are pure plain text, or show markup, or show the HTML code.

To reach a useable format, markdown editors export through HTML & CSS into whatever the desired format is. Docx was designed to do it directly, but still needs conversion/export to go to epub.

Neo uses, it seems, rich text with a limited number of markdown inputs for those who prefer to use it. (But you can see with Obsidian that the purists want the markdown, but most just use the traditional WP shortcuts.) And it stores the data in HTML which presumably simplifies the export process. And it is purposely limited in what it is expected to do - no tables, no images (so far) - fiction books (originally novels, now stretched to short stories and anthologies).

Tbh, I’m not sure why the chapters themselves can’t be stored in plain markdown rather than HTML. Still, at least you can export the entire book as markdown/plain text, so it’s not a huge issue.

Markdown is more limited than HTML.

I’m not sure what editor the Neo code is based on.

If it’s a markdown one, then I assume its a design choice or about integrating something else.

It doesn’t accept most markdown markup. But also uses a limited number of HTML commands.

For me, no markdown commands at all would be better. I simply never need markdown files. And I use a very limited number of formatting commands when writing fiction.

And pure markdown is actively too limited for my non-fiction.

Neo basically saves as json, which I’ve always found reliable. Obsidian started, or popularised, a fad for everything being saved as pure (markdown) files. Word Processors were always based around individual files.

yWriter/Scrivener were always a bit of a combo of database and individual files. Databases were always easier to use - because they contained everything relevant - but got a bad name for breaking and having the data locked up and unattainable. Not that I was ever bitten by that. But databases have proliferate since because of their multiple advantages in everyday use but usually now they have good export options into individual files. (Though usually that’s not the totality of the data they store.)

I’m not sure how relevant that is with a program like this, that seems to barely have any formatting at all beyond bold and italics. I see you can change paragraph alignment per line, and there is something called a “Poetry Paragraph”, but neither of these things are beyond Markdown (particularly its more expanded forms as provided by MMD and Pandoc).

Even so, it has always been a premise, and all Markdown engines outside of web input (for security reasons) allow for the seamless interleaving of HTML and Markdown, specifically so you can do whatever you need, if “pure” Markdown doesn’t do it. For a file format, where a super clean file isn’t as necessary, that would be no problem, but again I don’t really see anything it is doing that would require a lot of manual HTML. For example, using Pandoc markup, it already has markup for verse:

| Line one
| Line two
| Line three

And I could also implement paragraph alignment like so:

::: Align-Right
Text of paragraph...
:::

This produces:

<div class="Align-Right">
<p>Text of paragraph...</p>
</div>

Well, it’s not too big of a deal what it uses to write to the disk, as I said above, I’m more interested in how I can write in a thing, and how I can export. For something as simple as this, HTML is fine really.

yWriter/Scrivener were always a bit of a combo of database and individual files.

I can’t speak to how yWriter works, but Scrivener uses zero database tech. The project consists of human readable XML and standard text file formats, and is specifically designed to be recoverable without extensive experience in computing or special software. The only exceptions are some volatiles that aren’t necessary for data reconstruction, like Mac PLIST files for state saving.

1 Like

I think you will find that pure text is fastest for pure reading speed.

You can invent semantics that lie outside the text, but otherwise all these are display elements designed to aid or speed comprehension, which is different. And I do agree that they are important.

And poor readers would struggle with pure text, especially if there’s a large mass of it. They need all the help they can get - short words, short sentences, white space, headings, segmentation, pictures can all be very important here.

Markdown - and other plaintext formats - is always slower even for very experienced markdown readers. But can be easier to see and edit the formatting when writing.

json is a plaintext format. Sort of. I wasn’t trying to imply that Scrivener uses database tech, more that it’s in an intermediate position because it’s not pure files either. The position Obsidian was in when it started keeping indices.

I may not be understanding the digression, but Obsidian for at least as long as I’ve been using it, which is near the beginning, has used JSON for vault configuration. In that conceptual sense Scrivener and Obsidian are not very far apart. There are some structured plain text files (XML, JSON, YAML, whatever you use), to describe how the content files are organised, local settings, and how to present the user interface in a window.

All three, including NEO (which uses HTML and JSON primarily) use a folder structure system, where the largest unit of measurement (project / vault / book) is one folder containing everything it needs to reproduce the data on another machine in full.

1 Like

And this is where markdown hits issues. It’s not a truly universal language. There are multiple local dialects whereas HTML is strongly controlled.

But I don’t know why he chose to use HTML as a save format. Maybe it simplifies something in Electron?

Another update today. He’s improved the outlining side of things. You can switch between the list from before and a new index card view.

Honestly I think that’s a mostly dated argument, from the days before CommonMark. Nowadays you can very safely write simple Markdown and be sure it will work everywhere. The only times I’ve hit issues are with extremely old and poorly maintained websites the predate CommonMark. As for whether or not to use Pandoc when creating complex documents, that seems a personal purity test of sorts? I don’t have a problem targeting a specific conversion pipeline and using all of its features if that benefits me. Scrivener makes it simple to add or omit extended formatting anyway, if you use styles for this stuff.

That said, I was mainly commenting upon how software could use Pandoc internally as a storage and production system, not what we as writers write with, so that above isn’t super relevant to Neo and whether it could use .md.

That’s where I struggle in tools like this, or pure Markdown writing tools: the alternatives to a style-based writing system is a lot of clutter to write and read around. It’s fine if your document/book just uses italics, maybe a block quote here and there, but I tend to want more semantics in my writings than the core stylistic assertions. I’m readily aware that a tool like Neo isn’t really aimed at me though. :smiley:

1 Like

json was used from the beginning in the .obsidian folder for internal configuration. But the original didn’t actually need anything. It would import whatever it was pointed at and work from there. The folders are file system folders.

Neo’s file contains all documents, folders etc. Everything. Import and export is vital.
Scrivener’s file is per project. Although it is a long time since I opened Scrivener now; I’d still be a bit surprised if that had changed. Export is vital for file exchange with another program.
With Obsidian, the files belong to the file system and can easily be edited in other programs. Unless it has changed dramatically since I stopped using it. There’s no need for import or export, just conversion.
With Word there are the individual files, and that’s it. Nothing to organise or manage multiple files. Again, can be edited in other programs and no need for import or export just conversion.

1 Like

I fear it will be extended to all sorts of things it wasn’t originally aimed at. Scriptwriting already.

For me, writing fiction, my observations are the same as Hugh’s: I’m more productive (quality and quantity) using early Neo. One thing it tells me is that this design helps me, and if Neo bloats or changes too much, then I will design something of my own instead. Slightly thinking of forking already to get colour text and highlighting, which I use for review/edit.

For non-fiction, it doesn’t begin to meet my needs. But that’s okay because I am already happy with my setup.

1 Like

There seem to be multiple updates daily. Even when he says he’s concentrating on writing. A few I like, but only a few. I’ve have a block on its access to internet, so that I don’t get stuck with an update I don’t want. The outlining sounds as if it has improved though.

But I’ll still do all my prewriting outside.

I still don’t quite understand the purpose in containing a chapter’s outline strictly within the main view. Let me put it another way, I definitely do appreciate seamlessly switching between text and outline, and that is something I do a lot of in Scrivener (editing in Scrivenings mode, hitting the shortcut to switch to Outliner, then back). It means one can approach outlining with the same philosophy they approach text editing. What I also appreciate though is being able to see the structure of my “chapter” in the main sidebar. Where that becomes an advantage, in my opinion, is that one is longer restricted to arbitrary units like “chapter”. I can outline or write within a section, or subsection, within a chapter just as easily in Scrivener. It’s merely a matter of where I click to start, and how deeply I’ve expanded the full outline.

My disclaimer would be that I’ve never been super into software that puts a hard limit on what you can do with it (most minimal-first designs). All software has limits of course, but something like Scrivener gives you bunch of building blocks and from there you can design a structure and implementation for how you approach your work. I’m telling it how I want to work with this document, I’m not contorting how I work with a document to fit into the one way it works.

I guess if by some miracle the given UI works exactly how I want to work already, then maybe I could go with it, and it sounds like right now it is in that spot for you, @Dor. But it’s kind of like what I was speaking of above with styles, and how in Scrivener if I need a special type of text block I don’t have to beg for a menu command to be added that triggers a special hard-coded environment (like poetry mode), I just make a style. I have freeform abilities to describe the structure of my text, and upon compiling, freeform abilities to take that structure and make it something the output uses too—whether that be Pandoc’s extended markup, raw HTML, or just nothing at all if I deem the structure isn’t necessary for the output target.

I’ll definitely be keeping an eye on the project, as it’s nice to watch early software evolve into what it will be.

2 Likes

I have wondered the same thing. Neo is just one example of a vibe-coded writing app that was presumably so quick and easy to create (because Claude built it for him) that Mr. Howey could release it as a free and open source app. “Claude, make me a writing app that does X, Y, and Z.” (I’m oversimplifying it, but not by as much as one might think.)

Others are releasing paid writing apps that are rolling out features so rapidly that surely they are vibe-coding them. That’s probably the biggest threat to traditional writing-app developers and puts pressure on them to vibe-code, too.

For me, the “aha” moment was the realization that I can very quickly create a writing app that suits just me as a novelist and is tailored to the particular writing project I have in front of me, as I demonstrated in my video shared in If Scrivener, Aeon Timeline, and Obsidian had a baby.

This experience is radically different from competing for the attention of a software developer to create or improve features that I would find helpful. (I say this without joy, because AI is pushing brilliant, dedicated, self-sacrificing software developers out of their chairs. I hate that, I really do. But here we are, I guess.)

1 Like