coulomb-social/workplans/CSOC-WP-0001-bubble-io-exit-assessment.md
tegwick a0fd3cb7ea Advance Bubble export: corpus walk and ADR-0004 sample tree
Add corpus exporter (session + ES capture), record 71 spaces / 109 articles
and local reichelag markdown tree with visuals. Redacted progress only in git.
2026-08-13 12:24:13 +02:00

146 lines
5.5 KiB
Markdown
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
id: CSOC-WP-0001
type: workplan
title: "bubble.io exit assessment"
domain: communication
repo: coulomb-social
status: active
owner: bernd
topic_slug: coulomb-social
created: "2026-08-09"
updated: "2026-08-13"
origin: residual
origin_ref: the-custodian/docs/coulomb-social-rebuild-seed.md
state_hub_workstream_id: "ecefaeef-908a-4072-ae34-6406862d4cad"
---
# bubble.io exit assessment
Assess the live coulomb.social bubble.io product, export its data model, decide
the v1 feature cut, and rehearse migration into the code-owned stack.
## Operating posture (2026-08-10)
| Host | Role |
|------|------|
| **`https://coulomb.social`** | **Bubble.io** — full product, production members/content |
| **`https://app.coulomb.social`** | **Railiance rebuild** — identity live; product surfaces under construction |
**Strategy:** perfect the rebuild on `app.coulomb.social` **before** migrating all
spaces/data from Bubble. Do **not** repoint apex DNS until product + content
persistence + self-registration are ready and a migration rehearsal has passed.
Identity shell is done (`CSOC-WP-0002`). Product/content foundation is
**finished** (`CSOC-WP-0004`). This workplan is the home for **inventory,
mapping, feature cut, and migration rehearsal**.
## Inventory bubble.io app
```task
id: CSOC-WP-0001-T01
status: done
priority: medium
state_hub_task_id: "240a97c5-1f57-4da6-a75b-d7b3416afdd1"
```
Inventory the current bubble.io app: pages, workflows, data types,
integrations, external services, and content surfaces that must be preserved
or deliberately dropped. Record findings under `docs/bubble-inventory/` (create
as needed). Prefer **spaces / pages / markdown-shaped content** first so
`CSOC-WP-0004` Forgejo persistence can map cleanly.
2026-08-12: Surface inventory committed —
`docs/bubble-inventory/2026-08-12-surface-inventory.md`. Public meta, hosts,
Research/`vw_pages`/pg_chunk routes, integrations, content hypothesis, gaps.
**Data types empty** on public API — full type/workflow graph waits on Bubble
editor export (T02).
## Data export and schema mapping
```task
id: CSOC-WP-0001-T02
status: progress
priority: medium
state_hub_task_id: "0bc6eea3-030d-4987-b203-15ccd4f94fcb"
```
Produce a full data dump from bubble.io and map it to:
1. tenant-keyed application tables (members, space metadata, …), and
2. **space content as markdown trees** bound to Forgejo repositories
(see CSOC-WP-0004 content model).
Document mapping and export under `docs/migration/`. Depends on CSOC-WP-0004
content layout decisions for lossless mapping of pages/artefacts.
2026-08-12: Provisional mapping sketch without dump —
`docs/migration/schema-mapping-sketch-2026-08-12.md`.
2026-08-13: **Auth path for automated read access** without secrets in chat:
`docs/migration/bubble-auth-and-export.md` + `scripts/export-bubble-session.sh`.
Operator captures Playwright session once (`capture-auth-state.sh`); agents use
`storage-state.json` under `~/.config/coulomb-social/auth/`. Map target is
**thin dir+git** (ADR-0003/0004), not Forgejo-only.
2026-08-13: **Session export run** (probe `vw_pages`, 147 network captures).
Research content is primarily **`custom.article`** (nomer/abstractor/content/
logo + space link), not empty public meta. Field map (redacted):
`docs/migration/field-map-from-session-2026-08-13.md`.
2026-08-13: **Corpus + sample tree** (local only, not git):
`~/.config/coulomb-social/auth/exports/corpus-202608131015057/`
71 spaces, 109 articles; sample ADR-0004 tree `trees/reichelag/` with 30
pages + 29 visuals (~1.6MB). Progress note:
`docs/migration/export-progress-2026-08-13.md`. Script:
`scripts/export-bubble-corpus.mjs`. **T02** largely unblocked for mapping;
**T04** next when PageOps thin-git landing pad exists (CSOC-WP-0006).
## Feature cut decision (human gate)
```task
id: CSOC-WP-0001-T03
status: done
priority: high
state_hub_task_id: "35a0af87-2f22-4fae-8c82-e3cc4f77f074"
```
Decide rebuild-as-is vs reduced v1 scope. **Human gate — Bernd.** Capture under
`docs/decisions/`. Gate **apex cutover / bulk migration**, not day-to-day
rebuild work on `app.coulomb.social`.
2026-08-12: **Stage-1 cut accepted** — partial rebuild for productive transfer.
Must: onboarding; spaces/pages markdown CRUD with Visual, Title, Abstract;
page transfer; page copy. Later capabilities after Bubble is reference-only.
Record: `docs/decisions/2026-08-12-feature-cut-stage-1.md`
Model: `docs/capability/` (vocabulary + `model-v0.yaml` + stage-1 narrative).
Open product details (visual storage, editor UX, …) refine without reopening
the must-set unless founder revises the decision.
## Migration rehearsal
```task
id: CSOC-WP-0001-T04
status: wait
priority: low
state_hub_task_id: "2e5be321-3d76-4d7a-86b1-cbe4eb554bd7"
```
Import one or more Bubble spaces into the v1 model on a non-production path
(app host or staging). Record lossiness and residuals. **Blocked until** T02
has a real export (CSOC-WP-0004 persistence is ready). Explicitly **not** a
prerequisite for building product UX on the empty/new content store.
## Acceptance
- Inventory and mapping docs are committed and reviewable.
- Feature-cut decision is recorded with owner and date.
- At least one migration rehearsal has been run and residual gaps listed.
- Apex Bubble retirement is only planned after rehearsal + product parity gate.
## Notes
- Parallel hosts: `docs/deploy.md`
- Product foundation: `CSOC-WP-0004` finished; spaces runbook `docs/deploy.md`
- Inventory: `docs/bubble-inventory/`
- Mapping sketch: `docs/migration/`
- Service contract: `the-custodian/canon/standards/business-app-service-contract_v0.1.md`