[object Object]

← back to Dw Launches

add README with run instructions, component map, and stub list

6df89adb9107f101c788739601a40a216d7aa2e3 · 2026-06-19 10:10:41 -0700 · SteveStudio2

Files touched

Diff

commit 6df89adb9107f101c788739601a40a216d7aa2e3
Author: SteveStudio2 <steve@designerwallcoverings.com>
Date:   Fri Jun 19 10:10:41 2026 -0700

    add README with run instructions, component map, and stub list
---
 README.md | 56 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 56 insertions(+)

diff --git a/README.md b/README.md
new file mode 100644
index 0000000..446b4a9
--- /dev/null
+++ b/README.md
@@ -0,0 +1,56 @@
+# DW Launches — Multi-Channel Social Composer
+
+Designer Wallcoverings' own social "launches" workspace, modeled on Postiz `/launches`.
+A **local build tool** — no real OAuth, no live publish, no deploy.
+
+## Run
+
+```sh
+cd ~/Projects/dw-launches
+npm install        # express only
+npm start          # → http://127.0.0.1:9764
+```
+
+`PORT=9764` by default; override with `PORT=xxxx npm start`.
+
+## What it does
+
+Compose one post, fan it across 7 DW channels (Instagram, Facebook, LinkedIn,
+Pinterest, TikTok, X/Twitter, YouTube), override per-channel copy/media/fields,
+preview each platform live, schedule with a staggered cadence, view a calendar,
+and route through an approval gate.
+
+### The 9 components
+1. **Channel rail** — avatar chips, toggle targets; YouTube renders greyed with a `connect` stub.
+2. **Global editor** — master title + body + media inherited by selected channels.
+3. **Per-channel tabs** — unlock at 2+ channels; override copy/media/schedule.
+4. **Media attach** — drag-drop / file pick / URL ref (image · carousel · video).
+5. **Live preview** — per-platform mock: IG square, X 280 thread w/ counter, Pinterest tall pin, YouTube title+thumb.
+6. **Platform fields** — IG first comment, YouTube title+thumbnail, Pinterest board+destination link, X thread split.
+7. **Scheduling** — Post now / Schedule / Add to queue (preset PT slots) / Draft.
+8. **Calendar** — month grid of every scheduled per-channel slot, color-coded by channel.
+9. **State & approval** — Save draft → Submit for approval → **Steve sign-off** → publish (gated stub).
+
+## Hard rules enforced
+
+- **"Wallpaper" is banned** — server returns 422 on any saved copy containing it.
+- **Publish is gated** — `/publish` returns 403 unless the approval flag is set,
+  which requires the `STEVE-GO` sign-off token. Even then the publish is a
+  **simulation only** — no live social API is ever called.
+
+## Storage
+
+`data/launches.json` (gitignored is NOT applied — it's a seed artifact; the
+pristine seed lives in `data/seed-launches.json` and is copied on first boot).
+
+## Seed content
+
+`Trending Wallcoverings Collection 2026 — Weekly Arrivals`, all 7 channels,
+staggered same-day PT cadence: 9:00 IG · 10:30 Pinterest · 12:00 LinkedIn ·
+1:30 FB · 4:00 X · 6:00 TikTok · 7:30 YouTube. Status `pending_approval`.
+
+## Stubs needing Steve's go
+
+- Live publish (currently simulated behind the approval flag)
+- Real OAuth / channel connections (all faked; YouTube shown unconnected)
+- Deploy to Kamatera (intentionally not done — local tool)

← c34d2b6 verified working: all 9 components serve, gates enforce, hea  ·  back to Dw Launches  ·  Design refinement: DW luxury editorial theme for social comp b3d1a74 →