User guide / Using Fiction Reader on more than one device

Beyond one device

More than one device

A laptop and a phone can keep the same reading position, the same highlights, the same organisation and the same books, without a Fiction Reader account and without anything passing through the developer.

All guide pages

Two ways to do it

Both are set up in Settings → Sync. Neither involves a Fiction Reader account, because there is no such thing.

A synced folder

Point Fiction Reader at a folder your existing Dropbox, Drive, OneDrive, iCloud or Syncthing client already keeps in step. It writes sealed files into it. Nothing to sign in to.

Google Drive

Sign in once. Fiction Reader gets access to a hidden folder of its own and nothing else in your Drive.

A server

If you already run one, you do not need sync at all. Every device is looking at the same library.

What travels

Synced
Reading positions and read markersYes
Reading historyYes
Highlights, notes and bookmarksYes
Tags, collections and story notesYes
Reader typography and themeYes
Your own imported booksYes, as whole files, with a per-folder opt-in
Source settings and stored site loginsYes, still encrypted. The key that decrypts them never goes to the cloud.
Downloaded chapters of web storiesNot yet. Each device downloads its own copies from the site.
The chapters themselves do not sync yet. Two devices following the same story each fetch it, and each doubles the traffic that story costs its site. If your devices are on the same network most of the time, a server is the better answer.

A synced folder

This is the simplest option and it works with every cloud provider, including ones that offer no usable interface to an app.

  1. Pick a folder your existing sync client already keeps in step, on both machines.
  2. Enter its path in Settings → Sync on the first device.
  3. Enter the same folder's path on the second device, using the path as that machine sees it.

Fiction Reader only ever writes complete, finished files into that folder and never changes one afterwards, which is what makes it safe to have a sync client watching it.

Do not put the library itself in a synced folder. The database and a sync client corrupt each other. The first-run folder picker refuses that choice for exactly this reason, and offers to keep the library elsewhere and sync from it instead.

If a conflict-named file ever appears in that folder, such as … (1).jsonl or … (conflicted copy) …, Fiction Reader stops and tells you, instead of treating it as data.

Google Drive

Fiction Reader asks for one narrow permission: access to a hidden application folder created for it. It cannot list, read or change any of your ordinary Drive files, and the permission screen says so.

What goes into that hidden folder is the list above, meaning reading state, annotations, organisation, selected settings, encrypted credential records, and your own book files when you turn book sync on. Two things are never put there: your site passwords in readable form, and the key that decrypts the encrypted ones.

On the desktop, signing in opens your normal browser, not a window inside the app, and the long-lived credential is kept in your operating system's protected storage. On Android the access token stays in the app's native memory.

To withdraw it later, use the Disconnect button in Fiction Reader. To stop every device at once, remove Fiction Reader from your Google account's third-party connections. Full instructions, including deleting the hidden data, are on the support page.

Adding a second device

The second device has to prove it is yours, and the approval is end-to-end encrypted, not trusted to the cloud provider.

  1. Set up sync on the new device and choose to join a library that already exists.
  2. It shows a six-digit code. The device you already have shows the same code and asks whether to approve.
  3. Compare the two codes and approve. The existing device then hands over the key the new one needs, wrapped so that only the new device can open it.

If the other device is not to hand, a recovery key does the same job. Keep it somewhere safe when you are offered it. On Android the recovery key can also be scanned as a QR code with the phone's camera.

Pending requests expire after 24 hours.

Set sync up before you type your profile name on the new device. Once connected, the names from your existing library arrive and you pick yours from a list, instead of typing it from memory and creating a second profile that nothing merges.

What the app tells you

The Sync card says which service is connected, how much is stored there, when this device last synced, what your other devices are called and when each was last heard from, and any error.

It says “last synced four minutes ago”, never “in sync”. A device cannot know that another one is up to date, only when it last heard from it, and a synced folder can take minutes to propagate. It also keeps the last success beside the current error, so it can say “failing since 09:14, last worked yesterday”, which is the sentence you actually need.

Before a first sync it estimates how much will be uploaded, and recalculates when you include or exclude a folder of books.

Sync now runs a cycle immediately. Fiction Reader also syncs when you finish a chapter, if sync reading progress promptly is on, so picking up a phone where a laptop left off does not mean waiting for a timer.

Sync failing never stops you reading. An unreachable, full or unauthorised remote becomes a message, and the local library carries on.

Disconnecting

Disconnect stops this device syncing and asks whether to leave the copy in the cloud. Leaving it is normally right: your other devices are still using it, and disconnecting one device is not deleting the library.

Deleting the cloud copy is done through your provider. For Google Drive, that is Manage apps in Drive settings. Do that only after deciding you will never need it to set up another device, because that copy is what a new device recovers from.

Or just use a server

Sync exists for people with no server. If your devices are usually on the same network, running the server is simpler and strictly better: one archive, one set of read markers, one download per chapter, and every device looking at the same thing with nothing to reconcile.

What it refuses to do

These are refusals with a stated reason rather than warnings, because each of them ends in data loss that would only surface days later.

  • Put the database in a synced folder.
  • Run two copies of the app against one library folder.
  • Sync between two libraries whose encryption keys differ. The stored site logins would be undecryptable, and the symptom would be “login rejected” a week later.
  • Carry on after a conflict file appears in the synced folder.
  • Read a library that a newer version of Fiction Reader has already written. It tells you to update this device first.
  • Delete a book on another device because this device currently cannot see the file.