You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
**tb-solid-pod** is a browser-based personal data pod inspired by the [Solid Project](https://solidproject.org/), built with [TinyBase](https://tinybase.org/) for reactive state and LocalStorage. It is **not** a real Solid server (no LDP, no WebID-TLS); it simulates Solid-style data (personas, contacts, groups, type indexes, file metadata) in a single-page app.
-**Data**: personas (WebID-style), contacts (including agents), groups (org/team/group), type indexes, virtual file system with metadata, settings/preferences.
-**src/index.ts**: Re-exports schemas, utils, CLI, and components.
37
+
-**README**: “Use as a library” section with `npm install github:devalbo/tb-solid-pod` and example imports.
38
+
39
+
## What’s not done
40
+
41
+
-**GitHub Pages (manual)**: In repo **Settings → Pages**, set "Deploy from a branch", branch `gh-pages`, folder root. (Code is done: Vite `base` env-driven, `.github/workflows/pages.yml` deploys `dist/` to `gh-pages`; README has Live demo link.)
-**docs/GITHUB_AND_LIBRARY_PLAN.md** is the source of truth for the “three uses” plan (runnable, library, GitHub Pages).
47
+
- Progress is tracked by **checklists** at the end of sections 1–4 (1.4, 2.6, 3.6, 4.5) and by the **Current state** table.
48
+
- When you complete a task, mark it `[x]` in the relevant checklist and refresh the Current state table so the plan stays accurate.
49
+
50
+
## Conventions
51
+
52
+
-**Library**: Consumers install from GitHub (`npm install github:user/tb-solid-pod`). We do not publish to npm for now; `private: true` is intentional.
53
+
-**Schemas**: Zod + JSON-LD; factory functions (e.g. `createPersona`, `createContact`) take a base URL for IRIs.
54
+
-**CLI**: Commands live in `src/cli/commands/`; registry in `src/cli/registry.tsx`.
55
+
-**Components**: React components expect a TinyBase `store` (and often `indexes`); they are default-exported and re-exported as named from `src/index.ts`.
Copy file name to clipboardExpand all lines: README.md
+3-1Lines changed: 3 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -2,6 +2,8 @@
2
2
3
3
A browser-based personal data pod inspired by the [Solid Project](https://solidproject.org/), built with [TinyBase](https://tinybase.org/) for reactive state management and LocalStorage persistence.
4
4
5
+
**[Live demo](https://devalbo.github.io/tb-solid-pod/)** · Run locally: `npm install` then `npm run dev` · [Use as a library](#use-as-a-library)
6
+
5
7
## What This Project Does
6
8
7
9
This library provides a complete foundation for **user-owned social data** in web applications. It implements core Solid/Linked Data concepts in a lightweight, browser-first package:
Copy file name to clipboardExpand all lines: docs/GITHUB_AND_LIBRARY_PLAN.md
+15-15Lines changed: 15 additions & 15 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -35,14 +35,14 @@ Summary of what exists in the repo today.
35
35
|**README**| Partial | Has “Getting Started (Demo App)” with `npm install` / `npm run dev`. No Node version note, no “Use as a library” install-from-GitHub section, no “Live demo” link. Integration Guide documents copy-paste and schema-only use. |
36
36
|**Runnable on checkout**| Partial | Commands work; no `.nvmrc`; README matches commands. |
37
37
|**Library packaging**| Done |`package.json`: version 0.1.0, description, keywords, main, types, exports, files; `src/index.ts` re-exports schemas, utils, CLI, components; README “Use as a library” section. |
38
-
|**GitHub Pages**|Not done|No `base` in `vite.config.js`; no `.github/workflows/` (no `pages.yml` or `ci.yml`).|
38
+
|**GitHub Pages**|Done (code)|`vite.config.js` base env-driven; `.github/workflows/pages.yml` builds with `BASE_PATH=/tb-solid-pod/` and deploys to `gh-pages`; README has Live demo link. **You must set Settings → Pages: Deploy from branch `gh-pages`.**|
39
39
|**GitHub repo**| Done | Repo on GitHub (`devalbo/tb-solid-pod`), main pushed, LICENSE in repo. **Repo is private for now**; make public when you want install-from-GitHub or a public Live demo. |
40
40
41
41
**Next steps (in order):**
42
42
1)~~Confirm repo on GitHub and push if needed.~~ Done (repo is private).
43
43
2)~~Add `.nvmrc` and optional Node note in README.~~ Done.
44
44
3)~~Add `src/index.ts`, update `package.json` for library use, add “Use as a library” in README.~~ Done.
45
-
4) Set Vite `base`, add Pages workflow, enable Pages, add “Live demo” link.
45
+
4)~~Set Vite `base`, add Pages workflow, add "Live demo" link.~~ Done. Enable Pages in repo Settings → Pages (Deploy from branch `gh-pages`).
46
46
47
47
---
48
48
@@ -177,10 +177,10 @@ Deploy the built Vite app so visitors can use it at `https://<username>.github.i
177
177
178
178
GitHub Pages serves project sites from `/<repo>/`, so assets must use that base.
179
179
180
-
-[] In **`vite.config.js`** (or `vite.config.ts`), set **`base`** to the repo name with leading and trailing slash:
181
-
-`base: '/tb-solid-pod/'` (replace with actual repo name if different).
182
-
-[] Rebuild: `npm run build`. Check that `dist/index.html` references assets like `/tb-solid-pod/assets/...` (not `/assets/...`).
183
-
-[] Optional: use an env variable so local dev keeps `base: '/'` and CI sets `base: '/repo-name/'` for the Pages build.
180
+
-[x] In **`vite.config.js`** (or `vite.config.ts`), set **`base`** to the repo name with leading and trailing slash:
181
+
-`base: '/tb-solid-pod/'` (replace with actual repo name if different). Implemented as env-driven: `process.env.BASE_PATH ?? '/'`; CI sets `BASE_PATH: '/tb-solid-pod/'`.
182
+
-[x] Rebuild: `npm run build`. Check that `dist/index.html` references assets like `/tb-solid-pod/assets/...` (not `/assets/...`).
183
+
-[x] Optional: use an env variable so local dev keeps `base: '/'` and CI sets `base: '/repo-name/'` for the Pages build.
184
184
185
185
### 3.2 Build output
186
186
@@ -199,7 +199,7 @@ GitHub Pages serves project sites from `/<repo>/`, so assets must use that base.
199
199
200
200
Add a workflow that builds and deploys to GitHub Pages. For example:
201
201
202
-
-[]**Trigger**: push to `main` (or only when `dist/` or source changes, if you prefer).
202
+
-[x]**Trigger**: push to `main` (or only when `dist/` or source changes, if you prefer).
203
203
-**Steps**:
204
204
1. Checkout repo.
205
205
2. Setup Node (e.g. `actions/setup-node` with version from `.nvmrc` or fixed `20`).
@@ -211,16 +211,16 @@ Result: every push to `main` (or chosen branch) updates the live demo.
211
211
212
212
### 3.5 README and base path
213
213
214
-
-[] In README, add a **“Try it”** or **“Live demo”** link at the top or in Getting Started: `https://<username>.github.io/<repo>/`.
214
+
-[x] In README, add a **“Try it”** or **“Live demo”** link at the top or in Getting Started: `https://<username>.github.io/<repo>/`.
215
215
-[ ] If repo is renamed, update `base` in Vite config and the README link.
216
216
217
217
### 3.6 Checklist (GitHub Pages)
218
218
219
-
-[]`vite.config.js` has `base: '/<repo>/'` (or env-driven) so assets load on GitHub Pages.
220
-
-[]`npm run build` produces a working `dist/` when base is set.
221
-
-[] GitHub Actions workflow builds with correct base and deploys `dist/` to `gh-pages` (or chosen branch).
0 commit comments