You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: CHANGELOG.md
+62Lines changed: 62 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -5,6 +5,67 @@ All notable changes to the NodeByte Hosting website will be documented in this f
5
5
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
6
6
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
8
+
## [3.6.0] - 2026-07-04
9
+
10
+
### Added
11
+
12
+
-**Dedicated Server Hosting** — new `/dedicated` product category backed by live Paymenter billing data
13
+
-`packages/core/types/servers/dedicated.ts` — `DedicatedPlanSpec` interface; `cores` is optional (physical cores, not vCPU), `storageDescription` holds the raw drive label (e.g. `"2 × 1 TB NVMe SSD (RAID 1)"`) for multi-drive configurations
14
+
-`packages/core/products/billing-service.ts` — `getDedicatedPlans(categorySlug)` function following the same billing-service pattern as VPS and game plans
15
+
-`packages/ui/components/Layouts/Dedicated/dedicated-hub.tsx` — listing page with AMD/Intel hardware filter, price sort, "Bare Metal" and hardware badges, IPMI/dedicated feature callouts, and a custom/enterprise CTA
16
+
-`app/dedicated/page.tsx` — server component fetching from the `dedicated-servers` billing category
17
+
- Navigation — Dedicated Servers section added to both desktop and mobile Services dropdowns, below VPS Servers
18
+
- Footer — Dedicated Servers link added to the Services column
19
+
-`packages/core/constants/services.ts` — Dedicated Servers entry added to `SERVICE_CATEGORIES` for the homepage service cards (amber palette, Cpu icon)
20
+
-`translations/templates/en.json` — `services.dedicated.*` and `footer.services.dedicatedServers` translation keys added
21
+
22
+
-**Knowledge Base Subcategory Support** — the KB now supports arbitrary nesting (e.g. `games → minecraft → troubleshooting`) driven entirely by the filesystem
23
+
-`app/kb/[...path]/page.tsx` — unified catch-all route replacing the old fixed `[category]` and `[category]/[article]` routes; calls `resolvePath()` to decide whether to render a category page or an article page
24
+
-`packages/kb/lib/kb.ts` — full rewrite: `getCategories(parentPath?)` recurses into subdirectories, `getCategoryAtPath()` traverses the tree, `getSidebarTree()` / `buildSidebarItem()` build the full nested sidebar, `getAllPaths()` returns every valid path array for `generateStaticParams`
25
+
-`packages/kb/components/kb-sidebar.tsx` — recursive `SidebarNode` component with depth-aware indentation; auto-expands the branch matching the current pathname
26
+
-`packages/kb/components/kb-category-card.tsx` — `href` now uses the full category path; badge shows recursive `totalCount`
-`packages/kb/components/kb-article.tsx` — prev/next links use full `categoryPath`
29
+
-`packages/kb/components/kb-search.tsx` — search result links use full `categoryPath`
30
+
- KB content restructured under `packages/kb/content/games/minecraft/` and `packages/kb/content/games/hytale/` subdirectories
31
+
32
+
-**Billing-Native Currency Prices** — the website now uses exact prices from the Paymenter billing panel per currency instead of converting from a GBP exchange rate
33
+
-`packages/core/lib/bytepay.ts` — `getPricesMap(product)` returns `Record<string, number>` mapping every currency code to its monthly price from the product's recurring plan
34
+
-`packages/ui/components/ui/price.tsx` — `Price` component accepts an optional `prices` prop; uses `format(prices[currency])` (exact billing price) when available, falls back to `convertAndFormat(amountGBP)` (exchange rate)
35
+
-`packages/core/types/servers/game.ts`, `vps.ts`, `dedicated.ts` — `prices?: Record<string, number>` field added to all plan spec interfaces
36
+
-`billing-service.ts` — all three plan fetchers (`getGamePlans`, `getVpsPlans`, `getDedicatedPlans`) populate `prices` from `getPricesMap()`
37
+
- VPS Hub, all game pages — `prices` prop threaded through to `<Price>` components
38
+
39
+
### Changed
40
+
41
+
-**Spec Parser Improvements** (`packages/core/lib/spec-parser.ts`) — backward-compatible improvements that benefit VPS, game, and dedicated server parsing
42
+
-**CPU core count** — now falls back to inline patterns: `"8 cores and 16 threads"` (any position in text) and named multipliers (`"Octa-Core"` → 8, `"Quad-Core"` → 4, `"Dual-Core"` → 2, etc.)
43
+
-**Storage** — handles TB drives: `"2 x 1 TB NVMe SSD"` → `storageGB = 1024`; extracts `storageDescription` (the raw drive label before the colon, e.g. `"2 × 512 GB NVMe SSD (Gen 4)"`) for use in place of a bare number on dedicated server cards
44
+
-**Bandwidth detection** — no longer false-matches storage descriptions; TB references are only counted as bandwidth when paired with `outbound`, `traffic`, or `bandwidth` keywords; `"Unlimited Outbound Bandwidth"` correctly resolves to `null` (unmetered)
45
+
-**Intel CPU model** — regex expanded from Xeon-only to also match `"Intel® Core™ Ultra 7 265"` and `"Intel® Core™ i9"` families
46
+
-**AMD Ryzen model** — regex extended to capture PRO variants (`"Ryzen 7 PRO 8700GE"`)
47
+
48
+
### Performance
49
+
50
+
-**Decorative blur orbs replaced with CSS radial-gradients** — all `blur-[120px]`/`blur-[100px]` divs with `animate-pulse` replaced by a single `<div style={{ background: "radial-gradient(...)" }}>` across every affected component; eliminates GPU compositing layers and per-frame repaints that were causing slow load times on Apple WebKit/Safari
-`packages/ui/components/Layouts/VPS/vps-hero.tsx` (conditional AMD/Intel colour palette preserved via inline style)
59
+
-**Navbar `backdrop-blur-xl` → `backdrop-blur-md`** — reduces the full-width blur filter cost on the scrolled navbar state without a visible quality difference
60
+
-**Theme toggle mobile cutoff fixed** — `DropdownMenuContent` now has `max-h-[85svh] flex flex-col`; inner theme scroll container changed to `flex-1 min-h-0 overflow-y-auto` so all themes are reachable on small screens
61
+
62
+
### Fixed
63
+
64
+
-**`packages/kb/content/billing/_meta.json` SyntaxError** — file ended with a stray `0` instead of `}`; fixed to valid JSON
65
+
-**Stale `.next/types` build cache** — after deleting the old `[category]` and `[category]/[article]` KB routes the build cache still referenced them; resolved by deleting `.next/types` before the next build
66
+
67
+
---
68
+
8
69
## [3.5.4] - 2026-05-30
9
70
10
71
### Added
@@ -644,5 +705,6 @@ Initial Next.js 15 website with App Router, shadcn/ui components, and multi-them
"Physical bare-metal servers with fully dedicated CPU cores, enterprise storage, and IPMI out-of-band access. Zero resource contention, maximum performance.",
0 commit comments