Changelog

Everything new,
newest first.

ReadKinetic is built in the open and shaped almost entirely by the people who write in. Here is what has changed, and why.

Subscribe via RSS

Reading stops where a chapter actually ends

Fixed

Two faults, and it took several passes to see them apart. The line between chapters was drawn in the wrong place — a paragraph early — because a converted book splits into one file per chapter and routinely leaves the last paragraph of the previous chapter at the top of the next one, and the boundary was anchored to the file. The obvious repair, moving it onto the chapter’s heading, does nothing for the many books whose headings are not headings at all: a conversion styles them with a class, so “CHAPTER SIX” arrives as an ordinary paragraph that merely looks bold. It is anchored on the chapter’s own name instead, which the book’s contents and its printed title share. And because chapter positions are worked out when a book is imported, this is corrected on the way to the reader rather than on the way in, so books already on your shelf are right without being imported again. The second fault was the stopping itself. It asked how much you had read since entering a chapter and refused to stop under four hundred words, which meant that tapping a word part-way through a chapter and reading on — most of how anybody reads — never stopped at all. That number existed only to keep a book’s front matter from counting as chapters, and that is a question about the book rather than about you: which boundaries are real is decided once, from the list, and then reading stops at every one of them however much of it you happened to read. Crossing a chapter by find, by the chapter list or by the rail still stops nothing, because you did not read to the end of it.

The page shows where one chapter ends and the next begins

New

With stopping at chapter ends switched on, the page now draws the join: a rule across the column with the name of what is starting. Reading stops there, and until now the page gave no sign of why — the seam between two chapters in running prose is a paragraph break like any other. Drawn only for chapters worth stopping at, so a book’s front matter does not put six rules in the opening paragraph.

Line height down to 1.1, and both settings finer

Improved

The line-height floor was 1.35, which is still looser than many people set their own books — asked for by Martyn Parker, who sets his in Calibre. It goes down to 1.1 now and up to 2.4, in twelve steps rather than ten, and text size spans 70% to 190% over twelve steps too. Both remember the value you chose rather than its position in the list, so the range can be reshaped again without everybody’s page quietly moving on the next update.

A book set in two typefaces is now read in two typefaces

New

Plenty of books are set in more than one face. A conversion puts the body in the face its owner chose and leaves the publisher’s original on the chapter headings and ornaments, and both are embedded in the file. The reader used to pick one of them and set the whole book in it, which quietly throws away a distinction the book is making. It now carries the typeface alongside every word, the same way it already carries italics and bold: the importer reads which family each of the book’s own classes asks for, keeps the faces the book actually uses — not merely the ones it embeds, which can be more — and the page sets each passage in the face it was set in. The cost is close to nothing where there is nothing to say. The face a book already opens in needs no record at all, so a book with one typeface stores not a single run; the book this was built against needed one run for its chapter heading against three thousand words of body text. Books already on your shelf need re-reading from their file to pick this up, which the card now offers.

Jumping to a place now arrives at it

Fixed

Picking a chapter, or stepping through find, could leave you somewhere near the right place rather than at it — and a search far from where you were reading often did not move the page at all. One cause behind all of it. The page keeps every paragraph in the document but lets the browser skip laying out the ones nobody is looking at, which is what makes an eight-hundred-thousand-word book scroll at all. A word inside a skipped paragraph still answers when you ask for it; it simply has no box, because it was never laid out. So the scroll was being aimed at a rectangle of zero size, and landed accordingly. It now aims at the paragraph, which does have a size, and refines onto the exact word the moment that paragraph is on screen and its contents are real. Measured on three consecutive find results: the searched word lands dead centre each time. The same fault hid the way back — a place that had no box read as a place that was on screen, so the control offering to return to it disappeared exactly when you were furthest from it and needed it most.

Tapping a word on a rendered page, further down the page

Fixed

On a rendered PDF page, everything after a certain point on some pages sent you to the same wrong word, which reads exactly like the rest of the page having gone dead. Each box on the page is matched to a word in the book by walking both in step, and the walk only moved forward when a match was found. So the first box that could not be matched — a running header the importer had dropped, a page number, a ligature the text layer spells differently — stopped the walk dead, and every box after it on that page inherited that one stalled position. It now steps forward on a miss instead of freezing, so the estimate keeps pace with the page and the next box that does match puts it exactly back on track; and the search widens once several in a row have failed, which is when the way back is furthest.

Setting the page, stopping at chapter ends, and re-reading a book you already have

New

Three things, all asked for by the same reader. The page view had five text sizes behind a button you pressed until one of them fitted; it now has a panel with two drags in it, ten steps of size over the same range the presets covered, and line height beside it, with a sample underneath set at exactly what you are choosing. The two belong together: type that grows without its spacing growing gets tighter as it gets bigger, which is the opposite of what anybody reaching for a larger size wants. Second, reading now stops at the end of a chapter. If you read a chapter at a sitting, hands-free used to carry you into the next one at the same pace, so you noticed too late and had to hunt backwards for the join. The pill that names a chapter now holds when that happens, says the chapter has ended, names the one about to start, and offers to carry on — because words that stop moving with no explanation look like a fault rather than a courtesy. It is on by default and can be turned off in Settings. Third, a book already on your shelf can be re-read from its file. Emphasis, chapters and the reading face are worked out once, as a book comes in, so an improvement to the importer never reached anything already imported, and nothing said so. Books read by an older importer now offer to be refreshed: you point it at the same file and it keeps your place, your marks, your pace and the title you gave it, replacing only what the parser produces.

The reading face a converted book actually asks for

Fixed

A book can carry several typefaces — the publisher’s original, plus whatever a conversion embedded on the way through. Choosing between them was done by looking at the font files, so the reader picked whichever the archive happened to list first. On the book this was reported with that was the publisher’s Alegreya, while the stylesheet plainly set the body in Bitter Medium, the face its owner had converted the whole library into. The rule now is the one the browser would use: whatever family the book applies to its own body, including through a class it hangs there, which is how a Calibre conversion writes it and is why this was missed. Reported by Martyn Parker.

Italics and bold, in the books that keep them in a stylesheet

Fixed

Emphasis was read from the markup: an <em> or an <i>, a <strong> or a <b>. A great many books do not have any. Convert a book in Calibre and every italic becomes a class instead — a paragraph marked class_s6, a span marked class_s142j — with the meaning kept in the book’s stylesheet, where nothing here was looking. The class names are no help either; class_s6 tells you nothing. So for those books the reader saw no italics, no bold and no underlining anywhere, and re-importing changed nothing, because the information had never been read in the first place. It now reads the book’s own stylesheets on import and resolves each class to what it actually means. On the book this was reported with — a Calibre conversion with not one emphasis tag in it — that is twenty-eight classes understood and forty-two runs of emphasis recovered in a single chapter, where before there were none: the chapter title bold and underlined, an AI’s speech in italics, one stressed word inside a sentence. Books already in your library need importing once more to pick this up, since emphasis is read as the book comes in. Reported by Martyn Parker, who sent the book itself, which is what made it findable.

Scanned PDFs were drawing as blank white pages

Fixed

If your PDFs are scans — photographs of pages, the way most out-of-print books and archive documents arrive — every page rendered as an empty white sheet. The strange part, and the clue: the words were still there. Tapping a blank page would correctly name the word under your finger and offer to read from it, because the invisible text layer was working perfectly while the picture of the page was not. The cause is that this reader’s PDF engine moved its image decoding into WebAssembly, and the two formats scanned books actually use — JBIG2 for black-and-white page scans, JPEG 2000 for colour ones — are decoded by modules that have to be told where they live. They were not, so they never loaded, and a failed image decode draws nothing rather than complaining. Measured on a JBIG2 test file: zero non-white pixels before, on a two-million-pixel page. It now ships those decoders alongside the reader and points at them, and the same page draws. Reported by Martyn Parker, who sent a screenshot of an empty page whose hidden text layer had correctly found the word “great” — which is what made it findable.

The card you choose from is built for a thumb now

Improved

The row you press to say where to read from — Read from here, Hands-free, Copy, Cancel — was 34px tall. That is a comfortable size for a mouse and a poor one for a finger, and it is the most-pressed thing in the app: it is how you move around a book. Every one of them is 40px now, the size the app already gives every control meant for a hand. On a phone they were also quietly broken. Four labels need more width than the card has there, so the primary button was wrapping across two lines inside a squeezed pill while its neighbours stayed short, leaving the row three different heights. Read from here takes a row of its own now, full width, with the other three beneath it — tidier, and a far bigger target for the one you press most. On a wide screen all four still sit on a single line, exactly as before. The first-run walkthrough practises on the same card at the same size, because what you practise on should be what you get.

The walkthrough now shows the card it is telling you about

Fixed

The last lesson of the first run teaches where hands-free lives, and it said the button sits beside Read from here, on a card. Underneath it drew a single button floating in the middle of the sentence, with no card and no Read from here anywhere on the screen. So the one screen whose whole promise is that what you practise on is what you get was teaching the wrong shape: somebody finishing it would go looking for a control they had never actually been shown. It is the real card now — the sentence with your word marked, then Read from here and Hands-free side by side, the same two controls in the same order and the same weighting the reader gives them.

Rolling the wheel over the pace bar sets the pace, and nothing else

Fixed

Two things were wrong with the mouse wheel over the speed bar, and both only showed up with a real wheel. It set the pace and then let the roll through to whatever was behind it, so the page scrolled away underneath while you were adjusting — the handler asked the browser to keep the scroll, and the browser was never listening, because of how the wheel is bound. It is bound properly now and the roll stops there. The second was quieter: the number carried its own handler as well as the bar it sits in, and neither stopped the other, so a roll over those few centimetres moved the pace two steps while the same roll anywhere else on the bar moved it one. One handler for the whole strip now, one step per notch, wherever the pointer happens to be. The same fix went into the practice control in the first-run walkthrough.

The cursor stops offering what the page will refuse

Fixed

Once a click on empty space correctly did nothing, the cursor was left promising otherwise: "Read from this word" followed the pointer everywhere on the page — across the margins, over the blank half of a short line, into the space above a chapter heading — in places where a click had just been taught there is no word to read from. A label that offers something the surface has already decided to refuse is worse than no label. It now asks the same question the click asks, and answers it slightly more strictly: near a word it is an offer, and past that it goes quiet rather than pointing at nothing. Reading along a line is untouched — the gaps between words are still words, so nothing flickers as the pointer crosses them.

Pointing at a word on a printed page

Improved

Tapping a word on a rendered PDF page searched the whole page for the nearest box, counting vertical distance three times over and giving up past a fixed reach. Two things went wrong with that, and both read as the page simply not answering: a tap in the space between two lines could fall outside the reach of either and select nothing at all, and a tap in the wide space after a short line could be nearer a word on the line above than the one you were pointing at. It looks for the line first now, and then for the word on it — which is the shape reading actually has. A tap inside a line belongs to that line, so pointing past the end of one lands on its last word; a tap between lines takes the nearer line if it is within half a line, and past that there is genuinely nothing there. And nothing is now an answer rather than a non-event: if the card is up asking whether to read from a word, pointing at the margin puts it away.

Clicking nothing really does nothing now

Fixed

This was fixed once and stayed broken, which is worth admitting: the change went into the handler for clicks, and a tap does not arrive that way. Every tap begins as a press, and the press aimed at the nearest word on the page however far away it was — so a click in the empty half of the screen above a chapter title reached down and picked a word out of the first line of text. It aims within about a line now, which is a near-miss and still counts, and at nothing beyond that. Lifting on nothing puts away the card if one is open, exactly as Cancel does, in the place a hand naturally goes to dismiss something.

The footer says less

Improved

The bottom of the reader carried the chapter you were in, as a button that opened the chapter list. The toolbar above the page opens the same list from a control that says Chapters, and the page’s own bar already names the chapter — so this was the third copy of one thing, and the only one of the three that was hidden on a phone anyway. It is gone, and the mark has the space. It used to be centred by absolute positioning, which existed only because three things could not fit across a footer; with two, an ordinary row puts them where they belong.

Your library can sort itself by how long you have got

New

A shelf can tell you what a book is about and how far through it you are. It has never been able to answer the question people actually arrive with, which is whether they can finish this one tonight. Now it can, and in your units rather than the book’s. Above the shelf there is a row of four: Everything, Tonight, This week, A project. Choosing one shows only the books that fit. The measure is not minutes — nobody plans to read for thirty-four minutes, they plan to read to the end of something — it is your own sittings, worked out from how long you actually read in a day, taken as the median so that one enormous Sunday does not make every book look like an afternoon. It does not appear until there are three real days of reading behind you, because until then the honest answer is that it does not know yet, and a shelf that offers to sort by time and then guesses is worse than one that does not offer. A band with nothing in it stays visible but goes quiet, since "nothing here fits in an evening" is itself an answer. And the choice is deliberately forgotten between visits: a filter that hides books and survives a reload is a library that has lost your books. The first time it appears it says so, and says where the number came from — the days you read, counted on this device and sent nowhere — and what each band means is written under the row rather than hidden behind a hover nobody on a phone can reach.

A dash between two words is two words

Fixed

Prose does this constantly — "in a German-speaking country—in Bohemia" — and the reader was handing you "country—in" as a single flash: two words and a mark of punctuation pretending to be one, longer than any real word, with the pivot in the wrong place because the letters either side of the dash were counted as one run. They come apart now, with the dash staying on the word it follows, exactly as a comma would. Em dashes, the horizontal bar, and the two hyphens that stand in for a dash in most public-domain books all break; a single hyphen never does, because "well-known" is one word; and an en dash breaks between letters but not between digits, so a date range stays a date range. Books you are part-way through will land a few words earlier than they did — under half a per cent of a book, and always backwards, so you re-read a line rather than skip one.

A PDF read as text is paragraphs again

Fixed

Reading a PDF as reflowed text gave you a gap after every single line, so nothing on the page read as a paragraph. A PDF does not record where its paragraphs are; it positions lines, and a reader infers the rest. The rule for inferring it was a fixed measurement — any line more than fifteen points below the last one started a new paragraph — which takes no account of how the book is actually set. Measured against the demo file on this site, whose body text sits eighteen points apart, that broke a paragraph at every line on every page. It now reads the page itself: how far apart that page’s lines normally sit, and where its left margin normally is. A gap noticeably wider than the page’s own leading starts a paragraph, and so does a first line indented past its own margin — which is how most typeset prose marks a paragraph, with no extra space at all. On the same pages the two together find nine paragraphs where the old rule found thirty-four. Books you already have are mended as they are read, too, so nothing needs importing again: a paragraph that does not finish a sentence, followed by one that carries it on, is put back together on the way to the page. Nothing is added or moved by that, so your place, your chapters and your marks all still point exactly where they did.

Renaming a book, the keyboard, and the notch

Fixed

Three small things in the way. Renaming happened in a box on the card itself, which on a phone is about ninety pixels wide — not enough to see a title in, let alone edit one — so it has its own panel now, with room for the whole name. Opening that keyboard used to throw the whole app upward: the layout was pinned to the visible height of the window, and a keyboard shrinks that to the strip above it, so the app collapsed to half a screen. The keyboard is now told apart from the window and the app keeps its height. And the site, opened from the app installed to a home screen, was running its navigation bar underneath the Dynamic Island; every page clears it now. Also back: sliding up and down on the reading surface sets the pace again. It was removed because a finger resting on glass wanders and could change your speed mid-sentence — it now only listens while nothing is moving at all. Not while you are holding to read, not in hands-free, not while a single word is in motion for any reason. A gesture that cannot reach a moving word cannot disturb one.

Tapping an empty part of the page no longer grabs a word

Fixed

On the page, a click anywhere inside a paragraph took the nearest word however far away it was — so clicking the blank half of a short last line, or the space under a heading, reached across and picked something nobody was pointing at. Worse, if you had already chosen a word and the card was up asking whether to read from there, clicking away moved to a different word instead of putting the card away. A click within about a line of a word still lands on it, because that is what makes tapping bearable. Further out it is a click on nothing, and a click on nothing closes the card if one is open and otherwise does nothing at all.

Your library is a shelf of books, not a grid of pictures

New

A flat rectangle with a cover printed on it is a picture of a book, and a picture is what every other reading app shows you. The books on your shelf are objects now: turned a little, the way a book stands when someone has taken it out and put it back, with the cut edges of the paper facing you down one side. That edge is not decoration. Its thickness is what you have not read yet — so a book you have never opened stands full and thick, a book you are nearly through has almost nothing left on it, and two books side by side compare without either of them printing a number at you. The shelf is sorted now as well. Whatever you were last reading comes out of the grid entirely and sits at the top on its own, because almost every visit is somebody coming back to the same book and that book should not be drawn like the eleven you are not reading; everything else falls into Also reading, Not started and Finished, each a row you can push sideways. The cards under them lost four lines they did not need — the author is already written across the cover an inch above where the card repeated it, and a PDF says so with a small mark in the corner instead of a whole line. What is left is the title, and how long you have left in your own units rather than the book’s. And a card now has one obvious thing to do: touching anywhere on it opens the book. Renaming, restarting, downloading and removing used to appear the moment your pointer crossed a cover, which made the cover look like a control panel and left it genuinely unclear which part you were meant to click — they live behind a small handle on the cover instead, and on a phone they no longer sit invisibly on top of the book you were trying to open. Last of all, something the shelf could always have shown and never did: read for twenty minutes, come back, and the book you were reading loses the pages you read. Four pages is a twitch. An hour is a wedge of paper coming off the edge of the book, which is the point.

A book opens by opening

Improved

Choosing a book used to fade one screen into another and then hold a title card in front of you for two seconds while it faded out over another second and a half — four seconds of ceremony before a word could be read, and the ceremony had nothing to do with books. The book opens now. It is carried from the shelf to where you read, turning to face you on the way, and the cover swings back on the spine with the first leaf following it across a beat later, the way paper does. It opens onto its own title page: the title, a rule, the author, and whether you are commencing, resuming or done. That page is the title card — one thing instead of two, and about two seconds instead of four. The rest is a book being honest about being a book. The two halves tent up from the fold rather than lying flat, because that is what an open book does under your eye; the boards show around the paper the way boards do; and the block of pages at each outer edge is split by where you are, so a book you have barely started opens with all its paper on the right and a book you are nearly through opens with almost all of it on the left. If you have asked your device for reduced motion, none of this happens.

Four panels could not be closed with the keyboard, and one button was invisible

Fixed

Every panel in the app — settings, controls, importing, sharing, supporting — had been built by copying the one before it, and copies drift. Escape closed five of them and did nothing at all in Settings, Import, the Calibre import and Controls, so on a keyboard those four could only be closed by finding the button. The button was its own problem: it was drawn in white at five per cent, which is legible on a dark page and very nearly nothing on a pale one, and five of the sixteen themes are daylight themes. On Paper, the close button on half the panels was all but invisible, and pointing at it made it worse rather than better. Both are fixed everywhere at once, because all of them are now the same panel underneath rather than eleven near-copies. The rest of what came with that is the sort of thing you only notice when it is missing: a panel now tells a screen reader that it is a panel and what it is called, the keyboard stays inside it while it is open and goes back where it came from when it closes, the panel that must not be dismissed while it is reading a folder now says so instead of quietly ignoring you, and asking your device for reduced motion now stops panels sliding and zooming as well.

Version 2 — stop reading, and the whole book is there

New

ReadKinetic has always had two halves that behaved like two apps: the one-word reader, and a panel you opened over it to see the text — with its own copy of the book, its own search, its own chapter list. You had to decide to go and look, and coming back was a second decision. Both of those are gone, and so is the overlay that did roughly the same job when you held a gesture. What replaced them is not a smaller panel. It is the realisation that the book was always underneath. Hold to read and the words move; let go and you are standing on the page, at the sentence you reached, with the paragraphs set properly — real headings, quotations behind a rule, lists with their marks, tables in their own frame, pictures where they belong, links you can follow. Nothing opened, nothing closed. Stopping is the page. Tap any word to read on from there, or drag the page to read ahead with your own eyes without losing your place; the whole book is there to scroll rather than the twenty paragraphs around you. Along the top of it: find, which searches the book and offers each match the way a tapped word is offered, so your place stays put until you say yes; the chapter list, which now also takes you to LOOK — your place does not move until you choose a word, and a way back is offered while you are away; your marks, which you can make from the page itself; a text size for the page; and full screen, on the page and on the word alike. Setting your speed moved off the reading surface entirely — it is the number at the top of the reader, which you can drag, roll a wheel over, or step with the two ends, and it works while nothing is moving, so you never lose the words you spent choosing a pace. Holding to read is no longer interrupted by the hand that is holding: a finger resting on glass moves whether you mean it to or not, and that used to stop the words within a second.

A PDF can be read as the page it was printed as

New

Until now a PDF arrived here the way every other book does — as words, reflowed. That is right for a novel and quietly wrong for most of what people actually keep as PDFs. A paper set in two columns, a table of results, a figure with its caption underneath, an equation: pulled into one stream of words, those stop meaning what they meant. The columns interleave into nonsense, the table becomes a sentence, the equation becomes rubble. For this one format the layout is not decoration over the content, it is part of the content. So the page can now show the page — the real one, drawn from your file, with its columns and figures and tables where the typesetter put them, two at a time side by side when the screen is wide enough for two. And it is not a picture you can only look at: every word on it is still a word this app knows, so tapping a line starts reading from there exactly as tapping a word does anywhere else, find still searches the whole book and takes you to the page it is on, your marks still work, and the line you are reading from is shown on the page itself. Figures open full size and zoom, with a wheel, a pinch or a double-click, so the small print inside a diagram is finally readable. A PDF that carries its own table of contents now uses it — a 1390-page textbook opens with its real chapters rather than a list of 1390 page numbers. Pages are drawn as they come near and released as they go, so a long book costs no more to scroll than a short one, and reopening lands you on your page rather than travelling there. The reflowed text has not gone anywhere — a full page shrunk to a phone is unreadable, which is precisely what reflowing is for — so it is a choice in the bar along the top, Original or Reflowed, starting on whichever suits your screen. Books already in your library need importing again to gain this: the file itself has to be kept, and until now there was no reason to keep it.

Books keep their pictures, their headings and their shape

New

A book used to arrive here as one long ribbon of words. A chapter title looked exactly like the first sentence of the chapter, a quotation looked like a paragraph, a list looked like a paragraph, and every diagram, plate, table and map was simply gone — not hidden, not skipped, never read in the first place. That was fine for a novel and quietly ruinous for anything else, which is why textbooks and non-fiction have always been second-class here. They are not any more. Headings are set as headings, quotations sit behind a rule, lists carry their marks, and pictures appear where they belong. Touch a figure and it fills the screen at whatever size the screen is, so a chart with small axis labels is finally readable on a phone. Where the file says what things are — EPUB, Word, HTML, Markdown, OpenDocument, FictionBook — the page shows exactly that; where it does not, headings are worked out the same way the contents list already was. Pictures are stored at a size chosen for reading rather than printing, so a heavily illustrated book costs a fraction of what it would otherwise. And in the one-word reader, arriving at a figure shows a small card with the picture on it and a way to go and look, instead of reading straight past something the sentence depends on. If you would rather not be offered them, Settings can turn those cards off.

Chapters go to the right place, and the library opens faster

Fixed

Jumping to a chapter had been landing short of it — sometimes a couple of paragraphs, sometimes further — and the deeper into a book you went the further out it was. The positions were counted while reading each book’s markup, and that count runs ahead of the finished text every time a word is split by italics or a footnote marker, so the error built up chapter by chapter: the first was always right and the tenth could be a hundred words out. Each chapter is now matched against the text itself, so it lands on its own heading, and this corrects books already in your library without re-importing them. Separately, and invisibly until you counted: the pictures in an illustrated book were being stored in the same record as its title and your progress — the record read for every book, every time the library is drawn. One illustrated novel held eight megabytes there, deserialised just to show a list of titles. They now live beside the text and are read only when you open the book.

The reader stops looking like every other app

Improved

Every surface in the app had the same soft corner and the same faint outline — not a style anyone chose, but one default repeated a hundred and ninety-four times, which is exactly what makes a thing look generic. The icons had been saying something else for weeks: they are drawn with corners that meet rather than melt, around a page and a reading dot. The frame now agrees with them. Corners are nearly square throughout, so the app reads as something typeset rather than as an interface, and round is kept for the few things that are round by nature — the mark on the word you are at, the label that names what your finger is covering. The row of buttons along the top was seven separate boxes in a line, each outlined as though it had nothing to do with the ones beside it; the controls that belong together are now one instrument with parts. And two of those buttons had never been told about themes at all: Support and Import carried fixed colours from before themes existed, so on a light page they were dark text on a dark wash. On Paper the word Import was, measured properly, invisible. Both take their colour from whichever scene you are reading in now, and every part of the bar is checked against all sixteen. readkinetic.com is deliberately left alone — a page you scroll through wants a softer shape than an instrument you hold.

Browse the page, then tap the word you want

Improved

Holding still to look at the surrounding text has always shown you the page — and never let you touch it. You could see the sentence you wanted to go back to and had no way to say so; the only way to reach a word was to drag towards it one word at a time, which is fine for a few and hopeless for a few hundred. Now the page you are looking at is the page you can point at. Tap any word and reading carries on from there. Dragging up and down moves what you are looking at without moving where you are, so you can read ahead or go back a page, find the line, and only then commit to it — and if your place scrolls out of sight, a button appears to take you back to it. Dragging left and right still nudges your position a word at a time, exactly as before — and a drag now commits to one of the two the moment it starts, so a thumb arcing its way up the screen browses cleanly instead of dragging your place along with it. On a computer the wheel browses, which is what a wheel over a page of text ought to do, and the up and down keys do the same while the page is open. Taps are forgiving: anywhere in the text goes to the nearest word rather than doing nothing, and U undoes a jump for seven seconds afterwards. On a computer, the words around your cursor rise gently as you pass over them and the one you would land on is marked, so you can see the answer before you click. On a phone your finger is covering the very word it is choosing, so the press itself does the pointing: touch down and the word you would land on is named just above your fingertip, hold for a moment and you can slide to a different one and watch the name follow, and lifting takes you to whichever word was named. Nothing about it needs reading first — the overlay says what to do one gesture at a time, and each line disappears for good the moment you do that gesture rather than when you dismiss it. And the page in front of you is finally painted in your theme rather than behind a black wash, which is why it was hard to read.

Clearing your library could leave the reader stuck on Loading

Fixed

Clearing everything from Settings emptied the library correctly and then failed to open the app again — on every device, permanently, with nothing on screen but Loading the reader. An empty library shows the welcome screens, and one line in those screens had gone looking for something that was not there, which stopped the app before it could take the loading screen down. Fixed. Alongside it, a failure to start can no longer disguise itself as loading forever: if anything stops the reader from opening, it now says so and offers to reload, with your books untouched. Reported by Esat.

The panels finally live in the same room as the page

Improved

Every theme in ReadKinetic is a lit scene — the light falls across the page the way the swatch shows — and until now the reading surface was the only part that knew it. Everything around it was painted a fixed dark: the settings panel, the importer, the stats, the share card, the welcome. Reading on Paper meant a warm cream page floating in a black frame, and opening Settings put a black panel on top of it to show you that Paper was selected. All of that chrome is now derived from whichever theme you are in, so a light theme is light all the way to the edges and Candlelight keeps its warmth in the panels instead of losing it at the border. The colours are worked out from each theme rather than written down sixteen times over, which is why the sixteenth theme looks as considered as the first, and why every piece of text in every panel — including the small print — is now checked to stay legible against whatever surface it lands on. Every icon in the app was redrawn for the same pass — one hand, one weight, built around a page and a fixation point rather than borrowed from a set every other app uses. Nothing moved, nothing was renamed, and every keyboard shortcut does exactly what it did before. Only the colour of the room changed.

The site now moves the way reading does

Improved

readkinetic.com has been rebuilt, and it argues by demonstration rather than by adjective. The page keeps a time of day: seven lightings carry it from morning through overcast, afternoon, dusk, evening and candlelight to night, so scrolling it is closer to sitting with a book while the room goes dark than to scrolling a website. The opening sentence does not sit there being a headline — it arrives one word at a time, in the same place, at whatever speed the dial is set to, so the first thing the site does is the thing it sells; move the dial and tap it and the sentence comes again at the new pace. Below it a diagram draws the four or five separate stops your eye makes across a line and the long return sweep it fumbles at the end of each one, and a paragraph collapses word by word into a single point, which is the whole of RSVP shown rather than described. There is a box to paste your own writing into and read it without going anywhere. Type is set in Fraunces and Switzer, served from our own machines, so nothing about the page depends on a font company knowing you visited. Every page carries the same bar, the same footer and the same light, so the essays, the changelog and the file checker read as one place rather than as five. The reader itself is untouched: this is the building it stands in, not the machine.

Your library looks like your books now

Improved

Books carry their real cover into the library — the one from the EPUB, the cover.jpg beside a Calibre book, or the first page of a PDF. Each is kept as a small picture of about three kilobytes, so a five-hundred-book library spends roughly two megabytes on cover art and stays recognisable at a glance. Books with no cover of their own still get the typeset card built from their title, and on the E-Ink theme every cover desaturates to sit inside the page rather than being the one colourful thing on it. Books already in your library keep their typeset card; only the original file has a cover in it, and that is not something the app keeps, so they need re-importing to pick one up.

Offline actually works now, and a locked EPUB says so

Fixed

ReadKinetic is meant to keep working with the network off, and it did not. The stored copy of the app was being saved correctly and then never found again when it was needed, because of a mismatch in how the browser looks up saved files, so going offline left you with a page and nothing on it. Both the reader and readkinetic.com/can-i-read-this now genuinely open and run with no connection — the checker even identifies files offline, which is the one thing it always claimed and could not do for anyone who had not opened the app first. Two more on the checker: a library loan from OverDrive or Adobe Digital Editions is a valid EPUB whose text happens to be encrypted and was being reported as fine, and is now identified as DRM — while books that merely scramble an embedded typeface to satisfy a font licence, as many publishers do, still open normally. Safari could not read PDFs there and was told they would not open, which was wrong. Space used in Settings now also separates your books from the copy of the app kept for offline use, because clearing your library moved a number that was mostly never your library.

Bring your whole Calibre library across

New

Import now takes a folder as well as a file. Point it at your Calibre library and it reads the catalogue — titles, authors, series — shows you everything it found, and lets you pick what to bring in. Where a book exists as both an EPUB and a PDF it takes the EPUB, because that reads far better. It tells you how much space the selection needs before it starts, names anything it could not open rather than quietly dropping it, and stops cleanly if you change your mind halfway. The folder is read once, on your device, and nothing is uploaded.

Find out why a file will not open, before importing it

New

readkinetic.com/can-i-read-this takes any file and tells you what it actually is — not what its name claims — whether it carries DRM, and precisely what to do if it will not open. It reads the first four kilobytes, so the answer arrives instantly whether the file is two kilobytes or two gigabytes, and a Kindle book with DRM is identified with certainty from those bytes alone. Nothing is uploaded; the check happens in your own tab, and works with the wifi off.

Words no longer bleed into each other

Fixed

On some phones two words in a row could overlap — "their" followed by "enthusiasm," arriving as "entheir asm,". It happened whenever consecutive words shared the same centre letter, which left the browser with no change in shape to redraw around. Fixed, along with three smaller things: a very long final word could leave you stuck part-way through it at the end of a book, the faint neighbouring words now follow the parts of a split word instead of skipping ahead, and the paste box in Import can be typed into rather than only pasted into. Reported by Otto Hammar and Martyn Parker.

The reading test says where you lost the thread

Improved

The second half of readkinetic.com/speed-test climbs steadily in speed, and every question is tied to a point in that climb — so it can now tell you the fastest pace you were still following the passage at, question by question. That is a more useful number than a top speed, because it is the one you can actually read at. Suggested by Yash Gupta.

Words too long for the screen

Improved

A word wider than your screen used to run off the edge and lose its ending — worst on a phone, at the largest text size, and in the languages that build long words: Turkish, German, Finnish. A word that only just misses now shrinks a fraction to fit. A word far too long arrives in pieces, hyphenated, one after another, the way print breaks a word across a line. That is also closer to what your eyes do on paper, where a word of forty letters takes more than one look rather than one.

Letters are no longer clipped at their edges

Fixed

Some letters were losing a sliver of themselves — the leading serif of an italic R, the tail of an f, the left side of a B. It was worst in italics but happened in upright type too. A soft edge intended for words too long to fit was being applied to each part of the word rather than to the reading area, and it quietly cut off any letter whose shape reaches past its own width, which most italics do. The soft edge now sits where it belongs, so long words still fade out gracefully at the edges and every letter is drawn whole.

Italics survive the reader now

Fixed

A book where one character speaks only in italics became impossible to follow, because the italics were being thrown away with the rest of the markup — and there is no other way to tell who is talking. Emphasis is now carried through: italic, bold, underline and strikethrough all show as the book set them, in EPUB, Kindle, Word, FictionBook, web pages, Markdown and LaTeX. Strikethrough matters as much as italics; a struck-out word means the opposite of what it says. There is a switch in Settings under Engine & Visuals if you would rather read without it. Books already in your library need re-importing to pick it up. Reported by Martyn Parker.

Pick up where you left off, on another device

New

Settings now gives you a twelve-character code for wherever you are in a book. Type it on your phone, laptop or tablet and that device opens the same book at the same word. The code is not a link to anything — it is the position itself, so no account, no sign-in, no server, and no camera required. Both devices need the same file, which is the only way a position can mean the same thing on both.

Chapters, in books that never declared any

Improved

Plenty of books never say where their chapters are, or say it wrongly. Chapters are now read from the words themselves when a file marks nothing — CHAPTER I, BOOK II, or a bare numeral alone on a line, in six languages — and a chapter list that is obviously broken is topped up rather than trusted. Books from Project Gutenberg also open past the licence page instead of on it.

Chapters in Kindle books, Word files and more

Improved

Only EPUBs, PDFs, FictionBooks and slide decks had a chapter list; everything else arrived as one undivided block, which makes the progress bar meaningless in exactly the long documents where it matters most. Kindle books, Word documents, OpenDocument files and saved web pages all mark their own headings, and nothing was reading them. Now they do, so you get a real chapter list and a sense of how much of this one is left.

A reading test you can actually fail

New

readkinetic.com/speed-test measures you twice — once reading a page normally, once with the words brought to you — and reports the difference, which is roughly the share of your reading time spent moving your eyes rather than reading. Every speed is weighted by comprehension questions, and a run that was skimmed rather than read gets no score at all rather than a flattering one. Takes about two minutes and needs no account.

The word “upload” is gone from the app

Fixed

The welcome text said you could “upload” a file, and the empty library said “no books uploaded yet” — in an app whose entire point is that nothing is uploaded anywhere. It read as a contradiction because it was one. The wording now says what actually happens: the file is opened here, in your browser, and stays on your device.

A page for every format, including the ones we refuse

New

readkinetic.com/formats now lists every file type that opens, what ReadKinetic does with each, and — just as usefully — the ones it will not open, with the reason and the shortest way to read them anyway. There is also a new page on reading without uploading anything, for the people who arrive at this looking for privacy rather than speed.

Kindle books, FictionBook, OpenDocument, PowerPoint and more

New

Twenty-odd new file types open now: DRM-free Kindle books (MOBI, AZW3, PRC), FictionBook (FB2 and FBZ, with its chapters and author intact), OpenDocument (ODT and ODP), PowerPoint (PPTX and friends, one chapter per slide), AbiWord, zipped HTML and text, LaTeX, reStructuredText and Org-mode. All of it parsed on your own device, as ever — nothing is uploaded. Where a file genuinely cannot be read, it now says which format it is, why, and the shortest way to read it anyway, instead of "unsupported file format".

Swap the swipe directions

New

Moving through the text sideways does not feel right to everyone — text scrolls up and down everywhere else. There is now a switch in Settings that trades the two axes over: swipe left and right to set the pace, up and down to move through the book. The control hints and the help sheet change with it, so nothing is left describing the opposite of what your reader does. Suggested by Ofer.

Furigana no longer lands in the middle of the word

Fixed

Japanese books print the reading of a kanji in small kana above it, and Chinese ones sometimes print pinyin the same way. Those readings sit above the characters on a page, but they were being spliced into the sentence — 吾輩 arrived as 吾輩わがはい, which is not a word anyone can read. They are now left out, as they are on the page.

Every page has one address again

Under the hood

Each page was quietly claiming a slightly different web address than the one everything on the site linked to — one with a trailing slash, one without. Search engines treated the two as separate pages, crawled the one nobody was told to index, and left the other uncrawled for a month. There is now a single form, used by the links, the sitemap and the page itself alike. Nothing you can see changed; the address bar may drop a slash.

The app says what it is while it loads

Improved

Opening the reader on a slow connection used to mean staring at a black screen until the app appeared — and if JavaScript failed outright, that was all you ever got. There is now a plain description of what ReadKinetic does in its place, with links to the rest of the site, replaced by the reader the moment it is ready. Nothing about how the app works has changed: it is still your browser doing all of it, with nothing uploaded.

The site menus open on hover

Improved

You no longer have to click to see what is in a menu, and moving the mouse down into one no longer closes it in your face — there was a small dead gap between the label and the menu that used to swallow the pointer. Clicking "Blog" now takes you to the essays page rather than only opening a list.

The essays have a home of their own

New

All nineteen essays now live at readkinetic.com/blog, grouped by subject rather than buried in a dropdown — guides, the neuroscience of eye movement, the measured research numbers, honest comparisons, accessibility, and reading in scripts most speed readers were never built for. You can subscribe to them by RSS from the same page.

The film grain is back on two pages that lost it

Fixed

The Legal and 404 pages were missing the paper grain the rest of the site has, because the texture was defined in a stylesheet those two pages do not load. It now lives somewhere every page can reach, and the EPUB and PDF pages picked it up too.

Three new essays

New

Why most speed readers break on Japanese, Chinese and Thai — and what it takes to fix. How to read research papers and textbooks faster, including the order to read a paper in, which saves more time than any technique. And how long a book actually takes, with real word counts for twelve well-known books at three reading speeds.

Pages for EPUB and PDF

New

Two pages explaining exactly what ReadKinetic does with each format — what it pulls out of an EPUB, what it strips from a PDF, and, just as importantly, what neither can do. If you have ever wondered why a scanned PDF imports empty or why a DRM-protected book will not open, the answers are there.

Headers clear the notch on every page, properly this time

Fixed

Two days ago this was reported as fixed. It was not: each page styles its own header, and those styles quietly overrode the shared rule meant to hold the bar clear of a Dynamic Island — so most pages still sat underneath it. Every header is now rebuilt the same way, spanning the full width of the screen with its own clearance for the notch and for the side cutouts in landscape. Checked on all twenty-seven pages rather than assumed.

The reading demos speak Japanese too

Fixed

The small reading demos on the blog still split text on spaces, so the Japanese sample flashed an entire paragraph as one word — demonstrating the exact failure the article next to it was describing. They now segment words the way the app itself has since Tuesday, centre the word for ideographic scripts, use a font that has the glyphs, and report speed in 文字/分.

The website reads in its own typefaces again

Fixed

The About, Contact, Legal and 404 pages were falling back to whatever font your system happened to offer, because the site’s typefaces were only loaded by the pages that pull in the main stylesheet. They now live somewhere every page can reach.

Menus behave themselves

Fixed

The menus in the site header could both be open at once, and on a narrow screen a long one could run off the edge. Only one opens now, they stay inside the screen whatever its width, they close on Escape, and the Formats menu is no longer hidden on a phone.

Words pause while you pick a speed

Fixed

Sliding to change speed already paused the words when you were holding to read, but not during hands-free reading — so the text kept flying past while you were still choosing a pace. Now it waits in both, and picks up again at the new speed the moment you let go.

The controls now fit on one page

Improved

The help screen was an eight-step tour that ended by telling you to start reading — which is odd, because you are already reading. It is now a single reference sheet: every gesture and every keyboard shortcut, grouped by what you are trying to do, so you can find the one thing you forgot and get back to your book.

Dense passages now read a little slower

Improved

The pace already eased off before individual difficult words. It now also notices when a whole passage is heavier than the rest of the book — a technical stretch, a dense argument — and carries a slightly slower pace through it, then lifts again. The change is deliberately gradual, so you feel the weight of the passage rather than a gear change.

Reads Japanese, Chinese and Thai

New

Japanese, Chinese, Thai, Khmer, Lao and Burmese do not put spaces between words, so a whole paragraph used to arrive as a single flashed "word". ReadKinetic now finds the real word boundaries in those scripts. Japanese also reads the way Japanese should: the word sits centred, the speed is shown in 文字/分 (characters per minute) instead of a misleading word count, the ideographic comma gets its proper pause, and the text renders in a font that actually has the glyphs. Nothing changes for English.

Books open at chapter one more often

Improved

Most EPUBs never mark where the story begins, so they opened on the cover. ReadKinetic now works it out from the book’s own structure and skips past the cover, title page, copyright and contents. It is deliberately cautious: if there is any doubt, it leaves you at the start rather than risk skipping real writing.

Paste straight from your clipboard

New

Copy an article anywhere, open Import, and tap once to paste it in. It works on every device, including iPhone and iPad, where getting a file into a browser is otherwise awkward.

Every alphabet renders cleanly

Fixed

The highlighted letter in the middle of each word could land inside a character in Hindi, Tamil, Arabic and some emoji, splitting it in half. It now always lands on a whole character, in every script.

Page headers stay where they belong

Fixed

On the website, headers now stay pinned as you scroll and no longer hide behind the camera notch or Dynamic Island on newer iPhones.

Reads on any screen, down to a watch

Improved

On a very small screen the menus used to fill the whole display and squeeze the reading word down to a sliver — or off the screen entirely. Now the interface sheds what it does not need as the screen shrinks, so the word always has room. On a watch-sized browser the reader fills roughly two-thirds of the screen instead of a tenth. Nothing changes on a normal phone or desktop.

Chapter list opens reliably

Fixed

On some layouts the chapter menu opened behind the reading area, so tapping a chapter started reading instead of jumping to it. It now opens cleanly on top, closes with a tap anywhere outside, and fits any screen.

Books open in their own typeface

New

ReadKinetic now pulls the font a publisher embedded in an EPUB and reads the book in it — the way the book was meant to look. This is the new default; you can still force one font for everything, or pin a specific font to a single book. Your library shows each book in the font it will open in.

A library that shows your reading, not just your books

Improved

Rebuilt from the ground up. Each book leads with how much of it is left — “about 3 sittings”, “6 chapters to go” — because that is the thing you actually want to know when choosing what to pick up. Real titles and authors are read from the file instead of the filename, and every book gets a small colour identity of its own.

Leaving continuous play is now a single tap

Improved

Once you are reading hands-free, one tap — or the spacebar — stops it. Getting out of a mode should never cost more than getting in.

Scanned PDFs now tell you the truth

Fixed

A PDF that is really a stack of page images has no text to read. Instead of importing something blank and leaving you puzzled, ReadKinetic now says so and points you at OCR.

The interface fades away while you read

New

While words are moving, the buttons and chrome recede and the light closes gently in around the word; everything returns the instant you stop. It fades out slowly and comes back fast on purpose — a quick fade would catch your eye, which is the one thing a reader like this exists to prevent. On by default, and switchable in Settings.

The pace eases off before a hard word

New

Reading is not perfectly even — you slow a little as a difficult word approaches. ReadKinetic now does the same, easing the pace down over the couple of words before a rare or long one, then recovering. It works out which words are hard from the book itself, so it needs no dictionary and works in any language.

Themes are now places to read in

Improved

Sixteen scenes, each with its own light — a lamp pool, a candle that quietly breathes, moonlight, a darkroom safelight that protects your night vision, a drafting-table blueprint. Not colour swatches, but somewhere the page is actually lit.

Every book remembers its own speed

Improved

A dense book and a thriller are not read at the same pace. ReadKinetic now keeps a separate reading speed for each book and restores it when you open it, and the library estimates time-left at that book’s own pace.

Cleaner text from EPUBs and PDFs

Improved

Running headers, footers and stray page numbers no longer land in the middle of your sentences, and words split across a line break are rejoined while genuine compounds like “well-being” are left alone. A quiet check now runs on every import and warns you if a file came out badly, instead of handing you a mess without a word.

Books open where the story begins

Improved

Unread EPUBs now start at chapter one instead of the cover, title page and copyright — when the file marks where its content begins. The front matter is still there if you scrub back for it.

Bring your own font

New

Upload a .ttf, .otf or .woff and read anything in it. Stored on your device only, like everything else here.

Learn the controls by doing them

Improved

The welcome now walks you through each gesture — hold to read, lock continuous play, scrub, change speed — by having you actually perform it once, so you reach your first book already knowing how it works.

The “saved” pop-up is gone

Fixed

A little confirmation used to appear over the reading area every few seconds, which pulled your eye off the word. Saving still happens constantly and automatically — it just no longer announces itself.

ReadKinetic launched

New

A free, local-first speed reader for your own EPUBs, PDFs and text — one word at a time, entirely in your browser, with nothing uploaded and no account. Shared with the world for the first time on Hacker News.

Read your next book faster.

Import EPUB, PDF, Kindle, Word, Markdown and the rest — thirty-nine formats in all — and read one word at a time, entirely in your browser. No account, nothing uploaded, nothing tracked.

Open ReadKinetic Free