Hugh Howey’s NEO: vibecoding, what else?
Hugh Howey is the author of the Silo Saga (Wool, Shift, and Dust), the science fiction series Silo (Apple TV) is based on. Not such a huge author until Apple TV adapted his novels, eh?
✍️ 1 ● Vibecoding NEO
In this age of vibecoding, he and Claude created a “distraction-free word processor for authors” (the “distraction-free” is a stupid mantra both for text editors and word processors!) called NEO, which runs on macOS, Windows, and Linux (AppImage-only). Indeed, if it complains about a sandbox, you can either run the AppImage with --no-sandbox, or create an AppArmor profile for this app. I keep saying that AppArmor is garbage (SELinux is even worse), but paranoids say it’s necessary.
I hate the “distraction-free” cliché, but I’d appreciate a simple word processor tailored for the needs of wannabe or established writers (unlike Dedoimedo, I never tried writing shit). I expect from such a tool not just “less is more,” but also help with creating a book structure.
Here’s the official presentation video by Hugh Howey himself: NEO – A Writing Tool for Authors.
From the video’s description:
This is my full-time writing environment. NEO doesn’t have all the features of some other writing software, and that’s the point. This is for getting that rough draft written, in a distraction-free environment and minimal UI. You can write an entire novel in NEO using nothing more than your keyboard. The ENTER key does all the heavy lifting.
The other goal with NEO is to remind you that you’re writing a book, not a document. Your WIPs sit on shelves, and you can see their cover art. NEO remembers where you left off every project, so you are never scrolling from the top each time you reopen it. Create shelves to organize your projects, drag and drop so you remember what to work on next, and keep writing!
There is an outline feature for people who prefer it. Typewriter mode for fans of that. Dark and light modes, and a great full-screen UI with dimmed elements. The hope is that you get lost in your own worlds!
Ah, right, NEO’s proper home is not on GitHub.
✍️ 2 ● It’s uninspiring
Unfortunately, Howey’s NEO failed to impress me. Its ergonomics feel half-baked; the keyboard shortcuts are generally useful, but some are incredibly stupid (“One Enter: new paragraph. Two: a section break. Three: a new chapter.”), and I found it dumbfounding (sic) that documents are saved as HTML and have to be exported as Markdown, Word, or ePub. I expected them to use Markdown as the native format, especially as “Markdown emphasis” is turned on by default! Stupid, stupid Claude…
If it’s about a book, not code, I find dark interfaces stupid, so I had to select “Page: Light”; “Brighter interface” actually means “use a proper contrast for everything that’s outside the actual page.” The defaults (“dimmed elements”) are in poor taste and low contrast, and the toggle between dark and light mode is dumbly named: no, it’s not about the page, but about the entire UI! “Page: Night” makes everything on a dark background (not entirely black); “Page: Paper” makes the paper white; and “Page: Light” switches everything to a “normal” light UI.
To make a light background less eye-straining, fucking make it off-white, cream, ivory, or light beige! In version 1.4.0, NEO can have the page #232221 (1.6% relative luminance, 13.4% perceived brightness; practically black) or #FBFAF7 (95.6% relative luminance, 98% perceived brightness; practically white!). When I read books on my phone, I use the following page colors in my apps:
- eReader Prestigio: #EEE7D8 (80.3% relative luminance, 90.8% perceived brightness)
- Lithium: #EEE5D1 (78.8% relative luminance, 90% perceived brightness)
- Liseur: #F5EFE1 (86.6% relative luminance, 93.8% perceived brightness)
- Kindle: #F9F0DB (87.6% relative luminance, 94.3% perceived brightness)
My setups decrease the luminance by 20-22%. The brain perceives the image as only 6-10% darker, but the eye is meaningfully protected because it receives 20-22% less light.
Now, if NEO had a less white white… This isn’t something Claude should have thought of, but the human developer responsible for the “human factors.”
If you’re puzzled by the above numbers: the eye is a logarithmic detector, not a linear one, which is why 1.6% relative luminance is perceived as 13.3%! The eye allocates most of its “sensitivity budget” to the darker shades, because that’s where survival mattered most when reading was non-existent. Deep shadows are amplified by ~6–10×, midtones only by ~2–4×, and everything over 50% luminance isn’t amplified (~0.8–1.2×).
✍️ 3 ● Extra features
I didn’t test the import mechanism, but it’s good to know that it can import Word, Markdown, and Fountain documents, the latter format being another stupid fad invented in the Apple ecosystem. AsciiDoc would have been a nice addition, but it’s meant for non-fiction.
OK, the Fountain thing is explained here: NEO for Screenplays!
This has been the most-asked-for feature for NEO, and I’ve been working on it in secret for a while now. It’s rough, and it’s going to be a kinda-hidden feature until it’s been stress-tested, but if you want to write a screenplay in NEO, now you can!
To start one, right-click the “new document” icon on any shelf and choose “New Script.” Type in your title and hit enter. NEO will give you a scene heading, and it tries to autocomplete entries just like Final Draft and other industry-standard software. It’ll remember your cast, and a TAB will complete names.
If you hit ENTER from a line of dialogue, NEO will go to an action element. Hit ENTER again, and you’ll switch to another line of dialogue. Once you get the hang of it, it makes for very quick flow. You can always select your element from the left panel or from hotkeys. COMMAND + 1-7 give you each element (same keys that Final Draft uses, so it’ll be familiar for some of you).
✍️ 4 ● Fonts are a ginormous flop
Among the many things I don’t understand: why the only predefined fonts are these seven under Windows: Georgia, Palatino, Baskerville, Cambria, Constantia, Jost, and iA Writer Quattro (any other font must be selected from those installed on your system), as long as the project’s fonts folder includes 23 fonts, among which Alegreya, Libre Bodoni, Source Serif Pro, Gelasio, Josefin Sans, Courier Prime, Lora, Playfair Display, and Merriweather? Bug #295 shows that the seven fonts available under Linux are a different set: Gelasio, TeX Gyre Pagella, Libre Baskerville, Alegreya, Source Serif Pro, Jost, and iA Writer Quattro!
This is beyond stupid!
Which OS makes Merriweather available? The answer can be found in styles.css:
/* Linux body faces: Gelasio → Merriweather, TeX Gyre Pagella → Lora,
Libre Baskerville → Old Standard TT */
@font-face { font-family: 'Gelasio'; src: url('fonts/merriweather-cyrillic-400-normal.woff2') format('woff2'); font-weight: 400; unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; size-adjust: 87.4%; ascent-override: 106.2%; descent-override: 39.1%; line-gap-override: 0.0%; }
@font-face { font-family: 'Gelasio'; src: url('fonts/merriweather-cyrillic-400-italic.woff2') format('woff2'); font-weight: 400; font-style: italic; unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; size-adjust: 86.5%; ascent-override: 107.2%; descent-override: 39.5%; line-gap-override: 0.0%; }
@font-face { font-family: 'Gelasio'; src: url('fonts/merriweather-cyrillic-700-normal.woff2') format('woff2'); font-weight: 700; unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; size-adjust: 87.4%; ascent-override: 106.2%; descent-override: 39.1%; line-gap-override: 0.0%; }
@font-face { font-family: 'Gelasio'; src: url('fonts/merriweather-cyrillic-700-italic.woff2') format('woff2'); font-weight: 700; font-style: italic; unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; size-adjust: 86.4%; ascent-override: 107.4%; descent-override: 39.6%; line-gap-override: 0.0%; }Gelasio is a fake font emulated through Merriweather!
But, FFS, look what the project includes: gelasio-latin-400-italic.ttf, gelasio-latin-400-normal.ttf, gelasio-latin-700-italic.ttf, gelasio-latin-700-normal.ttf! This is a complete fuck-up!
I can see in app.js what a huge mess the approach to font management is:
/* ================================================================== */
/* Linux body fonts */
/* Georgia, Palatino, Baskerville, Hoefler Text, and Iowan Old Style */
/* are not on Linux. The bundled faces below are what the Format menu */
/* and the first-run picker offer instead. Old libraries still resolve */
/* the macOS names, but those names stay out of the picker. */
/* ================================================================== */
const LINUX_BODY_FONTS = {
'Gelasio': '"Gelasio", Georgia, "Times New Roman", serif',
'TeX Gyre Pagella': '"TeX Gyre Pagella", Palatino, "Palatino Linotype", serif',
'Libre Baskerville': '"Libre Baskerville", Baskerville, Georgia, serif',
'Alegreya': '"Alegreya", "Hoefler Text", Georgia, serif',
'Source Serif Pro': '"Source Serif Pro", "Iowan Old Style", Georgia, serif',
'Jost': '"Jost", "Avenir Next", "Helvetica Neue", Arial, sans-serif',
'iA Writer Quattro': '"iA Writer Quattro", "Helvetica Neue", Arial, sans-serif'
};
function installLinuxBodyFonts() {
if (IS_MAC || /win/i.test(navigator.platform)) return;
const legacy = {
Georgia: LINUX_BODY_FONTS.Gelasio,
Palatino: LINUX_BODY_FONTS['TeX Gyre Pagella'],
Baskerville: LINUX_BODY_FONTS['Libre Baskerville'],
'Hoefler Text': LINUX_BODY_FONTS.Alegreya,
'Iowan Old Style': LINUX_BODY_FONTS['Source Serif Pro'],
Cambria: LINUX_BODY_FONTS['Source Serif Pro'],
Constantia: LINUX_BODY_FONTS['Libre Baskerville']
};
for (const key of Object.keys(BODY_FONTS)) delete BODY_FONTS[key];
Object.assign(BODY_FONTS, LINUX_BODY_FONTS);
for (const [key, stack] of Object.entries(legacy)) {
Object.defineProperty(BODY_FONTS, key, {
value: stack, enumerable: false, writable: true, configurable: true
});
}
DROPCAP_FONTS.literary = '"Libre Bodoni", "Didot", "Bodoni 72", Georgia, serif';
DROPCAP_FONTS.fantasy = '"TeX Gyre Chorus", "Apple Chancery", "Snell Roundhand", cursive';
DROPCAP_FONTS.scifi = '"Jost", Futura, "Avenir Next", "Helvetica Neue", sans-serif';
// A shared choice list, when the renderer defines one, has to name these
// bundled faces on Linux rather than fonts the machine does not have.
if (typeof BODY_FONT_CHOICES !== 'undefined') {
BODY_FONT_CHOICES.splice(0, BODY_FONT_CHOICES.length, ...Object.keys(LINUX_BODY_FONTS));
}
}
installLinuxBodyFonts();The fonts for drop caps are defined more than once:
const DROPCAP_FONTS = {
literary: '"Didot", "Bodoni 72", Georgia, serif',
fantasy: '"Apple Chancery", "Snell Roundhand", cursive',
scifi: 'Futura, "Avenir Next", "Helvetica Neue", sans-serif'
};
const BODY_FONTS = {
'Georgia': 'Georgia, "Times New Roman", serif',
'Palatino': '"Palatino", "Palatino Linotype", serif',
'Baskerville': 'Baskerville, "Baskerville Old Face", Georgia, serif',
'Hoefler Text': '"Hoefler Text", Georgia, serif',
'Iowan Old Style': '"Iowan Old Style", Georgia, serif',
'Cambria': 'Cambria, Georgia, serif',
'Constantia': 'Constantia, Georgia, serif',
// a sans-serif for those who write in one (bundled, so it's the same everywhere)
'Jost': '"Jost", "Avenir Next", "Helvetica Neue", Arial, sans-serif',
// iA Writer's own face, bundled too (SIL Open Font License)
'iA Writer Quattro': '"iA Writer Quattro", "Helvetica Neue", Arial, sans-serif'
};
// Hoefler Text and Iowan Old Style ship only with macOS; elsewhere they
// would fall back to Georgia, so offer the fonts Windows actually has.
// Keep in step with bodyFonts in main.js.
const BODY_FONT_CHOICES = IS_MAC
? ['Georgia', 'Palatino', 'Baskerville', 'Hoefler Text', 'Iowan Old Style', 'Jost', 'iA Writer Quattro']
: ['Georgia', 'Palatino', 'Baskerville', 'Cambria', 'Constantia', 'Jost', 'iA Writer Quattro'];
Offer the fonts Windows actually has? But your fucking app includes 23 fonts as resources!
IS_MAC was supposed to set the same fonts for Linux and Windows, except Linux has its own tweaks, as we saw. What a gigantic mess…
Either way, the exported .docx in version 1.3.9 sets the font to Georgia, regardless of the user’s choice (bug #309). The bug is also present in version 1.4.0.
Oh, but at least it smartifies the quotation marks; after all, it’s a word processor of sorts, not merely a text editor.
✍️ 5 ● Checking Portuguese and Romanian
Another quirk that stands out: the spell checkers for Portuguese and Romanian get special treatment. I’m not sure what Portuguese’s special requirements are, but Romanian’s are what I expected.
Proper Romanian diacritics exist in Windows since December 2006 (a patch for XP SP2, then Vista), and yet most Romanians write “șțȘȚ” with a cedilla (“şţŞŢ”) instead of a comma. I can’t understand this epidemic of mental retardation that makes them install the “Romanian (Legacy)” (“Română (Tradițional)”) keyboard layout instead of “Romanian (Standard)”! Why would anyone prefer something non-standard? Romanians are the only people on Earth to have more than 90% of the population writing on computers using the wrong diacritics!
There must be few Romanians who use LibreOffice, because its spell checker uses the correct diacritics and flags the wrong ones.
One cannot blame the fact that when people upgraded their Windows systems, the OS did not reset their keyboard layout to the modern standard. Computers from the era when only “Romanian (Legacy)” worked would be far too slow for Windows 10, let alone incompatible with Windows 11! The persistence of this issue in 2026 is not a technological failure; it is a socio-cultural pathology, and the primary vector is this mindset: “Gogu (or Dorel) from IT told me to configure the keyboard like this. He knows better.”
NEO, however, is built to accommodate such retards, as mentioned in romanian-spellcheck.md (“Romanian lookup normalizes NFC and maps legacy cedillas to comma-below letters. It keeps original response keys and manuscript offsets.”) and implemented in spell-ro.js.
'use strict';
// Hunspell reads [email protected] as published (a prefix and a suffix
// may share a flag there, which the old nspell engine needed converting).
// What stays: accept legacy cedillas and decomposed accents without editing
// the text or stripping meaningful diacritics. Suggestions use standard
// spelling.
function normalizeRomanianWord(word) {
return word.normalize('NFC').replace(/[şţŞŢ]/g, (c) =>
({ 'ş': 'ș', 'ţ': 'ț', 'Ş': 'Ș', 'Ţ': 'Ț' })[c]);
}
module.exports = { normalizeRomanianWord };✍️ 6 ● NEO Pocket
NEO Pocket is a project within a project:
The Android and iOS companion to NEO: open a WIP, write, close. The manuscript editor is desktop NEO’s own code (
app.js/styles.css, copied in at build time), running in a Capacitor shell with a pocket-sized implementation of thewindow.neobridge (www/pocket-bridge.js). Same plain files as the desktop, no accounts.
- Android: files live in
Documents/NEO Library, shared with the desktop via Syncthing.- iOS: files live in the app’s own folder. With iCloud Drive on, that’s iCloud Drive → NEO Pocket → NEO Library (still local files; Apple carries changes in the background), and desktop NEO can point at the same folder with File → Library Folder…. With iCloud Drive off, it’s On My iPad → NEO Pocket. Nothing is required on the desktop side: NEO stays local unless the writer chooses that folder.
The desktop app is an Electron app, while the mobile one is a Capacitor app.
Currently, NEO Pocket is in an early alpha stage, although neo-pocket.apk can be grabbed and installed (I did not). Someone asked (bug #299) for an F-Droid inclusion.
✍️ 7 ● Enter Jack Wallen
Jack Wallen is ZDNET’s writer of enthusiastic shit regarding Linux. Every distribution he writes about is his favorite; it’s wonderful; it could replace—or will replace—Windows; and you should definitely install it!
This time, it was bragging time for Jack: How I built the writing app I needed in 2 hours for free – with Ollama and VS Code.
He started his crap like this:
Over the weekend, I decided I needed a specific writing tool… that didn’t exist. Everything I’d tried was either too cumbersome, lacked the features I needed, or was too expensive.
It was then I heard about a fellow author (Hugh Howey) who started working on his own writing app (NEO) about ten years ago. At that time, he was a software developer, and he felt the same way that I did: most word processors were too bloated for the needs of an author.
For me, when writing a first draft, I only need certain features (spell/grammar check, dashboard, formatting, export/import, light/dark modes, etc.) and nothing else. Scrivener was too expensive, and the traditional word processors were too much, or tied to larger subscription models.
I tried Howey’s NEO and liked it, but I wanted to craft something specific for myself. The problem is, although I’m “developer-adjacent”, I’m not a full-on developer. I can work with Python, CSS, HTML, and a tiny bit of JavaScript, and I knew that wouldn’t cut it for my use case.
So, I turned to locally-installed AI. I knew exactly how to describe the app I wanted, so I thought I’d give it a try and see if it could succeed at what I couldn’t. The catch was that I didn’t want to have to pay for it. I am a writer, after all, and we’re not exactly known to be rolling in the dough.
Good thing I know how to work with locally installed AI, which is how I pulled this off. Let me show you how I did it.
2 hours, my ass. I know how vibecoding works. This was a pretext for Jack to tell you how to use a local AI instead of a cloud one. Free if you have 32 or 64 GB of RAM and an Nvidia GPU, but much slower than using a cloud-hosted LLM. Look what a mess:
Chat – Llama 3.1 8B, Autocomplete – Qwen2.5-Coder, Edit – Llama 3.1 8B, Apply – Llama 3.1 8B, Embed – Transformer.js, Agent – gemma4:latest.
You can certainly use VS Code professionally this way. But vibecoding requires more powerful agents, which often can benefit from a distinct IDE or CLI (if I’m not mistaken, most are CLI, but Antigravity IDE and Amazon Kiro are reasonably popular, too).
Forget about all the bugs and limitations of NEO. Jack is a genius, and his mediocre LLMs did miracles:
If you’ve used AI before, this should be familiar. In the Describe what to build window, type out the description of the app you want VS Code to build; make sure to be as specific as possible, including all of the features you want. For example, when I needed Quillmarker to include formatting, I added “formatting options similar to that of LibreOffice.” If you’re not specific, or you leave out features, you’ll wind up having to iterate the app again to add them.
This will take some time, and you’ll have to give VS Code permission to do certain things (such as run commands) as it builds. You can walk away and do other things, but when you come back, it might ask you to approve a permission. Don’t worry, VS Code will wait for you.
The initial build took roughly two hours. After that, I would have to iterate it again because I might have forgotten a feature or wanted something refined. All in all, I believe it took about seven iterations to complete. When it was finished, I found the Linux AppImage (that’s what I asked it to create, so it could be used on any Linux distribution) in ~/quillmarker/releases. After installing, I started writing.
It’s a lengthy process, but in the end, it was worth it. I’m using Quillmarker for my next novel, and I’ve found it to be a joy to write with.
This will take some time, and you’ll have to give VS Code permission to do certain things (such as run commands) as it builds. You can walk away and do other things, but when you come back, it might ask you to approve a permission. Don’t worry, VS Code will wait for you.
The initial build took roughly two hours. After that, I would have to iterate it again because I might have forgotten a feature or wanted something refined. All in all, I believe it took about seven iterations to complete. When it was finished, I found the Linux AppImage (that’s what I asked it to create, so it could be used on any Linux distribution) in
~/quillmarker/releases. After installing, I started writing.It’s a lengthy process, but in the end, it was worth it. I’m using Quillmarker for my next novel, and I’ve found it to be a joy to write with.
Novel? So, beyond all that shit, this guy really wrote stuff?!
But this Quillmarker thing isn’t open-source, and the only proof of its existence is this photo. Wow, full formatting and whatnot—Jack rewrote LibreOffice Writer “Lite” in 2 hours using gemma4:latest and Llama 3.1 8B!
Oh, wait! I missed this part:
… a fellow author (Hugh Howey) who started working on his own writing app (NEO) about ten years ago.
TEN YEARS AGO?! The GitHub repository started in August, 2026.
Yet because Jack told the truth, I did not believe him.
✍️ 8 ● A ten-year hiatus
What happened is that back in 2017, Hugh Howey thought about developing NEO. He conceptualized it and described in detail how it should work, but he didn’t get much done.
July 16, 2017: Neo – A Word Processor for Authors:
I’m going to lay out the design and features of my perfect word processor program, which I’ve dubbed Neo. I’m in the early stages of looking at consultancies and programming teams to ascertain what it would take to build this. It might be years. I might have to brush up on my programming chops and spend decades doing it myself. It might cost me a huge chunk of change. If it does get built, I hope to make it open source, so we can improve it over time and it can meet the needs of the most number of writers. But it won’t be design-by-committee. Bloat has ruined some of my favorite writing applications.
So let’s talk about Neo.
…
Ideally, Neo will be open sourced and free to use. I’m exploring any and all options. Maybe something branded for NaNoWriMo, or Goodreads, an ebook retailer, or a writing website. If you have thoughts, leave a comment below. I’m currently talking with programmers and consultants on how to get this done. Might be a decade before anything comes to light, so don’t hold your breath. But I’m willing to invest the time and money to make this a reality.
Over 4,000 words of text, not code. He invested shit—for ten years he mostly invested dreams —but then vibecoding suddenly existed, and in the first week of August 2026, bingo!
August 10, 2026: Introducing NEO:
Nine years ago, I wrote a blog post about my ideal novel writing tool called NEO.
…
The last time I worked on this application, it was with a software developer while I was sailing across the Pacific. Limited internet access made the collaboration difficult, and we never got past basic functionality. It wasn’t good enough for my daily use, so I never shared it with you all. Today, that changes.
…
It’s still rough, not even beta-worthy, but NEO is now the first thing I boot up in the morning. It’s where my writing is happening. And I’m in love with it. But there’s a lot to work on, so it’ll keep changing. If anyone wants to use it, it’s free! If you find bugs or have suggestions, leave a comment on this blog post below (or at GitHub). I’ll take your thoughts into consideration, but I’m not interested in feature creep or bloat. Just simple and functional. If you want to take the source code and run with it, have a great time!
He likes sailing. It’s a miracle that he managed to pull himself together to vibecode NEO! It eventually happened, though.
✍️ 9 ● Learning from Hugh Howey
Diet and workout:
July 15, 2025 — My Routine. I need to reread it twenty more times, but it’s impossible. Too much work(out).
Shitty conservative South:
March 1, 2026 — Change is Okay:
Part of growing up in the deep south was also learning that the north was evil. Cities were evil. We called them “yankees” and “carpetbaggers.” I learned before I was ten that people from the north liked to come down and steal things from us. It was in our DNA to think this. Passed down from reconstruction. In history class, we learned the basics of the Civil War, but from our parents and our friends, we learned that the war was all about States’ Rights (and what can be wrong with states having rights?!). It was also the “War of Northern Aggression,” and sure enough most of the battles took place in the South, so obviously the North was attacking us. It wasn’t ever about slavery. These were uncontested facts. You wouldn’t encounter anyone who disagreed with any of this.
God, The South, Family. In that order. I’m not kidding, and you really have to pause and wrap your mind around this. Being a Republican was part of your identity. Even today, you find people are more willing to walk away from their family than their political party. And forget walking away from God for any reason. The order above was seriously accurate, and more easily stated as: God, Politics, Family.
…
Rush Limbaugh and Fox News didn’t destroy my dad, they just finished what religion and the South had already started. Pushing him toward fear. My dad used to send me emails about how Muslims were having more babies and would take over the world. He thought Hillary Clinton was the most evil person who ever existed. The best Mexican restaurant in town became off-limits after Obama ate there once. My father had a good heart and was a decent man, but he began thinking and saying evil things. It was hard not to when that’s all you ever came in contact with.
It was a process that took place over decades, right alongside the general rot of political discourse in the United States. A good 30-40% of people still identify as Republicans, because they grew up that way. It’s an identity, not a belief system. The beliefs are handed to you, not arrived at through a process of reasoning. The North are the bad guys. Cities are disgusting. Democrats are evil. God is real.
What he doesn’t realize is that having only two political parties barely makes it a democracy. As the French say, “C’est le minimum syndical.” If, instead of 30-40% of people, only 10% still identified as Republicans, then with 90% Democrats, it would be almost a single-party country!
Writing and getting published:
August 27, 2017 — Writing Insights Part Four: Publishing Your Book:
This is by far my most important insight when it comes to your writing career: Unless you sign away the right to make future decisions, no publishing decision is forever.
I can’t overstress the value of this insight. All the insights that follow are secondary, because if you make this mistake right off the bat, then none of the rest of my advice matters. Everything is negotiable until you negotiate away your right to negotiate.
When you sign with a publishing house, you no longer have control of your published work. You may no longer have control over your writing career. Many publishing contracts include no-compete clauses that preclude your ability to publish elsewhere for fear of competing with the work they are acquiring. Some publishers worry you’ll have too many works coming out in too many places! Greater market penetration is incorrectly seen by these publishers as a problem.
AI:
December 29, 2025 — Art, Money, and AI. The part with “I’m part of the Anthropic lawsuit” contradicts the spirit of everything else he wrote. And I disagree with a lot of it. Novels written by AI are bad. LLMs trained on copyrighted materials are not.
February 22, 2026 — The Limits of AI:
That’s a future we could design and work towards right now, with existing technology and wealth. But … of course we won’t do that. We aren’t that far evolved, and we may never be far enough evolved. What’s more likely is that our societies will crumble because we couldn’t be human to one another. Men will continue to backslide into the barbarism from which we came, built on aggression and fear, and women will keep making the decision to have less to do with us and more to do with themselves and one-another. Population collapse will accelerate; we will reach a point where economies contract, leading to wars of aggression and aggrievance. …
The limit holding us back will never be the limits of AI, but rather the limits of our biology. Can we stop hurting ourselves and others? … I’m an atheist, and the 10 commandments start off with some very weak sauce about fearing no other god and what not to believe, but even I can see that most of our problems would be solved if we lived by the rest of what’s there. No lying. No jealousy. No killing. We’ve had all the answers for thousands of years. We still can’t abide by them.
This is why OpenAI is in trouble, why the AI bubble will burst, and why AGI will not fix everything. We know what to do. How to live. How to solve all our problems. There’s no deficiency in our brains. The problem is and always has been our hearts.
February 25, 2026 — The AI Bubble is Bursting:
AI is not going to disappear from your life. In fact, you’re gonna have a difficult time avoiding it. …
So for those who hope AI will just go away, it won’t. And you might not believe this now, but in ten years you’ll wonder how we got by without it. …
But right now, the tools are not living up to expectations. In fact…
… the AI hype train is derailing as I write this. AI will eventually lead to gains in productivity, but those gains are going to be marginal. That’s the optimistic take. Right now, there are practically zero gains. …
…
Now for the AI Investment Bubble. …
May 31, 2026 — The Tragedy of the Commoner. Ford, Walmart, Amazon, and Gary Rollins.
July 31, 2026 — The End of an Era: “Unpublished Novel Pulled After $2.4M Deal Due to AI Authorship Concerns.”
August 14, 2026 — The Bergerac Test. Not for the post itself, but for his answer to someone’s “AI in the arts is sad, terrifying and theft from actual artists”:
All art is theft from actual artists. Nothing is created in a vacuum.
And these AI models could easily be trained on material in the public domain, which would bypass the “theft” angle. Some models have done just that, and they still pose a problem for creators.
I think we need to get more nuanced and logical in our objections. Saying “theft” and “it’s not art” doesn’t change anything, and neither of these are core to the problem at hand. We’d still be dealing with this any way you cut it.
August 16, 2026 — Dogshit. On model collapse and the EU’s watermarking mandate.
August 16, 2026 — My bad.:
It was today that I found out just how much I’ve contributed to various LLMs. If you hate the way AI writing sounds, you’ll probably hate my books. And the whole em dash thing is seriously my fault.
September 26, 2026 — The AI Bubble Explained:
Second misconception: AI is going to kill us in ten years. This is rubbish. It cropped up when a researcher who quit Anthropic said there’s a 10% chance AI kills us pretty soon. Look, we’ve been trying to kill ourselves for thousands of years. AI will one day help us get there, but it’s at least fifty years away, if not a hundred. And the way it’ll happen is a human doing more quickly what humans have been trying to do forever. We’re the problem, not AI (more on this later).
Gas was thrown on this fire recently by calls from the head of Anthropic to “slow down AI research.” Sam Altman and Elon Musk chimed in that they agreed. People are combining this with the Anthropic whistleblower and claiming that something bad is happening internally. What that bad thing is is economics. This is something very basic about AI development that everyone should try very hard to understand: The people building these admittedly very useful tools think that at some point the tool will get so useful that it will unleash infinite profits. Which justifies infinite spending.
Well, guess what? They were wrong, and they are all realizing it. The hilarious thing is that they are wrong in two ways that combine into a perfect storm for their bottom end. The first way they’re wrong is that the models aren’t scaling linearly, so they aren’t hitting AGI when they thought they might. Yes, they are making lots of money in revenue, but they are spending more than they’re making. Lots more. The ratio has gotten better for some of these companies, but the AMOUNT they are losing is unsustainable. You can’t burn tens of billions of dollars every year, thinking next year will be the year you make money, and then keep doing that while being wrong.
AI CEOs are suggesting they all take a break because nobody can keep this up, but their religious belief in the singularity makes them terrified that if any competitor keeps going, maybe THAT person will reach the holy grail they’re all after. They’re terrified of going broke but also terrified of not getting there first. They would love nothing more than to profit off inference and tokens for a few years and stop chasing AGI, which could cost a trillion bucks at this rate. But it’s the second thing which is killing them that they are all realizing: and the second thing is open weight models and local inference.
Open weight is the AI version of open source. … Today’s open weight models from Qwen and Deepseek are stronger than the frontier models were a year ago. …
The other threat scaring big tech is local inference. There are two main uses for AI data centers. One use is to train the next frontier model. The other use is to deliver responses to customers who are asking the AI a question or to perform a task. This latter use is called inference. And in the last few years, performing inference at home on your own hardware has become more and more viable. To the point that today, a user with a $5,000 to $10,000 home computer, can do almost unlimited AI work with a free open weight model and not send another dime to a frontier AI company. That might sound like a lot of money for hardware, but the token cost for what a home machine can do can run into the hundreds of thousands. You can now do decent inference on a laptop or smartphone for basic tasks. AI companies know this and they are terrified of it. …
A call to regulate this industry is a call to freeze development because of both of these fears: the fear that a competitor will race ahead and get to AGI first, and a fear that a Chinese open weight model will gobble them up from behind. There’s no clear path to profitability for these companies right now. They’ve known this for at least a year, probably two. They are freaking the fuck out.
✍️ 10 ● Bottom line
Is NEO any good?
No. Not really. Not much. Not enough.
Could it become commendable?
Not until its fonts and color themes are redesigned from the ground up. So, most likely, no.

„Romanians are the only people on Earth to have more than 90% of the population writing on computers using the wrong diacritics!”
Not just writing, but printing and publishing as well. Well established publishing houses like Polirom still use the Turkish ş cedilla instead of the proper ș or ț. In 2026.