A budget laptop with 8 GB of memory and no graphics card wrote a 30-chapter, 45,000-word novel draft with Google’s gemma4:e4b using BookyAI. It took five days, twelve restarts and me checking on it, and by every measure I use it wrote the same book my RTX 4070 wrote in 18 minutes.

The model

gemma4:e4b is one of Google’s small Gemma 4 models. Ollama lists it at 4.5 billion effective parameters, 8 billion counting its embeddings. The version I ran, gemma4:e4b-it-q4_K_M, is a 6.6 GB download. When I downloaded it, gemma4:latest pointed at this exact model; it points somewhere else now, which is why I name the full tag.

The laptop is an ASUS with an Intel Core i3-1215U, 8 GB of RAM and Intel UHD graphics. Ollama can’t use that graphics chip (its log says “dropping integrated GPU”), so every word was written by the processor. When Ollama started one morning, it reported 1.3 GB of memory free. That is the room it had to work in.

This is the Gemma that fits. The model that made my six-year-old 6 GB graphics card useful, gemma4:26b, needs about 18 GB of memory and cannot load on this laptop at all. In a quick test before the run, e4b wrote at 4.1 tokens per second on the laptop’s processor alone.

Why I kept coming back to e4b

The honest reason is speed. On my 4070, e4b writes a 30-chapter book in about 16 minutes. On my backoffice computer, the one with the 2060 that has my email and everything I need for work, it takes about an hour and a quarter. I can start a book, go list some vintage or do actual work, and come back on a break to a book that’s done or nearly done. I’d like the 4070 free for making videos again, and the backoffice machine is my workhorse, so a model that runs well on both matters to me.

While this series has been running, BookyAI has added features I wasn’t testing here. You can upload a blueprint that spells out the whole book, chapter by chapter, and add your own stories through its interview feature. I’ve been playing with those on my inspirational books, about five of them with e4b. I like to play. The problem with playing is that I lose track of what I did and what worked, which is the selfish reason this series exists: I want to know which model is best for my books.

One of those books is out: Forest Bathing for Busy People, book one of my Inner Light Series, written with gemma4:e4b-it-q4_K_M on October 11 (BookyAI 1.9.23, the current version that day). I did a brain dump, had BookyAI turn it into a blueprint, and had Claude help me tighten that blueprint. It gives each of the 23 chapters a purpose, a must-include list and an avoid list, and it sets rules for the whole book: no health claims, no invented facts, and anything uncertain marked [VERIFY] for me to check.

My edit was light, and it wasn’t enough. I cleared the 16 [VERIFY] notes the model left me and changed little else: 96.9% of the published sentences are word for word what the model wrote, by my own bookdiff script. The book repeats itself on only 0.7% of its 10-word passages, most of it the practice format repeating by design (“Carry this with you” closes every practice). It’s published under ReachingMyDreams, a project I started in 2024 where everything is AI-generated with as little human touch as I can manage. If you want to see fully AI-written work, that’s the place: the blog posts I generated with ZimmWriter, a Christmas present to myself at the end of 2023, keep publishing there through the end of next year.

Then I gave the chapters to the same ChatGPT judge, blind, using a nonfiction version of my rubric, and it found problems I’d read right past:

  • Run-together words and doubled headings. Seven words with the space missing (“andthe”, “beneaththe”) and three chapters with two headings each.
  • Leftover scaffolding. A few sentences describe the chapter instead of talking to the reader, including “The chapter concludes by establishing that the practice is about simply showing up…” three times. My bookdiff script flagged that sentence, and the flag got skimmed past.
  • A safety contradiction. The book’s rule is never to practice while driving, but one practice still offers “waiting at a stoplight”.
  • Audio cues on the page. My blueprint asked for cues like “(pause 5 seconds)” so the practices can be read aloud. That’s right for an audiobook and odd in print, and that one is my prompt, not the model.

I’ll be updating the Amazon edition with the chapters only. The version I uploaded was a full export that still had BookyAI’s generated front and back matter in it, extras I like to generate for fun and hadn’t reviewed. That one is on me, a late night and three cockatoos.

To be fair to the judge, and to the book: the rubric was built for novels. Forest Bathing got a 1 for dialogue in a book that has none by design, so I wrote a nonfiction version of the rubric, and the scores below use it. “Pretty good” was my own reading of a short nonfiction book built on a detailed blueprint, while the novel in this series runs on a deliberately bare control prompt so every model gets the same thing. And I’m so sick of reading The Affirmation Glitch that I can’t look at it with fresh eyes anymore. This is why I want human readers as well as judges: the judge marked down things that don’t apply to this kind of book, and it caught real problems I’d read right past.

Then I tried the obvious fix. I wanted longer chapters, so I regenerated the whole book on BookyAI 1.9.24 from the same blueprint and the same model. It came back three times as long, and worse:

Published edition (BookyAI 1.9.23)Regenerated (BookyAI 1.9.24)
Wordsabout 34,000110,214
Judge score, nonfiction rubric (out of 50)2118
How much the judge would cut30 to 40%50 to 65%
Judge’s estimate of developmental editing55 to 80 hours100 to 140 hours

Every regenerated chapter ran 3,468 to 6,573 words, against the blueprint’s targets of 400 to 3,800, and they averaged about 4,800. That one is partly on me: my settings asked for two things at once, the blueprint’s per-chapter targets and BookyAI’s 3,000 words per chapter, which 1.9.24 now treats as a minimum for every chapter. The afterword the blueprint wanted at 400 to 700 words came back at 3,510. The extra length brought the same seams as the full-length novel: 10 passages repeated right after themselves, and my own name turned up in the prose nine times, which I’m still tracing (“Jessica K. Murray I remember once seeing a tiny seedling”). Both versions still let the reader practice “at a stoplight” or in slow traffic, which contradicts the book’s own rule never to practice while driving.

So I’m keeping the shorter edition and fixing it by hand: seven words run together without a space, three doubled chapter headings, the stoplight practice, and a few sentences that describe the chapter instead of talking to the reader. Neither version was ready without a careful human read, and that is the most useful thing this whole detour taught me. These are single judge readings, so treat a few points’ difference as noise; a 3x jump in length is not.

I also like that e4b runs on my little ASUS at all. It took forever and stumbled through the timeouts, but it finished, and that says something good about BookyAI. If you’re on a tight budget and don’t want to pay for, or paste in, an OpenRouter, ChatGPT or Gemini key, BookyAI’s lifetime deal (still running as of October 19, 2026, going by a BookyAI ad I saw that day) and a free local model is a real way to write a book on hardware you already own. No affiliate link here, as always.

Same book, three machines

The machine changed how long the book took and nothing else. All four runs used BookyAI 1.9.23, an 8,192-token context and my usual control prompt for The Affirmation Glitch: 30 chapters of 3,000 words.

RunMachineTime for 30 chaptersWordsLength vs. targetRepetitionChapters 21-30 vs. 1-10
N1-8kRTX 4070 (12 GB)18 min44,48049%0.5%1.08
N1-8k-r2RTX 4070, repeat16 min47,65153%0.6%1.19
N3-8kRTX 2060 (6 GB)75 min43,51048%0.1%1.07
N4-8kASUS laptop, no graphics cardabout 20 h of writing, spread over 5 days45,67351%0.1%1.05

Repetition is the share of 10-word passages that appear more than once. My worst looping books ran 16% to 43%, so everything under 1% here is clean. The last column compares the average length of the last ten chapters with the first ten; my gemma4:12b book fell to 0.55, and none of these shrink at all.

The two runs on the same 4070 differ from each other by 3,171 words. The 2060 and the 4070 differ by less than that. The laptop’s 20 hours is my estimate from the chapters it wrote back to back, about 40 minutes each; a 4070 chapter took 42 seconds.

Five days on the laptop

The laptop finished the book on the twelfth try. I started it on the evening of October 5. From chapter 17 on, BookyAI kept stopping with “Ollama is not reachable at http://localhost:11434 (UND_ERR_HEADERS_TIMEOUT)”, even though Ollama was running the whole time. I’d press Regenerate, go do something else, forget about it, and come back hours later to find it stopped again. Turning off sleep didn’t help. Turning off the screen timeout didn’t help. It finished on October 10.

Ollama keeps a log, and the log explains it:

  • 77 requests failed, and 73 of them ended between 5 minutes 2 seconds and 5 minutes 45 seconds. BookyAI waits about five minutes for the first word, then gives up.
  • Every failed request carried a long prompt: 4,400 to 5,400 tokens of book so far, outline and notes. Later chapters carry more, which is why the trouble started at chapter 17.
  • The laptop reads a prompt at about 15 tokens per second, so a 5,000-token prompt takes five and a half minutes before the first word.
  • Requests with shorter prompts went through, and some kept writing for 20 minutes once they had started.

This isn’t the laptop failing or Ollama crashing. It’s a wait time set for machines that answer faster, and on a GPU it never came up once. A longer wait for the first word would very likely fix it, and I’ll be sending these log numbers to BookyAI’s developer.

Two side effects matter for what follows. The book was stitched together across those attempts: chapter 14 in its final form was written before chapter 2. And Ollama updated itself in the middle of the run, on October 7.

BookyAI 1.9.24 fixed chapter length

The same model on the same 4070 wrote a full-length book on BookyAI’s new version, in the same 16 minutes. Short chapters were never an e4b problem: every model I’ve tested that didn’t loop came in short, from 38% of the target (olmo-3.1:32b) to 81% (gemma4:31b). The only books that reached 100% got there by repeating themselves. Version 1.9.24, released October 19, treats the chapter length as a minimum, writes long chapters in parts, and continues a part that comes back short.

BookyAI 1.9.23 (two runs)BookyAI 1.9.24
Words44,480 and 47,65195,849
Length vs. target49% and 53%106%
Chapters within 20% of 3,000 words0 of 3029 of 30
Time for 30 chapters18 and 16 min16 min
Repetition0.5% and 0.6%1.3%

The fix has one visible cost. In six chapters, a passage of 55 to 129 words appears twice in a row, which looks like the seam where a short part was continued and the model began by rewriting what it had just written. None of the 1.9.23 books do this. At 1.3% it is nowhere near a looping book, and I’m sending BookyAI the chapter numbers. One caution on the comparison: Ollama also updated between these runs, from 0.40.4 to 0.40.7, so two things changed at once.

What the judge said

The cleanest books I’ve generated scored near the bottom. My judge is a ChatGPT rubric that scores ten parts of a manuscript from 1 (unpublishable) to 5 (ready for copyedit), for a total out of 50. Each score below is a single reading.

BookModelChatGPT score (out of 50)Blind?
G1-8kgemma4:26b23no
L1-8kgemma4:12b20no
L1-16k-r2gemma4:12b, looping (22% repetition)15no
L1-128kgemma4:12b, looping (39% repetition)15no
N4-8kgemma4:e4b, the laptop14yes
A3-8kqwen3:8b14no
N1-8k-r3gemma4:e4b, full length on 1.9.2413no

Both e4b books got 1 out of 5 for showing versus telling, forward movement and continuity. ChatGPT’s complaint is the same both times: Maya keeps arriving at the same realization about the AI instead of doing something that changes her situation. It found real continuity errors, too. A character’s surname changes from Chen to Thorne, and a bakery Maya has never heard of becomes a manufacturer whose records she supplied herself. In the full-length book, “profound” appears about 207 times.

So low repetition is not the same as good writing. My repetition measure catches a model stuck in a loop; it can’t catch a model that writes the same idea in fresh sentences. Two cautions: the laptop book was stitched together across 12 attempts, which may have cost it some continuity points, and ChatGPT’s estimates of editing hours (120 to 260) are not numbers I trust.

That’s the bare novel prompt. With a real blueprint, the same model wrote a nonfiction book that scored 21 out of 50 on a nonfiction version of the rubric, which is why I’m not giving up on it yet.

What I’m changing

My quest hasn’t changed: find the best self-hosted model, or one model family, for long-form writing, preferably one that runs on an older computer, so I can share what works with people who have normal laptops.

The 4070 is my main test machine from here on. With every Gemma model I’ve run on more than one machine (e4b, 26b and 31b), the machine changed how long a book took and not what it said. When a small model earns it, I’ll run it again on the 2060 and the laptop.

So can you write a book on an 8 GB laptop? You can generate a clean 30-chapter draft, if you can leave the machine alone for days and restart it when it stops. Whether that draft is a book is the question the judge answered above.

The best model I’ve found so far for my hardware is still gemma4:26b. It scored highest with the judge and ran on my six-year-old 6 GB card in about four hours, because the computer has 64 GB of memory to hold it. It can’t load on the ASUS laptop.

Next:

  • More small models on the 4070: the ones that fit an 8 GB laptop first, such as gemma4:e2b and the 4B and 9B Qwen 3.5 models.
  • Large hosted models through OpenRouter, including 70B and 120B-class models I can’t run at home, on the same prompt with the same measures. My hypothesis is that consumer hardware can’t yet match them on long fiction. That round is where I find out whether I’m right.

What could be off

  • My project names leaked into the books. The laptop book has my run label in one sentence of chapter 13. For the 1.9.24 run I named the project “N1-8k-r2 – new BookyAI version”, and the model made that the name of the AI in the story, 131 times across 27 chapters. I replaced the labels in the copies the judge reads, but the 1.9.24 score was taken before I did, so it isn’t blind. From now on, projects get neutral titles.
  • Ollama versions moved. The laptop updated itself mid-run, from 0.35.1 to 0.40.0 on October 7. The GPU runs used 0.40.4 and the 1.9.24 run used 0.40.7.
  • Judge scores are single readings, and only the laptop book’s was blind. Treat a few points of difference as noise.
  • The laptop’s 20 hours is an estimate. Its chapter file times include days of waiting between restarts, so I estimated from the chapters it wrote back to back.
  • My own mistake: I ran my QC script with a flag that marked three uninterrupted runs as invalid. I caught it and recalculated their times from the same files before writing this.

Sources and data

I bought my three BookyAI licenses myself. This post has no affiliate links and no sponsor.

ChatGPT evaluator instructions for nonfiction:

You are a professional developmental editor scoring an unpublished nonfiction manuscript for a benchmark study. It is a practical guide (for example self-help, mindfulness or how-to), not a novel: do not expect plot, scenes, characters or dialogue, and do not mark it down for lacking them. You will receive the full text of the book. You do not know who or what wrote it and you must not speculate. Do not ask.

Genre: [fill in, e.g. self-help / mindfulness]
Intended reader: [fill in, one sentence]

Your output has four parts, in this order, and nothing else.

PART 1 – COVERAGE CHECK Before scoring, prove you have read the whole file. Report:

Total chapters you can see, and the chapter number of the first and last.
The first six words of chapter 1, the chapter at the midpoint, and the final chapter.
The single longest chapter by word count and roughly how long it is.
Whether the file includes front matter, back matter, references or appendices. If it does, read and audit them too.
If you cannot see the end of the file, say so plainly and stop. Do not score a partial read.

PART 2 – SCORES Score each dimension 1-5, where 1 is unpublishable, 3 is a rough draft with a real book inside it, and 5 is ready for a copyedit. Use the full range. A 3 is not a polite default. Output as a pipe-delimited table with exactly these rows and no others:

dimension | score | one-sentence justification

promise and reader fit (states what the reader will get, for whom, and delivers it)
structure and progression (each chapter does a distinct job and builds on the last)
usefulness of the practices (instructions a reader could follow today: what to do, where, for how long)
concrete specificity (specific examples and details instead of generic statements)
accuracy and sourcing (no invented facts, statistics, studies, quotations or citations; uncertain claims hedged)
safety and responsibility (no medical or health promises; instructions safe for the stated reader; no contradictions)
freshness of language (varied wording, no stock phrases, no recycled images)
concision (how much is restated rather than new)
production integrity (no leftover notes, placeholders, duplicated headings, summaries of the chapter inside the chapter, or broken references)
would keep using (would the intended reader return to this book and use it)

PART 3 – EVIDENCE

The three chapters that most justify your lowest score, by number, with one quoted line each of no more than fifteen words.
Every source, statistic, study, quotation or attribution that looks invented, incomplete or unverifiable, quoted, with its chapter or section. Placeholders such as “(Year)”, “Hypothetical” or a missing author count. If you are unsure whether something is real, mark it “check” rather than calling it false.
Every instruction that could be unsafe for the intended reader, or that contradicts another instruction in the book, quoted.
Every piece of leftover production text: editorial notes, bracketed tags, duplicated headings, sentences that describe the chapter instead of speaking to the reader, text run together without spacing.
Any phrase or image recurring three or more times, quoted, with an estimate of how often.
The strongest chapter by number, and one sentence on what it does differently.
For every evidence list above, write “none found” if you found none. Do not invent examples to fill a list.

PART 4 – EDITING ESTIMATE Estimate the hours a competent developmental editor would need to bring this to a publishable draft, the share of the text you would cut, and the single change that would recover the most value per hour.

Rules. Score the manuscript in front of you, not the idea of it. Do not soften scores because the book is long, gentle or well-meaning. Do not congratulate. Do not summarize the book unless a score depends on it. Quote exactly; never paraphrase a quotation.