Home  /  Read across devices

Across devices

Finish it on your laptop. Without an account.

You read forty pages on your phone. You sit down at your desk. ReadKinetic gives you a twelve-character code on one device, you type it on the other, and the book opens on the word you stopped at. No sign-in, no sync server, no camera.

Open ReadKinetic — it is in Settings, under Utilities.

Why everyone else needs a server for this

The usual way to move a reading position between devices is to keep it on a server: you sign in on both, the server remembers where you are, and it tells the second device. That works, and it costs you an account, an email address, and a company holding a record of what you read and when.

The second-usual way is a short code — six digits you type on the other device. It looks accountless, but it is not serverless. Six digits cannot contain a reading position; they can only point at one that some server is holding. The server is still there, just less visible.

Both approaches exist because of an assumption worth questioning: that the thing being moved is too big to carry. For a reading position, it is not.

Sixty bits is the whole trick

A reading position is two facts, and neither is large.

1

Which book — 32 bits

A fingerprint computed from the book's own text. Not the filename, which is the least stable thing about a file, and not the title, which two completely different translations happily share. The text, because the second number is counted through the text.

2

How far in — 21 bits

A word number. Twenty-one bits reaches 2,097,151 words; War and Peace is about 587,000, so there is room for books nobody has written yet.

3

Seven bits of housekeeping

Two to mark the format version, five as a check value that catches a mistyped or transposed character before it sends you to the wrong page.

Sixty bits in total, which is twelve characters in base32 — E0PF-QAJ0-02G3. Small enough to type, to text yourself, or to read down the phone. And because the code contains the position rather than pointing at it, there is nothing to store, nothing to expire, and no server to be honest about.

The alphabet has no I, L, O or U

Codes get read aloud and written on paper, and that is where a 1 becomes an l and a 0 becomes an O. The alphabet used here leaves those letters out entirely, so the ambiguity cannot arise. Typing is forgiving in the other direction too: lower case works, spaces instead of dashes work, and if you do type an I or an O it is read as the digit you meant.

What it does not do

It moves your place, not your book. The other device needs the same file already imported. That is the ordinary case — one person, two devices, one file opened on each — and it is precisely what makes a serverless version possible at all.

It is also one-shot and one-directional, not continuous sync. Two devices continuously agreeing is a different and much larger problem, one that needs a server holding your library and a rule for what happens when both change while offline. Nothing about your reading leaves your device, and that stays true because this feature did not require bending it.

There is nothing in a code to steal

A code holds a number and a fingerprint. No text, no title, no filename. A 32-bit fingerprint is one-way — it cannot be turned back into a book, any more than a checksum can be turned back into a file. And the app has no path to fetch or create a book from a code: it can only match against what is already in that device's library. Someone typing a random code into their own copy would, at the very best, land on a random page of a book they already own.

Common questions

How can it move my reading position with no server?

Because of how little there is to move. A position is two facts: which book, and how far in. Which book is a 32-bit fingerprint of the book's text; how far in is a word number. Squeezed together with a version marker and a few check bits, that is 60 bits — twelve characters. So the code is not a ticket to look something up on a server. The code is the position. There is nothing stored anywhere because nothing was ever separated from its identifier.

Do I need a camera or a QR code?

No. Most tools that do this show a QR code, which quietly excludes every desktop without a webcam, every work machine with the camera disabled, and anyone whose two devices are not in the same room. Twelve characters can be typed, texted to yourself, or read aloud over the phone. A device with no camera is a first-class device here.

Does it transfer the book itself?

No, and this is the honest limit. It moves your place, not the file. Both devices need the same book already imported. That is the ordinary case — one person, two devices, the same file opened on each — and it is what makes the whole thing possible without a server. Sending an entire book through a twelve-character code is not something arithmetic allows.

What if I renamed the file on one device?

It still works. The book is identified by a fingerprint of its own text, not by its filename and not by its title. Rename it, move it, download it again from somewhere else — as long as the words are the same, the code lands in the right place.

What if my two devices have different editions of the same book?

Then it will tell you it found no match, which is the correct answer rather than an unhelpful one. A word number counted through one edition means nothing in another: different front matter, different translation, different word count. Jumping you to the wrong chapter and letting you work out why would be worse than saying plainly that these are two different copies.

Could someone guess a code and read my books?

No, and not for a policy reason — there is nothing in a code to read. It contains a number and a fingerprint, no text, no title, no filename. A fingerprint is one-way: 32 bits cannot be turned back into a book. And a code can only ever open a file the receiving device already has, because the app has no way to fetch or create a book from one. Someone typing a random code into their own copy of ReadKinetic would, at absolute best, jump to a random page of a book they already own.

Is this the same as sync?

No, and it is deliberately not called sync. Sync means two devices continuously agreeing, which needs a server holding your library and an answer for what happens when both change while offline. This is a one-shot handoff in one direction, which needs neither. It solves the case people actually have — read on the train, continue at the desk — without the machinery, the account, or the promise that the machinery would then owe you.

Where do I find it?

In the reader, open Settings and look under Utilities for Continue on Another Device. One side shows a code, the other side takes one. Both devices need the book open or in the library.

Open a file and see.

Free, no account, nothing uploaded. Works offline once loaded.

Open ReadKinetic →

Related: Private speed reader · Every supported format · EPUB speed reader · What's new