Hierarchical capability/feature tree from Bubble client packages and design extract: spaces/pages/chunks, Abstractor/Visual/Title, social, ventures, challenges, monetization; tagged against stage-1 rebuild cut.
186 lines
8.7 KiB
Markdown
186 lines
8.7 KiB
Markdown
# Bubble surface inventory — 2026-08-12
|
||
|
||
| Field | Value |
|
||
|-------|--------|
|
||
| Workplan | CSOC-WP-0001-T01 |
|
||
| Live product host | `https://coulomb.social` (Bubble) |
|
||
| Rebuild host | `https://app.coulomb.social` (Railiance) |
|
||
| Sources | Public HTTP, Bubble `/api/1.1/meta`, design extract 2026-08-09, INTENT/SEO copy |
|
||
| Not available this pass | Bubble editor access, Data API types (empty public meta), production DB export |
|
||
|
||
## 1. Platform identity
|
||
|
||
| Item | Value | Provenance |
|
||
|------|--------|------------|
|
||
| Bubble appname | `coulomb` | `GET /api/1.1/meta` → `app_data.appname` |
|
||
| Domain | `coulomb.social` | meta + DNS |
|
||
| App version (live) | `live` | meta `app_data.app_version` |
|
||
| CDN / file host | `13a55be71f3a6a4c9ea356833df823c4.cdn.bubble.io` | HTML + SEO image URLs |
|
||
| Development path | `/version-test/` (robots Disallow) | `robots.txt`, HTTP 200 |
|
||
| Public Data API types | **empty** (`types: {}`, no get/post) | meta 2026-08-12 — API not exposed for inventory |
|
||
|
||
```json
|
||
{
|
||
"appname": "coulomb",
|
||
"app_version": "live",
|
||
"domain": "coulomb.social",
|
||
"types": {},
|
||
"get": [],
|
||
"post": []
|
||
}
|
||
```
|
||
|
||
**Implication:** lossless data inventory requires Bubble **editor export** or an
|
||
authenticated admin path — not the public Data API.
|
||
|
||
## 2. Product intent (marketing surface)
|
||
|
||
From Open Graph / SEO extract (`docs/design-extract/coulomb-social-seo.json`):
|
||
|
||
> A tool to brainstorm, discuss, refine implement and promote ideas.
|
||
> A social network for building stuff and influencing how stuff is built.
|
||
> A marketplace for challenges, methods and solutions.
|
||
> A platform to monetize curiosity.
|
||
|
||
Brand title variants seen: **Research \| Coulomb**, **Index \| Coulomb**,
|
||
**An Ideas Come To Life Community!**, **Coulomb Social**.
|
||
|
||
## 3. Public / semi-public pages (HTTP probe 2026-08-12)
|
||
|
||
| Path | HTTP | Title / notes |
|
||
|------|------|----------------|
|
||
| `/` | 200 | Index \| Coulomb — main entry (Bubble SPA shell ~17 KB HTML) |
|
||
| `/vw_pages` | 200 | Research \| Coulomb — primary authenticated content surface (design extract probe) |
|
||
| `/version-test` | 200 | Index \| Coulomb — Bubble development version |
|
||
| `/reset_pw` | 200 | Reset password \| Coulomb — Bubble built-in auth recovery |
|
||
| `/login`, `/signup`, `/spaces`, … | 404 | No conventional REST-style routes; Bubble uses app pages / params |
|
||
| `/api/1.1/meta` | 200 | App identity only; no types |
|
||
| `/robots.txt` | 200 | Disallows `/version-test/` |
|
||
|
||
Bubble routes content via internal page names and `pg_chunk/<id>` URLs rather
|
||
than clean public paths. Design extract crawled **7 routes** (index + 6
|
||
`pg_chunk/*` pages) under an authenticated Playwright session
|
||
(`docs/design-extract/PROVENANCE.md`).
|
||
|
||
### Design-extract routes (authenticated crawl)
|
||
|
||
| Route | Role (inferred) |
|
||
|-------|-----------------|
|
||
| `/` | Landing / index shell |
|
||
| `/pg_chunk/1767965374100x901547861536145400` | In-app content chunk (Research family) |
|
||
| `/pg_chunk/1784305925912x322414739506593800` | content chunk |
|
||
| `/pg_chunk/1784904857383x503270614975381500` | content chunk |
|
||
| `/pg_chunk/1785501127011x363256181345746940` | content chunk |
|
||
| `/pg_chunk/1785501151364x921456713843343400` | content chunk |
|
||
| `/pg_chunk/1786106348475x662489469743530000` | content chunk (+ spacing token delta) |
|
||
|
||
Session probe documented as **`/vw_pages`** titled **Research \| Coulomb**.
|
||
|
||
**Gap:** human-readable Bubble **page names** (editor “Pages” list) and full
|
||
navigation graph are not in the extract artefacts — only token diffs per
|
||
chunk URL. Next inventory pass should export page list from Bubble editor.
|
||
|
||
## 4. UI surfaces and components (from design extract)
|
||
|
||
| Signal | Observation | Rebuild mapping |
|
||
|--------|-------------|-----------------|
|
||
| Primary surface | Research / pages workspace | Space detail + markdown pages (ADR-0002) |
|
||
| CTA verbs | content, favorite, format, filter, add, note | Feature candidates for cut (T03) |
|
||
| Material icons | content_copy, favorite_border, filter_list, add_circle_outline, note_alt, … | App chrome icons |
|
||
| Forms | 10 textareas, 6 inputs in crawl sample | Authoring / filters |
|
||
| Stack signal | Bubble (+ webflow heuristic noise) | Rebuild is Django, not Bubble |
|
||
| Client libs in page | `marked`, `highlight.js`, `clipboard.min.js` | Markdown-oriented UX already present in Bubble |
|
||
|
||
Visual system is fully captured under `docs/design-extract/` (tokens, DESIGN.md,
|
||
preview). **Do not re-extract for inventory** unless pages change materially.
|
||
|
||
## 5. Content model hypothesis (spaces / pages → rebuild)
|
||
|
||
Prefer **spaces / pages / markdown-shaped content** for migration (workplan
|
||
guidance + ADR-0002).
|
||
|
||
| Bubble concept (hypothesized) | Evidence | Rebuild target |
|
||
|-------------------------------|----------|----------------|
|
||
| Research / `vw_pages` workspace | Title, extract probe | `Space` + `pages/*.md` in Forgejo |
|
||
| Page / chunk (`pg_chunk` ids) | 6 chunk URLs in extract | One markdown file per page slug under `content_root` |
|
||
| Rich text / markdown rendering | `marked` + highlight.js on live HTML | CommonMark + sanitized HTML in app |
|
||
| Favorites / likes | CTA verb counts | Later social feature; not required for content MVP |
|
||
| Filters / lists | filter CTA | Space list filters later |
|
||
| Binary assets | Bubble CDN file URLs | `assets/` in Forgejo repo or object store later |
|
||
| Users / members | Bubble account system + reset_pw | NetKingdom OIDC Members (done path) |
|
||
| Tenancy | Single Coulomb community today | `tenant:coulomb` instance |
|
||
|
||
**Confidence:** medium for “Research pages ≈ space content”; **low** for full
|
||
data-type graph until editor export.
|
||
|
||
## 6. Workflows (partial)
|
||
|
||
| Workflow area | Status | Notes |
|
||
|---------------|--------|--------|
|
||
| Member signup / login | Live on Bubble | Rebuild uses NetKingdom; Case B residual CSOC-IN-0001 |
|
||
| Password reset | `/reset_pw` | Platform-owned on rebuild |
|
||
| Page view / research | `/vw_pages` | Core product path |
|
||
| Content create/edit | Inferred from textareas + content CTAs | Rebuild: edit in Forgejo (T05 path) |
|
||
| Marketplace matching | Marketing claim only | **Feature-cut candidate** (T03) |
|
||
| Monetization | Marketing claim only | Out of v1 unless T03 expands |
|
||
|
||
Backend workflows (API workflows, backend triggers) are **not** inventoriable
|
||
without Bubble editor or API workflow listing.
|
||
|
||
## 7. Integrations and external services
|
||
|
||
| Service | Role | Rebuild ownership |
|
||
|---------|------|-------------------|
|
||
| Bubble.io hosting | App runtime, DB, CDN | Exit target |
|
||
| `cdn.bubble.io` | Images / static files | Migrate assets off CDN at cutover |
|
||
| Cloudflare (on Bubble CDN path) | Image resize (`cdn-cgi/image`) | Not required on rebuild |
|
||
| highlight.js (cdnjs) | Code block styling | Optional in app CSS |
|
||
| marked (jsDelivr) | Client markdown | Server-side markdown in Django instead |
|
||
| clipboard.js (Bubble CDN file) | Copy UX | Optional |
|
||
| (unknown) email provider | Bubble account mail | NetKingdom mail path for registration |
|
||
| (unknown) payment | Monetization claim | Not observed publicly |
|
||
|
||
## 8. Data types (blocked)
|
||
|
||
Public meta returned **no** `types`. Expected classes (to confirm on export):
|
||
|
||
- User / User profile
|
||
- Space / Project / Group (name TBD)
|
||
- Page / Chunk / Document
|
||
- Favorite / Follow / Membership
|
||
- Challenge / Method / Solution (marketplace — optional)
|
||
- Message / Comment (if present)
|
||
- File / Image references
|
||
|
||
**T02** owns dump + mapping once export is available.
|
||
|
||
## 9. Inventory completeness
|
||
|
||
| Area | Completeness | Next action |
|
||
|------|--------------|-------------|
|
||
| Public hosts & meta | high | refresh if domain changes |
|
||
| Visual design system | high | already in `docs/design-extract/` |
|
||
| Named Bubble pages list | low | editor screenshot/export |
|
||
| Workflows | low | editor Backend workflows list |
|
||
| Data types & fields | none public | Bubble CSV/JSON export or API key |
|
||
| Content corpus size | unknown | export pages → markdown rehearsal |
|
||
| Member count / PII volume | unknown | export under privacy rules |
|
||
|
||
## 10. Priority order for migration (recommended)
|
||
|
||
Aligned with **stage-1 cut** (`docs/capability/stage-1-cutover.md`):
|
||
|
||
1. **Members** → NetKingdom JIT / assisted transfer (no Bubble passwords)
|
||
2. **Spaces + pages** (Title, Abstract, Visual + markdown body) → app metadata + Forgejo
|
||
3. **Page copy / transfer** support data as needed
|
||
4. **Memberships** beyond tenant-wide defaults
|
||
5. **Favorites / marketplace / monetization** → later (not stage 1)
|
||
6. **Bubble workflows** → rewrite only if product need returns (`out` for parity)
|
||
|
||
## Related
|
||
|
||
- Capability map (live product): `docs/capability/existing-bubble-capability-map.md`
|
||
- Parallel hosts: `docs/deploy.md`
|
||
- Content model: `docs/adr/ADR-0002-space-content-forgejo-markdown.md`
|
||
- Auth extract: `docs/design-extract-auth.md`
|
||
- Workplan: `workplans/CSOC-WP-0001-bubble-io-exit-assessment.md`
|