-
-

-
-
-
Syfon
-
DRS-native storage and transfer service for CALYPR data flows.
-
Server-side data service for object registration, presigned upload and download URLs, bucket routing, and storage access control across local and Gen3-backed environments.
-
Learn more →
+
+
+
Integration product
+
Integrate Data
+
Turn fragmented clinical, omics, and project metadata into structured context teams can search and reuse.
+
-
+

+
-
-
-
-

+
+
+
Model product
+
Manage Models
+
Carry governed data, workflow provenance, and benchmark context into model-driven research operations.
+
-
-
Git-DRS
-
Secure data repository system with version control.
-
Manage large-scale genomic data with integrated versioning and metadata management, ensuring reproducibility and data integrity throughout research cycles.
-
Learn more →
-
-
-
-
-
+

+
+
-
-
Join the Beta
-
- CALYPR is currently in private beta. If you are interested in early access or a demonstration of the platform, please reach out to us at
- support@calypr.org. In the meantime, you can explore our GitHub repository and get access to all of our open source tools.
-
-
+
+ One platform story
+ A platform story built for research programs
+
+
+ Start with the program problem
+ Use the Solutions section to see how CALYPR supports governed data access, reproducible analysis, metadata operations, and model-ready research assets.
+
+
+ Adopt by product area
+ The Products section turns those needs into four clear offers: Manage Data, Manage Compute, Integrate Data, and Manage Models.
+
+
+ Keep technical depth available
+ Technical teams can still reach the full CALYPR and tool documentation, but that detail stays in Developers instead of overwhelming non-technical readers.
+
+
+
+
diff --git a/docs/javascripts/nav-open-level1.js b/docs/javascripts/nav-open-level1.js
index 09c3f18..ea39af0 100644
--- a/docs/javascripts/nav-open-level1.js
+++ b/docs/javascripts/nav-open-level1.js
@@ -1,14 +1,17 @@
document$.subscribe(() => {
+ const isDeveloperDocsRoute = [
+ "/developers/",
+ "/calypr/",
+ "/tools/",
+ ].some((prefix) => window.location.pathname.startsWith(prefix));
+
+ document.body.classList.toggle("developer-docs-route", isDeveloperDocsRoute);
+
const primaryNav = document.querySelector(".md-sidebar .md-nav--primary");
if (!primaryNav) return;
- const activeBranch = primaryNav.querySelector(
- ".md-nav__item--active > .md-nav > .md-nav__list"
- );
- if (!activeBranch) return;
-
- activeBranch
- .querySelectorAll(":scope > .md-nav__item--nested > input.md-nav__toggle")
+ primaryNav
+ .querySelectorAll(".md-nav__item--active > input.md-nav__toggle")
.forEach((toggle) => {
toggle.checked = true;
});
diff --git a/docs/platform/data-governance.md b/docs/platform/data-governance.md
new file mode 100644
index 0000000..f42c9de
--- /dev/null
+++ b/docs/platform/data-governance.md
@@ -0,0 +1,23 @@
+# Governed Data Access
+
+Biomedical research data needs to be findable and usable, but it also needs to remain controlled. CALYPR treats data governance as part of the product experience rather than an afterthought bolted onto storage.
+
+## What This Means
+
+- Projects provide the boundary for collaboration.
+- Metadata gives data stewards and analysts enough context to understand what a dataset represents.
+- Access workflows keep users, approvals, and project permissions visible.
+- DRS-native references avoid exposing raw storage implementation details as the primary user interface.
+
+## Why It Matters
+
+Without a platform layer, teams usually fall back to spreadsheets, bucket paths, manual approvals, and tribal knowledge. That works for a pilot. It does not scale across programs, institutions, or regulated data.
+
+CALYPR keeps the technical machinery available, but puts a governed product surface in front of it.
+
+## Related Technical Docs
+
+- [Managing metadata](/calypr/data/managing-metadata/)
+- [Role based access control](/calypr/project-management/calypr-admin/approve-requests/)
+- [Syfon storage service](/tools/syfon/)
+- [Git-DRS data versioning](/tools/git-drs/)
diff --git a/docs/platform/index.md b/docs/platform/index.md
new file mode 100644
index 0000000..7124a34
--- /dev/null
+++ b/docs/platform/index.md
@@ -0,0 +1,36 @@
+# CALYPR Platform
+
+CALYPR is a research data platform for organizations that need to make biomedical data usable without giving up governance, portability, or open infrastructure.
+
+The platform sits above the underlying storage, compute, identity, and metadata systems. It gives research programs a clearer operating model: projects, controlled access, versioned data references, portable workflows, and technical tools that remain available when teams need to go deeper.
+
+## What CALYPR Helps Teams Do
+
+
+
+ Govern sensitive research data
+ Organize users, projects, metadata, and access requests around controlled biomedical datasets.
+ Manage data ->
+
+
+ Run portable analysis
+ Use open workflow execution patterns that can operate across cloud, Kubernetes, and local environments.
+ Manage compute ->
+
+
+ Integrate fragmented data
+ Connect clinical, omics, sample, file, and project metadata into structures that can be queried and reused.
+ Integrate data ->
+
+
+
+## Product Model
+
+CALYPR follows an open-core strategy:
+
+- The foundation is open-source and standards-aligned.
+- The platform layer makes the tools coherent for real research programs.
+- The implementation remains inspectable and extensible for technical teams.
+- The business-facing surface keeps non-technical stakeholders out of command references until they need them.
+
+For the technical layer, start with the [developer docs](../developers/index.md). For product use, start with the [CALYPR product guide](../calypr/index.md).
diff --git a/docs/platform/open-platform.md b/docs/platform/open-platform.md
new file mode 100644
index 0000000..2da2235
--- /dev/null
+++ b/docs/platform/open-platform.md
@@ -0,0 +1,16 @@
+# Open Platform Strategy
+
+CALYPR is built around an open foundation because research infrastructure needs to outlive individual projects, vendors, clouds, and funding cycles.
+
+## Principles
+
+- **Open standards first.** CALYPR uses standards such as GA4GH DRS, GA4GH TES, FHIR, and Gen3-compatible patterns where they fit.
+- **Composable tools.** Core capabilities are implemented as focused components that can be deployed and improved independently.
+- **Product layer on top.** The business-facing CALYPR experience makes the technical foundation easier to adopt without hiding it from engineers.
+- **No forced lock-in.** Teams should be able to understand how data moves, where compute runs, and which services enforce access.
+
+## Why This Is Different From A Tool Catalog
+
+A tool catalog starts with implementation names. A platform starts with operating outcomes: govern data, run analysis, integrate metadata, and support production deployment.
+
+The CALYPR site now follows that structure. Product and solution pages explain the outcomes. Developer docs keep the full technical depth available behind a clear boundary.
diff --git a/docs/platform/research-workflows.md b/docs/platform/research-workflows.md
new file mode 100644
index 0000000..8bdcc1b
--- /dev/null
+++ b/docs/platform/research-workflows.md
@@ -0,0 +1,21 @@
+# Research Workflows
+
+CALYPR connects data access, metadata, and workflow execution so research teams can move from question to reproducible result without rebuilding one-off infrastructure for every project.
+
+## Workflow Goals
+
+- Keep data references stable and auditable.
+- Run compute through portable standards instead of environment-specific scripts.
+- Let analysts work at the project level while platform teams retain control over deployment and operations.
+- Preserve a path from product workflows into lower-level developer tooling.
+
+## Where The Pieces Fit
+
+- [Git-DRS](../tools/git-drs/index.md) handles large data versioning and DRS pointers.
+- [Funnel](../tools/funnel/index.md) provides GA4GH TES workflow execution.
+- [GRIP](../tools/grip/index.md) supports graph-based discovery over integrated datasets.
+- [Forge](../tools/forge/index.md) validates and publishes structured metadata.
+
+## Business Boundary
+
+The platform pages explain what the workflow enables. The developer docs explain how to operate each component. Keeping those boundaries clear makes the site useful to both non-technical decision makers and engineers.
diff --git a/docs/products/index.md b/docs/products/index.md
new file mode 100644
index 0000000..d0899b6
--- /dev/null
+++ b/docs/products/index.md
@@ -0,0 +1,167 @@
+---
+body_class: marketing-page
+hide:
+ - navigation
+ - toc
+---
+
+
+
+
Products
+
Products designed for how research programs operate.
+
+ CALYPR packages the underlying data, workflow, and metadata infrastructure into four products that buyers can evaluate and teams can adopt without first becoming experts in the implementation.
+
+
+
+
+ Product model
+ Four products. One governed research platform.
+
+
+
+
+
+
+
Data product
+
Manage Data
+
Give teams governed access to large research datasets, durable data references, and controlled data movement.
+
+
+
+
+
+
+
+
Compute product
+
Manage Compute
+
Run reproducible workflows across cloud, cluster, and local environments without rebuilding the way research teams work.
+
+
+
+
+
+
+
+
Integration product
+
Integrate Data
+
Turn fragmented clinical, omics, and project metadata into structured context that teams can search, govern, and reuse.
+
+
+
+
+
+
+
+
Model product
+
Manage Models
+
Carry governed data, workflow provenance, and benchmark context into model-driven research operations.
+
+
+
+
+
+
+
+ Product foundations
+ Each product stands on standards and services your platform team can verify.
+
+
+ Open standards
+ The platform already leans on GA4GH DRS for data access, GA4GH TES for task execution, and FHIR-oriented metadata structures for research entities and relationships.
+
+
+ Project operations
+ CALYPR adds project-centered collaboration, collaborator request handling, profile setup, and workflow structure around those lower-level services.
+
+
+ Operational product surface
+ Each product packages those standards into a clearer operating surface so teams can evaluate adoption in terms of workflows, governance, and delivery instead of raw components.
+
+
+
+
+
+ Product system
+ Each product handles a different layer of the research operating surface.
+
+
+ Govern
+ Manage Data
+ Owns object registration, versioning, access control boundaries, and controlled data movement.
+
+ - DRS-native object lifecycle
+ - Scoped remotes and durable references
+ - Presigned and multipart transfer paths
+
+
+
+ Execute
+ Manage Compute
+ Owns portable task execution and workflow operations across cloud, cluster, and local environments.
+
+ - TES-style execution model
+ - Portable workflow routing
+ - Run history tied to governed inputs
+
+
+
+ Connect
+ Integrate Data
+ Owns metadata mapping, validation, publication, and graph-oriented discovery.
+
+ - FHIR-shaped resource structures
+ - Validation and publication workflows
+ - Queryable graph relationships
+
+
+
+ Carry forward
+ Manage Models
+ Owns the model-facing lifecycle built on the same governed data and workflow foundation.
+
+ - Benchmark-aware model packaging
+ - Provenance linked to workflow history
+ - Model assets grounded in governed data
+
+
+
+
+
+
+ For technical teams
+ When evaluation turns into implementation, each product hands off to the tool docs behind it.
+
+
+ Manage Data
+ Start with Git-DRS and the versioned object-pointer workflow used to move governed research data.
+ Git-DRS docs
+
+
+ Manage Compute
+ Go directly to Funnel and the TES-based execution layer used to run portable analysis.
+ Funnel docs
+
+
+ Integrate Data
+ Start with Forge and the validation and publication workflow used to shape reusable metadata context.
+ Forge docs
+
+
+ Manage Models
+ Start with GRIP and the graph-oriented context used to compare research assets against the data and workflows that produced them.
+ GRIP docs
+
+
+
diff --git a/docs/products/integrate-data.md b/docs/products/integrate-data.md
new file mode 100644
index 0000000..ba8a018
--- /dev/null
+++ b/docs/products/integrate-data.md
@@ -0,0 +1,39 @@
+---
+body_class: marketing-page
+hide:
+ - navigation
+ - toc
+---
+
+# Integrate Data
+
+
+
+Integrate Data helps research organizations turn scattered metadata into a usable research asset instead of a permanent spreadsheet cleanup problem.
+
+The underlying technical story is already there: CALYPR uses FHIR-oriented resource structure for research entities, Forge converts and validates metadata before publication, and GRIP provides graph query patterns over integrated project data.
+
+## Who It Helps
+
+- Bring fragmented metadata into one usable system.
+- Validate and structure information before it becomes operational debt.
+- Support query, discovery, and graph-oriented exploration.
+- Keep context attached to the governed data and workflows around it.
+
+## What Customers Get
+
+- A product surface for metadata validation and integration.
+- Better coordination between data stewards, analysts, and platform teams.
+- Less dependence on spreadsheets and one-off transformation scripts.
+- A foundation for reusable, queryable project context across programs.
+
+## Core Capabilities
+
+- Mapping tabular project data into FHIR resources such as ResearchStudy, ResearchSubject, Patient, Specimen, Observation, and DocumentReference.
+- Validation before publication so metadata errors are caught before they become shared system debt.
+- Publication workflows that make metadata searchable and queryable.
+- Graph-oriented query paths for relationships between files, subjects, studies, and derived outputs.
+
+## Why Buyers Care
+
+Most research organizations already have the data they need, but not in a structure they can reliably reuse. Integrate Data turns metadata from an isolated spreadsheet exercise into a governed part of the platform that supports discovery, analysis, and cross-team coordination.
diff --git a/docs/products/manage-compute.md b/docs/products/manage-compute.md
new file mode 100644
index 0000000..d3277de
--- /dev/null
+++ b/docs/products/manage-compute.md
@@ -0,0 +1,39 @@
+---
+body_class: marketing-page
+hide:
+ - navigation
+ - toc
+---
+
+# Manage Compute
+
+
+
+Manage Compute gives research organizations a consistent way to run analysis across cloud, cluster, and local environments without forcing every team to relearn the platform each time infrastructure changes.
+
+This is grounded in Funnel's GA4GH TES task API and portable execution model. The platform already has the pieces to submit tasks, track their state, and adapt execution to different compute and storage backends rather than hard-coding every workflow to one environment.
+
+## Who It Helps
+
+- Standardize how research workflows are run across teams.
+- Reduce scheduler and deployment complexity at the user-facing layer.
+- Keep governed data references connected to analysis execution.
+- Support repeatable, auditable workflow operations.
+
+## What Customers Get
+
+- A product story for workflow execution instead of a scheduler-by-scheduler sales pitch.
+- Portable analysis patterns that can move across infrastructure.
+- A cleaner boundary between platform operations and analyst execution.
+- A research compute surface that fits into the rest of the CALYPR operating model.
+
+## Core Capabilities
+
+- GA4GH TES-aligned task submission and execution.
+- Container-oriented workflow execution across cloud and HPC environments.
+- Reusable task APIs that can sit behind higher-level workflow engines.
+- A compute layer that stays attached to governed data references rather than local file sprawl.
+
+## Why Buyers Care
+
+Research groups rarely operate on a single compute target forever. Manage Compute makes workflow execution portable enough to move across cloud, Kubernetes, and cluster environments while keeping the user-facing process stable and reproducible.
diff --git a/docs/products/manage-data.md b/docs/products/manage-data.md
new file mode 100644
index 0000000..3d474c9
--- /dev/null
+++ b/docs/products/manage-data.md
@@ -0,0 +1,39 @@
+---
+body_class: marketing-page
+hide:
+ - navigation
+ - toc
+---
+
+# Manage Data
+
+
+
+Manage Data gives research programs a governed way to register, move, version, and resolve large biomedical datasets without turning every project into a storage engineering exercise.
+
+The foundation is already concrete: Git-DRS keeps large binaries out of normal Git history by storing pointer files in repositories, Syfon exposes GA4GH DRS object services with presigned transfer and multipart lifecycle support, and the data client covers profile setup, data transfer, and collaborator access requests.
+
+## Who It Helps
+
+- Stand up controlled research data programs.
+- Give teams stable references to large objects instead of brittle bucket-path workflows.
+- Make governed access and data movement part of the operating model.
+- Keep data usable across projects, platforms, and organizations.
+
+## What Customers Get
+
+- A product surface for governed data registration and resolution.
+- Version-aware data operations that fit research workflows.
+- Clearer boundaries between data stewardship, access control, and analyst use.
+- A path into DRS-native data operations without selling the system as storage administration.
+
+## Core Capabilities
+
+- DRS-native object registration and lookup for large research files.
+- Presigned upload and download flows, including multipart transfer for very large objects.
+- Git-style repositories that track lightweight pointers instead of copying large binaries into source history.
+- Profile setup and collaborator request workflows that keep access management attached to the same operating model.
+
+## Why Buyers Care
+
+Without this layer, teams usually fall back to bucket paths, ad hoc upload scripts, manual sharing, and local copies of large files. Manage Data gives the organization stable identifiers, governed transfer patterns, and repeatable file workflows that can scale across projects and institutions.
diff --git a/docs/products/manage-models.md b/docs/products/manage-models.md
new file mode 100644
index 0000000..75dce9b
--- /dev/null
+++ b/docs/products/manage-models.md
@@ -0,0 +1,39 @@
+---
+body_class: marketing-page
+hide:
+ - navigation
+ - toc
+---
+
+# Manage Models
+
+
+
+Manage Models gives research organizations a way to carry governed data, workflow history, and benchmark context into model-driven work instead of treating models as a separate lifecycle with separate controls.
+
+This is the most forward-looking product area, but it is not hand-wavy. The current platform already supports versioned data pointers, FHIR-based provenance context, workflow execution history, and graph-oriented relationships between files, studies, subjects, and derived outputs.
+
+## Who It Helps
+
+- Prepare research organizations for model-centric operating patterns.
+- Keep model work connected to governed data and reproducible execution.
+- Give benchmark and evaluation context a place in the system story.
+- Extend the platform from data and workflow operations into reusable model assets.
+
+## What Customers Get
+
+- A model-facing product layer that inherits the rest of the CALYPR foundation.
+- A cleaner path from analysis outputs into model operations.
+- Better continuity between datasets, workflows, and model assets.
+- Room to grow model packaging and governance without changing the platform story.
+
+## Current Foundation
+
+- Versioned and scoped data references from the governed data layer.
+- Workflow provenance from the compute layer.
+- Metadata relationships that can tie model artifacts back to studies, specimens, observations, and generated files.
+- A graph-friendly context for evaluating and comparing model outputs against the data and processes that produced them.
+
+## Why Buyers Care
+
+Model operations are usually introduced after data and workflow systems are already fragmented. Manage Models keeps that future work attached to the same governed data, metadata, and execution model from the start, which is the only realistic way to make model assets auditable in biomedical settings.
diff --git a/docs/solutions/index.md b/docs/solutions/index.md
new file mode 100644
index 0000000..929349e
--- /dev/null
+++ b/docs/solutions/index.md
@@ -0,0 +1,238 @@
+---
+body_class: marketing-page
+hide:
+ - navigation
+ - toc
+---
+
+
+
+
+
Solutions
+
Build a research operating model people can use.
+
+ CALYPR helps research programs move from scattered files, spreadsheets, and one-off analysis into a governed system for data access, metadata, workflow execution, and reusable research assets.
+
+
+
+
+
+
+
+
Program inputs
+
Sensitive datasets
+
Project metadata
+
Analysis methods
+
Model candidates
+
+
+
CALYPR operating layer
+
+
+
+
Program outcomes
+
Governed access
+
Repeatable execution
+
Connected context
+
Reusable assets
+
+
+
+
+
+
+ Business use cases
+ Choose the operating problem first. The product decision follows from there.
+
+
+ Launch a governed data program.
+ Stand up a controlled intake and sharing model for sensitive biomedical datasets without making bucket administration the user experience.
+
+ Register datasets
+ Route uploads
+ Issue DRS references
+
+
+
+
+ Turn analysis into a repeatable service.
+ Execute workflows across cloud and HPC environments while keeping the run attached to governed inputs, tracked task state, and durable outputs.
+
+ Resolve inputs
+ Run workflows
+ Capture provenance
+
+
+
+
+ Make metadata usable across teams.
+ Move clinical, omics, and project context out of spreadsheets and into validated structures that can support governance, discovery, and downstream analytics.
+
+ Map source data
+ Validate structure
+ Query relationships
+
+
+
+
+ Build a path into model operations.
+ Tie model work back to the datasets, workflow history, metadata relationships, and benchmark context that produced it instead of treating modeling as a separate silo.
+
+ Package assets
+ Carry provenance
+ Benchmark reuse
+
+
+
+
+
+
+
+
+
+
Operating path
+
What changes when CALYPR becomes the operating layer for research delivery.
+
+ Instead of building separate processes for storage, metadata, compute, and downstream packaging, teams get one operating path that carries data and context forward together.
+
+
+
+
+ 01
+ Standardize access
+ Replace ad hoc file movement with DRS-native registration, scoped remotes, presigned transfer, and collaborator-aware policy boundaries.
+
+
+ 02
+ Structure the context
+ Map tabular project information into FHIR-shaped resources and graph relationships that can be validated, reused, and queried.
+
+
+ 03
+ Operationalize execution
+ Run repeatable workflows through a portable execution layer instead of rebuilding task operations around each environment.
+
+
+ 04
+ Carry assets forward
+ Keep data, workflow provenance, benchmark context, and model artifacts inside one governed operating system.
+
+
+
+
+
+
+ Buying paths
+ Research programs rarely buy infrastructure all at once. They start with one visible operating failure.
+
+
+
+
+
Data intake and access are chaotic
+
Files arrive through tickets, shared drives, and custom scripts. Teams need a governed way to register, move, resolve, and share large research objects.
+
+
+
+
+
+
+
Analysis works, but only for the people who built it
+
Workflows depend on environment-specific glue and tribal knowledge. Teams need portable execution, consistent inputs, and repeatable provenance.
+
+
+
+
+
+
+
Metadata exists, but nobody can trust or query it
+
Program context is trapped in spreadsheets and exports. Teams need validated structures that can support governance, search, and graph-style exploration.
+
+
+
+
+
+
+
Model work is splitting off from the rest of the platform
+
Benchmarks, models, and workflow artifacts are drifting away from the governed data they rely on. Teams need one asset lifecycle instead of parallel systems.
+
+
+
+
+
+
+
+ What sits underneath
+ The story is backed by technical capabilities your platform team can verify.
+
+
+ Governed object access
+ Syfon exposes GA4GH DRS APIs, presigned upload and download URLs, and multipart transfer lifecycle support so data operations have a real service contract behind them.
+
+
+ Version-aware data workflows
+ Git-DRS stores pointer files in Git, keeps large binaries out of normal history, and connects repositories to scoped remotes for push, pull, hydration, and delete workflows.
+
+
+ Structured metadata and discovery
+ Forge validates and publishes metadata, CALYPR uses FHIR resource structure for research entities, and GRIP provides graph-oriented query patterns across integrated project data.
+
+
+
+
+
+ See how the products package these capabilities into something teams can buy and adopt.
+
+
+
diff --git a/docs/solutions/integrate-data.md b/docs/solutions/integrate-data.md
new file mode 100644
index 0000000..f89284d
--- /dev/null
+++ b/docs/solutions/integrate-data.md
@@ -0,0 +1,18 @@
+# Integrate Data
+
+
+
+CALYPR helps teams connect clinical, omics, sample, file, and project metadata into structures that can be searched, queried, validated, and reused.
+
+## Outcomes
+
+- Project metadata that can support discovery and governance.
+- Validation before data is published into shared research environments.
+- Graph-oriented exploration for complex biomedical relationships.
+- A cleaner handoff between data stewards, analysts, and platform engineers.
+
+## Related Docs
+
+- [FHIR for researchers](../calypr/data/introduction.md)
+- [Forge](../tools/forge/index.md)
+- [GRIP](../tools/grip/index.md)
diff --git a/docs/solutions/manage-compute.md b/docs/solutions/manage-compute.md
new file mode 100644
index 0000000..359022f
--- /dev/null
+++ b/docs/solutions/manage-compute.md
@@ -0,0 +1,18 @@
+# Manage Compute
+
+
+
+CALYPR supports portable research workflows so teams can run analysis across cloud, local, Kubernetes, and federated environments without rewriting the operating model each time.
+
+## Outcomes
+
+- Portable workflow execution through standards-aligned interfaces.
+- Clear separation between analyst-facing workflows and platform deployment detail.
+- A path from governed data access into reproducible compute.
+- Infrastructure flexibility without making every user understand the scheduler.
+
+## Related Docs
+
+- [Research workflows](../platform/research-workflows.md)
+- [Funnel](../tools/funnel/index.md)
+- [Git-DRS](../tools/git-drs/index.md)
diff --git a/docs/solutions/manage-data.md b/docs/solutions/manage-data.md
new file mode 100644
index 0000000..71fa56e
--- /dev/null
+++ b/docs/solutions/manage-data.md
@@ -0,0 +1,19 @@
+# Manage Data
+
+
+
+CALYPR helps research teams register, version, govern, and resolve biomedical data without forcing users to work directly against raw object storage.
+
+## Outcomes
+
+- Controlled project-level access to sensitive datasets.
+- Stable DRS-native references for large research objects.
+- Metadata workflows that keep files connected to biological and project context.
+- A technical path into Git-DRS and Syfon when engineers need implementation detail.
+
+## Related Docs
+
+- [Governed data access](/platform/data-governance/)
+- [Managing metadata](/calypr/data/managing-metadata/)
+- [Git-DRS](/tools/git-drs/)
+- [Syfon](/tools/syfon/)
diff --git a/docs/solutions/manage-models.md b/docs/solutions/manage-models.md
new file mode 100644
index 0000000..67ac14c
--- /dev/null
+++ b/docs/solutions/manage-models.md
@@ -0,0 +1,20 @@
+# Manage Models
+
+
+
+CALYPR's open platform foundation is intended to support model management patterns where biomedical models, data references, workflows, and benchmark context remain connected.
+
+## Outcomes
+
+- Model work tied back to governed data and reproducible workflows.
+- A clearer route from research analysis to repeatable evaluation.
+- Room for future model packaging and governance without changing the platform principles.
+
+## Current Status
+
+This is an emerging solution area. The current platform foundation focuses on governed data, metadata integration, and portable workflow execution.
+
+## Related Docs
+
+- [Open platform strategy](../platform/open-platform.md)
+- [Research workflows](../platform/research-workflows.md)
diff --git a/docs/stylesheets/extra.css b/docs/stylesheets/extra.css
index e92b49c..be1ab4f 100644
--- a/docs/stylesheets/extra.css
+++ b/docs/stylesheets/extra.css
@@ -46,42 +46,1304 @@ body {
border-bottom-color: var(--md-primary-bg-color);
}
+.md-header__inner {
+ gap: 1rem;
+}
+
+.md-header__brand {
+ display: inline-flex;
+ flex: 0 0 auto;
+ align-items: center;
+ gap: 0.85rem;
+ margin-right: 1.5rem;
+ min-width: 0;
+ text-decoration: none;
+}
+
+.md-header__brand:hover {
+ text-decoration: none;
+}
+
+.md-header__brand-logo {
+ display: inline-flex;
+ align-items: center;
+ justify-content: center;
+}
+
+.md-header__brand-logo img,
+.md-header__brand-logo svg {
+ width: 2rem;
+ height: 2rem;
+}
+
+.md-header__brand-text {
+ color: #ffffff;
+ font-size: 1.15rem;
+ font-weight: 800;
+ letter-spacing: -0.03em;
+ line-height: 1;
+}
+
+.md-header__nav {
+ display: flex;
+ flex: 1 1 auto;
+ align-items: center;
+ min-width: 0;
+}
+
+.md-header__nav-list {
+ display: flex;
+ align-items: center;
+ gap: 1.75rem;
+ margin: 0;
+ padding: 0;
+ list-style: none;
+}
+
+.md-header__nav-link {
+ display: inline-flex;
+ align-items: center;
+ border-bottom: 2px solid transparent;
+ color: rgba(255, 255, 255, 0.82);
+ font-size: 0.92rem;
+ font-weight: 700;
+ line-height: 1;
+ min-height: 2rem;
+ padding: 0.25rem 0;
+ text-decoration: none;
+ transition: var(--transition);
+}
+
+.md-header__nav-link:hover {
+ color: #ffffff;
+}
+
+.md-header__nav-item--active .md-header__nav-link {
+ border-bottom-color: var(--md-primary-bg-color);
+ color: #ffffff;
+}
+
.md-search__button {
background-color: rgba(255, 255, 255, 0.94) !important;
color: #0f172a !important;
}
-.md-search__button:focus,
-.md-search__button:hover {
- background-color: #ffffff !important;
- color: #0f172a !important;
+.md-search__button:focus,
+.md-search__button:hover {
+ background-color: #ffffff !important;
+ color: #0f172a !important;
+}
+
+.md-search__button::before {
+ background-color: #0f172a !important;
+}
+
+.md-search__button::after {
+ background: rgba(15, 23, 42, 0.08) !important;
+ color: #475569 !important;
+}
+
+h1,
+h2,
+h3 {
+ font-weight: 700 !important;
+ letter-spacing: -0.02em;
+}
+
+/* horizontal dividers */
+body.home .md-content h2::before {
+ content: "";
+ display: block;
+ width: 100%;
+ height: 1px;
+ background-color: #e2e8f0;
+ margin-top: 0.5em;
+ margin-bottom: 1.5em;
+}
+
+.md-main__inner.md-grid:has(.business-hero) {
+ display: block;
+ width: 100%;
+ max-width: none;
+ margin: 0;
+ padding: 0;
+}
+
+.md-main__inner.md-grid:has(.business-hero) .md-content {
+ display: block;
+ width: 100%;
+ max-width: none;
+ margin: 0;
+ padding: 0;
+}
+
+.md-main__inner.md-grid:has(.business-hero) .md-content__inner {
+ display: block;
+ width: 100%;
+ max-width: none;
+ margin: 0;
+ padding: 0;
+}
+
+.md-main__inner.md-grid:has(.business-hero) .md-content__inner::before,
+.md-main__inner.md-grid:has(.business-hero) .md-content h2::before {
+ display: none;
+}
+
+body.marketing-page .md-main__inner {
+ display: block;
+ max-width: none;
+ margin: 0;
+}
+
+body.marketing-page .md-content {
+ width: 100%;
+ max-width: none;
+ margin: 0;
+}
+
+body.marketing-page .md-content__inner {
+ max-width: none;
+ margin: 0;
+ padding: 2.5rem 0 4rem;
+}
+
+body.marketing-page .md-content__inner::before,
+body.marketing-page .md-content h2::before {
+ display: none;
+}
+
+body.marketing-page .md-sidebar--primary,
+body.marketing-page .md-sidebar--secondary {
+ display: none;
+}
+
+.business-hero {
+ position: relative;
+ display: grid;
+ grid-template-columns: minmax(520px, 1fr) minmax(360px, 0.78fr);
+ gap: clamp(2rem, 4vw, 4rem);
+ align-items: center;
+ max-width: none;
+ margin: 0;
+ padding:
+ clamp(3.25rem, 5vw, 5rem)
+ max(1.5rem, calc((100vw - 1180px) / 2))
+ 3rem;
+}
+
+.business-hero::before {
+ content: "";
+ position: absolute;
+ inset: 0;
+ z-index: -1;
+ background:
+ radial-gradient(circle at 18% 28%, rgba(20, 184, 166, 0.14), transparent 28rem),
+ radial-gradient(circle at 74% 12%, rgba(56, 189, 248, 0.18), transparent 26rem),
+ linear-gradient(180deg, #f8fafc 0%, #eef6ff 68%, #ffffff 100%);
+}
+
+.business-hero__copy h1 {
+ max-width: 760px;
+ margin: 0;
+ color: #07111f;
+ font-size: clamp(3.1rem, 5.2vw, 5.25rem);
+ line-height: 0.98;
+ letter-spacing: -0.055em;
+ overflow-wrap: normal;
+ word-break: normal;
+}
+
+.business-hero__lead {
+ max-width: 720px;
+ margin: 1.4rem 0 0;
+ color: #334155;
+ font-size: clamp(1.05rem, 1.8vw, 1.35rem);
+ line-height: 1.65;
+}
+
+.business-hero__panel {
+ position: relative;
+}
+
+.business-hero__panel img {
+ display: block;
+ width: 100%;
+ border-radius: 28px;
+ box-shadow: 0 32px 80px rgba(15, 23, 42, 0.18);
+}
+
+.eyebrow {
+ margin: 0 0 1rem;
+ color: #0f766e;
+ font-size: 0.72rem;
+ font-weight: 800;
+ letter-spacing: 0.18em;
+ text-transform: uppercase;
+}
+
+.business-actions {
+ display: flex;
+ flex-wrap: wrap;
+ gap: 0.85rem;
+ margin-top: 2rem;
+}
+
+.business-actions .md-button {
+ border-radius: 999px;
+ font-weight: 800;
+}
+
+.business-actions--center {
+ justify-content: center;
+}
+
+.solution-strip {
+ display: grid;
+ grid-template-columns: repeat(4, minmax(0, 1fr));
+ gap: 1rem;
+ max-width: 1180px;
+ margin: 1rem auto 5rem;
+ padding: 0 1.5rem;
+}
+
+.solution-strip a {
+ display: flex;
+ min-height: 100%;
+ flex-direction: column;
+ gap: 0.75rem;
+ overflow: hidden;
+ border: 1px solid #dbeafe;
+ border-radius: 22px;
+ background: rgba(255, 255, 255, 0.86);
+ box-shadow: 0 18px 42px rgba(15, 23, 42, 0.08);
+ color: #0f172a;
+ text-decoration: none;
+ transition: var(--transition);
+}
+
+.solution-strip a:hover {
+ transform: translateY(-6px);
+ border-color: #38bdf8;
+ box-shadow: 0 28px 62px rgba(15, 23, 42, 0.14);
+}
+
+.solution-strip img {
+ width: 100%;
+ aspect-ratio: 16 / 9;
+ object-fit: cover;
+ border-bottom: 1px solid #e0f2fe;
+}
+
+.solution-strip strong,
+.solution-strip span {
+ padding: 0 1rem;
+}
+
+.solution-strip strong {
+ color: #0f172a;
+ font-size: 1.05rem;
+}
+
+.solution-strip span {
+ padding-bottom: 1.15rem;
+ color: #475569;
+ font-size: 0.82rem;
+ line-height: 1.5;
+}
+
+.solution-strip--page {
+ grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
+ margin: 2rem 0;
+ padding: 0;
+}
+
+.solution-hero,
+.solution-section {
+ max-width: 1180px;
+ margin: 0 auto 3.5rem;
+ padding: 0 1.5rem;
+}
+
+.solution-hero {
+ display: grid;
+ grid-template-columns: minmax(0, 1fr);
+ gap: 1.25rem;
+ align-items: start;
+ padding-top: 1rem;
+}
+
+.solution-hero h1 {
+ max-width: 12ch;
+ margin: 0;
+ color: #07111f;
+ font-size: clamp(2rem, 3.4vw, 3.5rem);
+ line-height: 1;
+ letter-spacing: -0.06em;
+}
+
+.solution-hero__lead {
+ max-width: 42rem;
+ margin: 1rem 0 0;
+ color: #334155;
+ font-size: clamp(0.98rem, 1.2vw, 1.08rem);
+ line-height: 1.6;
+}
+
+.solution-hero__copy {
+ display: flex;
+ flex-direction: column;
+ justify-content: center;
+ max-width: 860px;
+}
+
+.solution-hero__aside {
+ border: 1px solid #99f6e4;
+ border-radius: 28px;
+ background:
+ radial-gradient(circle at 92% 8%, rgba(56, 189, 248, 0.18), transparent 14rem),
+ linear-gradient(135deg, #f0fdfa 0%, #eff6ff 100%);
+ box-shadow: 0 24px 60px rgba(15, 23, 42, 0.08);
+ padding: 1.25rem;
+}
+
+.solution-hero__aside span,
+.usecase-panel span,
+.solution-flow span {
+ display: block;
+ color: #0f766e;
+ font-size: 0.72rem;
+ font-weight: 900;
+ letter-spacing: 0.16em;
+ text-transform: uppercase;
+}
+
+.solution-hero__aside strong {
+ display: block;
+ margin-top: 0.7rem;
+ color: #0f172a;
+ font-size: 1.08rem;
+ line-height: 1.55;
+}
+
+.product-banners--solutions {
+ margin-top: 0;
+}
+
+.solution-section h2 {
+ max-width: 900px;
+ margin: 0 0 2rem;
+ color: #07111f;
+ font-size: clamp(1.9rem, 3.2vw, 3.2rem);
+ line-height: 1.02;
+ letter-spacing: -0.05em;
+}
+
+.usecase-grid {
+ display: grid;
+ grid-template-columns: repeat(2, minmax(0, 1fr));
+ gap: 1.25rem;
+}
+
+.usecase-panel {
+ border: 1px solid #dbeafe;
+ border-radius: 26px;
+ background: #ffffff;
+ box-shadow: 0 18px 48px rgba(15, 23, 42, 0.07);
+ padding: clamp(1.2rem, 3vw, 2rem);
+ display: flex;
+ min-height: 100%;
+ flex-direction: column;
+}
+
+.usecase-panel h3 {
+ margin: 0;
+ color: #0f172a;
+ font-size: clamp(1.25rem, 2vw, 1.75rem);
+ line-height: 1.08;
+ letter-spacing: -0.035em;
+}
+
+.usecase-panel p {
+ margin: 1rem 0 0;
+ color: #475569;
+ line-height: 1.65;
+}
+
+.solutions-page .usecase-panel__journey {
+ display: grid;
+ grid-template-columns: repeat(3, minmax(0, 1fr));
+ gap: 0.6rem;
+ margin-top: 1.35rem;
+}
+
+.solutions-page .usecase-panel__journey span {
+ display: flex;
+ min-height: 64px;
+ align-items: center;
+ justify-content: center;
+ border: 1px solid #dbeafe;
+ border-radius: 18px;
+ background: linear-gradient(180deg, #f8fbff 0%, #eef6ff 100%);
+ color: #0f172a;
+ font-size: 0.84rem;
+ font-weight: 700;
+ letter-spacing: -0.01em;
+ line-height: 1.2;
+ padding: 0.75rem;
+ text-align: center;
+ text-transform: none;
+}
+
+.usecase-panel__links {
+ display: flex;
+ flex-wrap: wrap;
+ gap: 0.5rem;
+ margin-top: auto;
+ padding-top: 1.25rem;
+}
+
+.usecase-panel__links a,
+.product-map a {
+ color: #0057B7;
+ font-weight: 800;
+ text-decoration: none;
+}
+
+.usecase-panel__links a {
+ border: 1px solid #bfdbfe;
+ border-radius: 999px;
+ background: #f8fafc;
+ padding: 0.45rem 0.72rem;
+ font-size: 0.78rem;
+}
+
+.solution-section--flow {
+ max-width: none;
+ padding: 4.5rem max(1.5rem, calc((100vw - 1180px) / 2));
+ background:
+ radial-gradient(circle at 84% 12%, rgba(14, 165, 233, 0.12), transparent 22rem),
+ linear-gradient(180deg, #f8fafc 0%, #eef6ff 100%);
+}
+
+.solutions-page .solution-flow-layout {
+ display: grid;
+ grid-template-columns: minmax(300px, 0.8fr) minmax(0, 1.2fr);
+ gap: 1.5rem;
+ align-items: start;
+}
+
+.solutions-page .solution-flow-layout__intro p:last-child {
+ max-width: 32rem;
+ margin: 0;
+ color: #475569;
+ font-size: 1rem;
+ line-height: 1.7;
+}
+
+.solution-flow {
+ display: grid;
+ grid-template-columns: repeat(4, minmax(0, 1fr));
+ gap: 1rem;
+}
+
+.solution-flow a {
+ display: flex;
+ min-height: 220px;
+ flex-direction: column;
+ justify-content: space-between;
+ border: 1px solid #dbeafe;
+ border-radius: 24px;
+ background: rgba(255, 255, 255, 0.88);
+ box-shadow: 0 20px 50px rgba(15, 23, 42, 0.07);
+ color: #0f172a;
+ padding: 1.25rem;
+ text-decoration: none;
+ transition: var(--transition);
+}
+
+.solution-flow a:hover {
+ transform: translateY(-5px);
+ border-color: #38bdf8;
+ box-shadow: 0 28px 68px rgba(15, 23, 42, 0.12);
+}
+
+.solution-flow strong {
+ display: block;
+ margin-top: 1rem;
+ color: #0f172a;
+ font-size: 1.25rem;
+ line-height: 1.15;
+ letter-spacing: -0.035em;
+}
+
+.solution-flow small {
+ color: #64748b;
+ font-size: 0.82rem;
+ line-height: 1.45;
+}
+
+.product-map {
+ overflow: hidden;
+ border: 1px solid #dbeafe;
+ border-radius: 26px;
+ background: #ffffff;
+ box-shadow: 0 20px 54px rgba(15, 23, 42, 0.08);
+}
+
+.product-map__row {
+ display: grid;
+ grid-template-columns: 0.55fr 1.25fr 1fr;
+ gap: 1rem;
+ align-items: start;
+ border-top: 1px solid #e2e8f0;
+ padding: 1.1rem 1.25rem;
+}
+
+.product-map__row:first-child {
+ border-top: 0;
+}
+
+.product-map__row--header {
+ background: #eff6ff;
+ color: #0f172a;
+ font-size: 0.76rem;
+ letter-spacing: 0.14em;
+ text-transform: uppercase;
+}
+
+.product-map__row span {
+ color: #475569;
+ line-height: 1.55;
+}
+
+.cta-band--solutions {
+ margin-bottom: 2rem;
+}
+
+.solutions-page .solution-hero__canvas {
+ border: 1px solid #bfdbfe;
+ border-radius: 34px;
+ background:
+ radial-gradient(circle at 88% 10%, rgba(56, 189, 248, 0.16), transparent 18rem),
+ linear-gradient(135deg, #ffffff 0%, #edf6ff 54%, #f0fdfa 100%);
+ box-shadow: 0 28px 70px rgba(15, 23, 42, 0.1);
+ overflow: hidden;
+ max-width: 1040px;
+}
+
+.solutions-page .solution-canvas__header {
+ display: flex;
+ flex-direction: column;
+ gap: 0.6rem;
+ padding: 1.4rem 1.5rem 1.2rem;
+ border-bottom: 1px solid rgba(191, 219, 254, 0.9);
+ background: rgba(255, 255, 255, 0.66);
+}
+
+.solutions-page .solution-canvas__header span,
+.solutions-page .solution-canvas__label,
+.solutions-page .solution-roadmap__step span {
+ display: block;
+ color: #0f766e;
+ font-size: 0.72rem;
+ font-weight: 900;
+ letter-spacing: 0.16em;
+ text-transform: uppercase;
+}
+
+.solutions-page .solution-canvas__header strong {
+ color: #0f172a;
+ font-size: 1.05rem;
+ line-height: 1.55;
+}
+
+.solutions-page .solution-canvas__columns {
+ display: grid;
+ grid-template-columns: minmax(210px, 0.8fr) minmax(360px, 1.4fr) minmax(210px, 0.8fr);
+}
+
+.solutions-page .solution-canvas__rail,
+.solutions-page .solution-canvas__core {
+ padding: 1.35rem;
+ min-width: 0;
+}
+
+.solutions-page .solution-canvas__rail {
+ display: flex;
+ flex-direction: column;
+ gap: 0.85rem;
+ background: rgba(255, 255, 255, 0.54);
+}
+
+.solutions-page .solution-canvas__core {
+ border-left: 1px solid rgba(191, 219, 254, 0.9);
+ border-right: 1px solid rgba(191, 219, 254, 0.9);
+}
+
+.solutions-page .solution-canvas__item {
+ border: 1px solid #dbeafe;
+ border-radius: 18px;
+ background: rgba(255, 255, 255, 0.88);
+ color: #0f172a;
+ font-size: 0.92rem;
+ font-weight: 700;
+ line-height: 1.3;
+ padding: 0.9rem 0.95rem;
+ box-shadow: 0 10px 24px rgba(15, 23, 42, 0.04);
+}
+
+.solutions-page .solution-canvas__header strong,
+.solutions-page .solution-canvas__label,
+.solutions-page .solution-canvas__item,
+.solutions-page .solution-canvas__product strong,
+.solutions-page .solution-canvas__product small {
+ max-width: none;
+ white-space: normal;
+ overflow-wrap: normal;
+ word-break: keep-all;
+ hyphens: none;
+}
+
+.solutions-page .solution-canvas__products {
+ display: grid;
+ grid-template-columns: 1fr;
+ gap: 0.9rem;
+ margin-top: 0.95rem;
+}
+
+.solutions-page .solution-canvas__product {
+ display: grid;
+ grid-template-columns: 86px minmax(0, 1fr);
+ gap: 0.85rem;
+ align-items: center;
+ border: 1px solid #cfe0ff;
+ border-radius: 24px;
+ background: rgba(255, 255, 255, 0.92);
+ color: #0f172a;
+ min-height: 100%;
+ padding: 1rem;
+ text-decoration: none;
+ transition: var(--transition);
+}
+
+.solutions-page .solution-canvas__product:hover {
+ transform: translateY(-4px);
+ border-color: #38bdf8;
+ box-shadow: 0 20px 40px rgba(15, 23, 42, 0.1);
+}
+
+.solutions-page .solution-canvas__product img {
+ width: 100%;
+ height: 76px;
+ object-fit: contain;
+ border-radius: 16px;
+ background: linear-gradient(180deg, #f8fbff 0%, #eef6ff 100%);
+ padding: 0.55rem;
+}
+
+.solutions-page .solution-canvas__product strong,
+.solutions-page .solution-canvas__product small {
+ grid-column: 2;
+}
+
+.solutions-page .solution-canvas__product img {
+ grid-row: 1 / span 2;
+}
+
+.solutions-page .solution-canvas__product strong {
+ color: #0f172a;
+ font-size: 1rem;
+ line-height: 1.2;
+ letter-spacing: -0.02em;
+}
+
+.solutions-page .solution-canvas__product small {
+ color: #64748b;
+ font-size: 0.82rem;
+ line-height: 1.45;
+}
+
+.solutions-page .solution-roadmap {
+ display: grid;
+ grid-template-columns: repeat(2, minmax(0, 1fr));
+ gap: 1rem;
+}
+
+.solutions-page .solution-roadmap__step {
+ position: relative;
+ border: 1px solid #dbeafe;
+ border-radius: 24px;
+ background: rgba(255, 255, 255, 0.9);
+ box-shadow: 0 18px 42px rgba(15, 23, 42, 0.07);
+ padding: 1.25rem;
+}
+
+.solutions-page .solution-roadmap__step strong {
+ display: block;
+ margin-top: 0.9rem;
+ color: #0f172a;
+ font-size: 1.3rem;
+ line-height: 1.08;
+ letter-spacing: -0.04em;
+}
+
+.solutions-page .solution-roadmap__step p {
+ margin: 0.95rem 0 0;
+ color: #64748b;
+ font-size: 0.9rem;
+ line-height: 1.6;
+}
+
+.solutions-page .cta-band--solutions {
+ padding: 1.5rem 2rem;
+ border-radius: 26px;
+}
+
+.solutions-page .cta-band--solutions h2 {
+ max-width: 980px;
+ font-size: clamp(1.6rem, 2.4vw, 2.35rem);
+}
+
+.solutions-page .solution-route-grid {
+ display: grid;
+ grid-template-columns: repeat(2, minmax(0, 1fr));
+ gap: 1.15rem 1.4rem;
+}
+
+.solutions-page .solution-route {
+ display: grid;
+ grid-template-columns: 14px minmax(0, 1fr);
+ gap: 1rem;
+ align-items: start;
+}
+
+.solutions-page .solution-route__marker {
+ width: 14px;
+ height: 14px;
+ border-radius: 999px;
+ background: linear-gradient(135deg, #0057B7, #14b8a6);
+ box-shadow: 0 0 0 7px rgba(191, 219, 254, 0.35);
+ margin-top: 0.45rem;
+}
+
+.solutions-page .solution-route__body {
+ border: 1px solid #dbeafe;
+ border-radius: 22px;
+ background: #ffffff;
+ box-shadow: 0 18px 40px rgba(15, 23, 42, 0.06);
+ padding: 1.2rem 1.25rem;
}
-.md-search__button::before {
- background-color: #0f172a !important;
+.solutions-page .solution-route__body strong {
+ display: block;
+ color: #0f172a;
+ font-size: 1.22rem;
+ line-height: 1.15;
+ letter-spacing: -0.03em;
}
-.md-search__button::after {
- background: rgba(15, 23, 42, 0.08) !important;
- color: #475569 !important;
+.solutions-page .solution-route__body p {
+ margin: 0.85rem 0 0;
+ color: #475569;
+ line-height: 1.65;
}
-h1,
-h2,
-h3 {
- font-weight: 700 !important;
+.solutions-page .solution-route__products {
+ display: flex;
+ flex-wrap: wrap;
+ gap: 0.55rem;
+ margin-top: 1rem;
+}
+
+.solutions-page .solution-route__products a {
+ border: 1px solid #bfdbfe;
+ border-radius: 999px;
+ background: #f8fbff;
+ color: #0057B7;
+ font-size: 0.8rem;
+ font-weight: 800;
+ padding: 0.45rem 0.72rem;
+ text-decoration: none;
+}
+
+.product-system {
+ display: grid;
+ grid-template-columns: repeat(2, minmax(0, 1fr));
+ gap: 1.2rem;
+}
+
+.product-system__card {
+ border: 1px solid #dbeafe;
+ border-radius: 28px;
+ background:
+ radial-gradient(circle at 92% 12%, rgba(56, 189, 248, 0.12), transparent 12rem),
+ #ffffff;
+ box-shadow: 0 20px 48px rgba(15, 23, 42, 0.08);
+ padding: 1.4rem 1.45rem;
+}
+
+.product-system__card span {
+ display: block;
+ color: #0f766e;
+ font-size: 0.72rem;
+ font-weight: 900;
+ letter-spacing: 0.16em;
+ text-transform: uppercase;
+}
+
+.product-system__card h3 {
+ margin: 0.8rem 0 0;
+ color: #0f172a;
+ font-size: 1.7rem;
+ line-height: 1.02;
+ letter-spacing: -0.04em;
+}
+
+.product-system__card p {
+ margin: 0.9rem 0 0;
+ color: #475569;
+ line-height: 1.65;
+}
+
+.product-system__card ul {
+ margin: 1rem 0 0;
+ padding-left: 1rem;
+ color: #334155;
+}
+
+.product-system__card li + li {
+ margin-top: 0.45rem;
+}
+
+.developer-hero {
+ padding-top: 3rem;
+}
+
+body.developers-page .md-content h1:first-of-type {
+ display: none;
+}
+
+.developer-index__rows {
+ border-top: 1px solid #dbeafe;
+}
+
+.developer-index__row {
+ display: grid;
+ grid-template-columns: minmax(220px, 0.9fr) minmax(0, 1.8fr) auto;
+ gap: 1.25rem;
+ align-items: center;
+ border-bottom: 1px solid #dbeafe;
+ padding: 1.2rem 0;
+ color: inherit;
+ text-decoration: none;
+}
+
+.developer-index__row,
+.developer-index__row:hover,
+.developer-index__row:focus,
+.developer-index__row:active,
+.developer-index__row span {
+ text-decoration: none;
+}
+
+.developer-index__title {
+ color: #0057B7;
+ font-size: 1.18rem;
+ font-weight: 800;
letter-spacing: -0.02em;
}
-/* horizontal dividers */
-body.home .md-content h2::before {
- content: "";
+.developer-index__detail {
+ color: #475569;
+ line-height: 1.7;
+}
+
+.developer-index__route {
+ color: #0057B7;
+ font-size: 0.76rem;
+ font-weight: 900;
+ letter-spacing: 0.16em;
+ text-transform: uppercase;
+ white-space: nowrap;
+}
+
+.developer-catalog__groups {
+ display: grid;
+ gap: 0;
+ border-top: 1px solid #dbeafe;
+}
+
+.developer-catalog__group {
+ display: grid;
+ grid-template-columns: minmax(220px, 0.9fr) minmax(0, 1.6fr) minmax(260px, 1fr);
+ gap: 1.5rem;
+ align-items: start;
+ border-bottom: 1px solid #dbeafe;
+ padding: 1.35rem 0;
+}
+
+.developer-catalog__label {
+ color: #0f172a;
+ font-size: 1.08rem;
+ font-weight: 800;
+ letter-spacing: -0.02em;
+}
+
+.developer-catalog__group p {
+ margin: 0;
+ color: #475569;
+ line-height: 1.7;
+}
+
+.developer-catalog__links {
+ display: flex;
+ flex-wrap: wrap;
+ gap: 0.85rem;
+}
+
+.developer-catalog__links a {
+ color: #0057B7;
+ font-weight: 800;
+ text-decoration: none;
+}
+
+.developer-directory__grid,
+.product-dev-links__grid {
+ display: grid;
+ grid-template-columns: repeat(2, minmax(0, 1fr));
+ gap: 1.15rem;
+}
+
+.developer-directory__card,
+.product-dev-links__card {
+ display: flex;
+ min-height: 100%;
+ flex-direction: column;
+ border: 1px solid #dbeafe;
+ border-radius: 24px;
+ background: #ffffff;
+ box-shadow: 0 18px 40px rgba(15, 23, 42, 0.06);
+ padding: 1.25rem;
+ text-decoration: none;
+}
+
+.developer-directory__card strong,
+.product-dev-links__card strong {
+ color: #0f172a;
+ font-size: 1.24rem;
+ line-height: 1.1;
+ letter-spacing: -0.03em;
+}
+
+.developer-directory__card span,
+.product-dev-links__card p {
+ margin-top: 0.8rem;
+ color: #475569;
+ line-height: 1.65;
+}
+
+.developer-tool-groups {
+ display: grid;
+ grid-template-columns: repeat(3, minmax(0, 1fr));
+ gap: 1.15rem;
+}
+
+.developer-tool-group {
+ display: flex;
+ flex-direction: column;
+ gap: 0.7rem;
+ border: 1px solid #dbeafe;
+ border-radius: 24px;
+ background:
+ radial-gradient(circle at 92% 10%, rgba(56, 189, 248, 0.12), transparent 12rem),
+ #ffffff;
+ box-shadow: 0 18px 40px rgba(15, 23, 42, 0.06);
+ padding: 1.25rem;
+}
+
+.developer-tool-group span {
+ display: block;
+ color: #0f766e;
+ font-size: 0.72rem;
+ font-weight: 900;
+ letter-spacing: 0.16em;
+ text-transform: uppercase;
+}
+
+.developer-tool-group a,
+.product-dev-links__card a {
+ color: #0057B7;
+ font-weight: 800;
+ text-decoration: none;
+}
+
+.product-dev-links__card a {
+ margin-top: auto;
+ padding-top: 1rem;
+}
+
+.product-banners {
+ display: grid;
+ gap: 2rem;
+ max-width: 1180px;
+ margin: 1rem auto 5rem;
+ padding: 0 1.5rem;
+}
+
+.product-banner {
+ display: grid;
+ grid-template-columns: minmax(0, 0.9fr) minmax(360px, 1.1fr);
+ gap: clamp(1.5rem, 4vw, 4rem);
+ align-items: center;
+ overflow: hidden;
+ min-height: 380px;
+ border: 1px solid #dbeafe;
+ border-radius: 34px;
+ background:
+ radial-gradient(circle at 95% 10%, rgba(56, 189, 248, 0.16), transparent 19rem),
+ linear-gradient(135deg, #ffffff 0%, #eef6ff 100%);
+ box-shadow: 0 28px 80px rgba(15, 23, 42, 0.1);
+ padding: clamp(1.5rem, 4vw, 3rem);
+}
+
+.product-banner:nth-child(even) {
+ grid-template-columns: minmax(360px, 1.1fr) minmax(0, 0.9fr);
+}
+
+.product-banner:nth-child(even) .product-banner__copy {
+ order: 2;
+}
+
+.product-banner:nth-child(even) img {
+ order: 1;
+}
+
+.product-banner--compute {
+ background:
+ radial-gradient(circle at 8% 8%, rgba(124, 58, 237, 0.12), transparent 18rem),
+ linear-gradient(135deg, #ffffff 0%, #f5f3ff 100%);
+}
+
+.product-banner--integrate {
+ background:
+ radial-gradient(circle at 95% 12%, rgba(20, 184, 166, 0.14), transparent 18rem),
+ linear-gradient(135deg, #ffffff 0%, #ecfeff 100%);
+}
+
+.product-banner--models {
+ background:
+ radial-gradient(circle at 8% 10%, rgba(245, 158, 11, 0.16), transparent 18rem),
+ linear-gradient(135deg, #ffffff 0%, #fffbeb 100%);
+}
+
+.product-banner__copy h2 {
+ margin: 0;
+ color: #07111f;
+ font-size: clamp(2.4rem, 5vw, 4.6rem);
+ line-height: 0.95;
+ letter-spacing: -0.06em;
+}
+
+.product-banner__copy p:not(.eyebrow) {
+ max-width: 560px;
+ margin: 1rem 0 0;
+ color: #334155;
+ font-size: clamp(1rem, 1.8vw, 1.3rem);
+ line-height: 1.55;
+}
+
+.product-banner img {
display: block;
width: 100%;
- height: 1px;
- background-color: #e2e8f0;
- margin-top: 0.5em;
- margin-bottom: 1.5em;
+ border-radius: 24px;
+ box-shadow: 0 24px 70px rgba(15, 23, 42, 0.14);
+}
+
+.product-banner__links {
+ display: flex;
+ flex-wrap: wrap;
+ gap: 0.6rem;
+ margin-top: 1.8rem;
+}
+
+.product-banner__links a {
+ display: inline-flex;
+ align-items: center;
+ border: 1px solid #bfdbfe;
+ border-radius: 999px;
+ background: rgba(255, 255, 255, 0.76);
+ color: #0057B7;
+ font-size: 0.85rem;
+ font-weight: 800;
+ padding: 0.55rem 0.9rem;
+ text-decoration: none;
+ transition: var(--transition);
+}
+
+.product-banner__links a:hover {
+ transform: translateY(-2px);
+ border-color: #38bdf8;
+ background: #ffffff;
+ box-shadow: 0 12px 30px rgba(15, 23, 42, 0.08);
+}
+
+.business-section {
+ max-width: 1180px;
+ margin: 0 auto 5rem;
+ padding: 0 1.5rem;
+}
+
+.business-section h2 {
+ max-width: 850px;
+ margin-top: 0;
+ color: #0f172a;
+ font-size: clamp(1.9rem, 3vw, 3.2rem);
+ line-height: 1.06;
+ letter-spacing: -0.045em;
+}
+
+.section-lead {
+ max-width: 760px;
+ color: #475569;
+ font-size: 1.05rem;
+ line-height: 1.7;
+}
+
+.business-section--muted {
+ max-width: none;
+ padding: 4.5rem max(1.5rem, calc((100vw - 1180px) / 2));
+ background:
+ radial-gradient(circle at 90% 10%, rgba(124, 58, 237, 0.08), transparent 24rem),
+ linear-gradient(180deg, #f8fafc 0%, #eef6ff 100%);
+}
+
+.value-grid,
+.capability-grid,
+.foundation-grid {
+ display: grid;
+ gap: 1rem;
+}
+
+.value-grid,
+.capability-grid {
+ grid-template-columns: repeat(3, minmax(0, 1fr));
+}
+
+.value-grid article,
+.capability-grid article {
+ border: 1px solid #e2e8f0;
+ border-radius: 22px;
+ background: #ffffff;
+ box-shadow: 0 18px 46px rgba(15, 23, 42, 0.06);
+ padding: 1.4rem;
+}
+
+.value-grid h3,
+.capability-grid h3 {
+ margin-top: 0;
+ color: #0f172a;
+}
+
+.value-grid p,
+.capability-grid p {
+ color: #475569;
+ line-height: 1.65;
+}
+
+.proof-band,
+.cta-band {
+ max-width: 1180px;
+ margin: 0 auto 5rem;
+ border-radius: 30px;
+ padding: 2rem;
+}
+
+.proof-band {
+ display: flex;
+ gap: 1.5rem;
+ align-items: center;
+ justify-content: space-between;
+ border: 1px solid #99f6e4;
+ background:
+ linear-gradient(135deg, rgba(236, 254, 255, 0.94), rgba(239, 246, 255, 0.94)),
+ radial-gradient(circle at 92% 18%, rgba(245, 158, 11, 0.18), transparent 18rem);
+ box-shadow: 0 24px 64px rgba(15, 23, 42, 0.08);
+}
+
+.proof-band span {
+ display: block;
+ margin-bottom: 0.45rem;
+ color: #0f766e;
+ font-size: 0.75rem;
+ font-weight: 800;
+ letter-spacing: 0.16em;
+ text-transform: uppercase;
+}
+
+.proof-band strong {
+ display: block;
+ max-width: 780px;
+ color: #0f172a;
+ font-size: 1.15rem;
+ line-height: 1.55;
+}
+
+.foundation-grid {
+ grid-template-columns: repeat(3, minmax(0, 1fr));
+ margin: 2rem 0;
+}
+
+.foundation-grid a {
+ display: flex;
+ flex-direction: column;
+ gap: 0.35rem;
+ border: 1px solid #dbeafe;
+ border-radius: 18px;
+ background: #ffffff;
+ padding: 1.1rem;
+ color: #0f172a;
+ text-decoration: none;
+ transition: var(--transition);
+}
+
+.foundation-grid a:hover {
+ transform: translateY(-4px);
+ border-color: #38bdf8;
+ box-shadow: 0 18px 42px rgba(15, 23, 42, 0.1);
+}
+
+.foundation-grid span {
+ color: #64748b;
+ font-size: 0.86rem;
+ line-height: 1.45;
+}
+
+.cta-band {
+ background:
+ linear-gradient(135deg, rgba(0, 87, 183, 0.96), rgba(14, 116, 144, 0.96)),
+ radial-gradient(circle at 88% 18%, rgba(245, 158, 11, 0.25), transparent 20rem);
+ color: #ffffff;
+}
+
+.cta-band h2 {
+ max-width: 850px;
+ margin: 0;
+ color: #ffffff;
+ font-size: clamp(1.8rem, 3vw, 3rem);
+ line-height: 1.08;
+}
+
+.cta-band p {
+ max-width: 760px;
+ color: rgba(255, 255, 255, 0.84);
+ font-size: 1rem;
+ line-height: 1.65;
+}
+
+.cta-band .eyebrow,
+.cta-band a {
+ color: #ccfbf1;
}
/* Hero section container */
@@ -300,7 +1562,90 @@ body.home .md-content h2::before {
}
/* Responsive */
-@media screen and (max-width: 768px) {
+@media screen and (max-width: 960px) {
+ .business-hero {
+ grid-template-columns: 1fr;
+ padding-top: 3rem;
+ }
+
+ .md-header__nav {
+ display: none;
+ }
+
+ .md-header__brand {
+ margin-right: auto;
+ }
+
+ .md-header__brand-text {
+ font-size: 1rem;
+ }
+
+ .business-hero__copy h1 {
+ font-size: 2.35rem;
+ }
+
+ .solution-strip,
+ .solution-hero,
+ .solution-flow,
+ .solution-roadmap,
+ .solution-route-grid,
+ .developer-index__row,
+ .developer-catalog__group,
+ .developer-directory__grid,
+ .product-dev-links__grid,
+ .developer-tool-groups,
+ .product-system,
+ .usecase-grid,
+ .product-map__row,
+ .product-banner,
+ .value-grid,
+ .capability-grid,
+ .foundation-grid {
+ grid-template-columns: 1fr;
+ }
+
+ .solutions-page .solution-flow-layout {
+ grid-template-columns: 1fr;
+ }
+
+ .product-banner:nth-child(even) {
+ grid-template-columns: 1fr;
+ }
+
+ .product-banner:nth-child(even) .product-banner__copy,
+ .product-banner:nth-child(even) img {
+ order: initial;
+ }
+
+ .solutions-page .solution-canvas__columns,
+ .solutions-page .solution-canvas__products,
+ .solutions-page .usecase-panel__journey {
+ grid-template-columns: 1fr;
+ }
+
+ .solutions-page .solution-canvas__product {
+ grid-template-columns: 1fr;
+ }
+
+ .solutions-page .solution-canvas__product strong,
+ .solutions-page .solution-canvas__product small,
+ .solutions-page .solution-canvas__product img {
+ grid-column: auto;
+ grid-row: auto;
+ }
+
+ .solutions-page .solution-canvas__core {
+ border-top: 1px solid rgba(191, 219, 254, 0.9);
+ border-bottom: 1px solid rgba(191, 219, 254, 0.9);
+ border-left: 0;
+ border-right: 0;
+ }
+
+ .proof-band {
+ align-items: flex-start;
+ flex-direction: column;
+ }
+
.product-grid {
grid-template-columns: 1fr;
margin-top: 2rem;
@@ -349,3 +1694,7 @@ body.home .md-content h2::before {
font-weight: 700;
color: #000000;
}
+
+body:not(.marketing-page) .md-sidebar--primary .md-nav--primary > .md-nav__list > .md-nav__item:not(.md-nav__item--active) {
+ display: none;
+}
diff --git a/docs/tools/index.md b/docs/tools/index.md
index 9dbd964..e3fbcd3 100644
--- a/docs/tools/index.md
+++ b/docs/tools/index.md
@@ -1,32 +1,37 @@
-# CALYPR Tool Ecosystem
+# Open-Source Tool Docs
-The CALYPR platform provides a suite of powerful, open-source tools designed to handle every stage of the genomic data lifecycle—from ingestion and versioning to distributed analysis and graph-based discovery.
+This is the technical reference area for the CALYPR toolchain. It is intentionally behind the product and solution pages so non-technical readers do not have to start with implementation detail.
----
+## Data Lake Tools
### [Git-DRS](/tools/git-drs/)
-**The Version Control Layer.**
-Git-DRS is a specialized extension for Git that manages massive genomic datasets using the GA4GH Data Repository Service (DRS) standard. It allows researchers to track, version, and share petabyte-scale files as easily as code, replacing heavy binaries with lightweight pointer files that resolve to immutable cloud objects.
+
+Git-DRS provides Git-style versioning for large DRS-backed research data. Use it when teams need reproducible data references without committing large binaries to Git.
### [Syfon](/tools/syfon/)
-**The Data Service Layer.**
-Syfon is CALYPR's DRS and storage mediation service. It handles object registration, presigned upload and download URLs, bucket routing, authentication modes, and the server-side configuration that lets higher-level tools move data cleanly between repositories, commons services, and object storage.
+
+Syfon is the DRS and storage mediation service. It handles object registration, presigned upload and download URLs, bucket routing, and server-side storage access.
+
+## Workflow And Discovery
### [Funnel](/tools/funnel/)
-**The Compute Layer.**
-Funnel is a distributed task execution engine that implements the GA4GH Task Execution Service (TES) API. It provides a standardized way to run Docker-based analysis pipelines across diverse environments—including Kubernetes, AWS, and Google Cloud—ensuring that your workflows are portable and independent of the underlying infrastructure.
+
+Funnel implements the GA4GH Task Execution Service API for portable workflow execution across distributed compute environments.
### [GRIP](/tools/grip/)
-**The Discovery Layer.**
-GRIP (Graph Resource Integration Platform) is a high-performance graph database and query engine designed for complex biological data. It enables analysts to integrate heterogeneous datasets into a unified knowledge graph and perform sophisticated queries that reveal deep relational insights across multi-omic cohorts.
+
+GRIP provides graph database and query capabilities for complex biomedical relationships and integrated project data.
+
+## Data Preparation And Operations
### [Forge](/tools/forge/)
-**Project formatting**
-Forge scans a data repository to build an integrated FHIR based graph of samples and all the files connected to the project. It is responsible for schema checking and database loading. You can use it client side to verify and debug your project and on the server side, it is used to load databases.
-### [Data Client](/tools/data-client/)
-A client command line interface for interfacing with the Calypr system.
+Forge validates, publishes, and harmonizes project metadata before it is loaded into shared research systems.
### [Sifter](/tools/sifter/)
-**Data Transformation**
-Sifter is a tool for rapid data extraction and transformation.
+
+Sifter supports data extraction and transformation workflows.
+
+### [Data Client](/tools/data-client/)
+
+The data client provides command-line operations for CALYPR data workflows, authentication, and project interactions.
diff --git a/overrides/home.html b/overrides/home.html
index 923ddf0..b5d982a 100644
--- a/overrides/home.html
+++ b/overrides/home.html
@@ -2,15 +2,6 @@
{% block tabs %}
{{ super() }}
-
-
-
-
CALYPR
-
Unlocking biological insights with scalable, cloud/on-prem hybrid infrastructure.
-
-
-
-
{% endblock %}
@@ -20,4 +11,4 @@
CALYPR
{% block footer %}
{{ super() }}
-{% endblock %}
\ No newline at end of file
+{% endblock %}
diff --git a/overrides/partials/header.html b/overrides/partials/header.html
new file mode 100644
index 0000000..da96d19
--- /dev/null
+++ b/overrides/partials/header.html
@@ -0,0 +1,75 @@
+{% set class = "md-header md-header--shadow" %}
+
diff --git a/zensical.toml b/zensical.toml
index 4651955..bc0400b 100644
--- a/zensical.toml
+++ b/zensical.toml
@@ -36,8 +36,19 @@ site_name = "CALYPR"
site_url = "https://calypr.org"
nav = [
- { "Home" = "index.md" },
- { "Calypr" = [
+ { "Solutions" = [
+ "solutions/index.md",
+ ] },
+ { "Products" = [
+ "products/index.md",
+ { "Manage Data" = "products/manage-data.md" },
+ { "Manage Compute" = "products/manage-compute.md" },
+ { "Integrate Data" = "products/integrate-data.md" },
+ { "Manage Models" = "products/manage-models.md" },
+ ] },
+ { "Developers" = [
+ "developers/index.md",
+ { "CALYPR Product Docs" = [
"calypr/index.md",
{ "Quick Start Guide" = "calypr/quick-start.md" },
{ "Data" = [
@@ -62,8 +73,8 @@ nav = [
{ "Explore" = "calypr/website/portal-explore.md" },
{ "Download" = "calypr/website/portal-download.md" },
] },
- ] },
- { "Tools" = [
+ ] },
+ { "Open Source Tool Docs" = [
"tools/index.md",
{ "Data Lake Tools" = [
{ "Git-DRS" = [
@@ -212,6 +223,7 @@ nav = [
{ "Access Requests" = "tools/data-client/docs/access_requests.md" },
] },
] },
+ ] },
] },
]
@@ -233,7 +245,6 @@ features = [
"content.code.copy",
"navigation.indexes",
"navigation.sections",
- "navigation.tabs",
"navigation.top",
"header.autohide",
"navigation.instant",