Compare commits

...

11 Commits

Author SHA1 Message Date
Trisha Lim
6b101a594a Change "Jazz Mesh" to "Jazz Cloud" in diagram 2024-10-15 14:56:00 +01:00
Benjamin S. Leveritt
0bda9b9e52 Fix apostrophe 2024-10-15 14:40:00 +01:00
Benjamin S. Leveritt
9d479f25be Rename Global Cloud -> Jazz Cloud 2024-10-15 14:19:06 +01:00
Benjamin S. Leveritt
a0c90716ca Update cojson docs 2024-10-15 14:16:25 +01:00
Benjamin S. Leveritt
54a39351b7 Update homepage cloud section 2024-10-15 14:16:08 +01:00
Benjamin S. Leveritt
c1b3946306 Update homepage urls 2024-10-15 14:14:05 +01:00
Benjamin S. Leveritt
b89d6bf049 Rename mesh page -> cloud page 2024-10-15 14:13:22 +01:00
Benjamin S. Leveritt
4ce2d5f036 Update job templates 2024-10-15 14:10:19 +01:00
Benjamin S. Leveritt
6147fe6976 Update cloud blocks in mesh docs 2024-10-15 14:09:40 +01:00
Benjamin S. Leveritt
38367d401b Update example readmes 2024-10-15 14:08:09 +01:00
Benjamin S. Leveritt
2890911b40 Update wss:// urls to cloud.jazz.tools 2024-10-15 14:06:20 +01:00
42 changed files with 66 additions and 66 deletions

View File

@@ -28,7 +28,7 @@ export function AuthAndJazz({ children }: { children: React.ReactNode }) {
<Jazz.Provider auth={auth} peer={
localSync
? `ws://localhost:4200?key=${key}`
: `wss://mesh.jazz.tools/?key=${key}`
: `wss://cloud.jazz.tools/?key=${key}`
}>
{children}
</Jazz.Provider>

View File

@@ -17,7 +17,7 @@ export function AuthAndJazz({ children }: { children: React.ReactNode }) {
<Jazz.Provider auth={ephemeralAuth} peer={
localSync
? `ws://localhost:4200?key=${key}`
: `wss://mesh.jazz.tools/?key=${key}`
: `wss://cloud.jazz.tools/?key=${key}`
}>
{children}
</Jazz.Provider>

View File

@@ -36,6 +36,6 @@ If you have feedback, let us know on [Discord](https://discord.gg/utDMjHYg42) or
## Configuration: sync server
By default, the example app uses [Jazz Global Mesh](https://jazz.tools/mesh) (`wss://sync.jazz.tools`) - so cross-device use, invites and collaboration should just work.
By default, the example app uses [Jazz Cloud](https://jazz.tools/cloud) (`wss://cloud.jazz.tools`) - so cross-device use, invites and collaboration should just work.
You can also run a local sync server by running `npx jazz-run sync` and adding the query param `?sync=ws://localhost:4200` to the URL of the example app (for example: `http://localhost:5173/?peer=ws://localhost:4200`), or by setting the `sync` parameter of the `<Jazz.Provider>` provider component in [./src/components/JazzAndAuth.tsx](./src/2_main.tsx).

View File

@@ -14,7 +14,7 @@ job "example-bookShelf$BRANCH_SUFFIX" {
constraint {
attribute = "${node.class}"
operator = "="
value = "mesh"
value = "cloud"
}
spread {

View File

@@ -17,7 +17,7 @@ export function JazzAndAuth({ children }: { children: React.ReactNode }) {
<Jazz.Provider
auth={auth}
// replace `you@example.com` with your email as a temporary API key
peer="wss://mesh.jazz.tools/?key=you@example.com"
peer="wss://cloud.jazz.tools/?key=you@example.com"
>
{children}
</Jazz.Provider>

View File

@@ -37,6 +37,6 @@ If you have feedback, let us know on [Discord](https://discord.gg/utDMjHYg42) or
## Configuration: sync server
By default, the example app uses [Jazz Global Mesh](https://jazz.tools/mesh) (`wss://sync.jazz.tools`) - so cross-device use, invites and collaboration should just work.
By default, the example app uses [Jazz Cloud](https://jazz.tools/cloud) (`wss://cloud.jazz.tools`) - so cross-device use, invites and collaboration should just work.
You can also run a local sync server by running `npx jazz-run sync` and adding the query param `?sync=ws://localhost:4200` to the URL of the example app (for example: `http://localhost:5173/?peer=ws://localhost:4200`), or by setting the `sync` parameter of the `<Jazz.Provider>` provider component in [./src/2_main.tsx](./src/2_main.tsx).

View File

@@ -14,7 +14,7 @@ job "chat$BRANCH_SUFFIX" {
constraint {
attribute = "${node.class}"
operator = "="
value = "mesh"
value = "cloud"
}
spread {

View File

@@ -21,7 +21,7 @@ function JazzAndAuth({ children }: { children: React.ReactNode }) {
{auth ? (
<Jazz.Provider
auth={auth}
peer="wss://mesh.jazz.tools/?key=chat-example-jazz-clerk@gcmp.io"
peer="wss://cloud.jazz.tools/?key=chat-example-jazz-clerk@gcmp.io"
>
{children}
</Jazz.Provider>

View File

@@ -49,7 +49,7 @@ export function JazzAndAuth({ children }: PropsWithChildren) {
{auth ? (
<Jazz.Provider
auth={auth}
peer="wss://mesh.jazz.tools/?key=chat-rn-clerk-example-jazz@gcmp.io"
peer="wss://cloud.jazz.tools/?key=chat-rn-clerk-example-jazz@gcmp.io"
storage={undefined}
>
{children}

View File

@@ -51,7 +51,7 @@ function App() {
<StrictMode>
<Jazz.Provider
auth={auth}
peer="wss://mesh.jazz.tools/?key=chat-rn-example-jazz@gcmp.io"
peer="wss://cloud.jazz.tools/?key=chat-rn-example-jazz@gcmp.io"
storage={undefined}
>
<NavigationContainer linking={linking} ref={navigationRef}>

View File

@@ -37,6 +37,6 @@ If you have feedback, let us know on [Discord](https://discord.gg/utDMjHYg42) or
## Configuration: sync server
By default, the example app uses [Jazz Global Mesh](https://jazz.tools/mesh) (`wss://sync.jazz.tools`) - so cross-device use, invites and collaboration should just work.
By default, the example app uses [Jazz Cloud](https://jazz.tools/cloud) (`wss://cloud.jazz.tools`) - so cross-device use, invites and collaboration should just work.
You can also run a local sync server by running `npx jazz-run sync` and adding the query param `?sync=ws://localhost:4200` to the URL of the example app (for example: `http://localhost:5173/?peer=ws://localhost:4200`), or by setting the `sync` parameter of the `<Jazz.Provider>` provider component in [./src/2_main.tsx](./src/2_main.tsx).

View File

@@ -14,7 +14,7 @@ job "chat$BRANCH_SUFFIX" {
constraint {
attribute = "${node.class}"
operator = "="
value = "mesh"
value = "cloud"
}
spread {

View File

@@ -13,7 +13,7 @@ function JazzAndAuth({ children }: { children: React.ReactNode }) {
<>
<Jazz.Provider
auth={auth}
peer="wss://mesh.jazz.tools/?key=chat-example-jazz@gcmp.io"
peer="wss://cloud.jazz.tools/?key=chat-example-jazz@gcmp.io"
>
{children}
</Jazz.Provider>

View File

@@ -14,7 +14,7 @@ job "inspector$BRANCH_SUFFIX" {
constraint {
attribute = "${node.class}"
operator = "="
value = "mesh"
value = "cloud"
}
spread {

View File

@@ -61,8 +61,8 @@ export default function CoJsonViewerApp() {
WasmCrypto.create().then(async (crypto) => {
const wsPeer = createWebSocketPeer({
id: "mesh",
websocket: new WebSocket("wss://mesh.jazz.tools"),
id: "cloud",
websocket: new WebSocket("wss://cloud.jazz.tools"),
role: "server",
});
const node = await LocalNode.withLoadedAccount({

View File

@@ -37,6 +37,6 @@ If you have feedback, let us know on [Discord](https://discord.gg/utDMjHYg42) or
## Configuration: sync server
By default, the example app uses [Jazz Global Mesh](https://jazz.tools/mesh) (`wss://sync.jazz.tools`) - so cross-device use, invites and collaboration should just work.
By default, the example app uses [Jazz Cloud](https://jazz.tools/cloud) (`wss://cloud.jazz.tools`) - so cross-device use, invites and collaboration should just work.
You can also run a local sync server by running `npx cojson-simple-sync` and adding the query param `?sync=ws://localhost:4200` to the URL of the example app (for example: `http://localhost:5173/?peer=ws://localhost:4200`), or by setting the `sync` parameter of the `<Jazz.Provider>` provider component in [./src/2_main.tsx](./src/2_main.tsx).

View File

@@ -14,7 +14,7 @@ job "example-musicPlayer$BRANCH_SUFFIX" {
constraint {
attribute = "${node.class}"
operator = "="
value = "mesh"
value = "cloud"
}
spread {

View File

@@ -66,7 +66,7 @@ function JazzAndAuth({ children }: { children: React.ReactNode }) {
(new URL(window.location.href).searchParams.get(
"peer",
) as `ws://${string}`) ??
"wss://mesh.jazz.tools/?key=music-player-example-jazz@gcmp.io";
"wss://cloud.jazz.tools/?key=music-player-example-jazz@gcmp.io";
return (
<>

View File

@@ -62,6 +62,6 @@ If you have feedback, let us know on [Discord](https://discord.gg/utDMjHYg42) or
## Configuration: sync server
By default, the example app uses [Jazz Global Mesh](https://jazz.tools/mesh) (`wss://sync.jazz.tools`) - so cross-device use, invites and collaboration should just work.
By default, the example app uses [Jazz Cloud](https://jazz.tools/cloud) (`wss://cloud.jazz.tools`) - so cross-device use, invites and collaboration should just work.
You can also run a local sync server by running `npx cojson-simple-sync` and adding the query param `?sync=ws://localhost:4200` to the URL of the example app (for example: `http://localhost:5173/?peer=ws://localhost:4200`), or by setting the `sync` parameter of the `<Jazz.Provider>` provider component in [./src/2_main.tsx](./src/2_main.tsx).

View File

@@ -24,7 +24,7 @@ function JazzAndAuth({ children }: { children: React.ReactNode }) {
<>
<Jazz.Provider
auth={auth}
peer="wss://mesh.jazz.tools/?key=password-manager-example-jazz@gcmp.io"
peer="wss://cloud.jazz.tools/?key=password-manager-example-jazz@gcmp.io"
>
{children}
</Jazz.Provider>

View File

@@ -37,6 +37,6 @@ If you have feedback, let us know on [Discord](https://discord.gg/utDMjHYg42) or
## Configuration: sync server
By default, the example app uses [Jazz Global Mesh](https://jazz.tools/mesh) (`wss://sync.jazz.tools`) - so cross-device use, invites and collaboration should just work.
By default, the example app uses [Jazz Cloud](https://jazz.tools/cloud) (`wss://cloud.jazz.tools`) - so cross-device use, invites and collaboration should just work.
You can also run a local sync server by running `npx jazz-run sync` and adding the query param `?sync=ws://localhost:4200` to the URL of the example app (for example: `http://localhost:5173/?peer=ws://localhost:4200`), or by setting the `sync` parameter of the `<Jazz.Provider>` provider component in [./src/2_main.tsx](./src/2_main.tsx).

View File

@@ -14,7 +14,7 @@ job "example-pets$BRANCH_SUFFIX" {
constraint {
attribute = "${node.class}"
operator = "="
value = "mesh"
value = "cloud"
}
spread {

View File

@@ -18,7 +18,7 @@ const peer =
(new URL(window.location.href).searchParams.get(
"peer",
) as `ws://${string}`) ??
"wss://mesh.jazz.tools/?key=pets-example-jazz@gcmp.io";
"wss://cloud.jazz.tools/?key=pets-example-jazz@gcmp.io";
/** Walkthrough: The top-level provider `<Jazz.Provider/>`
*

View File

@@ -64,6 +64,6 @@ If you have feedback, let us know on [Discord](https://discord.gg/utDMjHYg42) or
## Configuration: sync server
By default, the example app uses [Jazz Global Mesh](https://jazz.tools/mesh) (`wss://sync.jazz.tools`) - so cross-device use, invites and collaboration should just work.
By default, the example app uses [Jazz Cloud](https://jazz.tools/cloud) (`wss://cloud.jazz.tools`) - so cross-device use, invites and collaboration should just work.
You can also run a local sync server by running `npx jazz-run sync` and adding the query param `?sync=ws://localhost:4200` to the URL of the example app (for example: `http://localhost:5173/?peer=ws://localhost:4200`), or by setting the `sync` parameter of the `<Jazz.Provider>` provider component in [./src/2_main.tsx](./src/2_main.tsx).

View File

@@ -14,7 +14,7 @@ job "example-todo$BRANCH_SUFFIX" {
constraint {
attribute = "${node.class}"
operator = "="
value = "mesh"
value = "cloud"
}
spread {

View File

@@ -44,7 +44,7 @@ function JazzAndAuth({ children }: { children: React.ReactNode }) {
<>
<Jazz.Provider
auth={passkeyAuth}
peer="wss://mesh.jazz.tools/?key=todo-example-jazz@gcmp.io"
peer="wss://cloud.jazz.tools/?key=todo-example-jazz@gcmp.io"
>
{children}
</Jazz.Provider>

View File

@@ -0,0 +1,3 @@
To give you sync and secure collaborative data instantly on a global scale, we're running Jazz Cloud. It works with any Jazz-based app, requires no setup and has straightforward, scale-to-zero pricing.
Jazz Cloud is currently free &mdash; and it's set up as the default sync & storage peer in Jazz, letting you start building multi-user apps with persistence right away, no backend needed.

View File

@@ -1,3 +0,0 @@
To give you sync and secure collaborative data instantly on a global scale, we're running Jazz Mesh. It works with any Jazz-based app, requires no setup and has straightforward, scale-to-zero pricing.
Jazz Mesh is currently free &mdash; and it's set up as the default sync & storage peer in Jazz, letting you start building multi-user apps with persistence right away, no backend needed.

View File

@@ -44,7 +44,7 @@ import AuthProvidersDescription from "./toolkit/authProviders.mdx";
import TwoWaySyncDescription from "./toolkit/twoWaySync.mdx";
import FileUploadDownloadDescription from "./toolkit/fileUploadDownload.mdx";
import VideoPresenceCallsDescription from "./toolkit/videoPresenceCalls.mdx";
import MeshIntro from "./meshIntro.mdx";
import CloudIntro from "./cloudIntro.mdx";
import { H3 } from "gcmp-design-system/src/app/components/atoms/Headings";
import Link from "next/link";
import { DiagramBeforeJazz } from "@/components/DiagramBeforeJazz";
@@ -284,9 +284,9 @@ export default function Home() {
<p>
<Link
className="underline"
href="/mesh"
href="/cloud"
>
Jazz Mesh
Jazz Cloud
</Link>{" "}
or your own server become both cloud
database and blob storage.
@@ -320,8 +320,8 @@ export default function Home() {
cryptographically signed by default.
</p>
<p>
So it cant be tampered with and Jazz
Mesh only sees encrypted data.
So it can&apos;t be tampered with and Jazz
Cloud only sees encrypted data.
</p>
</>
}
@@ -376,17 +376,17 @@ export default function Home() {
<div>
<SectionHeader
title="Jazz Mesh"
title="Jazz Cloud"
slogan="Serverless sync & storage for Jazz apps"
/>
<Prose>
<MeshIntro />
<CloudIntro />
</Prose>
<div className="mt-8">
<Button href="/mesh" variant="secondary">
Learn more about Jazz Mesh {"->"}
<Button href="/cloud" variant="secondary">
Learn more about Jazz Cloud {"->"}
</Button>
</div>
</div>

View File

@@ -1,6 +1,6 @@
#### Jazz Mesh + Data Backup Node.
#### Jazz Cloud + Data Backup Node.
<p className="no-prose text-base">
Connect your users to Jazz Mesh for all its benefits,
Connect your users to Jazz Cloud for all its benefits,
but also run and connect your own data backup node (just
in case.)
</p>

View File

@@ -1,6 +1,6 @@
#### Jazz Mesh + DIY Mesh.
#### Jazz Cloud + DIY Cloud.
<p className="no-prose text-base">
Connect your users to Jazz Mesh, or your own nodes as a
Connect your users to Jazz Cloud, or your own nodes as a
lower-performance fallback. The two networks stay in
constant sync.
</p>
@@ -9,5 +9,5 @@
- N × instance cost for your sync nodes.
- Typically moderate self-hosted egress costs.
- High self-hosted storage costs.
- Any of your sync nodes connected to Jazz Mesh is counted as a continously connected device.
- Any of your sync nodes connected to Jazz Cloud is counted as a continously connected device.
</div>

View File

@@ -1,4 +1,4 @@
#### Completely DIY Mesh.
#### Completely DIY Cloud.
<p className="no-prose text-base">
Build your own network of sync and storage nodes. Handle
networking, security and backups yourself.

View File

@@ -11,22 +11,22 @@ import {
Prose,
SmallProse,
} from "gcmp-design-system/src/app/components/molecules/Prose";
import MeshPlusBackup from "./meshPlusBackup.mdx";
import MeshPlusDIY from "./meshPlusDIY.mdx";
import CloudPlusBackup from "./cloudPlusBackup.mdx";
import CloudPlusDIY from "./cloudPlusDIY.mdx";
import CompletelyDIY from "./completelyDIY.mdx";
import PricingFAQ from "./pricingFaq.mdx";
export const metadata = {
title: "jazz - Jazz Mesh",
title: "jazz - Jazz Cloud",
description: "Serverless sync & storage for Jazz apps.",
};
export default function Mesh() {
export default function Cloud() {
return (
<div className="container space-y-16">
<HeroHeader
title="Jazz Mesh"
title="Jazz Cloud"
slogan="Real-time sync and storage infrastructure that scales up to millions of users."
/>
@@ -34,11 +34,11 @@ export default function Mesh() {
<P>Pricing that scales down to zero.</P>
<GappedGrid>
<GridCard>
<H3>Optimal mesh routing.</H3>
<H3>Optimal cloud routing.</H3>
<P>
Get ultra-low latency between any group of users
with our decentralized mesh interconnect.
with our decentralized cloud interconnect.
</P>
</GridCard>
<GridCard>
@@ -65,7 +65,7 @@ export default function Mesh() {
<GappedGrid>
<GridCard>
<H3>
Mesh Free{" "}
Cloud Free{" "}
<div className="text-2xl float-right">$0</div>
</H3>
@@ -77,7 +77,7 @@ export default function Mesh() {
</GridCard>
<GridCard>
<H3>
Mesh Starter <ComingSoonBadge />
Cloud Starter <ComingSoonBadge />
<div className="float-right">
<span className="text-2xl">$9</span>/mo
</div>
@@ -95,7 +95,7 @@ export default function Mesh() {
</GridCard>
<GridCard>
<H3>
Mesh Pro <ComingSoonBadge />
Cloud Pro <ComingSoonBadge />
<div className="float-right">
<span className="text-2xl">$79</span>/mo
</div>
@@ -197,7 +197,7 @@ export default function Mesh() {
<div>
<SectionHeader
title="Custom Deployment Scenarios"
slogan="You can rely on Jazz Mesh. But you don't have to."
slogan="You can rely on Jazz Cloud. But you don't have to."
/>
<P>
Because Jazz is open-source, you can optionally run your own
@@ -206,12 +206,12 @@ export default function Mesh() {
<GappedGrid>
<GridCard>
<Prose>
<MeshPlusBackup />
<CloudPlusBackup />
</Prose>
</GridCard>
<GridCard>
<Prose>
<MeshPlusDIY />
<CloudPlusDIY />
</Prose>
</GridCard>
<GridCard>

View File

@@ -81,7 +81,7 @@ and we'll know exactly where you're at.
<Jazz.Provider
auth={auth}
// replace `you@example.com` with your email as a temporary API key
peer="wss://mesh.jazz.tools/?key=you@example.com"
peer="wss://cloud.jazz.tools/?key=you@example.com"
>
{children}
</Jazz.Provider>

File diff suppressed because one or more lines are too long

View File

@@ -11,7 +11,7 @@ export function JazzFooter() {
title: "Resources",
links: [
{ href: "/", label: "Toolkit" },
{ href: "/mesh", label: "Jazz Mesh" },
{ href: "/cloud", label: "Jazz Cloud" },
{ href: "/docs", label: "Docs" },
],
},

View File

@@ -9,7 +9,7 @@ export function JazzNav() {
mainLogo={<JazzLogo className="w-24 -ml-2" />}
items={[
{ title: "Home", href: "/" },
{ title: "Jazz Mesh", href: "/mesh" },
{ title: "Jazz Cloud", href: "/cloud" },
{
title: "Docs",
href: "/docs",

View File

@@ -14,7 +14,7 @@ job "homepage-jazz$BRANCH_SUFFIX" {
constraint {
attribute = "${node.class}"
operator = "="
value = "mesh"
value = "cloud"
}
spread {

View File

@@ -31,7 +31,7 @@ import { err, ok, okAsync, Result, ResultAsync } from "neverthrow";
/** A `LocalNode` represents a local view of a set of loaded `CoValue`s, from the perspective of a particular account (or primitive cryptographic agent).
A `LocalNode` can have peers that it syncs to, for example some form of local persistence, or a sync server, such as `sync.jazz.tools` (Jazz Global Mesh).
A `LocalNode` can have peers that it syncs to, for example some form of local persistence, or a sync server, such as `cloud.jazz.tools` (Jazz Cloud).
@example
You typically get hold of a `LocalNode` using `jazz-react`'s `useJazz()`:

View File

@@ -12,7 +12,7 @@ import { WebSocket } from "ws";
export async function startWorker<Acc extends Account>({
accountID = process.env.JAZZ_WORKER_ACCOUNT,
accountSecret = process.env.JAZZ_WORKER_SECRET,
syncServer: peer = "wss://sync.jazz.tools",
syncServer: peer = "wss://cloud.jazz.tools",
AccountSchema = Account as unknown as AccountClass<Acc>,
}: {
accountID?: string;

View File

@@ -19,7 +19,7 @@ const jazzTools = Command.make("jazz-tools");
const name = Options.text("name").pipe(Options.withAlias("n"));
const peer = Options.text("peer")
.pipe(Options.withAlias("p"))
.pipe(Options.withDefault("wss://mesh.jazz.tools"));
.pipe(Options.withDefault("wss://cloud.jazz.tools"));
const accountCreate = Command.make(
"create",
{ name, peer },