Internal — Eyes Only — Do Not Share
Estate Audit & Operating Reference

Vivere Web Development

Screenshot & Report

Everything you have built, where it lives, how it gets updated, what it costs, what is exposed, and what to do when you start the next one. Produced from a six-agent read-only audit of the entire estate.

Prepared for: Joseph Sutliff · Vivere
Audit date: August 16, 2026  ·  Method: 6 parallel read-only agents · 23,846 files · 97 hostnames

78
Cloudflare Pages projects
97
live hostnames
~20
client relationships
32GB
total estate
1
copy of it all

Read this first. Three things matter more than everything else in this document:

  1. Your admin OS is on the public internet with its passwords inside it. vivian-admin.pages.dev serves the whole Vivian app with no Cloudflare Access, and both account credentials sit in plaintext in /vivian.js. Verified live.
  2. You have exactly one copy of everything. The backup script has run every 15 minutes for four months and done nothing — it exits successfully when the drive is missing. There is no cloud copy.
  3. Nothing is leaking to the web. Every .env probe returned 404. Your exposure is on-disk and in git, not on the internet. That is a much better problem to have.

Where to start

01

What you've built

Every live site, what it is, and whether it's healthy.

02

Where it lives

The folder map, and which folder maps to which live URL.

03

How to update

Deploy procedures — and the one site you must never deploy directly.

04

Starting a new project

The checklist that prevents every problem in this report.

05

What's at risk

Exposed, unversioned, and unrebuildable.

06

The backup plan

Cloudflare R2 + restic. $0.15/month.

Contents

Part I — The Estate
In one line78 Cloudflare Pages projects across 97 hostnames. 91 return 200 with real content. Availability is not your problem — exposure is.

1. What you have built

You have built considerably more than a typical solo shop, and the scale is the first thing worth internalising. When this audit started, the working assumption was around 30 projects. The real number is 78 Pages projects serving 97 hostnames.

CategoryCountWhat it is
Live client production sites~15Real businesses with real customers — Mimi's, GVEC, The Yard, Jireh, SOL, Carniceria, TruVue, Top it off
Client reports & proposals~25Pitch decks, strategy reports, value reports — the sales engine
Review hubs & pilots~20Campaign reviews, SIGNAL pilots, showcase builds
Internal tools~10Vivian admin, playbooks, capability catalog, agent docs
Staging & placeholders~8Staging twins, intentional takedowns

Why you couldn't hold this in your head. That's not a failing — it's roughly 78 deployments built across two years while also running the client work. The problem this report solves isn't that you forgot; it's that nothing was enumerating it for you. That's now fixed, and §7 gives you the process so the next 78 stay documented.

2. Live client sites

Sec = security headers present: F X-Frame-Options · C X-Content-Type · R Referrer-Policy · H HSTS · P CSP.

SiteStatusSecNote
mimissweettreats.comHealthyFCRHPThe only fully-hardened site you own — and the best pipeline. Copy this everywhere.
gveventcenter.com200-CR--No HSTS/CSP/XFO. Staging twin is cannibalising its SEO.
theyardfuncenter.com200-CR--No HSTS/CSP/XFO.
jirehcafeandbakery.com200FCR--Git Provider = Yes — GitHub is in this deploy path. Folder idle 109 days.
soleverydaybs.com200FCRH-Missing only CSP. Deploy script omits .env from its exclude list.
vivereweb.com200FCR--Git Provider = Yes. 17 files uncommitted for a month.
carneceria-senora200FCR--Deploys raw from repo root — ships admin/, SETUP.md, node_modules/.
truvu-pilot200-CR--Live client site with an unversioned source folder.
true-nord-photography200FCRHPFull header set.
topitoffgj.comComing Soon-CR--2.7 KB holding page despite notes saying the build is live.
vivere-colorado200FCR--Trailer site. noindex deliberate until the name is final.
tentacle-tide200-CR--Void Tide β.

The header gap is one file repeated. Mimi's has a good _headers file; it was never copied to the other ~90 hosts. That's a single-file fix, not 90 separate problems.

3. Reports, pilots & internal tools

Around 45 further hosts return 200 with correct titles and a noindex tag — the bulk of your report and review-hub estate, working as intended. The seven correctly-protected ones (sol-network-report, vivere-team-strategy, vivere-ip-record, vivere-film-review, nord-soundlabs, mimis-recipe-engine, mimis-internal-wholesale) send both an X-Robots-Tag header and a meta tag. That's the pattern to copy.

4. Broken & orphaned

HostIssue
mimis-wholesale-pack404, 0 bytes — believed live, is not
mimis-sweet-treats-staging404 — staging for your flagship client is dead while prod is live
vivere-production-bible, gj-pro-gym, elswr-tattoo"Deployment Not Found"
staging-dev-client-tripodi0 bytes

Two live sites cannot be rebuilt. mimis-catering-expansion (311 KB, titled CONFIDENTIAL) and mimis-internal-wholesale are live with no local source folder. If Cloudflare lost them tomorrow they're gone. Fix: wrangler pages deployment list, download the latest, re-home the source — or delete the projects.

Part II — The System
In one lineCode lives in Vivere Clients\, content lives in Media Channels\, everything deploys with wrangler from your machine — and one site has a special pipeline you must never bypass.

5. Where everything lives

C:\Users\sutli\Desktop\Developer\ │ ├── Vivere Clients\ ← ALL CLIENT WORK (code + sites) │ ├── Mimis Sweet Treats\ location #1 · LIVE · own repo · BEST PIPELINE │ ├── Mimis at Roadhouse\ location #2 · in progress │ ├── Vivere Colorado Food Trailer\ trailer + catering · own repo │ ├── Delta Expansion 2026\ umbrella program: master report + research │ ├── Grand View Event Center\ GVEC · own repo │ ├── The Yard Family Fun Center\ own repo │ ├── Jireh Cafe and Bakery\ own repo · Git Provider = Yes │ ├── TruVue\ Proscapeco\ Torta Roofing\ Moore Racing\ … │ └── _AUDIT-2026-08-16\ ← this audit's source files │ ├── Vivere Internal\ ← THE AGENCY ITSELF │ ├── Vivere Web Site\ vivereweb.com working tree │ ├── Finances\ ⚠ contains real financial data │ └── vivere-estate-report\ ← this report │ ├── Media Channels\ ← CONTENT (social, video, campaigns) │ ├── Mimis Sweet Treats\ the live social pipeline │ ├── Mimis at Roadhouse\ Vivere Colorado\ Vivere\ GVEC\ … │ └── mimis-menu-boards\ ← physical menu-board system (shipped product)

The split to remember: Vivere Clients\<client>\ is the website and code. Media Channels\<client>\ is the content — social cards, videos, campaign scripts. They're separate on purpose. A client with both has a folder in each.

The one thing that confused everything: your entire home folder C:\Users\sutli used to be a git repo pointed at github.com/MIMITREAT/allbizco. That's why every Claude Code session was labelled "allbizco" and why git status showed thousands of unrelated files. Archived 2026-08-16 to _git-archive-allbizco-2026-08-16 — all 135 commits preserved, reversible with a rename.

6. How to update a site

The standard case — most projects

# from the folder that holds the site files npx wrangler pages deploy . --project-name <project> --branch main --commit-dirty=true

Project names do not match domains. The Yard's domain is theyardfuncenter.com but its project is the-yard-family-fun-center. Always verify:

npx wrangler pages project list

Mimi's Sweet Treats is different. Never deploy it directly. It has a build step that strips internal docs out of the public bundle. A raw wrangler pages deploy . from that repo root would publish _docs/, internal reports, and .env.

edit files .\build-dist.ps1 # builds dist/, fails on LEAK DETECTED .\deploy-staging.ps1 # master.mimis-sweet-treats.pages.dev review the staging URL .\deploy-prod.ps1 # www.mimissweettreats.com

Verifying a deploy

  1. Check the unique hash URL from the deploy output first — the alias can lag by a minute.
  2. Confirm real content, not just HTTP 200. A 200 can be a stale cache.
  3. Bust cache when rechecking: curl -s "https://…/?cb=$(date +%s)"

7. Starting a new project

This checklist prevents essentially every problem in this report. Follow it and the next 78 projects stay clean.

Part III — Risk
In one lineNothing leaks to the web. But an admin app is public with its passwords inside, several confidential reports are indexable, and 8 GB of active work has no version history at all.

8. What is exposed

HostWhat it isSeverity
vivian-admin.pages.devInternal admin OS — CRM, client milestones, calendar — no Cloudflare Access, plaintext credentials in /vivian.jsCritical
gvec-value-reportGVEC value & pricing in a live negotiation — missed in the Jul 18 takedownFixed 8/16
vivere-client-reportsSonora Market build report + competitive analysis; text says confidentialHigh
elswr-proposalClient proposal with pricing; still branded "Allbizco"High
vivere-agent-playbook142 KB of core internal operating IPHigh
grand-view-event-center-stagingAllow: / + sitemap pointing at production — actively harming a live client's SEOHigh
mimis-campaign-report · proscape-staging · wandell-racing-signalConfidential or unreleased client material, indexableMedium

Already fixed in this session: gvec-value-report taken offline — 59,556 bytes → 775, noindex set, zero pricing data exposed. The original was preserved to Grand View Event Center\_docs\recovered-reports\ first, because that project had no local source.

9. What has no history

Now that the home-directory repo is archived, these folders have no version control at all. No history, no rollback, no undo.

FolderSizeCode filesWhy it matters
Media Channels\ — entire tree2.5 GB153Mimi's live social pipeline runs from here
Horn Venues Marketing\3.4 GB147Largest unversioned client folder; live deliverable
Proof of concept\1.8 GB448Has a fake .git — no objects/. Looks versioned to every automated check. Highest code-file count you own.
Vivere Web Site\313 MB279Live agency site working tree
mimis-menu-boards\372 MB57Shipped physical product
TruVue\21 MB13Live client site. Cheapest win here — minutes of work.
Delta Expansion 2026\4.4 MB36Best size-to-value ratio in the list

10. Where the secrets are

The good news, verified empirically: nothing is reachable from the web. /.env returned 404 across four Pages hosts — Cloudflare doesn't serve dotfiles. Every dist/ output is clean. All 8 live client .env files are correctly gitignored. Your .gitignore discipline is sound.

Every leak found arrived by a different route:

WhatWhereAction
3 Google Cloud service-account keys, non-expiringTwo loose .json in Reports & Proposals\…\unsorted\, one pasted into a notes fileDelete in GCP IAM. Nothing uses them.
Clover private token + QuickBooks client secretCommitted and pushed to the Mimi's GitHub repo (private, not public)Rotate — needs Naomi
2 GitHub PATs + 4 Cloudflare tokens.claude/settings.local.json across 9 filesRevoke all 6
1 Cloudflare token identical across 7 projectsGVEC, Mimi's, SOL, Carniceria, Jireh, viverewebSplit into per-project scoped tokens

The structural cause worth remembering. .claude/settings.local.json stores approved Bash commands verbatim. Every curl you once approved with a token inline wrote that token permanently into the permission allowlist. Your approvals became a credential log. Nobody thinks of a settings file as a secret store — that's why it went unnoticed. Fixed 8/16: .claude/ added to 9 .gitignore files; The Yard's tracked copy untracked.

Part IV — Resilience
In one line32 GB, ~20 client relationships, every live site's source — on exactly one SSD. This is the largest risk in the audit and the cheapest to fix.

11. The backup plan

The backup you thought you had has been lying to you for four months. Run-T7-Backup.ps1 fires every 15 minutes. All 61 retained logs say the same 64 bytes: "T7 not detected on D:. Skipping this run." The scheduled task reports SUCCESS while doing nothing, because the script exit 0s on a missing drive.

Windows File History's catalog for that drive was last written 2026-04-16. There is no cloud copy. Developer\ is not in OneDrive or Dropbox. A drive failure today is a total business loss.

Why git is not the answer

Git is for source code — text where line-by-line history matters. Most of your estate is not that. 12 files exceed GitHub's 100 MiB hard block and can't be pushed at all. And binaries in git are irreversible: your own Ten4Funding is a 20.8 MB website with a 320.5 MB .git — 15× bloat, because binaries were committed and deleted. Deleting from git does not shrink git.

Use both: git for source and history, restic for survival.

The 3-2-1 rule, and where you fail it

3 copies · 2 media types · 1 offsite. You currently have 1 copy, 1 medium, 0 offsite.

12. Cloudflare R2 + restic — your chosen setup

Your dataset is ~15–18 GB deduped (41% of your content is a second or third copy of itself; restic's content-addressed dedupe collapses it). At R2's $0.015/GB:

LineCost
restic → Cloudflare R2, encrypted, versioned~$0.15/mo
Private GitHub repos for the 514 MB source tier$0
T7 external drive (owned) as fast local restore tier$0
Total~$0.15/mo

Why restic specifically: client-side AES-256 means Cloudflare holds ciphertext only and never sees your key. That makes it the one destination your .env files and credentials are allowed to go — never git, never Drive/OneDrive/Dropbox. Point-in-time snapshots are ransomware-resistant in a way sync services are not; sync propagates a delete or an encryption straight to the cloud. R2 also has permanently zero egress fees, so a full restore costs nothing.

Setup

# 1. install winget install restic.restic # 2. In Cloudflare dashboard: R2 → Create bucket → "vivere-backup" # Then R2 → Manage API Tokens → Create (Object Read & Write, that bucket only) # 3. environment (use your real values) setx RESTIC_REPOSITORY "s3:https://<ACCOUNT_ID>.r2.cloudflarestorage.com/vivere-backup" setx AWS_ACCESS_KEY_ID "<R2 access key>" setx AWS_SECRET_ACCESS_KEY "<R2 secret>" # 4. initialise — STORE THIS PASSWORD IN YOUR PASSWORD MANAGER FIRST restic init # 5. first backup restic backup "C:\Users\sutli\Desktop\Developer" ^ --exclude "**/node_modules" --exclude "**/dist" --exclude "**/.wrangler" ^ --exclude "**/*.mp4.tmp" --exclude "**/_git-archive-*" # 6. verify it actually restores restic snapshots restic restore latest --target "C:\restore-test" --include "*/Delta Expansion 2026/*"

Three things that void the entire plan if skipped:

  1. Store the restic password and R2 keys OUTSIDE the backup — password manager plus a printed offline copy. If the password only exists on C:, losing C: loses the backup. This single failure mode defeats everything above.
  2. Use a scoped R2 token limited to that one bucket. Malware on C: then can't erase your offsite history.
  3. Run the restore drill before deleting anything. Log it in RESTORE-DRILLS.md. If that file has no entry in 90 days, you don't have a backup — you have an assumption.

Also: BitLocker To Go on the T7, because it will carry every client .env and your SSH keys in plaintext otherwise. And dev-tools\android-keystore — two tiny files — must be in the backup and the password manager. Lose them and you can never update an already-published Android app.

13. Action list

Done in this session

This week

Soon

15. Live project index

Auto-generated from disk on 2026-08-16 at 18:52. 21 projects under version control, 15 without, 1 with a broken .git. Re-run the generator any time to refresh this table.

Vivere Clients

ProjectVersion controlTrackedLive URLLast touched
Carniceria Senorarepo76carneceria-senora.pages.dev2026-05-21
Crosspost videonone2026-07-12
Delta Expansion 2026repo55delta-expansion-plan.pages.dev2026-08-16
GJ Pro Gymrepo72026-06-08
Grand View Event Centerrepo355gveventcenter.com2026-08-16
Horn Venues Marketingrepo1912026-08-16
Jireh Cafe and Bakeryrepo98jirehcafeandbakery.com2026-04-29
Mimis Sweet Treatsrepo721www.mimissweettreats.com2026-08-16
Mimis at Roadhouserepo5master.mimis-sweet-treats.pages.dev/roadhouse2026-08-16
Moore Racingrepo132026-08-16
Proof of conceptFAKE .git2026-08-16
Proscapecorepo81proscape-quote-report.pages.dev2026-07-12
SOL Everyday Bullshitrepo131soleverydaybs.com2026-04-29
Ten4Funding (paused)repo34tenfourfunding.pages.dev2026-08-16
The Yard Family Fun Centerrepo231theyardfuncenter.com2026-08-16
Top it off Smoothie Caferepo36topitoffgj.com2026-08-16
Torta Roofingrepo22026-08-16
TruVuerepo29truvu-pilot.pages.dev2026-08-16
Vivere Colorado Food Trailerrepo16vivere-colorado.pages.dev2026-08-16
Wandell Racingrepo20wandel-et-engine.pages.dev2026-08-16
_AUDIT-2026-08-16none2026-08-16
_BACKUPSnone2026-05-20
_RECOVERED-ORPHAN-SITESrepo42026-08-16
_capability-catalognone2026-08-08
_templatesrepo252026-08-16

Media Channels

ProjectVersion controlTrackedLive URLLast touched
Cosmic Calmnone2026-06-17
Grand View Event Centernonegveventcenter.com2026-07-21
Hidden Livesnone2026-06-21
Mimis Sweet Treatsnonewww.mimissweettreats.com2026-08-16
Mimis at Roadhousenonemaster.mimis-sweet-treats.pages.dev/roadhouse
SOL Everyday BSnone2026-06-23
Viverenone2026-08-09
Vivere Coloradonone
Wanderers of the Cosmosnone2026-07-01
report-deploynone2026-06-27

Top level

ProjectVersion controlTrackedLive URLLast touched
Vivere Internalnonevivereweb.com
mimis-menu-boardsrepo255mimis-menu-boards.pages.dev

14. What is fine — don't spend effort here

Verification limits. Live/revoked status of each credential was not tested — testing requires transmitting it, which was deliberately not done. Treat all as live. Duplicate detection used size + file count, not content hashing — hash-verify before deleting anything. Binary formats (PDF/DOCX) were not scanned, and Reports & Proposals\…\unsorted\ is mostly PDFs and is exactly where the loose GCP keys surfaced — it deserves a manual pass.

Vivere Web Development — Screenshot & Report
Estate audit · August 16, 2026 · 6 parallel read-only agents · 23,846 files · 97 hostnames

Internal — eyes only. Contains security findings, credential locations, and client-confidential context. Do not distribute. Source detail: Vivere Clients\_AUDIT-2026-08-16\ (files 01–06).