A checker that went silent, recommendations that know you — and a letter to 778 authors

A checker that went silent, recommendations that know you — and a letter to 778 authors

editorrechtschreibungempfehlungensucheautorennewsletterappspremiumtransparenzrevenue-share
Fiction

Two weeks instead of one, and a different character from last time. The previous edition had two big new things you could see at once. This one is mostly about things you cannot see — but which decide every day whether OutaStory feels right: a spell checker that went silent for a month and now answers in the blink of an eye. Recommendations that no longer suggest stories you are not allowed to open. A search that no longer shows ghosts. And a letter to 778 authors that went out today — with a hiccup we are not going to hide from you.

The four sentences this is about:

  • Spelling and grammar checking in the editor is back. It had been down since mid-August without a single error message — and then so slow it felt down. It now answers in 40 to 150 milliseconds.
  • Recommendations respect your age and do not repeat themselves. The "You might like" and "Readers also enjoyed" rails only show what you can actually open.
  • Today we wrote to 778 authors of the first OutaStory generation. If you got an email from us, the reason is below.
  • For authors, every minute of Premium reading now counts — whether the subscription was bought on the web, in the App Store, on Google Play or on Amazon.

The checker that was silent for a month

A turquoise typewriter with a sheet of paper in it, a cup of coffee beside it
A typo is quick to make. Finding it should be quicker. (Photo: Pexels)

When you write in the editor, a spelling and grammar check runs in the background — in German and English, without your text ever leaving our house. It underlines what it notices, and you decide whether it is right. It is one of those features nobody notices as long as it is there.

It was not there. Since mid-August it had not answered a single real request. The service behind it — a small server of its own, for this check alone — had the memory that was enough for the test data, and the first real German text knocked the wind out of it. It did not report that. It simply did not answer, and the editor dutifully showed "check currently unavailable". We found it because someone on the team got suspicious while writing, not because any alarm went off.

The first repair attempt made it worse, and that belongs here: with enough memory the service ran, but the first check after every restart took 28 to 43 seconds — because it only loads the German language the first time someone writes German. And since the editor gives up after ten seconds, it looked exactly like before to you. The service also reported itself "ready" long before it was.

It now preloads German and English at start-up, reports ready only once both languages are genuinely in memory, and keeps built checking pipelines in a cache instead of rebuilding them on every request. Measured in production: 40 to 150 milliseconds per check. One limitation, which we would rather name than have you discover: after a new version, the very first check that contains a real typo can take five to eight seconds, once, because the suggestion data is also loaded on first use. After that it is fast. That is a deliberate choice — it is cheaper than another server kept warm for that single moment.

Two small things from the same area: when you type quickly, the editor cancels the previous check to start the new one — and that cancellation was counted as a failure, which made the service look sicker to us than it was. And error messages across the whole product were green. "Check unavailable", "Follow failed", "Could not save" — all with the same friendly green border as "Saved!". There was even a dedicated error type; it had just never been given a colour. Errors are red now, and that was overdue.

A letter to 778 authors

A hand posting a white envelope into a mailbox
An invitation, not an advert — and an unsubscribe link that works. (Photo: Pexels)

OutaStory had a first generation: authors who published on the predecessor platform years ago and whose addresses we carried over with their consent. Today, 17 September, we wrote to 778 of them: Your story deserves readers — and you deserve the money for it. What the email says is also here: publishing is free, all rights stay with you, 55 percent of the advertising revenue your stories earn goes to you, every story can be narrated on request, and Eiko answers questions personally.

Honestly, because it was the first big send and because we promised to be: it stopped at recipient 124. The send ran as a single long call, and that call was cut after ten seconds by a safeguard meant for short calls that should never have applied to this one. Twenty minutes later it resumed exactly where it had stopped, and nobody received the email twice. That it could resume was something we had built beforehand; that it could break was something we had never tested, because every test send so far had five recipients. Both are fixed: the send now runs independently of the connection that triggers it, and a send that stalls for any reason can be continued with one click.

A day earlier the email would still have gone out with dead links — every link, the unsubscribe and the open tracking pointed at the wrong address. We saw that in the test send to ourselves, not you. And the story cards in a German campaign carried an English "Read →" button. That is gone too.

If you received one of these emails and want none of it: the unsubscribe link at the bottom works, and we will not write to you again afterwards.

Recommendations that fit you

An old compass and a magnifying glass lying on a map
A recommendation is only one if the door behind it actually opens. (Photo: Pexels)

On the home page and under every story we suggest more. Those suggestions had two defects that hid each other.

The first: they did not know your age. Anyone not signed in sees no 16+ stories on OutaStory — on every catalogue page. The recommendation rail knew nothing of that. It suggested stories to an anonymous visitor that she could not open when she clicked; in our measurement it was five out of ten. And the same story could appear twice in one rail, because two versions of the same tale were counted separately. Both are fixed. The age ceiling is now mandatory everywhere recommendations are computed — it cannot be forgotten any more, because the code no longer runs without it.

The second defect was quieter: the popularity rails picked the most popular stories first and checked afterwards whether you may see them. That yields short rails with gaps. Now it filters first, then ranks.

In the same days we tied a number of catalogue surfaces to a switch that so far governed only part of the catalogue: the public-domain classics are temporarily out of the public catalogue while we align the home page, the recommendations, the search and the authors index around the stories of our own authors. Before, a card could appear that led nowhere when clicked — in the audio rail, in the personalised home page, in search, in the newsletter picks. Now the same rule holds everywhere. The classics are not gone; they are coming back.

A magnifying glass on a light-blue background
What search finds has to exist. (Photo: Pexels)

Anyone who searched for "Franz Kafka" in recent weeks got a hit — and an empty page on click. The search index lagged behind the catalogue, and the reason was uncomfortably simple: no full rebuild of the index had ever run to completion. It ran inside a request from the admin area, and as soon as the admin page moved on, it was cancelled mid-run. It is the same failure shape as the mailing above, just found two weeks earlier.

The rebuild now runs detached from whoever triggers it, with a lock so two never run at once, and with progress you can look up. The first complete run went through on 15 September: 2,397 of 2,397 authors. Since then search shows what exists.

For authors: every minute of Premium reading counts, and Google ads now have a price

A person writing at a desk at night by lamplight
What is read gets counted. That is the whole contract. (Photo: Pexels)

Last time we wrote that reading time of Premium members is now attributed to the author whose story was read. That was true — for subscriptions bought on the web. Subscriptions from the App Store, Google Play and the Amazon Appstore unlocked Premium but booked nothing into the revenue share. The purchase was there; the attribution was missing. That is caught up: every subscription route now books into the same ledger, and a store confirmation delivered twice cannot book a period twice.

And a step that sounds unspectacular and matters: Google ads now have a measured value. Until now every Google impression on your stories was counted but carried no amount — because we refused to write an invented value into a ledger that cannot be undone. The value is now measured from the real payout data of the past weeks and will be re-measured monthly. That is the prerequisite for the first payout run to go through from start to finish. It is still outstanding, and we will report when it has happened.

Plus a finding we would rather name ourselves: eleven accounts in our database carried a Premium that nobody had ever paid for — test data from development that triggered a real entitlement. Nobody lost anything through it; they were our own test accounts. But it was wrong. The clean-up is prepared and will be run deliberately, not casually.

In the apps

A woman reading by a café window, green leaves outside
Read wherever you are — and buy without anything getting lost. (Photo: Pexels)
  • A Premium purchase on a Fire tablet could get lost. Anyone who bought right after starting the app was, for a moment, not yet signed in with us while the app already tried to redeem the purchase — and the purchase was left lying. It is now redeemed in the right order and retried once if sign-in was not through yet. One person experienced exactly this; the subscription is active now.
  • The tour could not be clicked. The guided tour we introduced last time highlighted, on six pages, exactly the element it was about — and then intercepted the click on it. The cone of light was only paint; underneath, the dark pane was still there. Fixed, on every platform.
  • The tick got lost at sign-up. Anyone quick on the registration page who ticked the terms before the page had fully loaded was then told they had not accepted them — with the tick visibly set. That happened on every new sign-up faster than the page. The click now lands no matter how fast you are.
  • There were never any ads in the Android app. Anyone who did not get to see the consent prompt on the very first start — because of a flaky connection, say — had their installation permanently remember "no ads". We write this here because it matters to authors: there simply were no impressions in the Android app that could have earned anyone anything. The prompt is now repeated until it has genuinely happened once.
  • On Fire tablets the app reported an error that was none. Google's consent service does not exist on Amazon's devices; the app reported that as a fault instead of treating it as normal. Quiet logs, no change for you.
  • New in the stores: version 1.9.25 is approved by Apple for iPhone and iPad; Android on Google Play, the Amazon Appstore, the Galaxy Store and Uptodown is on 1.9.28. Mac and Windows follow with the next round. The in-app notices about new versions arrive again, and only once the respective store actually has the new build.

Newsletters that know your age

The daily and weekly newsletters pick stories for you. Until recently a 14-year-old subscriber could be recommended an 18+ story in them — whose link then led nowhere, because the page rightly did not show it. A recommendation that vanishes on click is the worst recommendation. The picks now follow the age you told us. And the daily push notification that every device without an account receives is picked by the same rule as the public home page — no longer by the age of the first person in the list.

Also: the newsletter area in administration suppresses addresses that are permanently unreachable. An account that existed only at our sign-in provider and had never created a profile fell through — including, embarrassingly, the review account Google Play uses to test our app. It had been suppressed since April. Both are corrected.

Transparency: AI, retention, team

  • The page about AI at OutaStory has been rewritten. It contained a claim that was not true — that AI determines our ranking — and it did not name everyone involved in narration and the assistant. It now says which services stand behind which feature, by name. And stories declared as AI-generated now carry that declaration machine-readably in the page as well, so search engines and AI assistants see it the same way you do.
  • Our privacy policy stated a retention period for server logs that nobody kept. It said "a maximum of 10 days"; measured, it was 30 and 90 respectively. We corrected the text rather than shortening the logs — those very logs are how we find silent outages like the spell checker's at all. The policy now states the real maximum periods, and the period for sign-in logs is phrased as a maximum too, rather than a number that depends on the plan we happen to be on.
  • The team page has its links back in shape — after the rebuild they had rendered as a bare bulleted list — and the legal position on AI labelling and minors is documented with a date.

Numbers as of today

  • Twelve versions in two weeks — 1.9.19 to 1.9.30. Not every one of them achieved everything it should have; two failed their tests before they could ship anything, which is precisely what the tests are for.
  • 778 authors written to, 765 delivered, 12 addresses no longer valid.
  • 40 to 150 milliseconds per spelling check, previously 28 to 43 seconds — or nothing at all.
  • 2,397 of 2,397 authors in the search index, after the first full rebuild that ever ran to completion.
  • Six platforms, unchanged: web, iPhone & iPad, Mac, Android, Windows and Fire tablets, plus the Galaxy Store and Uptodown.
  • Zero euros paid out — unchanged, and still the sentence that drives us most.

What comes next

First: reach. OutaStory has more good stories than people reading them. The coming weeks are about changing that — visibly, measurably, and with an idea that brings authors and readers together. More on that soon, not before.

Second: the first euro paid out. The last building block — the measured value for Google ads — is in place. What is missing is a month-end run that goes through. We will report when it has.

Third: faces on the team page and the writing prompts by email. Both still in progress, both deliberately not rushed.

And as always: tell us what looks odd. The silent spell checker, the tour that could not be clicked, the lost purchase on the Fire tablet — none of it produced an error message. All of it was noticed by a person. Thank you for that.

Thank you for reading, for writing, and for paying attention.


Comments (0)

No comments yet.

Comments are closed for this post.

Something went wrong

An unhandled error has occurred.

Reload the page to pick up where you left off.

Reload

Connection lost

Reconnecting to the server…

Reconnect failed. Trying again in seconds.

We couldn't reconnect to the server. Retry, or reload the page.

The session was paused by the server.

The session couldn't be resumed. Please reload the page.