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
7 changes: 2 additions & 5 deletions .env.example
Original file line number Diff line number Diff line change
@@ -1,8 +1,5 @@
NEXT_PUBLIC_GO_API_URL="http://localhost:8080"

BACKEND_API_KEY=""

JWT_SECRET=""
# Paymenter origin for the public catalogue (/api/v1/catalog) behind the plan and price cards. No token needed.
BYTEPAY_HOST=""

# DeepL API key for automated translation (https://www.deepl.com/pro-api)
# Free tier: use a key ending in :fx | Paid tier: standard key
Expand Down
5 changes: 5 additions & 0 deletions app/_og/image-generator.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,11 @@ export const OG_CONFIGS = {
description: 'Minecraft, Rust, Hytale and more — one-click deployment with mod support included.',
features: ['Minecraft', 'Rust', 'Hytale', 'Mod Support', 'DDoS Protected'],
},
discordBots: {
headline: ['Discord Bot', 'Hosting.'] as const,
description: 'Always-on hosting for Discord bots, with backups, DDoS protection and instant setup.',
features: ['Node.js', 'Python', 'Java', 'Go & Rust', 'Backups'],
},
brand: {
headline: ['Brand &', 'Press Kit.'] as const,
description: 'Logo files, color palettes, and usage guidelines for partners and press.',
Expand Down
47 changes: 0 additions & 47 deletions app/api/billing-debug/route.ts

This file was deleted.

9 changes: 9 additions & 0 deletions app/discord-bots/opengraph-image.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
import { OG_CONFIGS, OG_CONTENT_TYPE, OG_SIZE, makeOGImage } from '../_og/image-generator'

export const alt = 'NodeByte Discord Bot Hosting — Node.js, Python, Java, Go, Rust & more'
export const size = OG_SIZE
export const contentType = OG_CONTENT_TYPE

export default function Image() {
return makeOGImage(OG_CONFIGS.discordBots)
}
20 changes: 20 additions & 0 deletions app/discord-bots/page.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
import type { Metadata } from "next"
import { DiscordBotsHub } from "@/packages/ui/components/Layouts/DiscordBots/discord-bots-hub"
import { getDiscordBotPlans } from "@/packages/core/products/billing-service"
import { getCategoryHub } from "@/packages/core/lib/bytepay"
import { DISCORD_BOT_HUB_SLUGS } from "@/packages/core/constants/catalog-hubs"

export const metadata: Metadata = {
title: "Discord Bot Hosting",
description:
"Affordable 24/7 Discord bot hosting for Node.js, Python, Java, Go, Rust and more, with backups, DDoS protection and instant setup.",
}

export default async function DiscordBotsPage() {
const hub = await getCategoryHub(DISCORD_BOT_HUB_SLUGS)
const categorySlugs = hub?.children.map((c) => c.slug) ?? []

const plansByCategory = await Promise.all(categorySlugs.map((slug) => getDiscordBotPlans(slug)))

return <DiscordBotsHub plans={plansByCategory.flat()} />
}
9 changes: 9 additions & 0 deletions app/discord-bots/twitter-image.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
import { OG_CONFIGS, OG_CONTENT_TYPE, OG_SIZE, makeOGImage } from '../_og/image-generator'

export const alt = 'NodeByte Discord Bot Hosting — Node.js, Python, Java, Go, Rust & more'
export const size = OG_SIZE
export const contentType = OG_CONTENT_TYPE

export default function Image() {
return makeOGImage(OG_CONFIGS.discordBots)
}
15 changes: 0 additions & 15 deletions app/nodes/page.tsx

This file was deleted.

6 changes: 3 additions & 3 deletions app/sitemap.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@ import type { MetadataRoute } from "next"

const BASE_URL = "https://nodebyte.host"

// Static routes with their priorities and change frequencies
const staticRoutes: Array<{
path: string
priority: number
Expand All @@ -11,8 +10,9 @@ const staticRoutes: Array<{
{ path: "", priority: 1.0, changeFrequency: "weekly" },
{ path: "/games", priority: 0.9, changeFrequency: "weekly" },
{ path: "/vps", priority: 0.9, changeFrequency: "weekly" },
{ path: "/vps/amd", priority: 0.9, changeFrequency: "weekly" },
{ path: "/vps/intel", priority: 0.8, changeFrequency: "monthly" },
{ path: "/dedicated", priority: 0.9, changeFrequency: "weekly" },
{ path: "/object-storage", priority: 0.8, changeFrequency: "weekly" },
{ path: "/discord-bots", priority: 0.8, changeFrequency: "weekly" },
{ path: "/about", priority: 0.6, changeFrequency: "monthly" },
{ path: "/partners", priority: 0.5, changeFrequency: "monthly" },
{ path: "/contact", priority: 0.7, changeFrequency: "monthly" },
Expand Down
5 changes: 5 additions & 0 deletions next.config.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,11 @@ const nextConfig = {
typescript: {
ignoreBuildErrors: true,
},
async redirects() {
return [
{ source: "/nodes", destination: "https://billing.nodebyte.host/looking-glass", permanent: true },
]
},
async headers() {
return [
{
Expand Down
9 changes: 1 addition & 8 deletions packages/core/constants/catalog-hubs.ts
Original file line number Diff line number Diff line change
@@ -1,12 +1,5 @@
/**
* The site has exactly 3 fundamentally different page templates (games,
* VPS, dedicated) — which parent category in Paymenter maps to which
* template is the one thing that stays a fixed, hand-maintained mapping.
* Everything under a hub (which games/lines/tiers exist) is discovered live.
*
* Name the parent category in Paymenter as either alias to be picked up.
*/
export const GAME_HUB_SLUGS = ["game-servers", "games"]
export const VPS_HUB_SLUGS = ["vps-hosting", "vps", "vps-servers"]
export const DEDICATED_HUB_SLUGS = ["dedicated-servers", "dedicated", "dedi"]
export const OBJECT_STORAGE_HUB_SLUGS = ["object-storage", "storage"]
export const DISCORD_BOT_HUB_SLUGS = ["discord-bots", "discord-bot-hosting"]
37 changes: 20 additions & 17 deletions packages/core/constants/links.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,31 +3,34 @@
* Update here once instead of hunting through every component.
*/

/** The NodeByte billing panel (nodebyte-bp). Store pages are /store/{category}/{product}. */
export const BILLING_URL = "https://billing.nodebyte.host"

export const LINKS = {
discord: "https://discord.gg/nodebyte",
discord: "https://discord.gg/Bg3Sf5fqa4",
github: "https://github.com/NodeByteHosting",
githubWebsite: "https://github.com/NodeByteHosting/website",
githubDiscussions: "https://github.com/orgs/NodeByteHosting/discussions",
twitter: "https://twitter.com/NodeByteHosting",
trustpilot: "https://uk.trustpilot.com/review/nodebyte.host",
status: "https://nodebytestat.us",
network: "https://lg.nodebyte.host",
lookingGlass: `${BILLING_URL}/looking-glass`,
contact: "/contact",
billing: {
root: "https://billing.nodebyte.host",
store: "https://billing.nodebyte.host",
login: "https://billing.nodebyte.host/login",
submitTicket: "https://billing.nodebyte.host/tickets/create",
freeTrial: "https://billing.nodebyte.host/products/free-trial",
amdVps: "https://billing.nodebyte.host/products/amdvps",
intelVps: "https://billing.nodebyte.host/products/intelvps",
minecraftHosting: "https://billing.nodebyte.host/products/minecraft-server-hosting",
hytaleHosting: "https://billing.nodebyte.host/products/hytale-hosting",
rustHosting: "https://billing.nodebyte.host/products/rust-hosting",
minecraft: "https://billing.nodebyte.host/products/minecraft",
rust: "https://billing.nodebyte.host/products/rust",
terrariaHosting: "https://billing.nodebyte.host/products/terraria-server-hosting",
gmodHosting: "https://billing.nodebyte.host/products/garrys-mod-server-hosting",
palworldHosting: "https://billing.nodebyte.host/products/palworld-server-hosting",
root: BILLING_URL,
store: `${BILLING_URL}/store`,
login: `${BILLING_URL}/login`,
submitTicket: `${BILLING_URL}/tickets/new`,
freeTrial: `${BILLING_URL}/store/free-trial`,
amdVps: `${BILLING_URL}/store/amdvps`,
intelVps: `${BILLING_URL}/store/intelvps`,
minecraftHosting: `${BILLING_URL}/store/minecraft-server-hosting`,
hytaleHosting: `${BILLING_URL}/store/hytale-hosting`,
rustHosting: `${BILLING_URL}/store/rust-hosting`,
minecraft: `${BILLING_URL}/store/minecraft`,
rust: `${BILLING_URL}/store/rust`,
terrariaHosting: `${BILLING_URL}/store/terraria-server-hosting`,
gmodHosting: `${BILLING_URL}/store/garrys-mod-server-hosting`,
palworldHosting: `${BILLING_URL}/store/palworld-server-hosting`,
},
} as const
31 changes: 0 additions & 31 deletions packages/core/constants/status-mapping.ts

This file was deleted.

Loading
Loading