## Client setup — pointing Anki at this server instead of AnkiWeb Every client below needs the **Sync URL** and one of the **accounts** shown higher up in this README. Do this on every device you want synced — a client still pointed at AnkiWeb won't see collections synced here, and vice versa. ### Anki Desktop (2.1.66 and newer) 1. **Preferences → Network** 2. Tick **"Self-hosted sync server"** 3. Paste the Sync URL into the field that appears 4. **Sync → log in** with one of the accounts above ### Anki Desktop (older than 2.1.66) There's no GUI field yet — set an environment variable before launching Anki instead, then sync normally: ```bash # Linux/macOS export SYNC_ENDPOINT="https://your-sync-url/" anki # Windows (Command Prompt) set SYNC_ENDPOINT=https://your-sync-url/ anki.exe ``` Upgrading Anki to 2.1.66+ is the easier long-term fix — do that if you're setting this up for anyone who isn't comfortable with environment variables. ### AnkiDroid **Settings → Advanced → Custom sync server**, then enter the Sync URL and log in with one of the accounts above (AnkiDroid 2.16+; update the app if this option isn't there). ### AnkiMobile (iOS) **Settings → Advanced → Custom Sync Server**, same as AnkiDroid — enter the Sync URL and log in. ### First sync on each device The very first sync from a device that already has a local collection will ask whether to upload local data or download from the server — pick upload from whichever device has your real collection, and download on every other device, or you'll end up with two different collections that never merge. ## Importing your existing Quizlet sets This server only handles syncing already-existing Anki collections — it doesn't import anything itself. Quizlet import happens once, locally, in the Anki desktop app, before your first sync: 1. **In Quizlet:** open the set → **Export** → choose the plain-text / tab-separated format (Quizlet's export dialog lets you pick the delimiter between term and definition, and between rows — tab and newline are the Anki-friendly defaults) → copy the exported text or download it as a `.txt`/`.csv` file. 2. **In Anki Desktop:** **File → Import**, pick the file (or paste the text into a `.txt` file first if you copied it to the clipboard). 3. Map the two columns to **Front** and **Back** in the import dialog, pick or create the deck and note type, and import. 4. For **math facts or other simple front/back cards**, the Basic note type is enough. For **more complex cards** (extra example fields, images, audio, cloze deletions), switch the note type in the import dialog to a template with more fields, or convert cards afterward — Anki's own built-in note types (Basic, Basic (and reversed card), Cloze) cover most of what Quizlet's own card types can do. 5. Sync from this device once the import looks right, so the imported deck becomes the copy every other device downloads. ### Exporting back out (Anki → Quizlet or anywhere else) **File → Export**, choose "Notes in Plain Text" and pick the deck — this produces the same tab-separated format Quizlet's own import expects, so the round trip works in both directions. ## Why spaced repetition here actually reschedules failed cards Anki's scheduler (FSRS, the default since recent Anki versions) tracks a per-card memory-strength estimate and schedules the next review right before you'd be expected to forget it. Answering "Again" on a card doesn't just requeue it for later the same session — it lowers that card's estimated strength, which shortens every subsequent interval for it until you've proven you know it again, so a card you keep failing gets shown far more often than one you consistently get right. This is scheduling logic inside the Anki client itself; this sync server only stores and syncs the resulting review history, it doesn't change how reviews are scheduled.