Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 14 additions & 0 deletions web2/ur.xyz/astro/astro.config.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -80,6 +80,20 @@ export default defineConfig({
locales: { en: 'en', ru: 'ru', ar: 'ar', zh: 'zh', de: 'de', es: 'es' }
},
serialize(item) {
const pathname = new URL(item.url).pathname;
const isEnglishOnlyDocsRedirect = /^\/(ru|ar|zh|de|es)\/docs(?:\/|$)/.test(pathname);
const isRetiredAlias = pathname === '/docs/whitepaper' || pathname === '/investors/august-investment-letter';
if (isEnglishOnlyDocsRedirect || isRetiredAlias) return undefined;

// Docs and investor content are English-only. Do not advertise
// nonexistent or redirecting locale versions of those pages.
if (
pathname === '/docs' || pathname.startsWith('/docs/') ||
pathname === '/investors' || pathname.startsWith('/investors/')
) {
item.links = undefined;
}

// the head advertises an x-default alternate; the sitemap should agree
if (item.links?.length) {
const en = item.links.find((l) => l.lang === 'en');
Expand Down
8 changes: 3 additions & 5 deletions web2/ur.xyz/astro/public/docs-md/provider.md
Original file line number Diff line number Diff line change
@@ -1,13 +1,11 @@

# URnetwork Providers

URnetwork is a decentralized VPN where egress capacity is provided by anyone who wants to participate in the network, called a provider. A provider connects to a network space, which is a distributed set of servers that manage and faciliate the network using the URnetwork [API](https://docs.ur.io/api) and [connect protocol](https://github.com/urnetwork/protocol). Users authenticate with the network space to use the network for security, privacy, anonymity, and content acccess.
URnetwork is a decentralized VPN where egress capacity is provided by anyone who wants to participate in the network, called a provider. A provider connects to a network space, which is a distributed set of servers that manage and faciliate the network using the open-source [connect protocol](https://github.com/urnetwork/protocol). Users authenticate with the network space to use the network for security, privacy, anonymity, and content acccess.

The main URnetwork space follows a set of trust and safety rules and an economic model that keeps the network safe for providers, and rewards providers for participating. The network is free to use with a data cap, where users can become a supporter to get a higher data cap and priority speeds. The main URnetwork space supports email, SMS, Google, and Apple authentication.

[Trust and Safety Policy](https://docs.ur.io/trust-and-safety/trust-and-safety)

[Economic Model](https://docs.ur.io/economic-model/economic-model)
[Trust and Safety Policy](/docs/trust-and-safety/trust-and-safety)


## Provide using an app
Expand All @@ -19,7 +17,7 @@ URnetwork builds apps for popular consumer platforms. Our goal is to support as

## Provide using a binary

The `provider` binary compiles to run on Linux, Windows, macOS. For information on specific IoT and router platforms see [Raspberry Pi](https://docs.ur.io/rpi), [EdgeOS](https://docs.ur.io/edgeos), and [RouterOS](https://docs.ur.io/routeros).
The `provider` binary compiles to run on Linux, Windows, and macOS.

The binary runs as any user and does not require special permissions.

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

# Default Safe: Our Trust and Safety Process

This page outlines our process as of May 2024. This file is versioned so that you can track changes. For input and feedback please join [our Discord](https://bringyour.com/discord).
This page outlines our process as of May 2024. This file is versioned so that you can track changes. For input and feedback please join [our Discord](https://discord.gg/urnetwork).

Our trust and safety process is how we create a network for all users to safely participate with the most access and the most privacy possible. At BringYour our goal is to create a network where everyone can participate knowing they will be safe, and users are confident their traffic is uncensored, anonymous, and encrypted.

Expand Down
2 changes: 1 addition & 1 deletion web2/ur.xyz/astro/public/litepaper.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# A privacy network, coordinated on Bittensor.

> Own your privacy. Own your network.
> Own ur privacy. Own the network.

## I. A decentralized privacy network

Expand Down
12 changes: 5 additions & 7 deletions web2/ur.xyz/astro/public/llms-full.txt
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
> UR is an open-source, decentralized privacy network: user traffic distributed
> across independent miners with multi-hop routing and layered encryption,
> coordinated on Bittensor. ur.xyz is the protocol's information site, hosted
> by BringYour, Inc. The commercial network built on it lives at https://ur.io.
> by UR Foundation. The commercial network built on it lives at https://ur.io.

## Machine-readable

Expand Down Expand Up @@ -41,7 +41,7 @@

# A privacy network, coordinated on Bittensor.

> Own your privacy. Own your network.
> Own ur privacy. Own the network.

## I. A decentralized privacy network

Expand Down Expand Up @@ -196,13 +196,11 @@ Implementation: [ip_security.go](https://github.com/urnetwork/connect/blob/main/

# URnetwork Providers

URnetwork is a decentralized VPN where egress capacity is provided by anyone who wants to participate in the network, called a provider. A provider connects to a network space, which is a distributed set of servers that manage and faciliate the network using the URnetwork [API](https://docs.ur.io/api) and [connect protocol](https://github.com/urnetwork/protocol). Users authenticate with the network space to use the network for security, privacy, anonymity, and content acccess.
URnetwork is a decentralized VPN where egress capacity is provided by anyone who wants to participate in the network, called a provider. A provider connects to a network space, which is a distributed set of servers that manage and faciliate the network using the open-source [connect protocol](https://github.com/urnetwork/protocol). Users authenticate with the network space to use the network for security, privacy, anonymity, and content acccess.

The main URnetwork space follows a set of trust and safety rules and an economic model that keeps the network safe for providers, and rewards providers for participating. The network is free to use with a data cap, where users can become a supporter to get a higher data cap and priority speeds. The main URnetwork space supports email, SMS, Google, and Apple authentication.

[Trust and Safety Policy](https://docs.ur.io/trust-and-safety/trust-and-safety)

[Economic Model](https://docs.ur.io/economic-model/economic-model)
[Trust and Safety Policy](/docs/trust-and-safety/trust-and-safety)


## Provide using an app
Expand All @@ -214,7 +212,7 @@ URnetwork builds apps for popular consumer platforms. Our goal is to support as

## Provide using a binary

The `provider` binary compiles to run on Linux, Windows, macOS. For information on specific IoT and router platforms see [Raspberry Pi](https://docs.ur.io/rpi), [EdgeOS](https://docs.ur.io/edgeos), and [RouterOS](https://docs.ur.io/routeros).
The `provider` binary compiles to run on Linux, Windows, and macOS.

The binary runs as any user and does not require special permissions.

Expand Down
2 changes: 1 addition & 1 deletion web2/ur.xyz/astro/public/llms.txt
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
> UR is an open-source, decentralized privacy network: user traffic distributed
> across independent miners with multi-hop routing and layered encryption,
> coordinated on Bittensor. ur.xyz is the protocol's information site, hosted
> by BringYour, Inc. The commercial network built on it lives at https://ur.io.
> by UR Foundation. The commercial network built on it lives at https://ur.io.

## Machine-readable

Expand Down
2 changes: 1 addition & 1 deletion web2/ur.xyz/astro/src/components/FooterStatic.astro
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ interface Props { t: any; lang: string; }
const { t, lang } = Astro.props;
const year = new Date().getFullYear();
const GENERAL_DISCORD = 'https://discord.gg/urnetwork';
const X_URL = 'https://x.com/yo_ur_network';
const X_URL = 'https://x.com/urnetwork';
const GITHUB_URL = 'https://github.com/urfoundation/sn';
const PRODUCT_URL = 'https://ur.io';
const BRAND_KIT = 'https://drive.google.com/drive/folders/1086NAso9dA9ytMC0Dg5LoKZ4RSxgcXD8?usp=sharing';
Expand Down
20 changes: 15 additions & 5 deletions web2/ur.xyz/astro/src/layouts/Base.astro
Original file line number Diff line number Diff line change
Expand Up @@ -25,17 +25,27 @@ const {
} = Astro.props;

const SITE_ORIGIN = 'https://ur.xyz';
const canonical = new URL(Astro.url.pathname, SITE_ORIGIN).href;
// Static builds use file-format routes (`/research.html`, `/ar.html`) while
// the public server exposes clean URLs. Publish the public form in canonical,
// Open Graph, breadcrumbs and language alternates.
const publicPath = Astro.url.pathname
.replace(/\/index\.html$/, '/')
.replace(/\.html$/, '') || '/';
const canonical = new URL(publicPath, SITE_ORIGIN).href;
const ogImage = `${SITE_ORIGIN}/ur.png`;
const alternateHref = alternate && (alternate.href.startsWith('http') ? alternate.href : `${SITE_ORIGIN}${alternate.href}`);

const OG_LOCALES = { en: 'en_US', ru: 'ru_RU', ar: 'ar_AR', zh: 'zh_CN', de: 'de_DE', es: 'es_ES' };
const ogLocale = OG_LOCALES[lang] || OG_LOCALES.en;

// Language alternates: every page exists at the same path in all six
// Language alternates: localized pages use the same path in all six
// languages (English at the bare path, the rest under /<lang>).
const langPrefix = new RegExp(`^/(${NON_EN_LANGS.join('|')})(?=/|$)`);
const basePath = Astro.url.pathname.replace(langPrefix, '') || '/';
const basePath = publicPath.replace(langPrefix, '') || '/';
const hasLocalizedVersion = !(
basePath === '/docs' || basePath.startsWith('/docs/') ||
basePath === '/investors' || basePath.startsWith('/investors/')
);
const altHref = (l) =>
new URL(l === 'en' ? basePath : `/${l}${basePath === '/' ? '' : basePath}`, SITE_ORIGIN).href;

Expand Down Expand Up @@ -83,10 +93,10 @@ const jsonLdText = JSON.stringify({ '@context': 'https://schema.org', '@graph':
<meta name="application-name" content="UR" />
{noindex && <meta name="robots" content="noindex, nofollow" />}
{!noindex && <link rel="canonical" href={canonical} />}
{!noindex && LANG_CODES.map(l => (
{!noindex && hasLocalizedVersion && LANG_CODES.map(l => (
<link rel="alternate" hreflang={l} href={altHref(l)} />
))}
{!noindex && <link rel="alternate" hreflang="x-default" href={altHref('en')} />}
{!noindex && hasLocalizedVersion && <link rel="alternate" hreflang="x-default" href={altHref('en')} />}
{alternateHref && <link rel="alternate" type={alternate.type} href={alternateHref} />}

<!-- Open Graph -->
Expand Down
12 changes: 6 additions & 6 deletions web2/ur.xyz/astro/src/lib/investors.js
Original file line number Diff line number Diff line change
Expand Up @@ -13,14 +13,14 @@ export const investorCentre = {
title: 'Our Letter to Bittensor',
summary:
'A letter from Jack and Brien on launching UR (SN25), growing a global network of residential operators, and building a free and open internet together.',
href: '/investors/august-investment-letter',
href: '/investors/our-letter-to-bittensor',
},
updates: [
{
title: 'Our Letter to Bittensor',
date: '18 August 2026',
format: 'Written',
href: '/investors/august-investment-letter',
href: '/investors/our-letter-to-bittensor',
external: false,
},
],
Expand Down Expand Up @@ -75,7 +75,7 @@ Begin with UR's published sources:

- Machine-readable protocol source: https://ur.xyz/llms-full.txt
- Investor Centre: https://ur.xyz/investors
- Latest investment letter: https://ur.xyz/investors/august-investment-letter
- Latest investment letter: https://ur.xyz/investors/our-letter-to-bittensor

Treat these as the project's own published claims, then verify material claims against primary or independently observable sources:

Expand All @@ -93,7 +93,7 @@ Assess:

Use α and τ correctly. Timestamp every USD conversion and identify the price source.

Clearly distinguish verified facts, project-reported claims and your own inferences. Cite the exact source and publication date for every material claim. If sources conflict, explain the conflict and prioritize the newest primary evidence. Do not infer that something is live merely because it appears in code, a whitepaper or a roadmap.
Clearly distinguish verified facts, project-reported claims and your own inferences. Cite the exact source and publication date for every material claim. If sources conflict, explain the conflict and prioritize the newest primary evidence. Do not infer that something is live merely because it appears in code, a litepaper or a roadmap.

Structure the response as:

Expand All @@ -109,8 +109,8 @@ Do not provide a price prediction or buy/sell recommendation.`;

export const externalResources = {
dashboard: 'https://grafana.bringyour.com/stats',
taoMarketCap: 'https://taomarketcap.com/',
taostats: 'https://taostats.io/subnets',
taoMarketCap: 'https://taomarketcap.com/subnets/25',
taostats: 'https://taostats.io/subnets/25',
chatgpt: `https://chatgpt.com/?q=${encodeURIComponent(investorResearchPrompt)}`,
claude: `https://claude.ai/new?q=${encodeURIComponent(investorResearchPrompt)}`,
};
1 change: 0 additions & 1 deletion web2/ur.xyz/astro/src/pages/investors.astro
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,6 @@ const SHOW_METRICS = false;
title="Investor Centre | UR"
description="UR investor updates, materials and public research."
lang="en"
noindex
>
<div class="app">
<DisclaimerStatic />
Expand Down
Loading
Loading