docs: explain local Git backup workflow (#3458)

* docs: explain local Git backup workflow

* docs: correct export and version history details

* docs: show how to select backup revisions

* docs: save recovered backup revision to file

* docs: clarify recovered backup filename
This commit is contained in:
Amruth Pillai
2026-09-05 18:32:07 -07:00
committed by GitHub
parent ee52636c10
commit 772bf14525
2 changed files with 85 additions and 8 deletions
+68 -3
View File
@@ -42,7 +42,7 @@ Every export runs from the same **Download** dialog. You can open it two ways.
If your resume includes a [cover letter section](/guides/adding-a-cover-letter), the download dialog treats the resume and cover letter as two distinct documents.
- The **Resume** tab exports only your resume content and excludes cover letter sections.
- For PDF, DOCX, and Markdown, the **Resume** tab exports only your resume content and excludes cover letter sections. Its JSON export retains embedded cover-letter custom sections; independent cover letters remain separate dashboard exports.
- The **Cover letter** tab exports only visible cover letter sections, rendered full width on their own page.
You do not need to reorder pages or hide sections by hand to produce a resume-only or cover-letter-only PDF. Select the tab that matches what you want, then pick a format.
@@ -98,18 +98,83 @@ For examples and common workflows, see [Exporting a resume to Markdown](/guides/
Choose **JSON** when you want a structured backup of your resume.
The JSON export includes your full resume content and settings. You can import it later from the dashboard to restore the resume or create another version.
The JSON export includes your full resume content and settings, including any cover letter sections embedded in that resume. You can import it later from the dashboard to restore the resume or create another version.
JSON is also useful when working with AI assistants that understand structured data. Export JSON, ask an assistant to review or edit the fields, then import the revised JSON as a new resume.
<Info>
JSON export is only available on the **Resume** tab. Cover letters are exported through PDF, DOCX, or Markdown.
JSON export in the download dialog is only available on the **Resume** tab. To export an independent letter as JSON, open it from **Cover letters** on the dashboard and select **Export JSON**.
</Info>
<Warning>
Review AI-generated changes before importing or using them. AI assistants can make mistakes or add details that do not reflect your experience.
</Warning>
## Keep JSON backups in a local Git repository
Git can keep owner-controlled versions of your exported resume and cover letter without changing Reactive Resume or connecting it to a Git provider. This workflow is manual and local only: Reactive Resume does not commit, synchronize, or upload the files for you.
### Choose the right exports
Reactive Resume provides three different JSON shapes:
| Export | How to create it | What it contains | Can you import it as one resume? |
| --- | --- | --- | --- |
| **Single resume** | In the builder, open **Download**, stay on **Resume**, and download **JSON**. | Resume content and settings, including cover letter sections embedded in that resume. | Yes. |
| **Independent cover letter** | Open a letter from **Cover letters** on the dashboard and select **Export JSON**. | That letter's content and copied resume styling in the Reactive Resume cover-letter format. | No. Import it through the cover-letter library instead. |
| **Account archive** | Open **Settings**, go to **Account**, and select **Export my data**. | Account profile metadata, all owned resume records, independent cover letters, and an `exportedAt` timestamp. | No. It is an archive, not a single-resume import file. |
Use the single-resume and independent-cover-letter exports for the Git workflow below. An account archive is an additional portability backup, not a replacement for those files. Because its `exportedAt` timestamp changes on every export, do not expect otherwise unchanged account archives to be byte-for-byte identical.
### Create the local backup
1. Create a folder outside your Reactive Resume source checkout.
2. Export the resume and each independent cover letter you want to keep.
3. Give the files stable, descriptive names. The example below uses `resume.json` and `cover-letter.json`; replace each file with its latest export instead of changing its name.
4. From that folder, initialize Git and inspect exactly what you are about to commit:
```bash
git init
git add -- resume.json cover-letter.json
git diff --cached --stat
git diff --cached -- resume.json cover-letter.json
git commit -m "Back up resume and cover letter"
```
After the first commit, replace the JSON files with fresh exports and inspect the visible changes before committing again:
```bash
git diff -- resume.json
```
Stable filenames and the exports' two-space indentation make field changes easier to review. Repeat the add, diff, and commit steps only after the changes look correct.
<Warning>
Resume JSON, cover-letter JSON, and especially an account archive can contain private data such as contact details, application text, profile metadata, and email address. A local Git repository does not publish anything. Inspect every diff and decide separately whether to publish it; if you use a remote, make it private and control who can access it.
</Warning>
<Info>
JSON exports store image URLs, not offline copies of image files. An imported backup can show an image only while the referenced storage remains available and accessible.
</Info>
### Recover an earlier resume without replacing the current one
Choose the committed revision of `resume.json` that you want to recover. List commits that changed the file, then inspect
the selected revision from the backup folder. Choose a fresh, unused output filename; the example assumes
`recovered-resume.json` does not already exist:
```bash
git log --oneline -- resume.json
git show <commit>:resume.json
git show <commit>:resume.json > recovered-resume.json
```
On the Reactive Resume dashboard, select **Import an existing resume**, choose `recovered-resume.json`, and complete the import. Import creates a new resume, so the current resume remains available for comparison or further editing.
Only a single-resume JSON export works for this recovery flow. Import independent cover letters through the cover-letter library. Restoring an account archive wholesale is outside this workflow.
Git backups complement Reactive Resume's rolling snapshots; they do not replace or synchronize with [undo and version history](/guides/undoing-changes-and-version-history).
## Printing your resume
To print, export a **PDF** and print it from your PDF viewer or browser. This gives you the same layout that recruiters see when you send them the file.
@@ -8,7 +8,7 @@ Reactive Resume keeps two layers of change history for every resume:
- **Undo and redo**: a live timeline of the changes you've made in the current builder session.
- **Version history**: server-side snapshots taken at meaningful moments, kept even after you close the builder.
Use undo for a quick correction. Use version history to jump back to a template switch, an import, or an AI edit you made earlier.
Use undo for a quick correction. Use version history to jump back to an earlier editing snapshot, import, or AI/API edit.
## Undo and redo
@@ -44,12 +44,14 @@ Undo history lives in your browser for the current session. Reloading the builde
Reactive Resume snapshots your resume automatically:
- when you import a resume;
- when you switch templates;
- when the AI assistant applies edits;
- on periodic saves during editing.
- when the AI assistant or API applies edits;
- on periodic saves during editing, including template switches;
- when you restore a version.
Snapshots are stored on the server, per resume, and are kept across sessions.
Reactive Resume keeps a rolling window of the 30 most recent snapshots for each resume. Periodic editing snapshots, including template changes, are throttled to at most one every two minutes. Imports, AI/API edits, and restores create their own checkpoints.
### Open version history
Click the **clock** icon in the builder header, next to the resume name, to open the version history menu.
@@ -83,12 +85,22 @@ Restoring is **non-destructive**: it writes the older snapshot back through the
from the dashboard.
</Info>
## Keep longer owner-managed history with Git
In-app version history and Git backups solve different problems:
- **In-app version history** is automatic, stored by Reactive Resume, and limited to the 30 most recent rolling snapshots for one resume.
- **Git history** contains only the JSON exports you choose to commit. It is stored in your own local repository, uses your commit messages, and follows the retention you choose.
Git backup is manual. Reactive Resume does not create commits, synchronize with a repository, or upload files to a remote. To set up a local repository and recover a committed export as a new resume, see [Keep JSON backups in a local Git repository](/guides/exporting-your-resume#keep-json-backups-in-a-local-git-repository).
## Which to use when
| Situation | Use |
| --- | --- |
| You typed a wrong word or moved an item you didn't mean to. | Undo (`Cmd/Ctrl+Z`) |
| You just switched templates and want the old one back. | Undo, or version history if you've kept editing since. |
| You just switched templates and want the old one back. | Undo; version history can help only after a periodic editing snapshot captures the switch. |
| You imported a resume and want to compare with what you had before. | Version history |
| The AI assistant applied edits you no longer want. | Undo the batch, or restore the pre-AI snapshot. |
| You closed the browser and want to roll back yesterday's changes. | Version history |
| You want selected backups beyond the 30-snapshot rolling window. | Export JSON and commit it to your own Git repository. |