Personal File

Opening database…

Welcome to Personal File

Design your own forms, store records, search them, and create portable backups. No external libraries or cloud account are required.

Create and edit

  1. Actions → New database: name it and add text, number, date, or notes fields.
  2. Select Save form, then + New record.
  3. Fill in fields and select Save record. Select a row or mobile card to edit.

Browse and Record switch workspaces without discarding draft input. Cancel asks before discarding edits. Edits are not stored until saved. Removing fields or deleting a database permanently removes affected data.

Search and save searches

Use AND, OR, NOT, parentheses, quoted phrases, or FieldName:value. Examples: apple AND NOT banana, City:(Boston OR Chicago), "First Name":Jane.

Precedence is NOT, AND, OR. Adjacent terms imply AND. Search is case-insensitive and substring-based, not exact-value matching. Explicit field names override the field dropdown.

Save search remembers the query, selected field, and sorting with this database. Saved searches rerun against current records. Renaming fields does not rewrite names embedded in saved queries.

Backups and encryption

Export backup includes all databases, saved records, saved searches, and backup history, regardless of the current filter. Unsaved record edits are excluded. Choose encrypted or plain JSON.

Encryption uses AES-256-GCM, PBKDF2-HMAC-SHA-256, and 600,000 iterations. Use a long unique password. The optional hint is readable, unauthenticated metadata. It does not unlock the file or recover a lost password.

There is no password recovery. Encryption protects the exported backup—not browser data, local history, CSV exports, or printed output.

Device labels and save locations

Enter your own device label and location note. These values are remembered locally, not detected or verified. A location note might be “USB drive / Backups.”

The app records the filename but not a full filesystem path. A completed write does not confirm cloud synchronization, later file availability, or a tested restore.

History travels with the backup

Every new backup contains the previous history and an entry describing that export: date, device label, location note, filename, encryption, and content counts.

The current export's embedded status is “Included in backup; final save unverified.” Its file size is not recorded inside its own entry. Final save outcome and actual file size are recorded locally afterward.

That final local entry will be included in subsequent backups. Import merges history by event ID, preserves a completed local entry over an unverified one, and appends a restore event. It does not duplicate the same event merely because it appeared in several backups.

History is app-maintained information, not a verified audit trail. Imported entries are not independently verified. In encrypted backups, included history is inside the encrypted contents.

Header reminder

The header counts current records absent from the last locally recorded JSON export. It highlights when new records exist and more than 24 hours have passed, or when more than 10 records were added. It also highlights the need for a first backup when records exist.

Edits, form changes, and saved-search changes are not counted. Download requests and completed direct saves both reset the baseline. CSV does not. Restoring resets the baseline but keeps history. Click the header to export.

Restore and other output

Import validates and, if needed, decrypts the selected JSON file before asking permission to replace all databases and saved searches. Records are replaced, not merged. Local history is preserved and merged with included history.

CSV and Print results use all current search matches, not just the visible page. CSV is not a complete restorable backup. Restore uses JSON.

Storage and precautions

IndexedDB is the working copy, not your only backup. Clearing browser data, deleting profiles, private browsing, storage eviction, or device loss can remove it. Keep backups outside the browser, preferably on another device too.

Data does not automatically sync across browsers or devices. Use a stable app address and browser profile, or transfer data using backups. Searches and sorting read the selected database into memory, so large datasets can become slow.

Backup history

Device labels and locations are user supplied. Imported history is not independently verified. An entry included in its own backup cannot confirm that file's eventual save outcome.

When / eventDeviceFile / protection Location noteContentsSave status

Design your form

Field names must be unique, ignoring case. Removed fields lose their values. Explicit names in saved queries must be updated manually.

Save search

Use an existing name to replace it after confirmation, or a different name to save another search.

Export backup

Labels are entered by you, not detected or verified. Do not include passwords or sensitive details.

Anyone with the file can read the hint. Do not include the password, its answer, or sensitive information.

Backup history is always included. The current export is embedded with an unverified-save status; its final outcome is recorded locally afterward.

Backup password