# Extra — owner deliverables (safe, hand-maintained)

This folder is the **safe, clearly-named home** for the parts of the PPPHP product
that you (the owner) ship and maintain by hand. Nothing here is generated or
disposable — it is all source you edit. It is deliberately kept **out of the
`output/` build folder**, so cleaning `output/` can never delete anything important.

> Manage these from inside the app: **Owner menu → Deliverables** (owner-only).
> In-app guide: **Help → Owner: Files & Deliverables** (`/help/owner_deliverables`).

## What's here

| Folder | What it is | You edit it? | How it ships |
|--------|-----------|--------------|--------------|
| `MarketingSite/` | The public **ppradhan.com** landing site (static HTML/CSS/JS + docs). | ✅ Yes — edit the files directly. | Owner menu → Deliverables → **Marketing Website** → Download ZIP → upload to the domain root. |
| `CommunityPortal/` | The community forum's **editable code** lives in `CommunityPortal/custom/` (the project's `custom/` is a symlink to it — one copy, edited here or in the console's Custom Files editor). See that folder's README for the file map + the design/DB parts that live elsewhere. | ✅ Yes — edit `custom/…` directly. | Owner menu → Deliverables → **Community Installer** → Rebuild → Download ZIP → unzip on a server, open `install.php`. |

## The golden rule (why nothing is at risk)

- **`Extra/`** = source you hand-maintain. **Back this up. Never auto-delete it.**
- **`output/`** (outside this app, at `../ppphp/output/`) = machine-generated builds.
  **Safe to clean** — anything here can be regenerated by rebuilding.
- The community forum's project source (`projects/admin/community/`) is also safe —
  it is **not** in `output/`, and it is what the build reads from.

Because the **Download** actions rebuild automatically when needed, even a wiped
`output/` self-heals on the next download.

## Adding another deliverable later

Drop a new clearly-named folder here (e.g. `Extra/AdminKit/`), give it a short
README like this one, and wire an owner page + menu item the same way the two
existing deliverables are wired (see `modules/Settings/Controllers/DeliverablesController.php`).
