From c069c4fa1b65e0c104964d04dc014b74b940f4ea Mon Sep 17 00:00:00 2001 From: Chris Smothers Date: Sat, 10 Oct 2026 17:20:40 -0700 Subject: [PATCH 1/5] feat(site): redesign xNet marketing around an owned workspace MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Lead the homepage with the shipping alpha and distinguish integrated AI and commons goals. - Carry the blog’s ownership, open workshop, consent, and community themes into an illustrated vision page. - Explain the composable substrate through nodes, schemas, views, and an optional account of storage and sync. - Add an editorial visual system, responsive navigation, a workspace tour, and searchable field notes. - Preserve essay and legal prose, existing pricing data, and the detailed privacy argument. - Verify the production build, responsive layouts, theme and navigation controls, and internal links. - Keep this branch local for design review before publication. Signed-off-by: Chris Smothers --- ...ORKSPACE_OF_YOUR_OWN_MARKETING_REDESIGN.md | 173 +++++++ site/src/components/marketing/Closing.astro | 18 + .../src/components/marketing/MeshGarden.astro | 76 +++ site/src/components/marketing/PageHero.astro | 17 + site/src/components/marketing/Substrate.astro | 171 +++++++ .../components/marketing/WorkspaceImage.astro | 24 + site/src/components/sections/Footer.astro | 328 +++++------- site/src/components/sections/Nav.astro | 171 +++++-- site/src/components/ui/CodeTabs.astro | 4 +- site/src/components/ui/SectionHeader.astro | 11 +- ...lore-the-workspace-and-the-ideas-behi.json | 8 + site/src/layouts/Base.astro | 59 ++- site/src/pages/acceptable-use.astro | 2 +- site/src/pages/agents.astro | 131 +++-- site/src/pages/blog/a-great-pirate-age.astro | 2 +- .../src/pages/blog/atoms-for-the-ballot.astro | 2 +- site/src/pages/blog/clutch-power.astro | 2 +- .../blog/data-should-work-like-soil.astro | 2 +- site/src/pages/blog/hand-on-the-tiller.astro | 2 +- site/src/pages/blog/index.astro | 294 +++++++---- site/src/pages/blog/palimpsest.astro | 2 +- site/src/pages/blog/people-in-disguise.astro | 2 +- .../src/pages/blog/rig-the-game-or-play.astro | 2 +- .../the-desert-that-feeds-the-forest.astro | 2 +- .../blog/the-door-inside-the-house.astro | 2 +- .../pages/blog/the-forest-and-the-field.astro | 2 +- .../src/pages/blog/the-gentlest-furnace.astro | 2 +- .../blog/the-harvest-you-can-count.astro | 2 +- .../pages/blog/the-hundred-year-machine.astro | 2 +- .../pages/blog/the-loom-you-can-read.astro | 2 +- .../blog/the-matchmaker-and-the-meter.astro | 2 +- site/src/pages/blog/the-right-to-say-no.astro | 2 +- .../pages/blog/the-table-and-the-wall.astro | 2 +- site/src/pages/blog/the-tip-of-the-hook.astro | 2 +- .../pages/blog/the-vault-and-the-view.astro | 2 +- .../the-workshop-and-the-walled-garden.astro | 2 +- .../the-worlds-greatest-record-store.astro | 2 +- site/src/pages/blog/timeout.astro | 2 +- site/src/pages/blog/tree-rings.astro | 2 +- .../src/pages/blog/weights-you-can-hold.astro | 2 +- site/src/pages/build-with.astro | 123 +++-- site/src/pages/changelog/index.astro | 2 +- site/src/pages/cloud/index.astro | 232 ++++----- site/src/pages/cloud/pricing.astro | 9 +- site/src/pages/commitments.astro | 3 +- site/src/pages/compare.astro | 2 +- site/src/pages/demos.astro | 14 +- site/src/pages/devtool.astro | 123 +++-- site/src/pages/download.astro | 308 ++++-------- site/src/pages/dpa.astro | 2 +- site/src/pages/index.astro | 342 ++++++++++++- site/src/pages/marketplace-terms.astro | 2 +- site/src/pages/mobile.astro | 16 +- site/src/pages/open.astro | 6 +- site/src/pages/plugins.astro | 7 +- site/src/pages/plugins/[id].astro | 2 +- site/src/pages/privacy-by-design.astro | 45 ++ site/src/pages/privacy.astro | 2 +- site/src/pages/react.astro | 5 +- site/src/pages/roadmap.astro | 175 +++++-- site/src/pages/status.astro | 2 +- site/src/pages/subprocessors.astro | 2 +- site/src/pages/terms.astro | 2 +- site/src/pages/why.astro | 201 ++++++-- site/src/pages/workspace.astro | 120 +++++ site/src/styles/marketing.css | 465 ++++++++++++++++++ site/tailwind.config.mjs | 15 + 67 files changed, 2794 insertions(+), 970 deletions(-) create mode 100644 docs/explorations/0470_[_]_A_WORKSPACE_OF_YOUR_OWN_MARKETING_REDESIGN.md create mode 100644 site/src/components/marketing/Closing.astro create mode 100644 site/src/components/marketing/MeshGarden.astro create mode 100644 site/src/components/marketing/PageHero.astro create mode 100644 site/src/components/marketing/Substrate.astro create mode 100644 site/src/components/marketing/WorkspaceImage.astro create mode 100644 site/src/data/changelog/2026-10-10-explore-the-workspace-and-the-ideas-behi.json create mode 100644 site/src/pages/privacy-by-design.astro create mode 100644 site/src/pages/workspace.astro create mode 100644 site/src/styles/marketing.css diff --git a/docs/explorations/0470_[_]_A_WORKSPACE_OF_YOUR_OWN_MARKETING_REDESIGN.md b/docs/explorations/0470_[_]_A_WORKSPACE_OF_YOUR_OWN_MARKETING_REDESIGN.md new file mode 100644 index 000000000..420067274 --- /dev/null +++ b/docs/explorations/0470_[_]_A_WORKSPACE_OF_YOUR_OWN_MARKETING_REDESIGN.md @@ -0,0 +1,173 @@ +--- +title: A workspace of your own — marketing redesign +status: draft +last_updated: 2026-10-10 +review: 2026-10-24 +decider: Chris Smothers +door: two-way +tags: [site, brand, product, vision] +--- + +# A workspace of your own + +> [!TIP] +> Lead with the workspace people can use, then explain the larger world it could grow into. Use the new mesh mark as a visual anchor, and the essays as the source of the argument. + +> [!IMPORTANT] +> This is a local design preview. Chris requested a review before publication. Do not push a preview deployment, merge, or publish this redesign until that review happens. The previous approval to publish the brand assets does not apply to this work. + +## Problem + +The homepage sells an easy coding-agent integration as the main product. The owner’s current assessment is that this is ahead of the shipping experience. The repository supports a narrower claim: agent interfaces exist, while integrated daily work, clear in-product review, and consumer-friendly setup remain goals in `docs/ROADMAP.md`. + +The site also has several competing visual treatments: gradient SaaS landing pages, illustrated long-form essays, developer documentation, a dense pricing grid, and a newly refined wordmark. The essays contain a richer account of why the project exists than the homepage does. + +Chris selected **people who want a workspace they own** as the primary audience. Developers remain an important second route. + +## Recommendation + +A warm, editorial site, grounded in the app and linked to the essays. Paper and ink give the illustrations room to breathe. Deep green and a small amount of pale green connect to living systems without turning the project into an environmental claim. The mesh mark supplies the rounded geometry; large, plain headings and occasional serif emphasis provide a different rhythm from the old product grid. + +The homepage’s main promise is “Your work. Your world. Yours to keep.” The next sentence names the actual category: an open workspace for notes, projects, and saved knowledge. It offers downloads first, then the vision. No command-line installation is required to understand the page. + +The builders section explains the substrate through three reusable parts: nodes, schemas, and views. A compact diagram makes the building-brick idea tangible; a native disclosure adds local copies, signed changes, and the distinct document and structured-data merge rules. It links to “Clutch Power” and the data model, and distinguishes the alpha SDK from a future ecosystem of interchangeable tools. + +The October 24 review date is a two-week design decision checkpoint. It is not a release commitment. + +## What the repository actually supports + +| Claim | Evidence | Treatment | +| --------------------------------------- | ----------------------------------------------------------------------- | ------------------------------------------------------------------------------------------- | +| Documents, databases, and canvases | `apps/electron/src/renderer/App.tsx`, workspace components; `README.md` | Available in alpha | +| Personal library | `apps/electron/src/library/`, renderer library views | Explicitly desktop | +| Browser demo | `README.md`, `apps/web/` | Passkey; limited temporary hosted backups; export important work | +| Local data and workspace export | `README.md`, storage/export implementation, `docs/CHARTER.md` | Concrete ownership mechanisms | +| Agent connection tools | `packages/cli/src/commands/connect.ts`, `site/src/data/agents.ts` | Developer setup; write permission explicit | +| Easy integrated AI daily driver | `docs/ROADMAP.md`, owner correction | Being built; never presented as the default experience | +| Own hub and managed hosting foundations | `packages/hub/`, `apps/cloud/`, `site/src/data/pricing.ts` | Explain choices and operator trust; preserve prices and limits | +| Full mobile workspace | `apps/expo/`, `site/src/pages/mobile.astro` | Developer demo; setup depends on whether a hosted build is configured | +| Broad discovery commons | `docs/ROADMAP.md`, `docs/VISION.md` | Longer-term direction; distinguish publishing foundations from a finished community network | + +The existing app screenshot is retained as an actual workspace illustration and labelled **example content**. Its sample document is not evidence of customer counts or completed features. + +## The essays as the organising idea + +The survey covered the headings, opening and closing arguments of all 25 published essays, plus the charter, roadmap, vision, and relevant code. Metaphors inform the design; their scientific or historical details do not become new product claims. + +| Thread | Essays | Where it enters the redesign | +| ----------------------------- | -------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------ | +| Keep the thing you made | The Hundred-Year Machine; Weights You Can Hold; The Door Inside the House; The Right to Say No | Ownership lead, downloads, backups, exit, hosting choices | +| Data is common ground | Data Should Work Like Soil; The Forest and the Field; The Desert That Feeds the Forest; The Vault and the View | Main vision section: data persists while tools change; mesh garden drawing | +| An open workshop | The Workshop and the Walled Garden; Clutch Power; The Tip of the Hook; The Loom You Can Read | Developer route, open schemas, extension foundations, inspectable machinery | +| Keep a legible history | Tree Rings; Palimpsest; People in Disguise | Provenance and agency, without promising a finished history-review UI | +| Choose and correct the course | Hand on the Tiller; The Gentlest Furnace; Atoms for the Ballot | Permission, feedback, limits, a direction that stays open to revision | +| A community can keep going | A Great Pirate Age; The World’s Greatest Record Store; The Table and the Wall | The commons horizon, voluntary connection, communities outlasting servers | +| Respect a person’s life | Timeout; The Matchmaker and the Meter; Rig the Game or Play; The Harvest You Can Count | Calm presentation, no urgency tricks or invented growth metrics; charter links | + +The dedicated vision page walks through permanence, interdependence, creative agency, consent, the commons, and room to go quiet. Each chapter links to the essay behind it. The home page includes three selected essays. The journal preserves every published post and its metadata, adding topic and text filtering across all 25 essays, including the featured entry. + +## Information architecture + +```mermaid +flowchart TD + Home["Home: a workspace of your own"] --> Workspace["The workspace: what you can use"] + Home --> Vision["The vision: why it matters"] + Home --> Journal["Field notes: the full argument"] + Home --> Builders["For builders: open foundations"] + Workspace --> Download["Desktop / browser / mobile demo"] + Vision --> Charter["Commitments and evidence"] + Vision --> Roadmap["Now / current focus / next / horizon"] + Builders --> Tools["React / DevTools / demos / plugins"] + Roadmap --> Agents["AI: current tools and unfinished experience"] + Roadmap --> Hosting["Cloud, self-hosting, prices, status"] +``` + +The header has four destinations and one product action. Mobile uses a native disclosure menu, retaining access to the destinations rather than hiding the navigation. The footer keeps the detailed paths available without making the first screen a directory. + +## Scope and implementation map + +| Surface | Change | +| ------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------- | +| `/` | Complete new narrative and layout; mesh illustration; real workspace image; product, vision, maturity, essays, builders | +| `/workspace` | New product tour, concrete features, alpha and platform questions | +| `/why` | New illustrated vision, connected directly to six essay themes | +| `/privacy-by-design` | Preserves the former detailed privacy argument at a discoverable route | +| `/roadmap` | New reader-oriented sequence, with present capability separated from goals | +| `/blog` | New editorial index, featured essay, collection grid and filters | +| `/agents` | New honest introduction and setup framing; retains working setup tabs, permission details, and receipts | +| `/download` | Rebuilt platform chooser; preserves release asset discovery and describes unresolved lookup honestly | +| `/cloud` | Rewritten hosting story and operator choice; marks easier onboarding as a goal | +| `/build-with`, `/devtool` | New editorial introductions; existing technical examples and controls retained | +| `/react`, `/mobile`, `/plugins`, `/cloud/pricing`, `/open`, `/compare`, `/commitments`, `/status`, `/changelog`, `/demos` | Shared visual overhaul and targeted copy/hierarchy corrections; underlying data, pricing, filters, and useful depth retained | +| Individual essays and legal pages | New shared navigation, footer, and palette; article arguments, artwork, citations, and legal text preserved | +| Documentation and application UI | Outside this redesign; existing destinations remain linked | + +Implementation lives in the real Astro pages and `site/src/components/marketing/`. This is a runnable visual companion rather than a Storybook sketch: Astro’s real routing, responsive layout, theme behavior, and data-driven controls are what the reviewer needs to see. The markdown remains the record of decisions. + +## Options considered + +| Option | Strength | Cost | Decision | +| --------------------------------------------------- | ---------------------------------------- | ----------------------------------------- | ----------------------------- | +| Refine the current agent-first page | Small diff | Retains the central mismatch | Rejected for this pass | +| Lead with the entire decentralised-network vision | Strong philosophy | Hard to tell what a visitor can use today | Vision becomes the second act | +| Lead with an owned workspace, then open the horizon | Useful entry point and room for ambition | Requires a genuine narrative rewrite | Recommended | + +## External reference points + +[Ink & Switch’s local-first essay](https://www.inkandswitch.com/essay/local-first/) grounds ownership in practical properties: local copies, offline work, collaboration, and long-term access. This supports explaining mechanisms before making a broad claim about freedom. + +[Linear’s current site](https://linear.app/) is a useful reference for deliberate hierarchy and a legible product route. This redesign keeps its own editorial and organic identity; it does not adopt Linear’s agent-led positioning. + +The primary voice and visual material come from xNet’s own essays and illustrations, rather than a third-party template. + +## Review questions and tradeoffs + +- Does the warm paper / green direction feel like the right extension of the black-and-white mark? +- Is the ownership promise clear enough above the fold, or should the first sentence name documents and databases instead of broader uses? +- The vision page is deliberately slower and more essay-like. Is that the right amount of depth before linking into the blog? +- The public pricing catalog is retained. Operational readiness should be rechecked before publication; this preview does not certify the hosted signup experience. +- The charter page currently summarises six commitments while the source charter has a seventh Floor section. Expanding the receipt inventory is separate factual work; the redesign does not invent its enforcement status. +- This is alpha software. Marketing should continue to be reviewed against working user journeys, not just features found in source. + +## Implementation checklist + +- [x] Ground the claim map in source, roadmap, and owner correction. +- [x] Implement the shared shell and responsive visual system. +- [x] Build the homepage, workspace, vision, roadmap, and journal. +- [x] Rework supporting marketing routes while retaining working data and controls. +- [x] Preserve essay and legal prose, and make the previous privacy argument reachable. +- [x] Provide a local browser preview for Chris. +- [ ] Incorporate Chris’s design review before any publication. + +## Validation checklist + +- [x] Site production build and existing content/output validators pass. +- [x] Check desktop, tablet, and narrow phone layouts in light and dark themes. +- [x] Check menu, theme toggle, journal search/topics, developer tabs, and links. +- [x] Check internal route references and heading structure. +- [x] Verify nothing was pushed, merged, or deployed for this redesign. + +## Preview and verification notes + +The local review runs at `http://127.0.0.1:4330/` from a production Astro build with +`PUBLIC_DESIGN_PREVIEW=true`. That environment flag adds a review strip; it does +not change the production deployment configuration. The branch is +`codex/marketing-redesign-preview` in the managed `marketing-redesign-preview` worktree. + +- The first browser sweep covered 20 routes at 1440, 768, 375, and 320 pixels. It found an agent-tab overflow at 320 pixels; the tab row now wraps, and the 320-pixel recheck passes. +- Journal title search, empty results, topic filters, and reset all worked. The reset restores all 25 essays. +- The mobile navigation opens and routes to the builder page. Developer language and agent-client tabs switch correctly; language selection and the theme persist after reload. +- An exact source comparison confirms the 25 essay bodies and six legal pages preserve their prose. Their only direct edit is the skip-link target on `main`. +- The local status page cannot fetch the Cloud status endpoint because that endpoint does not allow the localhost origin. Its existing dated snapshot fallback remains visible. This preview does not verify hosted service health, signup, or billing. +- The final production build passed: 136 pages built; the output validator verified 52 static routes. A static check followed 3,640 internal links across 71 marketing outputs with zero missing routes or anchors. +- Dark-theme checks covered eight routes at desktop, tablet, and phone widths with no overflow or page exceptions. The final homepage check also passed at 320 pixels. Reduced-motion scrolling is `auto`; the mobile menu and mechanics disclosure remain usable with JavaScript disabled. +- The full site build runs the existing comparison, changelog, plugin, surveillance, metrics, search, and output validators. No new UI test suite or CI gate is introduced. + +## References + +- `docs/VISION.md`, `docs/ROADMAP.md`, `docs/CHARTER.md`, `README.md` +- `site/src/data/blog.ts`, `site/src/data/blog-art.ts`, all `site/src/pages/blog/*.astro` +- `site/src/data/agents.ts`, `site/src/data/pricing.ts`, `site/src/data/commitments.ts` +- `apps/electron/src/renderer/App.tsx`, `apps/electron/src/library/` +- `packages/cli/src/commands/connect.ts` +- `site/src/styles/marketing.css`, `site/src/components/marketing/`, `site/src/layouts/Base.astro` diff --git a/site/src/components/marketing/Closing.astro b/site/src/components/marketing/Closing.astro new file mode 100644 index 000000000..5dc7c3453 --- /dev/null +++ b/site/src/components/marketing/Closing.astro @@ -0,0 +1,18 @@ +--- +const { + title = 'Start with something that’s yours.', + body = 'Write a note. Save a thought. See what an open workspace can become.' +} = Astro.props +--- + +
+
+
+

{title}

+

{body}

+
+ + Try xNet + +
+
diff --git a/site/src/components/marketing/MeshGarden.astro b/site/src/components/marketing/MeshGarden.astro new file mode 100644 index 000000000..5af312b9d --- /dev/null +++ b/site/src/components/marketing/MeshGarden.astro @@ -0,0 +1,76 @@ +--- +import markSource from '../../../public/mark.svg?raw' +const mark = markSource.match(/]*d="([^"]+)"/)?.[1] +if (!mark) throw new Error('Mesh garden needs the brand mark') +--- + + + diff --git a/site/src/components/marketing/PageHero.astro b/site/src/components/marketing/PageHero.astro new file mode 100644 index 000000000..c04737296 --- /dev/null +++ b/site/src/components/marketing/PageHero.astro @@ -0,0 +1,17 @@ +--- +interface Props { + eyebrow: string + title: string + description: string +} +const { eyebrow, title, description } = Astro.props +--- + +
+
+

{eyebrow}

+

{title}

+

{description}

+ +
+
diff --git a/site/src/components/marketing/Substrate.astro b/site/src/components/marketing/Substrate.astro new file mode 100644 index 000000000..d32bee35c --- /dev/null +++ b/site/src/components/marketing/Substrate.astro @@ -0,0 +1,171 @@ +--- +const pieces = [ + { + name: 'Nodes', + caption: 'The pieces', + example: 'A task · A contact · A page', + description: + 'Each record has an identity of its own. Link pieces together without copying them into a new silo.' + }, + { + name: 'Schemas', + caption: 'The common fit', + example: 'Title + status + project', + description: + 'Shared definitions describe the fields and relations. Builders can add their own fields or make a new kind of piece.' + }, + { + name: 'Views', + caption: 'What you make with them', + example: 'A table · A board · Your tool', + description: + 'Different interfaces can use the same records. A new way to work doesn’t have to mean starting your data over.' + } +] +--- + +
+
    + {pieces.map((piece, index) => ( +
  1. +
    + 0{index + 1} + {piece.caption} +
    +

    {piece.name}

    +

    {piece.example}

    +

    {piece.description}

    +
  2. + ))} +
+
+ Under the hood: local copies, signed changes, shared rules +
+

+ Local first. The workspace stores a copy on your device. You can work + offline and sync changes when connected. +

+

+ A record of change. Structured edits are signed and hash-linked. Peers can + verify who signed an edit and detect changes to it. +

+

+ Built to merge. Yjs merges document edits. Structured fields use + deterministic last-writer-wins rules. Sharing is governed by grants and permissions. +

+
+ + Explore the data model + +
+
+ + diff --git a/site/src/components/marketing/WorkspaceImage.astro b/site/src/components/marketing/WorkspaceImage.astro new file mode 100644 index 000000000..eb5c19c23 --- /dev/null +++ b/site/src/components/marketing/WorkspaceImage.astro @@ -0,0 +1,24 @@ +
+
+ xNet’s workspace with a document open beside the explorer. The document contains example project content. + xNet’s workspace in dark mode, showing an example project document and explorer. +
+
+ The xNet workspace · example content + Documents, databases, and canvases on your device. +
+
diff --git a/site/src/components/sections/Footer.astro b/site/src/components/sections/Footer.astro index baae4f03a..939a8ad6c 100644 --- a/site/src/components/sections/Footer.astro +++ b/site/src/components/sections/Footer.astro @@ -1,207 +1,149 @@ --- import BrandWordmark from '../BrandWordmark.astro' - -const agentLinks = [ - { label: 'Connect your agent', href: '/agents' }, - { label: 'Use from Claude Code', href: '/docs/guides/coding-agents/' }, - { label: 'Agent Interfaces', href: '/docs/guides/agent-interfaces/' }, - { label: 'agents.md', href: '/agents.md' }, - { label: 'llms.txt', href: '/llms.txt' }, -] - -const productLinks = [ - { label: 'Try the App', href: '/app' }, - { label: 'Run on Mobile', href: '/mobile' }, - { label: 'Download Desktop', href: '/download' }, - { label: 'Plugins', href: '/plugins' }, - { label: 'Documentation', href: '/docs' }, - { label: 'Quickstart', href: '/docs/quickstart/' }, - { label: 'Changelog', href: '/changelog' }, -] - -const cloudLinks = [ - { label: 'xNet Cloud', href: '/cloud' }, - { label: 'Pricing', href: '/cloud/pricing' }, - { label: 'Open metrics', href: '/open' }, - { label: 'Status', href: '/status' }, -] - -const developLinks = [ - { label: 'xNet for React', href: '/react' }, - { label: 'Build with any language', href: '/build-with' }, - { label: 'Swift SDK', href: '/docs/languages/swift/' }, - { label: 'Rust core', href: '/docs/languages/rust/' }, - { label: 'DevTools', href: '/devtool' }, - { label: 'React Hooks', href: '/docs/hooks/overview/' }, - { label: 'Your own server', href: '/docs/guides/server/' }, -] - -const resourceLinks = [ - { label: 'Why xNet', href: '/why' }, - { label: 'Blog', href: '/blog' }, - { label: 'Compare', href: '/compare' }, - { label: 'Commitments', href: '/commitments' }, - { label: 'Roadmap', href: '/roadmap' }, - { label: 'Architecture', href: '/docs/architecture/overview/' }, - { label: 'Contributing', href: '/docs/contributing/getting-started/' }, -] - -const communityLinks = [ - { label: 'GitHub', href: 'https://github.com/crs48/xNet' }, - { label: 'GitHub Discussions', href: 'https://github.com/crs48/xNet/discussions' }, - { label: 'Bluesky', href: 'https://bsky.app/profile/xnetfyi.bsky.social' }, - { label: 'X', href: 'https://x.com/xnetfyi' }, - { label: 'Governance', href: 'https://github.com/crs48/xNet/blob/main/GOVERNANCE.md' }, - { label: 'Trademark & Brand', href: 'https://github.com/crs48/xNet/blob/main/TRADEMARK.md' }, - { label: 'Code of Conduct', href: 'https://github.com/crs48/xNet/blob/main/CODE_OF_CONDUCT.md' }, -] - -const legalLinks = [ - { label: 'MIT License', href: 'https://github.com/crs48/xNet/blob/main/LICENSE' }, - { label: 'Privacy', href: '/privacy' }, - { label: 'Terms', href: '/terms' }, - { label: 'Acceptable Use', href: '/acceptable-use' }, - { label: 'Security', href: 'https://github.com/crs48/xNet/blob/main/SECURITY.md' }, - { label: 'Sub-processors', href: '/subprocessors' }, +const groups = [ + { + title: 'Make yourself at home', + links: [ + ['The workspace', '/workspace'], + ['Download', '/download'], + ['Browser demo', 'https://xnet.fyi/app/'], + ['What’s new', '/changelog'], + ['Roadmap', '/roadmap'], + ['Mobile demo', '/mobile'] + ] + }, + { + title: 'The bigger picture', + links: [ + ['Our vision', '/why'], + ['Field notes', '/blog'], + ['Our commitments', '/commitments'], + ['Open metrics', '/open'], + ['Cloud & hosting', '/cloud'], + ['Hosting prices', '/cloud/pricing'] + ] + }, + { + title: 'Build something', + links: [ + ['Developer overview', '/build-with'], + ['Documentation', '/docs/introduction/'], + ['React SDK', '/react'], + ['Agent tools', '/agents'], + ['Plugins', '/plugins'], + ['Live demos', '/demos'], + ['DevTools', '/devtool'], + ['Compare', '/compare'] + ] + } ] --- -