User guide (2/2): documentation content#864
Conversation
Second of two stacked PRs into user-guide-final. Adds the guide's documentation prose and expands the content list to all sections: About, Real world use, App information, Getting started, and the Other resources page already present from the engine PR. - content/about.tsx, app-information.tsx, getting-started.tsx, real-world-use-cases.tsx - content/index.ts expanded to the full section list - Inline screenshots (grouping, querying, sharing, thumbnails) - Compress the thumbnail grid from a 1.1 MB PNG to a 282 KB JPEG (photographic content; full 2364px resolution retained); add the *.jpg module declaration Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
The thumbnail was converted to JPEG; extend the asset/resource rule (png only) to also match jpg/jpeg so the bundle resolves the import. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Follows the engine PR change removing the custom slugify helper. Anchor IDs (DocPage) and in-page anchor links (content) both use kebabCase, so they stay consistent. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
# Conflicts: # packages/web/src/components/UserGuide/content/index.ts
There was a problem hiding this comment.
@aswallace Could you verify and rewrite any portion of the provenance information that is wrong or could use more information etc.?
|
|
||
| import { Page, PageSlug, SectionHeading } from "./types"; | ||
|
|
||
| // Note: "real-world-use-cases/other-examples" exists in this file but has no |
There was a problem hiding this comment.
I think this is untrue now
| </td> | ||
| <td>Hours of scripting per query</td> | ||
| </tr> | ||
| {/* "Validate metadata" row — temporarily hidden |
There was a problem hiding this comment.
Is this an active TODO? If so, linking a ticket would be good. Otherwise, lets delete it and the corresponding section below.
| </p> | ||
| <p> | ||
| See:{" "} | ||
| <a |
There was a problem hiding this comment.
Across all of these content pages where you create a relative link you can use the same <Link /> generation function you did in the previous PR instead of the regular <a /> tag.
Example
<Link
to={userGuidePath(
GroupSlug.OtherResources,
PageSlug.StorageOptions
)}
>
This is not currently true since 863 is pointed at another branch |
aswallace
left a comment
There was a problem hiding this comment.
I'm currently only partway through reviewing, but wanted to open the first round of comments now to avoid overwhelm
| aria-label="Scrollable comparison table" | ||
| > | ||
| <div className="ug-scroll-table"> | ||
| <table className="ug-table"> |
| body: ( | ||
| <> | ||
| <p> | ||
| BFF uses <strong>DuckDB</strong> — a high-performance analytical SQL |
There was a problem hiding this comment.
Should we link to the main DuckDB site here?
| relationship is defined via a dataset column. | ||
| </li> | ||
| </ul> | ||
| <h3>Simple example</h3> |
There was a problem hiding this comment.
Might be nice to show what the resulting graph would look like for this example
| </p> | ||
| <p> | ||
| In BFF, once a provenance file is loaded, each file row in the file list | ||
| will show a relationship indicator. Expanding a row reveals its linked |
There was a problem hiding this comment.
I don't think this paragraph is true atm, expecially @ "expanding a row reveals its linked parent or child entities"
| </ul> | ||
| <p> | ||
| <a | ||
| href={createCsvDataUri(PROVENANCE_SIMPLE_EXAMPLE_ROWS)} |
There was a problem hiding this comment.
we should also make sure to include an example that uses "self"
| <tr> | ||
| <th>Use case</th> | ||
| <th>Key BFF actions</th> | ||
| <th>Time saved vs. manual</th> |
There was a problem hiding this comment.
Unsure about this column title since only the first listing actually references time
# Conflicts: # packages/web/src/components/UserGuide/content/index.ts
This is an example of extra description content I would say is not useful. |
This is already relayed by the passing unit tests |
- "user-supplied metadata" (avoid implying access to user data) - Remove comma in the Setup overview intro - Simplify the repetitive Columns description - Comma instead of em-dash in the provenance-importance paragraph Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
| <span>Computational biologists</span> | ||
| </li> | ||
| <li> | ||
| <span>Data engineers & platform teams</span> |
There was a problem hiding this comment.
what is a platform team?
| <div className="ug-feature-card"> | ||
| <span>Format agnostic</span> | ||
| <br /> BFF treats metadata as data (Parquet/CSV), not tied to any | ||
| specific image format. By contrast, OMERO is deeply tied to |
There was a problem hiding this comment.
Adding in the contrast to OMERO here feels strange. Like an advertisement against a competitor
| <strong>Works Without a Server</strong> | ||
| </td> | ||
| <td> | ||
| Yes — runs entirely in-browser or as desktop app |
There was a problem hiding this comment.
Do we want to talk about the desktop app for this?
| <td>Yes — via OMERO.server with S3 backend</td> | ||
| <td>N/A</td> | ||
| <td>N/A</td> | ||
| <td>Yes — any HTTP-hosted Zarr</td> |
| <td> | ||
| <strong>Image Viewing</strong> | ||
| </td> | ||
| <td>Thumbnails; delegates to external viewers</td> |
There was a problem hiding this comment.
We do generate thumbnails
| <iframe | ||
| width="560" | ||
| height="315" | ||
| src="https://www.youtube.com/embed/RD2x4BFhWzY?si=a1ZPYrq-k2VVhCCc" |
There was a problem hiding this comment.
Is this a duplicate?
| }, | ||
| { | ||
| test: /\.png/, | ||
| test: /\.(png|jpe?g)/, |

PR 2 of 2. Base is
user-guide-engine(#863) so this diff shows only the documentation content — ~2,760 lines. GitHub will auto-retarget this tomainonce #863 merges.What this PR is
The guide's actual documentation, layered onto the engine from #863. Almost entirely prose in JSX (
content/*.tsx) plus screenshots — low-risk to review; skim for copy, links, and typos rather than logic.Contents
content/about.tsx,app-information.tsx,getting-started.tsx,real-world-use-cases.tsxcontent/index.tsexpanded from the single engine seed to the full section list: About, Real world use, App information, Getting started, Other resourcesalt/ariaLabeltextNotable content
Image compression
The thumbnail grid was a 1.1 MB PNG; it's photographic, so PNG was the wrong format. Converted to JPEG (quality 85, full 2364px resolution retained) → 282 KB (~4× smaller, no downscaling, retina intact). Added the
*.jpgmodule declaration for the import. Extended the webpack asset/resource loader (previously png-only) to match jpg/jpeg.Testing
tsc --noEmit(web): passeseslinton content files: passesnpm run test:web: 52 passingcontent/index.tslist and the thumbnail PNG→JPEG swap.Review order
Review #863 (the engine) first. This content PR is a skim.
Original combined PR: #833 (kept for review history).