diff --git a/src/lib/components/site/docs/nav-menu.svelte b/src/lib/components/site/docs/nav-menu.svelte
index 92435ad..fd0c8c9 100644
--- a/src/lib/components/site/docs/nav-menu.svelte
+++ b/src/lib/components/site/docs/nav-menu.svelte
@@ -42,6 +42,7 @@
+
{#if page.url.pathname.startsWith('/docs')}
diff --git a/src/lib/components/site/footer.svelte b/src/lib/components/site/footer.svelte
index 1329fba..ced802f 100644
--- a/src/lib/components/site/footer.svelte
+++ b/src/lib/components/site/footer.svelte
@@ -22,6 +22,10 @@
title: 'Demos',
href: '/demos'
},
+ {
+ title: 'jsrepo.com',
+ href: 'https://jsrepo.com'
+ },
{
title: 'GitHub',
href: 'https://github.com/jsrepojs/jsrepo'
diff --git a/src/lib/components/site/header.svelte b/src/lib/components/site/header.svelte
index 56e5eaa..7a41a60 100644
--- a/src/lib/components/site/header.svelte
+++ b/src/lib/components/site/header.svelte
@@ -3,7 +3,7 @@
import NavMenu from './docs/nav-menu.svelte';
import StarButton from './star-button.svelte';
import { Button } from '$lib/components/ui/button';
- import { Menu, X } from '@lucide/svelte';
+ import { ArrowUpRight, Menu, X } from '@lucide/svelte';
import { Dialog } from 'bits-ui';
import { active } from '$lib/actions/active.svelte';
import { commandContext } from '$lib/context';
@@ -56,6 +56,13 @@
>
Demos
+
+ jsrepo.com
+
+
diff --git a/src/lib/components/ui/pm-command/pm-command.svelte b/src/lib/components/ui/pm-command/pm-command.svelte
index 8267aec..97c1a23 100644
--- a/src/lib/components/ui/pm-command/pm-command.svelte
+++ b/src/lib/components/ui/pm-command/pm-command.svelte
@@ -32,7 +32,7 @@
};
let {
- variant,
+ variant = 'default',
class: className,
command,
agents = ['npm', 'pnpm', 'yarn', 'bun'],
diff --git a/src/lib/docs/map.ts b/src/lib/docs/map.ts
index a261311..dc09b82 100644
--- a/src/lib/docs/map.ts
+++ b/src/lib/docs/map.ts
@@ -86,7 +86,7 @@ const tempMap: Record = {
slug: 'providers',
children: [
{
- title: 'jsrepo',
+ title: 'jsrepo.com',
slug: 'jsrepo',
tag: 'New'
},
diff --git a/src/lib/docs/registry/providers/jsrepo.md b/src/lib/docs/registry/providers/jsrepo.md
index e0bd3ad..ffd7112 100644
--- a/src/lib/docs/registry/providers/jsrepo.md
+++ b/src/lib/docs/registry/providers/jsrepo.md
@@ -1,38 +1,16 @@
---
title: jsrepo.com
-description: How to publish and serve your registry on jsrepo.com.
-lastUpdated: 4-28-2025
+description: How to publish your registry to jsrepo.com.
+lastUpdated: 5-7-2025
---
-[jsrepo.com](https://jsrepo.com) is the best way to host your registry. It has first class support for semantic versioning and private registries so that you can worry less about hosting and more about shipping.
+[jsrepo.com](https://jsrepo.com) is the best way to host your registry. Here's a few of the key advantages over other providers:
-## semver
+- 🔒 First class support for private registries with the `jsrepo auth` command
+- 🔄 [semver](https://semver.org/) support
+- 💨 Improved performance
-One of the greatest benefits of hosting your registry on **jsrepo.com** is first class support for [semver](https://semver.org/) (Semantic Versioning).
-
-While using a git provider with tags is a fine solution for basic versioning needs it's far less secure because tags are mutable.
-
-With **jsrepo.com** versions are immutable, meaning they will forever point to the same version of the code that you originally specified.
-
-Versions can be specified for a **jsrepo.com** registry with the same syntax you might see on npm or jsr:
-
-```sh
-jsrepo init @ieedan/std@0.0.1
-```
-
-**jsrepo** (like npm or jsr) will tag your releases. For instance the latest (non pre-release) version of a registry will be tagged with the `latest` tag. And the latest version of a pre-release will be tagged using it's pre-release label, for instance `1.0.0-next.1` would be tagged with `next`.
-
-You specify a tagged version with the same syntax:
-
-```sh
-jsrepo init @ieedan/std@latest
-```
-
-## Private registries
-
-**jsrepo.com** also has first class support for private registries. It's easier than ever to share code with your entire team using **jsrepo.com**.
-
-Once you have invited your team to an organization on **jsrepo.com** they will be able to access any public or private registries in the scopes owned by that organization with their own PAT.
+> jsrepo.com is forever free for public registries
## Publishing to jsrepo.com
@@ -216,3 +194,33 @@ jobs:
```
Now you can use changesets with `jsrepo` just like with an npm package!
+
+## Advantages
+
+### semver
+
+One of the greatest benefits of hosting your registry on **jsrepo.com** is first class support for [semver](https://semver.org/) (Semantic Versioning).
+
+While using a git provider with tags is a fine solution for basic versioning needs it's far less secure because tags are mutable.
+
+With **jsrepo.com** versions are immutable, meaning they will forever point to the same version of the code that you originally specified.
+
+Versions can be specified for a **jsrepo.com** registry with the same syntax you might see on npm or jsr:
+
+```sh
+jsrepo init @ieedan/std@0.0.1
+```
+
+**jsrepo** (like npm or jsr) will tag your releases. For instance the latest (non pre-release) version of a registry will be tagged with the `latest` tag. And the latest version of a pre-release will be tagged using it's pre-release label, for instance `1.0.0-next.1` would be tagged with `next`.
+
+You specify a tagged version with the same syntax:
+
+```sh
+jsrepo init @ieedan/std@latest
+```
+
+### Private registries
+
+**jsrepo.com** also has first class support for private registries. It's easier than ever to share code with your entire team using **jsrepo.com**.
+
+Once you have invited your team to an organization on **jsrepo.com** they will be able to access any public or private registries in the scopes owned by that organization with their own PAT.
diff --git a/src/routes/+page.svelte b/src/routes/+page.svelte
index d0c4b8a..e5dbbb8 100644
--- a/src/routes/+page.svelte
+++ b/src/routes/+page.svelte
@@ -4,6 +4,7 @@
import * as Icons from '$lib/components/icons';
import * as Terminal from '$lib/components/ui/terminal';
import { Window } from '$lib/components/ui/window';
+ import { ArrowRight } from '@lucide/svelte';
@@ -17,11 +18,28 @@