Privacy Policy

Effective date: July 3, 2026 · Applies to the Fianchetto app for macOS, iOS, iPadOS, and Android, and to this website.

The short version

Data stored on your device

Fianchetto stores your chess library locally: game collections and games with annotations, opening repertoires, personal traps, tactics and training progress (ratings, spaced-repetition state, drill history), cached analysis results, and your app preferences.

On Apple platforms this lives in the app's private database and settings. On Android it lives in app-private files and preferences. No other app can read this data through Fianchetto.

iCloud sync (Apple platforms)

On iOS, iPadOS, and macOS, Fianchetto uses Apple's iCloud to keep your data in sync across your own devices, always within your own Apple ID:

All iCloud data stays inside your Apple ID and is handled by Apple under Apple's privacy terms. Fianchetto has no access to it outside your devices. The app also uses silent iCloud push notifications solely to trigger sync; there is no user-facing push messaging.

Online imports & chess services

Fianchetto operates no servers. When you use an online feature, the app talks directly to the relevant chess service over HTTPS. Every request to these chess services is a plain HTTPS GET that carries only the minimal query described below — a username you typed, a board position (FEN), or a game ID. The app never uploads your library, game files, or exports to these services. (Your library does travel to Apple's iCloud and Game Center as described in the sections above and below.) Specifically:

Chess.com game import

When you import games or press "Update Games" for a Chess.com collection, the app sends the username you typed to api.chess.com to fetch that player's public game archives. No token or authentication is ever sent to Chess.com. These requests happen only when you initiate an import or update — there is no background syncing of online accounts.

Lichess game import

When you import games from Lichess, the app sends the username you typed plus your chosen filters (opening, date, rated, time control, color) to lichess.org. If you have saved an optional Lichess API token, it is included so Lichess can apply your access level; otherwise the request is anonymous. Again, this happens only when you initiate it.

Lichess opening explorer

The opening explorer is off until you turn it on (by loading explorer data or enabling its follow-along mode). Once on, the app sends the position on your board (as a FEN string) to explorer.lichess.org to fetch statistics — one request per position you view. If you have saved a Lichess API token it is included so Lichess can apply your access level; otherwise the request is anonymous. Results are cached in memory only.

Lichess endgame tablebase

For positions with 7 or fewer pieces, the app can query the Lichess tablebase at tablebase.lichess.ovh, sending only the position (FEN) — never a username or token. In the Analysis view this is off by default and probes only after you turn it on. In the Endgame trainer, tablebase lookups happen automatically when you start a drill, to verify the position; if the network is unavailable, the app falls back to on-device Stockfish.

Sharing a Lichess link into the app (iOS)

If you share a lichess.org game link into Fianchetto, the share extension fetches that game's PGN from lichess.org using only the game ID from the link, always anonymously (the extension never has access to your token). Chess.com links are not supported and are rejected with an error.

Game Center (Apple platforms)

Online turn-based play uses Apple's Game Center. If you play online, your moves and game outcomes travel through Apple's Game Center servers, and opponents see your Game Center display name. The app also reports achievements and two leaderboards (tactics rating and total tactics solved) to Game Center. Note that the app asks Game Center to authenticate automatically at launch — a network contact with Apple that Apple mediates under its own terms; if you decline Game Center sign-in, the app's features do not re-prompt you.

Each of these services processes the data it receives (your typed username, a position, a game ID, or Game Center moves) under its own privacy policy: Lichess, Chess.com, and Apple.

Optional Lichess API token

You can optionally paste a Lichess personal API token into Settings to raise Lichess rate limits for game imports and the opening explorer. This is the only credential in the entire app.

You can remove the token at any time in Settings.

Device permissions

Bluetooth

Used only to connect a supported electronic chessboard — Square Off Pro, Chessnut, ChessUp 2, or Millennium eONE. Moves travel directly between your device and the board over Bluetooth; nothing about your board play is sent over the internet. On Android 12 and later, the app uses the modern Bluetooth-scan permission with the "never for location" flag. On Android 6 through 11, the platform's own Bluetooth-scan API will not return nearby devices unless a location permission is held; the app requests it solely as that scan gate — declared with maxSdkVersion="30" so newer devices never see it — and never uses it to determine your location.

Microphone & speech recognition

Used only for voice move entry, and only while you are using it.

Android permissions the app requests

Bundled support libraries would otherwise add housekeeping permissions of their own — WAKE_LOCK, ACCESS_NETWORK_STATE, RECEIVE_BOOT_COMPLETED, and FOREGROUND_SERVICE — for background-task scheduling that Fianchetto does not use; the app's manifest strips all of them, so they are absent from the installed app. The only library-added entry that remains is an app-private signature permission that keeps the app's internal broadcasts private; it grants no access to your data.

No location permission is requested on Apple platforms or on Android 12 and later. On Android 6 through 11, the location permission noted above is requested only as the platform-required Bluetooth-scan gate and is never used to determine your location.

Electronic chessboards

Move data between your device and a supported electronic chessboard travels over Bluetooth Low Energy only — it is never sent to the internet. The app supports the Square Off Pro, Chessnut, ChessUp 2, and Millennium eONE boards. No account, registration, or vendor cloud service is required or contacted by the app; the board's position is held only in memory while it is connected.

Performance Elo estimate

The Elo performance estimate in the Stats view is computed entirely on your device from your own annotated games, using a calibration model trained on the public-domain Lichess Open Database (CC0). No rating data is fetched from Lichess, Chess.com, FIDE, or any other service — it is a local estimate, not an official rating.

What we never collect

This website

This site (fianchettochess.app) is a static site hosted on GitHub Pages. It sets no cookies, runs no analytics, and makes no requests to third parties. GitHub, as the host, may log standard web-server request data under GitHub's privacy statement.

Changes to this policy

If the app's behavior changes in a way that affects your privacy, this policy will be updated before that version ships, with a new effective date at the top of this page.

Contact

Questions about this policy or the app: support@fianchettochess.app.