Family Archive is a privacy-first, preservation-grade family history platform. It protects immutable originals, creates traceable viewing and restoration derivatives, and gives approved family members a simpler way to contribute, review and discover shared history.
Live product: familyarchive.bayforgesystems.com
- Current release: v4.2.0 — Batch Content Safeguards
- Official evidence: 37 approved and closed screenshot groups
- Media supported by the completed workflow: photos
- Production services: Laravel Cloud, MySQL, Wasabi object storage and Google Maps
- Migration qualification: a synthetic 30,000-entry run proved checkpoints, interruption recovery, isolated failures, idempotent replay and reconciliation
- Real family migration: deliberately separate and not represented by public evidence
- Composite scans: automatic border and borderless layout suggestions plus a free-form, original-first manual split editor, proven by approved Group 34 evidence
- Split-photo rendering: padded child extraction, independent rotation/deskew and final cropping in that order, with manual 90-degree overrides in Group 36
- Private source exclusions: pre-discovery subtree pruning and fail-closed resume continuity, proven by approved Group 35 evidence
- Batch content safeguards: identification-document and sensitive-minor holds are enabled by default, owner-configurable per batch and enforced by single and bulk decisions; suspected illegal or exploitative material remains permanently blocked
The v4.2.0 Batch Content Safeguards release is approved and closed by Screenshot Group 37 evidence.
- Immutable, checksum-verified originals with no-overwrite storage boundaries
- Quarantine, duplicate review, human acceptance and append-only audit history
- Automatic and manual restoration from the verified original, with versioned lineage
- Multi-photo scan detection and reversible separation into independently reviewed photos
- Clipping-safe child rendering that rotates or deskews before calculating the final crop
- Resumable batch intake designed for tens of thousands of photos
- Strict source-subtree exclusions whose names and contents never enter discovery
- Manual, per-batch safety classification with fail-closed approval enforcement
- Delegated family roles, guided non-email access and owner-controlled exceptions
- Albums, permission-aware search and privacy-reviewed interactive maps
- Embedded family messaging with participant-controlled mute, archive and block
- Live production health, restrictive browser headers and private Wasabi storage
The complete feature inventory is in Capabilities. The architecture and preservation rules are described in the System Overview.
Accepted originals are never overwritten, silently replaced or automatically deleted. Quarantine objects, originals and derivatives have separate identities. Every viewing or restoration derivative records its source lineage. Automated processing produces suggestions; people make consequential archive decisions.
flowchart LR
A["Approved family members"] --> B["Laravel application"]
B --> C["MySQL metadata and audit history"]
B --> D["Queue workers"]
D --> E["Private Wasabi prefixes"]
E --> F["Quarantine"]
F --> G["Human review"]
G --> H["Immutable original"]
H --> I["Versioned derivatives"]
B --> J["Permission-aware archive, albums and maps"]
The detailed trust boundaries, storage prefixes and processing rules are in the System Overview.
The repository, tests and public screenshot evidence use synthetic people, places and media. Real family photos, names, storage identifiers, credentials and local source paths are excluded. The release verifier checks those boundaries and validates the official PNG evidence packs.
See Security, Threat Model and Evidence Guide.
The source is publicly viewable for portfolio and evaluation purposes, but it is not open source. See Rights and Licensing.
- PHP 8.3+ and Laravel 13
- Livewire 4, Flux, Tailwind CSS and Vite
- MySQL in hosted production
- Pest, Larastan and Laravel Pint
- Wasabi S3-compatible private object storage
- Google Maps for privacy-reviewed public locations
Install and initialize the project:
composer setupRun the local application services:
composer devRun the full engineering and release gate:
composer test
composer release:verifyThe portfolio dataset is synthetic. Configure a unique
PORTFOLIO_DEMO_PASSWORD, then seed a fresh local database:
php artisan db:seed --class=PortfolioDemoSeederPORTFOLIO_DEMO_MODE=true makes authenticated demonstration writes fail
closed. Never reuse demonstration credentials or data in production.
- Documentation index
- Current maintenance boundary
- Capabilities
- Release history
- v4.0.0 release notes
- Roadmap and closed groups
- Build and evidence process
- Development process
Created and developed by Codie Shannon under BayForge Systems.
