From 60762a071ec41eb7980d52ad82bd2c70412ec994 Mon Sep 17 00:00:00 2001
From: Ryan Waits <ryan.waits@gmail.com>
Date: Mon, 18 Aug 2025 12:49:05 -0500
Subject: [PATCH 1/6] move rpc node to separate section

---
 .../reference/accounts/meta.json              |  1 -
 .../reference/blocks/meta.json                |  5 +-
 .../reference/fees/meta.json                  |  2 +-
 .../reference/info/meta.json                  |  2 -
 .../reference/nakamoto/meta.json              |  5 --
 .../reference/proof-of-transfer/meta.json     |  5 +-
 .../reference/smart-contracts/meta.json       | 10 +--
 .../reference/transactions/meta.json          |  4 +-
 .../en/apis/stacks-node-rpc-api/index.mdx     | 33 ++++++++++
 .../en/apis/stacks-node-rpc-api/meta.json     | 11 ++++
 .../reference/accounts/info.mdx               |  0
 .../reference/accounts/meta.json              |  7 +++
 .../reference/blocks/block-by-height-v3.mdx   |  0
 .../reference/blocks/block-proposal.mdx       |  0
 .../reference/blocks/meta.json                |  9 +++
 .../reference/blocks/upload-block.mdx         |  0
 .../reference/fees/estimate.mdx               |  0
 .../reference/fees/meta.json                  |  8 +++
 .../reference/fees/transfer-estimate.mdx      |  0
 .../reference/info/core-api.mdx               |  0
 .../reference/info/health.mdx                 |  0
 .../reference/info/meta.json                  |  8 +++
 .../reference/nakamoto/meta.json              | 11 ++++
 .../reference/nakamoto/nakamoto-block.mdx     |  0
 .../reference/nakamoto/tenure-blocks.mdx      |  0
 .../reference/nakamoto/tenure-fork-info.mdx   |  0
 .../reference/nakamoto/tenure-metadata.mdx    |  0
 .../reference/nakamoto/tenure-tip.mdx         |  0
 .../reference/proof-of-transfer/meta.json     |  9 +++
 .../proof-of-transfer/pox-details.mdx         |  0
 .../proof-of-transfer/signer-details.mdx      |  0
 .../proof-of-transfer/stacker-set.mdx         |  0
 .../reference/smart-contracts/constants.mdx   |  0
 .../smart-contracts/fast-read-only.mdx        |  0
 .../reference/smart-contracts/interface.mdx   |  0
 .../reference/smart-contracts/map-entry.mdx   |  0
 .../reference/smart-contracts/meta.json       | 14 +++++
 .../reference/smart-contracts/read-only.mdx   |  0
 .../reference/smart-contracts/source.mdx      |  0
 .../reference/smart-contracts/traits.mdx      |  0
 .../reference/smart-contracts/variable.mdx    |  0
 .../reference/sortitions/get-sortitions.mdx   |  0
 .../sortitions/latest-and-last-sortitions.mdx |  0
 .../reference/sortitions/meta.json            |  6 +-
 .../sortitions/sortition-by-burn-hash.mdx     |  0
 .../sortitions/sortition-by-burn-height.mdx   |  0
 .../sortition-by-consensus-hash.mdx           |  0
 .../transactions/broadcast-transaction.mdx    |  0
 .../reference/transactions/meta.json          |  8 +++
 .../transactions/transaction-details-v3.mdx   |  0
 .../en/apis/stacks-node-rpc-api/usage.mdx     | 63 +++++++++++++++++++
 51 files changed, 189 insertions(+), 32 deletions(-)
 delete mode 100644 content/docs/en/apis/stacks-blockchain-api/reference/nakamoto/meta.json
 create mode 100644 content/docs/en/apis/stacks-node-rpc-api/index.mdx
 create mode 100644 content/docs/en/apis/stacks-node-rpc-api/meta.json
 rename content/docs/en/apis/{stacks-blockchain-api => stacks-node-rpc-api}/reference/accounts/info.mdx (100%)
 create mode 100644 content/docs/en/apis/stacks-node-rpc-api/reference/accounts/meta.json
 rename content/docs/en/apis/{stacks-blockchain-api => stacks-node-rpc-api}/reference/blocks/block-by-height-v3.mdx (100%)
 rename content/docs/en/apis/{stacks-blockchain-api => stacks-node-rpc-api}/reference/blocks/block-proposal.mdx (100%)
 create mode 100644 content/docs/en/apis/stacks-node-rpc-api/reference/blocks/meta.json
 rename content/docs/en/apis/{stacks-blockchain-api => stacks-node-rpc-api}/reference/blocks/upload-block.mdx (100%)
 rename content/docs/en/apis/{stacks-blockchain-api => stacks-node-rpc-api}/reference/fees/estimate.mdx (100%)
 create mode 100644 content/docs/en/apis/stacks-node-rpc-api/reference/fees/meta.json
 rename content/docs/en/apis/{stacks-blockchain-api => stacks-node-rpc-api}/reference/fees/transfer-estimate.mdx (100%)
 rename content/docs/en/apis/{stacks-blockchain-api => stacks-node-rpc-api}/reference/info/core-api.mdx (100%)
 rename content/docs/en/apis/{stacks-blockchain-api => stacks-node-rpc-api}/reference/info/health.mdx (100%)
 create mode 100644 content/docs/en/apis/stacks-node-rpc-api/reference/info/meta.json
 create mode 100644 content/docs/en/apis/stacks-node-rpc-api/reference/nakamoto/meta.json
 rename content/docs/en/apis/{stacks-blockchain-api => stacks-node-rpc-api}/reference/nakamoto/nakamoto-block.mdx (100%)
 rename content/docs/en/apis/{stacks-blockchain-api => stacks-node-rpc-api}/reference/nakamoto/tenure-blocks.mdx (100%)
 rename content/docs/en/apis/{stacks-blockchain-api => stacks-node-rpc-api}/reference/nakamoto/tenure-fork-info.mdx (100%)
 rename content/docs/en/apis/{stacks-blockchain-api => stacks-node-rpc-api}/reference/nakamoto/tenure-metadata.mdx (100%)
 rename content/docs/en/apis/{stacks-blockchain-api => stacks-node-rpc-api}/reference/nakamoto/tenure-tip.mdx (100%)
 create mode 100644 content/docs/en/apis/stacks-node-rpc-api/reference/proof-of-transfer/meta.json
 rename content/docs/en/apis/{stacks-blockchain-api => stacks-node-rpc-api}/reference/proof-of-transfer/pox-details.mdx (100%)
 rename content/docs/en/apis/{stacks-blockchain-api => stacks-node-rpc-api}/reference/proof-of-transfer/signer-details.mdx (100%)
 rename content/docs/en/apis/{stacks-blockchain-api => stacks-node-rpc-api}/reference/proof-of-transfer/stacker-set.mdx (100%)
 rename content/docs/en/apis/{stacks-blockchain-api => stacks-node-rpc-api}/reference/smart-contracts/constants.mdx (100%)
 rename content/docs/en/apis/{stacks-blockchain-api => stacks-node-rpc-api}/reference/smart-contracts/fast-read-only.mdx (100%)
 rename content/docs/en/apis/{stacks-blockchain-api => stacks-node-rpc-api}/reference/smart-contracts/interface.mdx (100%)
 rename content/docs/en/apis/{stacks-blockchain-api => stacks-node-rpc-api}/reference/smart-contracts/map-entry.mdx (100%)
 create mode 100644 content/docs/en/apis/stacks-node-rpc-api/reference/smart-contracts/meta.json
 rename content/docs/en/apis/{stacks-blockchain-api => stacks-node-rpc-api}/reference/smart-contracts/read-only.mdx (100%)
 rename content/docs/en/apis/{stacks-blockchain-api => stacks-node-rpc-api}/reference/smart-contracts/source.mdx (100%)
 rename content/docs/en/apis/{stacks-blockchain-api => stacks-node-rpc-api}/reference/smart-contracts/traits.mdx (100%)
 rename content/docs/en/apis/{stacks-blockchain-api => stacks-node-rpc-api}/reference/smart-contracts/variable.mdx (100%)
 rename content/docs/en/apis/{stacks-blockchain-api => stacks-node-rpc-api}/reference/sortitions/get-sortitions.mdx (100%)
 rename content/docs/en/apis/{stacks-blockchain-api => stacks-node-rpc-api}/reference/sortitions/latest-and-last-sortitions.mdx (100%)
 rename content/docs/en/apis/{stacks-blockchain-api => stacks-node-rpc-api}/reference/sortitions/meta.json (68%)
 rename content/docs/en/apis/{stacks-blockchain-api => stacks-node-rpc-api}/reference/sortitions/sortition-by-burn-hash.mdx (100%)
 rename content/docs/en/apis/{stacks-blockchain-api => stacks-node-rpc-api}/reference/sortitions/sortition-by-burn-height.mdx (100%)
 rename content/docs/en/apis/{stacks-blockchain-api => stacks-node-rpc-api}/reference/sortitions/sortition-by-consensus-hash.mdx (100%)
 rename content/docs/en/apis/{stacks-blockchain-api => stacks-node-rpc-api}/reference/transactions/broadcast-transaction.mdx (100%)
 create mode 100644 content/docs/en/apis/stacks-node-rpc-api/reference/transactions/meta.json
 rename content/docs/en/apis/{stacks-blockchain-api => stacks-node-rpc-api}/reference/transactions/transaction-details-v3.mdx (100%)
 create mode 100644 content/docs/en/apis/stacks-node-rpc-api/usage.mdx

diff --git a/content/docs/en/apis/stacks-blockchain-api/reference/accounts/meta.json b/content/docs/en/apis/stacks-blockchain-api/reference/accounts/meta.json
index 9cab8049c..ba89d31c7 100644
--- a/content/docs/en/apis/stacks-blockchain-api/reference/accounts/meta.json
+++ b/content/docs/en/apis/stacks-blockchain-api/reference/accounts/meta.json
@@ -1,7 +1,6 @@
 {
   "title": "Accounts",
   "pages": [
-    "info",
     "assets",
     "balances",
     "stx-balances",
diff --git a/content/docs/en/apis/stacks-blockchain-api/reference/blocks/meta.json b/content/docs/en/apis/stacks-blockchain-api/reference/blocks/meta.json
index e32757d45..eb56eed30 100644
--- a/content/docs/en/apis/stacks-blockchain-api/reference/blocks/meta.json
+++ b/content/docs/en/apis/stacks-blockchain-api/reference/blocks/meta.json
@@ -8,11 +8,8 @@
     "recent-blocks",
     "block-by-hash",
     "block-by-height",
-    "block-by-height-v3",
     "block-by-burn-block-hash",
-    "block-by-burn-block-height",
-    "block-proposal",
-    "upload-block"
+    "block-by-burn-block-height"
   ],
   "defaultOpen": false
 }
diff --git a/content/docs/en/apis/stacks-blockchain-api/reference/fees/meta.json b/content/docs/en/apis/stacks-blockchain-api/reference/fees/meta.json
index 5e2525275..4dae7e68c 100644
--- a/content/docs/en/apis/stacks-blockchain-api/reference/fees/meta.json
+++ b/content/docs/en/apis/stacks-blockchain-api/reference/fees/meta.json
@@ -1,5 +1,5 @@
 {
   "title": "Fees",
-  "pages": ["fee-rate", "estimate", "transfer-estimate"],
+  "pages": ["fee-rate"],
   "defaultOpen": false
 }
diff --git a/content/docs/en/apis/stacks-blockchain-api/reference/info/meta.json b/content/docs/en/apis/stacks-blockchain-api/reference/info/meta.json
index 719c88059..00dc4199c 100644
--- a/content/docs/en/apis/stacks-blockchain-api/reference/info/meta.json
+++ b/content/docs/en/apis/stacks-blockchain-api/reference/info/meta.json
@@ -2,8 +2,6 @@
   "title": "Info",
   "pages": [
     "status",
-    "core-api",
-    "health",
     "network-block-time",
     "network-given-block-time",
     "total-and-unlocked-stx-supply",
diff --git a/content/docs/en/apis/stacks-blockchain-api/reference/nakamoto/meta.json b/content/docs/en/apis/stacks-blockchain-api/reference/nakamoto/meta.json
deleted file mode 100644
index 7312774f5..000000000
--- a/content/docs/en/apis/stacks-blockchain-api/reference/nakamoto/meta.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
-  "title": "Nakamoto",
-  "pages": ["nakamoto-block", "tenure-blocks", "tenure-metadata", "tenure-fork-info", "tenure-tip"],
-  "defaultOpen": false
-}
diff --git a/content/docs/en/apis/stacks-blockchain-api/reference/proof-of-transfer/meta.json b/content/docs/en/apis/stacks-blockchain-api/reference/proof-of-transfer/meta.json
index f5216f411..f62e46c27 100644
--- a/content/docs/en/apis/stacks-blockchain-api/reference/proof-of-transfer/meta.json
+++ b/content/docs/en/apis/stacks-blockchain-api/reference/proof-of-transfer/meta.json
@@ -5,10 +5,7 @@
     "cycle",
     "signers-in-cycle",
     "signer-in-cycle",
-    "signer-details",
-    "stackers-for-signer-in-cycle",
-    "pox-details",
-    "stacker-set"
+    "stackers-for-signer-in-cycle"
   ],
   "defaultOpen": false
 }
diff --git a/content/docs/en/apis/stacks-blockchain-api/reference/smart-contracts/meta.json b/content/docs/en/apis/stacks-blockchain-api/reference/smart-contracts/meta.json
index 856c9a5e1..254725608 100644
--- a/content/docs/en/apis/stacks-blockchain-api/reference/smart-contracts/meta.json
+++ b/content/docs/en/apis/stacks-blockchain-api/reference/smart-contracts/meta.json
@@ -3,16 +3,8 @@
   "pages": [
     "status",
     "info",
-    "source",
     "by-trait",
-    "interface",
-    "map-entry",
-    "read-only",
-    "fast-read-only",
-    "events",
-    "variable",
-    "constants",
-    "traits"
+    "events"
   ],
   "defaultOpen": false
 }
diff --git a/content/docs/en/apis/stacks-blockchain-api/reference/transactions/meta.json b/content/docs/en/apis/stacks-blockchain-api/reference/transactions/meta.json
index 13acd6526..59f10ae9b 100644
--- a/content/docs/en/apis/stacks-blockchain-api/reference/transactions/meta.json
+++ b/content/docs/en/apis/stacks-blockchain-api/reference/transactions/meta.json
@@ -4,7 +4,6 @@
     "recent-transactions",
     "get-transaction",
     "get-raw-transaction",
-    "transaction-details-v3",
     "address-transactions",
     "transactions-by-block",
     "events-for-an-address-transaction",
@@ -13,8 +12,7 @@
     "mempool-transactions",
     "dropped-mempool-transactions",
     "statistics-for-mempool-transactions",
-    "details-for-transactions",
-    "broadcast-transaction"
+    "details-for-transactions"
   ],
   "defaultOpen": false
 }
diff --git a/content/docs/en/apis/stacks-node-rpc-api/index.mdx b/content/docs/en/apis/stacks-node-rpc-api/index.mdx
new file mode 100644
index 000000000..3e624c8f0
--- /dev/null
+++ b/content/docs/en/apis/stacks-node-rpc-api/index.mdx
@@ -0,0 +1,33 @@
+---
+title: Stacks Node RPC API
+sidebarTitle: Overview
+description: Direct RPC access to Stacks blockchain nodes for real-time data and operations.
+llm: false
+---
+
+## Overview
+
+The Stacks Node RPC API provides direct access to Stacks blockchain nodes through RPC endpoints. These endpoints offer real-time access to blockchain state, smart contract execution, and node operations without intermediary caching layers.
+
+## Key features
+
+- **Direct node access** - Connect directly to Stacks nodes for real-time data
+- **Smart contract interaction** - Execute read-only functions and retrieve contract state
+- **Block and transaction data** - Access detailed block information and transaction details
+- **Network operations** - Perform network-level operations like broadcasting transactions
+
+## Usage
+
+```terminal
+$ curl -L 'https://api.hiro.so/v2/info' -H 'Accept: application/json'
+```
+
+For more usage examples, click [here](/apis/stacks-node-rpc-api/usage).
+
+:::callout
+All Stacks Node RPC API responses provide direct access to blockchain data without caching, ensuring you receive the most current information available.
+:::
+
+:::callout
+The RPC endpoints are designed for applications that require real-time blockchain state and direct node interaction. For cached and optimized data access, consider using the [Stacks Blockchain API](/apis/stacks-blockchain-api).
+:::
\ No newline at end of file
diff --git a/content/docs/en/apis/stacks-node-rpc-api/meta.json b/content/docs/en/apis/stacks-node-rpc-api/meta.json
new file mode 100644
index 000000000..706436219
--- /dev/null
+++ b/content/docs/en/apis/stacks-node-rpc-api/meta.json
@@ -0,0 +1,11 @@
+{
+  "title": "APIs",
+  "root": true,
+  "pages": [
+    "---Stacks Node RPC API---",
+    "index",
+    "usage",
+    "---Reference---",
+    "...reference"
+  ]
+}
\ No newline at end of file
diff --git a/content/docs/en/apis/stacks-blockchain-api/reference/accounts/info.mdx b/content/docs/en/apis/stacks-node-rpc-api/reference/accounts/info.mdx
similarity index 100%
rename from content/docs/en/apis/stacks-blockchain-api/reference/accounts/info.mdx
rename to content/docs/en/apis/stacks-node-rpc-api/reference/accounts/info.mdx
diff --git a/content/docs/en/apis/stacks-node-rpc-api/reference/accounts/meta.json b/content/docs/en/apis/stacks-node-rpc-api/reference/accounts/meta.json
new file mode 100644
index 000000000..d2bf1632c
--- /dev/null
+++ b/content/docs/en/apis/stacks-node-rpc-api/reference/accounts/meta.json
@@ -0,0 +1,7 @@
+{
+  "title": "Accounts",
+  "pages": [
+    "info"
+  ],
+  "defaultOpen": false
+}
\ No newline at end of file
diff --git a/content/docs/en/apis/stacks-blockchain-api/reference/blocks/block-by-height-v3.mdx b/content/docs/en/apis/stacks-node-rpc-api/reference/blocks/block-by-height-v3.mdx
similarity index 100%
rename from content/docs/en/apis/stacks-blockchain-api/reference/blocks/block-by-height-v3.mdx
rename to content/docs/en/apis/stacks-node-rpc-api/reference/blocks/block-by-height-v3.mdx
diff --git a/content/docs/en/apis/stacks-blockchain-api/reference/blocks/block-proposal.mdx b/content/docs/en/apis/stacks-node-rpc-api/reference/blocks/block-proposal.mdx
similarity index 100%
rename from content/docs/en/apis/stacks-blockchain-api/reference/blocks/block-proposal.mdx
rename to content/docs/en/apis/stacks-node-rpc-api/reference/blocks/block-proposal.mdx
diff --git a/content/docs/en/apis/stacks-node-rpc-api/reference/blocks/meta.json b/content/docs/en/apis/stacks-node-rpc-api/reference/blocks/meta.json
new file mode 100644
index 000000000..282d373ed
--- /dev/null
+++ b/content/docs/en/apis/stacks-node-rpc-api/reference/blocks/meta.json
@@ -0,0 +1,9 @@
+{
+  "title": "Blocks",
+  "pages": [
+    "block-by-height-v3",
+    "block-proposal",
+    "upload-block"
+  ],
+  "defaultOpen": false
+}
\ No newline at end of file
diff --git a/content/docs/en/apis/stacks-blockchain-api/reference/blocks/upload-block.mdx b/content/docs/en/apis/stacks-node-rpc-api/reference/blocks/upload-block.mdx
similarity index 100%
rename from content/docs/en/apis/stacks-blockchain-api/reference/blocks/upload-block.mdx
rename to content/docs/en/apis/stacks-node-rpc-api/reference/blocks/upload-block.mdx
diff --git a/content/docs/en/apis/stacks-blockchain-api/reference/fees/estimate.mdx b/content/docs/en/apis/stacks-node-rpc-api/reference/fees/estimate.mdx
similarity index 100%
rename from content/docs/en/apis/stacks-blockchain-api/reference/fees/estimate.mdx
rename to content/docs/en/apis/stacks-node-rpc-api/reference/fees/estimate.mdx
diff --git a/content/docs/en/apis/stacks-node-rpc-api/reference/fees/meta.json b/content/docs/en/apis/stacks-node-rpc-api/reference/fees/meta.json
new file mode 100644
index 000000000..8553c9cf0
--- /dev/null
+++ b/content/docs/en/apis/stacks-node-rpc-api/reference/fees/meta.json
@@ -0,0 +1,8 @@
+{
+  "title": "Fees",
+  "pages": [
+    "estimate",
+    "transfer-estimate"
+  ],
+  "defaultOpen": false
+}
\ No newline at end of file
diff --git a/content/docs/en/apis/stacks-blockchain-api/reference/fees/transfer-estimate.mdx b/content/docs/en/apis/stacks-node-rpc-api/reference/fees/transfer-estimate.mdx
similarity index 100%
rename from content/docs/en/apis/stacks-blockchain-api/reference/fees/transfer-estimate.mdx
rename to content/docs/en/apis/stacks-node-rpc-api/reference/fees/transfer-estimate.mdx
diff --git a/content/docs/en/apis/stacks-blockchain-api/reference/info/core-api.mdx b/content/docs/en/apis/stacks-node-rpc-api/reference/info/core-api.mdx
similarity index 100%
rename from content/docs/en/apis/stacks-blockchain-api/reference/info/core-api.mdx
rename to content/docs/en/apis/stacks-node-rpc-api/reference/info/core-api.mdx
diff --git a/content/docs/en/apis/stacks-blockchain-api/reference/info/health.mdx b/content/docs/en/apis/stacks-node-rpc-api/reference/info/health.mdx
similarity index 100%
rename from content/docs/en/apis/stacks-blockchain-api/reference/info/health.mdx
rename to content/docs/en/apis/stacks-node-rpc-api/reference/info/health.mdx
diff --git a/content/docs/en/apis/stacks-node-rpc-api/reference/info/meta.json b/content/docs/en/apis/stacks-node-rpc-api/reference/info/meta.json
new file mode 100644
index 000000000..855dbecbf
--- /dev/null
+++ b/content/docs/en/apis/stacks-node-rpc-api/reference/info/meta.json
@@ -0,0 +1,8 @@
+{
+  "title": "Info",
+  "pages": [
+    "core-api",
+    "health"
+  ],
+  "defaultOpen": false
+}
\ No newline at end of file
diff --git a/content/docs/en/apis/stacks-node-rpc-api/reference/nakamoto/meta.json b/content/docs/en/apis/stacks-node-rpc-api/reference/nakamoto/meta.json
new file mode 100644
index 000000000..d0feb50a0
--- /dev/null
+++ b/content/docs/en/apis/stacks-node-rpc-api/reference/nakamoto/meta.json
@@ -0,0 +1,11 @@
+{
+  "title": "Nakamoto",
+  "pages": [
+    "nakamoto-block",
+    "tenure-blocks",
+    "tenure-fork-info",
+    "tenure-metadata",
+    "tenure-tip"
+  ],
+  "defaultOpen": false
+}
\ No newline at end of file
diff --git a/content/docs/en/apis/stacks-blockchain-api/reference/nakamoto/nakamoto-block.mdx b/content/docs/en/apis/stacks-node-rpc-api/reference/nakamoto/nakamoto-block.mdx
similarity index 100%
rename from content/docs/en/apis/stacks-blockchain-api/reference/nakamoto/nakamoto-block.mdx
rename to content/docs/en/apis/stacks-node-rpc-api/reference/nakamoto/nakamoto-block.mdx
diff --git a/content/docs/en/apis/stacks-blockchain-api/reference/nakamoto/tenure-blocks.mdx b/content/docs/en/apis/stacks-node-rpc-api/reference/nakamoto/tenure-blocks.mdx
similarity index 100%
rename from content/docs/en/apis/stacks-blockchain-api/reference/nakamoto/tenure-blocks.mdx
rename to content/docs/en/apis/stacks-node-rpc-api/reference/nakamoto/tenure-blocks.mdx
diff --git a/content/docs/en/apis/stacks-blockchain-api/reference/nakamoto/tenure-fork-info.mdx b/content/docs/en/apis/stacks-node-rpc-api/reference/nakamoto/tenure-fork-info.mdx
similarity index 100%
rename from content/docs/en/apis/stacks-blockchain-api/reference/nakamoto/tenure-fork-info.mdx
rename to content/docs/en/apis/stacks-node-rpc-api/reference/nakamoto/tenure-fork-info.mdx
diff --git a/content/docs/en/apis/stacks-blockchain-api/reference/nakamoto/tenure-metadata.mdx b/content/docs/en/apis/stacks-node-rpc-api/reference/nakamoto/tenure-metadata.mdx
similarity index 100%
rename from content/docs/en/apis/stacks-blockchain-api/reference/nakamoto/tenure-metadata.mdx
rename to content/docs/en/apis/stacks-node-rpc-api/reference/nakamoto/tenure-metadata.mdx
diff --git a/content/docs/en/apis/stacks-blockchain-api/reference/nakamoto/tenure-tip.mdx b/content/docs/en/apis/stacks-node-rpc-api/reference/nakamoto/tenure-tip.mdx
similarity index 100%
rename from content/docs/en/apis/stacks-blockchain-api/reference/nakamoto/tenure-tip.mdx
rename to content/docs/en/apis/stacks-node-rpc-api/reference/nakamoto/tenure-tip.mdx
diff --git a/content/docs/en/apis/stacks-node-rpc-api/reference/proof-of-transfer/meta.json b/content/docs/en/apis/stacks-node-rpc-api/reference/proof-of-transfer/meta.json
new file mode 100644
index 000000000..344f2651e
--- /dev/null
+++ b/content/docs/en/apis/stacks-node-rpc-api/reference/proof-of-transfer/meta.json
@@ -0,0 +1,9 @@
+{
+  "title": "Proof of Transfer",
+  "pages": [
+    "pox-details",
+    "signer-details",
+    "stacker-set"
+  ],
+  "defaultOpen": false
+}
\ No newline at end of file
diff --git a/content/docs/en/apis/stacks-blockchain-api/reference/proof-of-transfer/pox-details.mdx b/content/docs/en/apis/stacks-node-rpc-api/reference/proof-of-transfer/pox-details.mdx
similarity index 100%
rename from content/docs/en/apis/stacks-blockchain-api/reference/proof-of-transfer/pox-details.mdx
rename to content/docs/en/apis/stacks-node-rpc-api/reference/proof-of-transfer/pox-details.mdx
diff --git a/content/docs/en/apis/stacks-blockchain-api/reference/proof-of-transfer/signer-details.mdx b/content/docs/en/apis/stacks-node-rpc-api/reference/proof-of-transfer/signer-details.mdx
similarity index 100%
rename from content/docs/en/apis/stacks-blockchain-api/reference/proof-of-transfer/signer-details.mdx
rename to content/docs/en/apis/stacks-node-rpc-api/reference/proof-of-transfer/signer-details.mdx
diff --git a/content/docs/en/apis/stacks-blockchain-api/reference/proof-of-transfer/stacker-set.mdx b/content/docs/en/apis/stacks-node-rpc-api/reference/proof-of-transfer/stacker-set.mdx
similarity index 100%
rename from content/docs/en/apis/stacks-blockchain-api/reference/proof-of-transfer/stacker-set.mdx
rename to content/docs/en/apis/stacks-node-rpc-api/reference/proof-of-transfer/stacker-set.mdx
diff --git a/content/docs/en/apis/stacks-blockchain-api/reference/smart-contracts/constants.mdx b/content/docs/en/apis/stacks-node-rpc-api/reference/smart-contracts/constants.mdx
similarity index 100%
rename from content/docs/en/apis/stacks-blockchain-api/reference/smart-contracts/constants.mdx
rename to content/docs/en/apis/stacks-node-rpc-api/reference/smart-contracts/constants.mdx
diff --git a/content/docs/en/apis/stacks-blockchain-api/reference/smart-contracts/fast-read-only.mdx b/content/docs/en/apis/stacks-node-rpc-api/reference/smart-contracts/fast-read-only.mdx
similarity index 100%
rename from content/docs/en/apis/stacks-blockchain-api/reference/smart-contracts/fast-read-only.mdx
rename to content/docs/en/apis/stacks-node-rpc-api/reference/smart-contracts/fast-read-only.mdx
diff --git a/content/docs/en/apis/stacks-blockchain-api/reference/smart-contracts/interface.mdx b/content/docs/en/apis/stacks-node-rpc-api/reference/smart-contracts/interface.mdx
similarity index 100%
rename from content/docs/en/apis/stacks-blockchain-api/reference/smart-contracts/interface.mdx
rename to content/docs/en/apis/stacks-node-rpc-api/reference/smart-contracts/interface.mdx
diff --git a/content/docs/en/apis/stacks-blockchain-api/reference/smart-contracts/map-entry.mdx b/content/docs/en/apis/stacks-node-rpc-api/reference/smart-contracts/map-entry.mdx
similarity index 100%
rename from content/docs/en/apis/stacks-blockchain-api/reference/smart-contracts/map-entry.mdx
rename to content/docs/en/apis/stacks-node-rpc-api/reference/smart-contracts/map-entry.mdx
diff --git a/content/docs/en/apis/stacks-node-rpc-api/reference/smart-contracts/meta.json b/content/docs/en/apis/stacks-node-rpc-api/reference/smart-contracts/meta.json
new file mode 100644
index 000000000..4dde299b6
--- /dev/null
+++ b/content/docs/en/apis/stacks-node-rpc-api/reference/smart-contracts/meta.json
@@ -0,0 +1,14 @@
+{
+  "title": "Smart Contracts",
+  "pages": [
+    "constants",
+    "fast-read-only",
+    "interface",
+    "map-entry",
+    "read-only",
+    "source",
+    "traits",
+    "variable"
+  ],
+  "defaultOpen": false
+}
\ No newline at end of file
diff --git a/content/docs/en/apis/stacks-blockchain-api/reference/smart-contracts/read-only.mdx b/content/docs/en/apis/stacks-node-rpc-api/reference/smart-contracts/read-only.mdx
similarity index 100%
rename from content/docs/en/apis/stacks-blockchain-api/reference/smart-contracts/read-only.mdx
rename to content/docs/en/apis/stacks-node-rpc-api/reference/smart-contracts/read-only.mdx
diff --git a/content/docs/en/apis/stacks-blockchain-api/reference/smart-contracts/source.mdx b/content/docs/en/apis/stacks-node-rpc-api/reference/smart-contracts/source.mdx
similarity index 100%
rename from content/docs/en/apis/stacks-blockchain-api/reference/smart-contracts/source.mdx
rename to content/docs/en/apis/stacks-node-rpc-api/reference/smart-contracts/source.mdx
diff --git a/content/docs/en/apis/stacks-blockchain-api/reference/smart-contracts/traits.mdx b/content/docs/en/apis/stacks-node-rpc-api/reference/smart-contracts/traits.mdx
similarity index 100%
rename from content/docs/en/apis/stacks-blockchain-api/reference/smart-contracts/traits.mdx
rename to content/docs/en/apis/stacks-node-rpc-api/reference/smart-contracts/traits.mdx
diff --git a/content/docs/en/apis/stacks-blockchain-api/reference/smart-contracts/variable.mdx b/content/docs/en/apis/stacks-node-rpc-api/reference/smart-contracts/variable.mdx
similarity index 100%
rename from content/docs/en/apis/stacks-blockchain-api/reference/smart-contracts/variable.mdx
rename to content/docs/en/apis/stacks-node-rpc-api/reference/smart-contracts/variable.mdx
diff --git a/content/docs/en/apis/stacks-blockchain-api/reference/sortitions/get-sortitions.mdx b/content/docs/en/apis/stacks-node-rpc-api/reference/sortitions/get-sortitions.mdx
similarity index 100%
rename from content/docs/en/apis/stacks-blockchain-api/reference/sortitions/get-sortitions.mdx
rename to content/docs/en/apis/stacks-node-rpc-api/reference/sortitions/get-sortitions.mdx
diff --git a/content/docs/en/apis/stacks-blockchain-api/reference/sortitions/latest-and-last-sortitions.mdx b/content/docs/en/apis/stacks-node-rpc-api/reference/sortitions/latest-and-last-sortitions.mdx
similarity index 100%
rename from content/docs/en/apis/stacks-blockchain-api/reference/sortitions/latest-and-last-sortitions.mdx
rename to content/docs/en/apis/stacks-node-rpc-api/reference/sortitions/latest-and-last-sortitions.mdx
diff --git a/content/docs/en/apis/stacks-blockchain-api/reference/sortitions/meta.json b/content/docs/en/apis/stacks-node-rpc-api/reference/sortitions/meta.json
similarity index 68%
rename from content/docs/en/apis/stacks-blockchain-api/reference/sortitions/meta.json
rename to content/docs/en/apis/stacks-node-rpc-api/reference/sortitions/meta.json
index 814398079..ae78bb606 100644
--- a/content/docs/en/apis/stacks-blockchain-api/reference/sortitions/meta.json
+++ b/content/docs/en/apis/stacks-node-rpc-api/reference/sortitions/meta.json
@@ -2,10 +2,10 @@
   "title": "Sortitions",
   "pages": [
     "get-sortitions",
+    "latest-and-last-sortitions",
     "sortition-by-burn-hash",
     "sortition-by-burn-height",
-    "sortition-by-consensus-hash",
-    "latest-and-last-sortitions"
+    "sortition-by-consensus-hash"
   ],
   "defaultOpen": false
-}
+}
\ No newline at end of file
diff --git a/content/docs/en/apis/stacks-blockchain-api/reference/sortitions/sortition-by-burn-hash.mdx b/content/docs/en/apis/stacks-node-rpc-api/reference/sortitions/sortition-by-burn-hash.mdx
similarity index 100%
rename from content/docs/en/apis/stacks-blockchain-api/reference/sortitions/sortition-by-burn-hash.mdx
rename to content/docs/en/apis/stacks-node-rpc-api/reference/sortitions/sortition-by-burn-hash.mdx
diff --git a/content/docs/en/apis/stacks-blockchain-api/reference/sortitions/sortition-by-burn-height.mdx b/content/docs/en/apis/stacks-node-rpc-api/reference/sortitions/sortition-by-burn-height.mdx
similarity index 100%
rename from content/docs/en/apis/stacks-blockchain-api/reference/sortitions/sortition-by-burn-height.mdx
rename to content/docs/en/apis/stacks-node-rpc-api/reference/sortitions/sortition-by-burn-height.mdx
diff --git a/content/docs/en/apis/stacks-blockchain-api/reference/sortitions/sortition-by-consensus-hash.mdx b/content/docs/en/apis/stacks-node-rpc-api/reference/sortitions/sortition-by-consensus-hash.mdx
similarity index 100%
rename from content/docs/en/apis/stacks-blockchain-api/reference/sortitions/sortition-by-consensus-hash.mdx
rename to content/docs/en/apis/stacks-node-rpc-api/reference/sortitions/sortition-by-consensus-hash.mdx
diff --git a/content/docs/en/apis/stacks-blockchain-api/reference/transactions/broadcast-transaction.mdx b/content/docs/en/apis/stacks-node-rpc-api/reference/transactions/broadcast-transaction.mdx
similarity index 100%
rename from content/docs/en/apis/stacks-blockchain-api/reference/transactions/broadcast-transaction.mdx
rename to content/docs/en/apis/stacks-node-rpc-api/reference/transactions/broadcast-transaction.mdx
diff --git a/content/docs/en/apis/stacks-node-rpc-api/reference/transactions/meta.json b/content/docs/en/apis/stacks-node-rpc-api/reference/transactions/meta.json
new file mode 100644
index 000000000..b57242d9c
--- /dev/null
+++ b/content/docs/en/apis/stacks-node-rpc-api/reference/transactions/meta.json
@@ -0,0 +1,8 @@
+{
+  "title": "Transactions",
+  "pages": [
+    "broadcast-transaction",
+    "transaction-details-v3"
+  ],
+  "defaultOpen": false
+}
\ No newline at end of file
diff --git a/content/docs/en/apis/stacks-blockchain-api/reference/transactions/transaction-details-v3.mdx b/content/docs/en/apis/stacks-node-rpc-api/reference/transactions/transaction-details-v3.mdx
similarity index 100%
rename from content/docs/en/apis/stacks-blockchain-api/reference/transactions/transaction-details-v3.mdx
rename to content/docs/en/apis/stacks-node-rpc-api/reference/transactions/transaction-details-v3.mdx
diff --git a/content/docs/en/apis/stacks-node-rpc-api/usage.mdx b/content/docs/en/apis/stacks-node-rpc-api/usage.mdx
new file mode 100644
index 000000000..6c618eee1
--- /dev/null
+++ b/content/docs/en/apis/stacks-node-rpc-api/usage.mdx
@@ -0,0 +1,63 @@
+---
+title: Basic usage
+sidebarTitle: Usage
+description: Learn the basics of using the Stacks Node RPC API.
+---
+
+## Usage
+
+The Stacks Node RPC API provides direct access to Stacks blockchain nodes through RPC endpoints, built on REST principles and enforcing HTTPS for all requests to ensure data security, integrity, and privacy.
+
+### Base URL
+
+```console -c
+https://api.hiro.so
+```
+
+### Making requests
+
+To make a request to the Stacks Node RPC API, you can paste the curl command below in your terminal.
+
+```terminal
+$ curl -L 'https://api.hiro.so/v2/info' \
+  -H 'Accept: application/json'
+```
+
+### Authentication
+
+If you are using an api-key, replace `$HIRO_API_KEY` with your secret API key.
+
+```terminal
+$ curl -L 'https://api.hiro.so/v2/info' \
+  -H 'Accept: application/json' \
+  -H 'x-api-key: $HIRO_API_KEY'
+```
+
+## Response codes
+
+The Stacks Node RPC API uses standard HTTP response codes to indicate request success or failure.
+
+| Code | Description |
+|------|-------------|
+| `200` | Successful request |
+| `400` | Check that the parameters were correct |
+| `401` | Missing API key |
+| `403` | Invalid API key |
+| `404` | Resource not found |
+| `429` | Rate limit exceeded |
+| `5xx` | Server errors |
+
+## Real-time data
+
+Unlike cached APIs, the RPC endpoints provide direct access to blockchain state:
+
+- Smart contract calls return current state
+- Block data reflects the latest confirmed blocks
+- Transaction details include real-time status
+
+## Common use cases
+
+- **Smart contract development** - Test and debug contract functions
+- **Real-time monitoring** - Track blockchain state changes as they occur  
+- **Node operations** - Perform administrative and diagnostic operations
+- **Transaction broadcasting** - Submit transactions directly to the network
\ No newline at end of file

From 9a589bc07ad50772e0efe1092b9751df51ee592a Mon Sep 17 00:00:00 2001
From: Ryan Waits <ryan.waits@gmail.com>
Date: Mon, 18 Aug 2025 12:49:32 -0500
Subject: [PATCH 2/6] update apis page to include new rpc node section

---
 app/[locale]/(home)/apis/_pages/page.en.tsx |   6 +
 app/[locale]/(home)/apis/_pages/page.es.tsx |  31 +--
 app/[locale]/[...slug]/page.tsx             |   7 +
 app/layout.config.tsx                       |   6 +
 hooks/use-localized-navigation.tsx          | 282 ++++++++++----------
 lib/translations/en.ts                      |   5 +
 lib/translations/es.ts                      |   5 +
 7 files changed, 190 insertions(+), 152 deletions(-)

diff --git a/app/[locale]/(home)/apis/_pages/page.en.tsx b/app/[locale]/(home)/apis/_pages/page.en.tsx
index ea6c64077..61fff8141 100644
--- a/app/[locale]/(home)/apis/_pages/page.en.tsx
+++ b/app/[locale]/(home)/apis/_pages/page.en.tsx
@@ -17,6 +17,12 @@ export default function APIsPage() {
               title="Stacks Blockchain API"
               description="Comprehensive REST API for interacting with the Stacks blockchain and network data."
             />
+            <IndexCard
+              icon={<StacksIcon />}
+              href="/apis/stacks-node-rpc-api"
+              title="Stacks Node RPC API"
+              description="Raw blockchain node methods: submit txs, call read-only contracts, query mempool/state."
+            />
             <IndexCard
               icon={<API />}
               href="/apis/token-metadata-api"
diff --git a/app/[locale]/(home)/apis/_pages/page.es.tsx b/app/[locale]/(home)/apis/_pages/page.es.tsx
index 438540684..db8878c9c 100644
--- a/app/[locale]/(home)/apis/_pages/page.es.tsx
+++ b/app/[locale]/(home)/apis/_pages/page.es.tsx
@@ -14,49 +14,50 @@ export default function APIsPage() {
             <IndexCard
               icon={<StacksIcon />}
               href="/apis/stacks-blockchain-api"
-              title="API de Blockchain de Stacks"
-              description="API REST completa para interactuar con la cadena de bloques de Stacks y los datos de la red."
-            />
+              title="API de la cadena de bloques Stacks"
+              description="API REST completa para interactuar con la cadena de bloques de Stacks y los datos de la red." />
+
+            <IndexCard
+              icon={<StacksIcon />}
+              href="/apis/stacks-node-rpc-api"
+              title="API RPC del Nodo Stacks"
+              description="Métodos de nodo de blockchain sin procesar: enviar transacciones, llamar contratos de solo lectura, consultar mempool/estado." />
 
             <IndexCard
               icon={<API />}
               href="/apis/token-metadata-api"
               title="API de Metadatos de Tokens"
-              description="Metadatos rápidos y confiables para tokens fungibles y no fungibles en Stacks."
-            />
+              description="Metadatos rápidos y confiables para tokens fungibles y no fungibles en Stacks." />
 
             <IndexCard
               icon={<Hiro />}
               href="/apis/platform-api"
               title="API de la plataforma"
-              description="Administre programáticamente devnets y chainhooks a través de la interfaz REST."
-            />
+              description="Gestione programáticamente devnets y chainhooks a través de la interfaz REST." />
 
             <IndexCard
               icon={<Ordinals />}
               href="/apis/ordinals-api"
               title="API de Ordinals"
               tag="Bitcoin L1"
-              description="Datos completos de ordinales de Bitcoin y tokens BRC-20 con optimización de caché."
-            />
+              description="Datos completos de ordinales de Bitcoin y tokens BRC-20 con optimización de caché." />
 
             <IndexCard
               icon={<Runes />}
               href="/apis/runes-api"
               title="API de Runas"
               tag="Bitcoin L1"
-              description="Datos rápidos y confiables para Bitcoin Runes a través de una interfaz REST fácil de usar."
-            />
+              description="Datos rápidos y confiables para Bitcoin Runes a través de una interfaz REST fácil de usar." />
 
             <IndexCard
               icon={<API />}
               href="/apis/signer-metrics-api"
               title="API de Métricas del Firmante"
-              description="Monitorear y analizar el comportamiento y rendimiento de los firmantes en la red Stacks."
-            />
+              description="Monitorea y analiza el comportamiento y rendimiento de los firmantes en la red Stacks." />
+
           </Cards>
         </div>
       </div>
-    </main>
-  );
+    </main>);
+
 }
diff --git a/app/[locale]/[...slug]/page.tsx b/app/[locale]/[...slug]/page.tsx
index f9b87f4f5..845bf4735 100644
--- a/app/[locale]/[...slug]/page.tsx
+++ b/app/[locale]/[...slug]/page.tsx
@@ -213,6 +213,13 @@ export default async function Page(props: {
               </div>
               <DocsPageDescription />
 
+              {/* RPC endpoint callout */}
+              {page.data.isRpc && (
+                <Callout type="info" title="About RPC endpoints">
+                  These are served by Stacks nodes, not directly operated by Hiro. Availability and performance may vary depending on upstream node health. For guaranteed performance, run your own node or talk to us about dedicated options.
+                </Callout>
+              )}
+
               {/* Render TagFilterSystem if tags are present in frontmatter */}
               {page.data.tags && page.data.tags.length > 0 && (
                 <TagFilterSystem
diff --git a/app/layout.config.tsx b/app/layout.config.tsx
index 3ca9397b5..854775cbf 100644
--- a/app/layout.config.tsx
+++ b/app/layout.config.tsx
@@ -68,6 +68,12 @@ export const baseOptions: BaseLayoutProps = {
           description: 'RESTful API for accessing Stacks blockchain data and functionality.',
           url: '/apis/stacks-blockchain-api',
         },
+        {
+          text: 'Stacks RPC Node API',
+          description:
+            'Raw blockchain node methods: submit txs, call read-only contracts, query mempool/state.',
+          url: '/apis/stacks-node-rpc-api',
+        },
         {
           text: 'Token Metadata API',
           description: 'API for retrieving NFT and fungible token metadata.',
diff --git a/hooks/use-localized-navigation.tsx b/hooks/use-localized-navigation.tsx
index 235b4beaa..fb241d0c2 100644
--- a/hooks/use-localized-navigation.tsx
+++ b/hooks/use-localized-navigation.tsx
@@ -11,140 +11,148 @@ import { useTranslations } from './use-translations';
 export function useLocalizedNavigation(): BaseLayoutProps['links'] {
   const t = useTranslations();
 
-  return useMemo(() => [
-    // Tools menu
-    {
-      type: 'menu' as const,
-      text: t.navigation.menus.tools,
-      items: [
-        {
-          text: t.tools.clarinet.title,
-          description: t.tools.clarinet.description,
-          url: '/tools/clarinet',
-        },
-        {
-          text: t.tools.chainhook.title,
-          description: t.tools.chainhook.description,
-          url: '/tools/chainhook',
-        },
-        {
-          text: t.tools.contractMonitoring.title,
-          description: t.tools.contractMonitoring.description,
-          url: '/tools/contract-monitoring',
-        },
-        {
-          text: t.tools.clarityVscode.title,
-          description: t.tools.clarityVscode.description,
-          url: '/tools/clarinet/vscode-extension',
-        },
-        {
-          text: t.tools.bitcoinIndexer.title,
-          description: t.tools.bitcoinIndexer.description,
-          url: '/tools/bitcoin-indexer',
-          isNew: true,
-        },
-      ],
-    },
-    // APIs menu
-    {
-      type: 'menu' as const,
-      text: t.navigation.menus.apis,
-      items: [
-        {
-          text: t.apis.apiKeys.title,
-          description: t.apis.apiKeys.description,
-          url: '/resources/guides/api-keys',
-        },
-        {
-          text: t.apis.rateLimits.title,
-          description: t.apis.rateLimits.description,
-          url: '/resources/guides/rate-limits',
-        },
-        {
-          text: t.apis.stacksApi.title,
-          description: t.apis.stacksApi.description,
-          url: '/apis/stacks-blockchain-api',
-        },
-        {
-          text: t.apis.tokenMetadata.title,
-          description: t.apis.tokenMetadata.description,
-          url: '/apis/token-metadata-api',
-        },
-        {
-          text: t.apis.platform.title,
-          description: t.apis.platform.description,
-          url: '/apis/platform-api',
-        },
-        {
-          text: t.apis.ordinals.title,
-          description: t.apis.ordinals.description,
-          url: '/apis/ordinals-api',
-        },
-        {
-          text: t.apis.runes.title,
-          description: t.apis.runes.description,
-          url: '/apis/runes-api',
-        },
-        {
-          text: t.apis.signerMetrics.title,
-          description: t.apis.signerMetrics.description,
-          url: '/apis/signer-metrics-api',
-        },
-      ],
-    },
-    // Libraries & SDKs menu
-    {
-      type: 'menu' as const,
-      text: t.navigation.menus.libraries,
-      items: [
-        {
-          text: t.libraries.stacksJs.title,
-          description: t.libraries.stacksJs.description,
-          url: '/reference/stacks.js',
-        },
-        {
-          text: t.libraries.stacksConnect.title,
-          description: t.libraries.stacksConnect.description,
-          url: '/reference/stacks.js/connect-wallet',
-        },
-        {
-          text: t.libraries.clarinetSdk.title,
-          description: t.libraries.clarinetSdk.description,
-          url: '/tools/clarinet/sdk-introduction',
-        },
-        {
-          text: t.libraries.clarinetBrowserSdk.title,
-          description: t.libraries.clarinetBrowserSdk.description,
-          url: '/tools/clarinet/browser-sdk-reference',
-        },
-      ],
-    },
-    // Resources menu
-    {
-      type: 'menu' as const,
-      text: t.navigation.menus.resources,
-      items: [
-        {
-          text: t.resources.clarityReference.title,
-          description: t.resources.clarityReference.description,
-          url: '/resources/clarity',
-        },
-        {
-          text: t.resources.guides.title,
-          description: t.resources.guides.description,
-          url: '/resources/guides',
-        },
-        {
-          text: t.resources.snippets.title,
-          description: t.resources.snippets.description,
-          url: '/resources/snippets',
-        },
-        {
-          text: t.resources.archive.title,
-          description: t.resources.archive.description,
-          url: '/resources/archive',
-        },
-      ],
-    },
-  ], [t]);
-}
\ No newline at end of file
+  return useMemo(
+    () => [
+      // Tools menu
+      {
+        type: 'menu' as const,
+        text: t.navigation.menus.tools,
+        items: [
+          {
+            text: t.tools.clarinet.title,
+            description: t.tools.clarinet.description,
+            url: '/tools/clarinet',
+          },
+          {
+            text: t.tools.chainhook.title,
+            description: t.tools.chainhook.description,
+            url: '/tools/chainhook',
+          },
+          {
+            text: t.tools.contractMonitoring.title,
+            description: t.tools.contractMonitoring.description,
+            url: '/tools/contract-monitoring',
+          },
+          {
+            text: t.tools.clarityVscode.title,
+            description: t.tools.clarityVscode.description,
+            url: '/tools/clarinet/vscode-extension',
+          },
+          {
+            text: t.tools.bitcoinIndexer.title,
+            description: t.tools.bitcoinIndexer.description,
+            url: '/tools/bitcoin-indexer',
+            isNew: true,
+          },
+        ],
+      },
+      // APIs menu
+      {
+        type: 'menu' as const,
+        text: t.navigation.menus.apis,
+        items: [
+          {
+            text: t.apis.apiKeys.title,
+            description: t.apis.apiKeys.description,
+            url: '/resources/guides/api-keys',
+          },
+          {
+            text: t.apis.rateLimits.title,
+            description: t.apis.rateLimits.description,
+            url: '/resources/guides/rate-limits',
+          },
+          {
+            text: t.apis.stacksApi.title,
+            description: t.apis.stacksApi.description,
+            url: '/apis/stacks-blockchain-api',
+          },
+          {
+            text: t.apis.stacksNodeRpcApi.title,
+            description: t.apis.stacksNodeRpcApi.description,
+            url: '/apis/stacks-node-rpc-api',
+          },
+          {
+            text: t.apis.tokenMetadata.title,
+            description: t.apis.tokenMetadata.description,
+            url: '/apis/token-metadata-api',
+          },
+          {
+            text: t.apis.platform.title,
+            description: t.apis.platform.description,
+            url: '/apis/platform-api',
+          },
+          {
+            text: t.apis.ordinals.title,
+            description: t.apis.ordinals.description,
+            url: '/apis/ordinals-api',
+          },
+          {
+            text: t.apis.runes.title,
+            description: t.apis.runes.description,
+            url: '/apis/runes-api',
+          },
+          {
+            text: t.apis.signerMetrics.title,
+            description: t.apis.signerMetrics.description,
+            url: '/apis/signer-metrics-api',
+          },
+        ],
+      },
+      // Libraries & SDKs menu
+      {
+        type: 'menu' as const,
+        text: t.navigation.menus.libraries,
+        items: [
+          {
+            text: t.libraries.stacksJs.title,
+            description: t.libraries.stacksJs.description,
+            url: '/reference/stacks.js',
+          },
+          {
+            text: t.libraries.stacksConnect.title,
+            description: t.libraries.stacksConnect.description,
+            url: '/reference/stacks.js/connect-wallet',
+          },
+          {
+            text: t.libraries.clarinetSdk.title,
+            description: t.libraries.clarinetSdk.description,
+            url: '/tools/clarinet/sdk-introduction',
+          },
+          {
+            text: t.libraries.clarinetBrowserSdk.title,
+            description: t.libraries.clarinetBrowserSdk.description,
+            url: '/tools/clarinet/browser-sdk-reference',
+          },
+        ],
+      },
+      // Resources menu
+      {
+        type: 'menu' as const,
+        text: t.navigation.menus.resources,
+        items: [
+          {
+            text: t.resources.clarityReference.title,
+            description: t.resources.clarityReference.description,
+            url: '/resources/clarity',
+          },
+          {
+            text: t.resources.guides.title,
+            description: t.resources.guides.description,
+            url: '/resources/guides',
+          },
+          {
+            text: t.resources.snippets.title,
+            description: t.resources.snippets.description,
+            url: '/resources/snippets',
+          },
+          {
+            text: t.resources.archive.title,
+            description: t.resources.archive.description,
+            url: '/resources/archive',
+          },
+        ],
+      },
+    ],
+    [t],
+  );
+}
diff --git a/lib/translations/en.ts b/lib/translations/en.ts
index ea3026ff1..18ebe5ab2 100644
--- a/lib/translations/en.ts
+++ b/lib/translations/en.ts
@@ -96,6 +96,11 @@ export const en: Translations = {
       title: 'Stacks API',
       description: 'RESTful API for accessing Stacks blockchain data and functionality.',
     },
+    stacksNodeRpcApi: {
+      title: 'Stacks Node RPC API',
+      description:
+        'Raw blockchain node methods: submit txs, call read-only contracts, query mempool/state.',
+    },
     tokenMetadata: {
       title: 'Token Metadata API',
       description: 'API for retrieving NFT and fungible token metadata.',
diff --git a/lib/translations/es.ts b/lib/translations/es.ts
index a5ec20b68..e11be14f8 100644
--- a/lib/translations/es.ts
+++ b/lib/translations/es.ts
@@ -96,6 +96,11 @@ export const es: Translations = {
       title: 'API de Stacks',
       description: 'API RESTful para acceder a datos y funcionalidad de la blockchain Stacks.',
     },
+    stacksNodeRpcApi: {
+      title: 'API de Nodo RPC de Stacks',
+      description:
+        'Métodos de nodo blockchain sin procesar: enviar txs, llamar contratos de solo lectura, consultar mempool/estado.',
+    },
     tokenMetadata: {
       title: 'API de Metadatos de Tokens',
       description: 'API para obtener metadatos de tokens NFT y fungibles.',

From 8472b2a0267b40ae181825ce3eec766e130a4430 Mon Sep 17 00:00:00 2001
From: Ryan Waits <ryan.waits@gmail.com>
Date: Mon, 18 Aug 2025 13:07:23 -0500
Subject: [PATCH 3/6] clean up dead code

---
 app/(docs)/[...slug]/page.tsx               | 296 ------------
 app/(docs)/error.tsx                        |  60 ---
 app/(docs)/layout.tsx                       |  12 -
 app/(docs)/not-found.tsx                    |  29 --
 app/(docs)/raw/[...slug]/route.ts           |  80 ---
 app/(home)/components/interactive-badge.tsx |  26 -
 app/(home)/icons.tsx                        | 510 --------------------
 app/(home)/layout.tsx                       |   7 -
 app/(home)/page.tsx                         | 194 --------
 app/[locale]/(home)/apis/_pages/page.es.tsx |  26 +-
 app/[locale]/[...slug]/page.tsx             |   4 +-
 app/apis/layout.tsx                         |   7 -
 app/apis/page.tsx                           |  57 ---
 app/reference/layout.tsx                    |   7 -
 app/reference/page.tsx                      |  43 --
 app/resources/layout.tsx                    |   7 -
 app/resources/page.tsx                      |  50 --
 app/tools/layout.tsx                        |   7 -
 app/tools/page.tsx                          |  45 --
 19 files changed, 19 insertions(+), 1448 deletions(-)
 delete mode 100644 app/(docs)/[...slug]/page.tsx
 delete mode 100644 app/(docs)/error.tsx
 delete mode 100644 app/(docs)/layout.tsx
 delete mode 100644 app/(docs)/not-found.tsx
 delete mode 100644 app/(docs)/raw/[...slug]/route.ts
 delete mode 100644 app/(home)/components/interactive-badge.tsx
 delete mode 100644 app/(home)/icons.tsx
 delete mode 100644 app/(home)/layout.tsx
 delete mode 100644 app/(home)/page.tsx
 delete mode 100644 app/apis/layout.tsx
 delete mode 100644 app/apis/page.tsx
 delete mode 100644 app/reference/layout.tsx
 delete mode 100644 app/reference/page.tsx
 delete mode 100644 app/resources/layout.tsx
 delete mode 100644 app/resources/page.tsx
 delete mode 100644 app/tools/layout.tsx
 delete mode 100644 app/tools/page.tsx

diff --git a/app/(docs)/[...slug]/page.tsx b/app/(docs)/[...slug]/page.tsx
deleted file mode 100644
index bce4398b3..000000000
--- a/app/(docs)/[...slug]/page.tsx
+++ /dev/null
@@ -1,296 +0,0 @@
-import fs from 'node:fs/promises';
-import defaultMdxComponents from 'fumadocs-ui/mdx';
-import matter from 'gray-matter';
-import * as lucideIcons from 'lucide-react';
-import { CheckIcon } from 'lucide-react';
-import { notFound } from 'next/navigation';
-import { Callout } from '@/components/callout';
-import { FeedbackWrapper } from '@/components/feedback/feedback-wrapper';
-import { InteractiveHeader, InteractiveLayout } from '@/components/layouts/interactive';
-import {
-  DocsPage,
-  DocsPageBreadcrumb,
-  DocsPageContent,
-  DocsPageContentWrapper,
-  DocsPageDescription,
-  DocsPageHeader,
-  DocsPageLayout,
-  DocsPageProse,
-  DocsPageTitle,
-} from '@/components/layouts/page';
-import { LLMShare } from '@/components/llm-share';
-import { getMDXComponents } from '@/components/mdx';
-import { Mermaid } from '@/components/mdx/mermaid';
-import { APIPage } from '@/components/openapi/api-page';
-import { API } from '@/components/reference/api-page';
-import { Badge } from '@/components/ui/badge';
-import * as customIcons from '@/components/ui/icon';
-import { TagFilterSystem } from '@/components/ui/tag-filter-system';
-import { getAllFilterablePages, source } from '@/lib/source';
-import type { HeadingProps } from '@/types';
-
-export default async function Page(props: { params: Promise<{ slug?: string[] }> }) {
-  const params = await props.params;
-  const page = source.getPage(params.slug);
-  if (!page) notFound();
-
-  const fileContent = await fs.readFile(page.data._file.absolutePath, 'utf-8');
-  const { content: rawMarkdownContent } = matter(fileContent);
-
-  const LLMContent = rawMarkdownContent
-    .split('\n')
-    .filter((line) => !line.trim().startsWith('import'))
-    .join('\n')
-    .trim();
-
-  const MDX = page.data.body;
-
-  if (!MDX) {
-    console.error('MDX component is undefined for page:', page.url);
-    notFound();
-  }
-
-  // Get all filterable pages for tag filtering
-  const allFilterablePages = getAllFilterablePages();
-
-  // Extract section from current page URL for scoped filtering
-  const currentSection = page.url.split('/').filter(Boolean)[1] || 'general';
-
-  // Helper function to get icon component
-  const getIconComponent = (iconName: string) => {
-    const iconProps = { className: 'w-3 h-3 shrink-0' };
-
-    // Check custom icons first
-    const CustomIcon = (customIcons as any)[iconName];
-    if (CustomIcon && typeof CustomIcon === 'function') {
-      return <CustomIcon {...iconProps} />;
-    }
-
-    // Try with "Icon" suffix for custom icons
-    const CustomIconWithSuffix = (customIcons as any)[`${iconName}Icon`];
-    if (CustomIconWithSuffix && typeof CustomIconWithSuffix === 'function') {
-      return <CustomIconWithSuffix {...iconProps} />;
-    }
-
-    // Check lucide icons - try multiple naming patterns
-    const lucidePatterns = [
-      iconName, // exact name
-      `${iconName}Icon`, // with Icon suffix
-      iconName.charAt(0).toUpperCase() + iconName.slice(1), // capitalize first letter
-      `${iconName.charAt(0).toUpperCase() + iconName.slice(1)}Icon`, // capitalize + Icon
-    ];
-
-    for (const pattern of lucidePatterns) {
-      const LucideIcon = (lucideIcons as any)[pattern];
-      if (LucideIcon && typeof LucideIcon === 'function') {
-        return <LucideIcon {...iconProps} />;
-      }
-    }
-
-    return null;
-  };
-
-  // Convert icon names to React components
-  const interactiveLinks = page.data.interactiveLinks?.map((link) => ({
-    ...link,
-    icon: link.icon ? getIconComponent(link.icon) : undefined,
-  }));
-
-  // Prepare page data for context - only include serializable data
-  const pageData = {
-    toc: page.data.toc,
-    full: page.data.full,
-    interactive: page.data.interactive,
-    title: page.data.title,
-    description: page.data.description,
-    interactiveFeatures: page.data.interactiveFeatures,
-    interactiveLinks, // Use the processed links with React components
-  };
-
-  return (
-    <DocsPage data={pageData}>
-      {page.data.interactive ? (
-        <DocsPageLayout variant="interactive">
-          <DocsPageHeader>
-            <DocsPageBreadcrumb />
-            <InteractiveHeader>
-              <InteractiveLayout />
-            </InteractiveHeader>
-            <div className="border-b border-border/50" />
-          </DocsPageHeader>
-          <DocsPageContentWrapper>
-            <DocsPageContent>
-              <DocsPageProse>
-                <MDX
-                  components={getMDXComponents({
-                    // Custom overrides that need special handling
-                    API: (props) => <API {...props} />,
-                    APIPage: (props) => (
-                      <APIPage
-                        baseUrl="https://api.hiro.so"
-                        enablePlayground={true}
-                        clarityConversion={true}
-                        {...props}
-                      />
-                    ),
-                    h1: ({ children, ...props }: HeadingProps) => {
-                      const H1 = defaultMdxComponents.h1 as React.ComponentType<HeadingProps>;
-                      const id = typeof children === 'string' ? children : undefined;
-                      return (
-                        <H1 id={id} {...props}>
-                          {children}
-                        </H1>
-                      );
-                    },
-                    blockquote: (props) => <Callout>{props.children}</Callout>,
-                    code: (props: React.PropsWithChildren) => (
-                      <code
-                        {...props}
-                        className="border border-border rounded-md p-1 bg-code text-sm text-muted-foreground [h1_&]:text-xl [&_code]:text-sm"
-                      />
-                    ),
-                    hr: (props: React.PropsWithChildren) => (
-                      <hr {...props} className="border-t border-border/50 mt-0" />
-                    ),
-                    input: (props: React.InputHTMLAttributes<HTMLInputElement>) => {
-                      if (props.type === 'checkbox') {
-                        return (
-                          <div className="relative inline-flex items-center mr-2">
-                            <input {...props} className="sr-only" />
-                            <div
-                              className={`w-4 h-4 border-2 rounded-sm flex items-center justify-center ${
-                                props.checked
-                                  ? 'bg-brand-orange border-brand-orange text-white'
-                                  : 'border-border bg-background'
-                              }`}
-                            >
-                              {props.checked && <CheckIcon className="w-3 h-3" />}
-                            </div>
-                          </div>
-                        );
-                      }
-                      return <input {...props} />;
-                    },
-                    Mermaid,
-                  })}
-                />
-              </DocsPageProse>
-              <div className="border-b border-border/50" />
-              <FeedbackWrapper pageTitle={page.data.title} pagePath={page.url} />
-            </DocsPageContent>
-          </DocsPageContentWrapper>
-        </DocsPageLayout>
-      ) : (
-        <DocsPageLayout>
-          <DocsPageContentWrapper>
-            <DocsPageContent>
-              <DocsPageBreadcrumb />
-              <div className="flex justify-between items-start gap-4">
-                <div className="flex items-center gap-3">
-                  <DocsPageTitle className="mt-0" />
-                  {page.data.isRpc && (
-                    <Badge
-                      variant="outline"
-                      className="cursor-pointer font-normal text-[10px] px-1 py-0.5 uppercase bg-orange-500 text-neutral-950 dark:bg-brand-orange border-none"
-                    >
-                      RPC node
-                    </Badge>
-                  )}
-                </div>
-                {page.data.llm !== false && <LLMShare content={LLMContent} />}
-              </div>
-              <DocsPageDescription />
-
-              {/* Render TagFilterSystem if tags are present in frontmatter */}
-              {page.data.tags && page.data.tags.length > 0 && (
-                <TagFilterSystem
-                  tags={page.data.tags}
-                  pages={allFilterablePages}
-                  section={currentSection}
-                />
-              )}
-
-              <div className="border-b border-border/50" />
-              <DocsPageProse>
-                <MDX
-                  components={getMDXComponents({
-                    // Custom overrides that need special handling
-                    API: (props) => <API {...props} />,
-                    APIPage: (props) => (
-                      <APIPage
-                        baseUrl="https://api.hiro.so"
-                        enablePlayground={true}
-                        clarityConversion={true}
-                        {...props}
-                      />
-                    ),
-                    h1: ({ children, ...props }: HeadingProps) => {
-                      const H1 = defaultMdxComponents.h1 as React.ComponentType<HeadingProps>;
-                      const id = typeof children === 'string' ? children : undefined;
-                      return (
-                        <H1 id={id} {...props}>
-                          {children}
-                        </H1>
-                      );
-                    },
-                    blockquote: (props) => <Callout>{props.children}</Callout>,
-                    code: (props: React.PropsWithChildren) => (
-                      <code
-                        {...props}
-                        className="border border-border rounded-md p-1 bg-code text-sm text-muted-foreground [h1_&]:text-xl [&_code]:text-sm"
-                      />
-                    ),
-                    hr: (props: React.PropsWithChildren) => (
-                      <hr {...props} className="border-t border-border/50 mt-0" />
-                    ),
-                    input: (props: React.InputHTMLAttributes<HTMLInputElement>) => {
-                      if (props.type === 'checkbox') {
-                        return (
-                          <div className="relative inline-flex items-center mr-2">
-                            <input {...props} className="sr-only" />
-                            <div
-                              className={`w-4 h-4 border-2 rounded-sm flex items-center justify-center ${
-                                props.checked
-                                  ? 'bg-brand-orange border-brand-orange text-white'
-                                  : 'border-border bg-background'
-                              }`}
-                            >
-                              {props.checked && <CheckIcon className="w-3 h-3" />}
-                            </div>
-                          </div>
-                        );
-                      }
-                      return <input {...props} />;
-                    },
-                    Mermaid,
-                  })}
-                />
-              </DocsPageProse>
-              <div className="border-b border-border/50" />
-              <FeedbackWrapper pageTitle={page.data.title} pagePath={page.url} />
-            </DocsPageContent>
-          </DocsPageContentWrapper>
-        </DocsPageLayout>
-      )}
-    </DocsPage>
-  );
-}
-
-export async function generateStaticParams() {
-  return source.generateParams().filter(
-    (params) =>
-      // Filter out empty slug arrays (root path)
-      params.slug && params.slug.length > 0,
-  );
-}
-
-export async function generateMetadata(props: { params: Promise<{ slug?: string[] }> }) {
-  const params = await props.params;
-  const page = source.getPage(params.slug);
-  if (!page) notFound();
-
-  return {
-    title: page.data.title,
-    description: page.data.description,
-  };
-}
diff --git a/app/(docs)/error.tsx b/app/(docs)/error.tsx
deleted file mode 100644
index 39a19cc5b..000000000
--- a/app/(docs)/error.tsx
+++ /dev/null
@@ -1,60 +0,0 @@
-'use client';
-
-import Link from 'next/link';
-import React from 'react';
-
-export default function ErrorBoundary({
-  error,
-  reset,
-}: {
-  error: Error & { digest?: string };
-  reset: () => void;
-}) {
-  React.useEffect(() => {
-    // Hide sidebar for errors (including 404s)
-    const aside = document.querySelector('aside');
-    if (aside) {
-      aside.style.display = 'none';
-    }
-
-    return () => {
-      const asideCleanup = document.querySelector('aside');
-      if (asideCleanup) {
-        asideCleanup.style.display = '';
-      }
-    };
-  }, []);
-
-  // Check if this is likely a 404 error
-  const is404 = error.message?.includes('404') || error.message?.includes('not found');
-
-  return (
-    <div className="w-full flex flex-col items-center justify-center text-center min-h-[50vh]">
-      <h1 className="text-3xl font-regular mb-4">
-        {is404 ? 'Page not found' : 'Something went wrong'}
-      </h1>
-      <p className="text-muted-foreground max-w-md mb-6">
-        {is404
-          ? "The documentation you are looking for doesn't exist or has been moved."
-          : 'An error occurred while loading this page.'}
-      </p>
-      <div className="flex gap-4">
-        <Link
-          href="/"
-          className="inline-flex h-9 items-center rounded-md bg-brand-orange px-4 text-sm font-medium text-neutral-900 transition-colors hover:bg-brand-orange/90"
-        >
-          Back to homepage
-        </Link>
-        {!is404 && (
-          <button
-            type="button"
-            onClick={reset}
-            className="inline-flex h-9 items-center rounded-md border border-neutral-200 dark:border-neutral-800 px-4 text-sm font-medium transition-colors hover:bg-neutral-100 dark:hover:bg-neutral-800"
-          >
-            Try again
-          </button>
-        )}
-      </div>
-    </div>
-  );
-}
diff --git a/app/(docs)/layout.tsx b/app/(docs)/layout.tsx
deleted file mode 100644
index a5f895fb0..000000000
--- a/app/(docs)/layout.tsx
+++ /dev/null
@@ -1,12 +0,0 @@
-import type { ReactNode } from 'react';
-import { baseOptions } from '@/app/layout.config';
-import { DocsLayout } from '@/components/layouts/docs';
-import { source } from '@/lib/source';
-
-export default function Layout({ children }: { children: ReactNode }) {
-  return (
-    <DocsLayout tree={source.pageTree} {...baseOptions}>
-      {children}
-    </DocsLayout>
-  );
-}
diff --git a/app/(docs)/not-found.tsx b/app/(docs)/not-found.tsx
deleted file mode 100644
index 8be677752..000000000
--- a/app/(docs)/not-found.tsx
+++ /dev/null
@@ -1,29 +0,0 @@
-import Link from 'next/link';
-
-export default function DocsNotFound() {
-  return (
-    <>
-      <style
-        dangerouslySetInnerHTML={{
-          __html: `
-          aside {
-            display: none !important;
-          }
-        `,
-        }}
-      />
-      <div className="w-full flex flex-col items-center justify-center text-center min-h-[50vh]">
-        <h1 className="text-3xl font-regular mb-4">Page not found</h1>
-        <p className="text-muted-foreground max-w-md mb-6">
-          The documentation you are looking for doesn&apos;t exist or has been moved.
-        </p>
-        <Link
-          href="/"
-          className="inline-flex h-9 items-center rounded-md bg-brand-orange px-4 text-sm font-medium text-neutral-900 transition-colors hover:bg-brand-orange/90"
-        >
-          Back to homepage
-        </Link>
-      </div>
-    </>
-  );
-}
diff --git a/app/(docs)/raw/[...slug]/route.ts b/app/(docs)/raw/[...slug]/route.ts
deleted file mode 100644
index 136b322ff..000000000
--- a/app/(docs)/raw/[...slug]/route.ts
+++ /dev/null
@@ -1,80 +0,0 @@
-import { existsSync } from 'node:fs';
-import { readdir, readFile } from 'node:fs/promises';
-import { join } from 'node:path';
-import { type NextRequest, NextResponse } from 'next/server';
-
-async function findFileWithParentheses(
-  basePath: string,
-  segments: string[],
-): Promise<string | null> {
-  if (segments.length === 0) return null;
-
-  const [current, ...rest] = segments;
-  const currentPath = join(basePath, current);
-
-  if (rest.length === 0) {
-    if (existsSync(currentPath)) {
-      return currentPath;
-    }
-  } else if (existsSync(currentPath)) {
-    const found = await findFileWithParentheses(currentPath, rest);
-    if (found) return found;
-  }
-
-  try {
-    const entries = await readdir(basePath, { withFileTypes: true });
-    for (const entry of entries) {
-      if (entry.isDirectory() && entry.name.startsWith('(') && entry.name.endsWith(')')) {
-        const parenthesesPath = join(basePath, entry.name);
-
-        if (rest.length === 0) {
-          const filePath = join(parenthesesPath, current);
-          if (existsSync(filePath)) {
-            return filePath;
-          }
-        } else {
-          const found = await findFileWithParentheses(parenthesesPath, [current, ...rest]);
-          if (found) return found;
-        }
-      }
-    }
-  } catch (error) {
-    console.error(error);
-  }
-
-  return null;
-}
-
-export async function GET(
-  _request: NextRequest,
-  { params }: { params: Promise<{ slug: string[] }> },
-) {
-  try {
-    const { slug = [] } = await params;
-    const basePath = join(process.cwd(), 'content/docs');
-
-    const directPath = join(basePath, ...slug);
-    if (existsSync(directPath)) {
-      const content = await readFile(directPath, 'utf-8');
-      return new NextResponse(content, {
-        headers: {
-          'Content-Type': 'text/markdown; charset=utf-8',
-        },
-      });
-    }
-
-    const foundPath = await findFileWithParentheses(basePath, slug);
-    if (foundPath) {
-      const content = await readFile(foundPath, 'utf-8');
-      return new NextResponse(content, {
-        headers: {
-          'Content-Type': 'text/markdown; charset=utf-8',
-        },
-      });
-    }
-
-    return new NextResponse('File not found', { status: 404 });
-  } catch (error) {
-    return new NextResponse('File not found', { status: 404 });
-  }
-}
diff --git a/app/(home)/components/interactive-badge.tsx b/app/(home)/components/interactive-badge.tsx
deleted file mode 100644
index 8a48aabff..000000000
--- a/app/(home)/components/interactive-badge.tsx
+++ /dev/null
@@ -1,26 +0,0 @@
-'use client';
-
-import { Badge } from '@/components/ui/badge';
-
-interface InteractiveBadgeProps {
-  href: string;
-  label: string;
-}
-
-export function InteractiveBadge({ href, label }: InteractiveBadgeProps) {
-  return (
-    <button
-      onClick={(e) => {
-        e.preventDefault();
-        e.stopPropagation();
-        window.location.href = href;
-      }}
-      type="button"
-      className="hover:no-underline"
-    >
-      <Badge className="bg-neutral-50 dark:bg-neutral-800 text-neutral-500 dark:text-neutral-300 hover:bg-neutral-200 hover:text-primary dark:hover:text-primary dark:hover:bg-neutral-950 cursor-pointer transition-colors">
-        {label}
-      </Badge>
-    </button>
-  );
-}
diff --git a/app/(home)/icons.tsx b/app/(home)/icons.tsx
deleted file mode 100644
index 2a4a33f16..000000000
--- a/app/(home)/icons.tsx
+++ /dev/null
@@ -1,510 +0,0 @@
-import type { JSX, SVGProps } from 'react';
-
-export function HiroPlatformSVG(props: SVGProps<SVGSVGElement>) {
-  return (
-    <svg width="474" height="40" viewBox="0 0 474 40" fill="none" {...props}>
-      <path
-        d="M177.75 19.48C179.635 19.48 181.089 18.1875 181.089 16.2488C181.089 14.3101 179.635 12.9638 177.75 12.9638C175.865 12.9638 174.465 14.3101 174.465 16.2488C174.465 18.1875 175.865 19.48 177.75 19.48ZM177.75 39.6751C179.635 39.6751 181.089 38.3826 181.089 36.4439C181.089 34.5052 179.635 33.1588 177.75 33.1588C175.865 33.1588 174.465 34.5052 174.465 36.4439C174.465 38.3826 175.865 39.6751 177.75 39.6751Z"
-        fill="currentColor"
-      />
-      <path
-        d="M220.243 39.352V24.8654H229.344C236.992 24.8654 242.054 20.2878 242.054 13.233C242.054 6.17821 236.992 1.65451 229.344 1.65451H215.558V39.352H220.243ZM220.243 5.96279H228.967C234.03 5.96279 237.261 8.76318 237.261 13.233C237.261 17.7029 233.976 20.5571 228.914 20.5571H220.243V5.96279Z"
-        fill="currentColor"
-      />
-      <path
-        d="M263.226 35.313V1.65451H250.516V5.69353H258.81V35.313H250.516V39.352H271.573V35.313H263.226Z"
-        fill="currentColor"
-      />
-      <path
-        d="M304.332 35.313C303.093 35.313 302.555 34.936 302.555 33.4819V21.4726C302.555 15.064 298.516 11.5636 291.515 11.5636C284.891 11.5636 280.528 14.7409 279.882 20.1263H284.298C284.837 17.3259 287.422 15.4949 291.299 15.4949C295.607 15.4949 298.139 17.649 298.139 21.2033V23.0882H290.061C282.844 23.0882 279.021 26.1579 279.021 31.6509C279.021 36.6593 283.113 39.6751 289.145 39.6751C293.884 39.6751 296.631 37.5748 298.354 35.0976C298.408 37.7902 299.646 39.352 303.309 39.352H305.732V35.313H304.332ZM298.139 28.1504C298.139 32.728 294.961 35.9054 289.468 35.9054C285.806 35.9054 283.49 34.0743 283.49 31.3817C283.49 28.2582 285.698 26.8041 289.63 26.8041H298.139V28.1504Z"
-        fill="currentColor"
-      />
-      <path
-        d="M333.589 39.352V35.313H326.695C324.326 35.313 323.518 34.4513 323.518 32.1356V15.9257H333.158V11.8867H323.518V4.18563H319.102V11.8867H311.832V15.9257H319.102V32.1895C319.102 37.0363 320.987 39.352 326.264 39.352H333.589Z"
-        fill="currentColor"
-      />
-      <path
-        d="M352.478 39.352V15.9257H362.441V11.8867H352.478V8.70932C352.478 6.60904 353.285 5.69353 355.493 5.69353H362.441V1.65451H355.224C350.108 1.65451 348.062 3.97021 348.062 8.81703V11.8867H340.845V15.9257H348.062V39.352H352.478Z"
-        fill="currentColor"
-      />
-      <path
-        d="M383.052 39.6751C391.076 39.6751 396.677 33.9666 396.677 25.6193C396.677 17.272 391.076 11.5636 383.052 11.5636C375.028 11.5636 369.427 17.272 369.427 25.6193C369.427 33.9666 375.028 39.6751 383.052 39.6751ZM383.052 35.7438C377.613 35.7438 373.951 31.4894 373.951 25.6193C373.951 19.7493 377.613 15.4949 383.052 15.4949C388.491 15.4949 392.153 19.7493 392.153 25.6193C392.153 31.4894 388.491 35.7438 383.052 35.7438Z"
-        fill="currentColor"
-      />
-      <path
-        d="M425.182 11.8867C419.958 11.8867 417.481 14.3639 416.242 16.5181L416.081 11.8867H405.741V15.9257H411.88V35.313H405.741V39.352H424.32V35.313H416.296V25.4578C416.296 21.0956 418.181 16.195 424.59 16.195H428.144V11.8867H425.182Z"
-        fill="currentColor"
-      />
-      <path
-        d="M464.225 11.5636C460.616 11.5636 457.978 13.233 456.362 15.7641C455.123 13.233 452.538 11.5636 449.253 11.5636C446.13 11.5636 443.76 12.8022 442.36 14.7948L441.983 11.8867H438.267V39.352H442.683V22.442C442.683 18.5107 444.676 15.7103 448.23 15.7103C452.108 15.7103 453.508 18.403 453.508 21.7957V39.352H457.924V22.065C457.924 18.4568 460.024 15.7103 463.632 15.7103C467.025 15.7103 468.748 18.1337 468.748 21.7957V39.352H473.164V21.6342C473.164 15.3872 469.664 11.5636 464.225 11.5636Z"
-        fill="currentColor"
-      />
-      <path
-        d="M78.0193 35.3165V39.3616H56.9329V35.3165H65.2376V15.9014H56.9329V11.8563H69.6609V35.3165H78.0193V35.3165ZM64.1056 3.65891C64.1056 1.77055 65.6158 0.314026 67.5042 0.314026C69.3926 0.314026 70.8491 1.77055 70.8491 3.65891C70.8491 5.6546 69.3926 7.05746 67.5042 7.05746C65.6158 7.05746 64.1056 5.6546 64.1056 3.65891Z"
-        fill="currentColor"
-      />
-      <path
-        d="M108.68 11.8568V16.1701H105.121C98.7017 16.1701 96.8159 21.0788 96.8159 25.4458V35.3144H106.092V39.3594H86.2447V35.3144H92.3927V15.9018H86.2447V11.8568H96.5987L96.7597 16.4946C97.999 14.3379 100.48 11.8568 105.713 11.8568H108.68Z"
-        fill="currentColor"
-      />
-      <path
-        d="M115.505 25.6088C115.505 17.2504 121.114 11.5316 129.15 11.5316C137.187 11.5316 142.795 17.2479 142.795 25.6088C142.795 33.9697 137.187 39.6859 129.15 39.6859C121.114 39.6859 115.505 33.9697 115.505 25.6088V25.6088ZM138.265 25.6088C138.265 19.7316 134.598 15.4694 129.15 15.4694C123.702 15.4694 120.035 19.729 120.035 25.6088C120.035 31.4885 123.702 35.7482 129.15 35.7482C134.598 35.7482 138.265 31.4885 138.265 25.6088V25.6088Z"
-        fill="currentColor"
-      />
-      <path
-        d="M32.6852 39.3817L45.5001 1.43546H50.3807L37.5659 39.3817H32.6852Z"
-        fill="currentColor"
-      />
-      <path
-        d="M0.835785 39.3817L13.6506 1.43546H18.5287L5.71641 39.3817H0.835785Z"
-        fill="currentColor"
-      />
-      <path
-        d="M32.8545 18.3882H19.7356L18.3685 22.4333H31.4874L32.8545 18.3882Z"
-        fill="currentColor"
-      />
-    </svg>
-  );
-}
-
-export function FumaDocsSVG(props: SVGProps<SVGSVGElement>): JSX.Element {
-  return (
-    <svg width="80" height="80" viewBox="0 0 180 180" filter="url(#shadow)" {...props}>
-      <circle cx="90" cy="90" r="90" fill="url(#iconGradient)" />
-      <defs>
-        <filter id="shadow" colorInterpolationFilters="sRGB">
-          <feDropShadow
-            dx="0"
-            dy="0"
-            stdDeviation="1"
-            floodColor="hsl(var(--primary))"
-            floodOpacity="1"
-          />
-        </filter>
-        <linearGradient id="iconGradient" gradientTransform="rotate(45)">
-          <stop offset="45%" stopColor="hsl(var(--background))" />
-          <stop offset="100%" stopColor="hsl(var(--primary))" />
-        </linearGradient>
-      </defs>
-    </svg>
-  );
-}
-
-export function NextSVG(props: SVGProps<SVGSVGElement>): JSX.Element {
-  return (
-    <svg
-      aria-label="Next.js logomark"
-      data-theme="dark"
-      height="80"
-      role="img"
-      viewBox="0 0 180 180"
-      width="80"
-      {...props}
-    >
-      <mask
-        height="180"
-        id=":R0:mask0_408_134"
-        maskUnits="userSpaceOnUse"
-        style={{ maskType: 'alpha' }}
-        width="180"
-        x="0"
-        y="0"
-      >
-        <circle cx="90" cy="90" fill="black" r="90" />
-      </mask>
-      <g mask="url(#:R0:mask0_408_134)">
-        <circle
-          cx="90"
-          cy="90"
-          data-circle="true"
-          fill="black"
-          r="90"
-          stroke="white"
-          strokeWidth="6px"
-        />
-        <path
-          d="M149.508 157.52L69.142 54H54V125.97H66.1136V69.3836L139.999 164.845C143.333 162.614 146.509 160.165 149.508 157.52Z"
-          fill="url(#:R0:paint0_linear_408_134)"
-        />
-        <rect fill="url(#:R0:paint1_linear_408_134)" height="72" width="12" x="115" y="54" />
-      </g>
-      <defs>
-        <linearGradient
-          gradientUnits="userSpaceOnUse"
-          id=":R0:paint0_linear_408_134"
-          x1="109"
-          x2="144.5"
-          y1="116.5"
-          y2="160.5"
-        >
-          <stop stopColor="white" />
-          <stop offset="1" stopColor="white" stopOpacity="0" />
-        </linearGradient>
-        <linearGradient
-          gradientUnits="userSpaceOnUse"
-          id=":R0:paint1_linear_408_134"
-          x1="121"
-          x2="120.799"
-          y1="54"
-          y2="106.875"
-        >
-          <stop stopColor="white" />
-          <stop offset="1" stopColor="white" stopOpacity="0" />
-        </linearGradient>
-      </defs>
-    </svg>
-  );
-}
-
-export function SourceSVG(props: SVGProps<SVGSVGElement>): JSX.Element {
-  return (
-    <svg width="1320" height="800" viewBox="0 0 1320 800" fill="none" {...props}>
-      <path
-        d="M1308 599C1308 681.843 1240.84 749 1158 749C1075.16 749 1008 681.843 1008 599C1008 516.157 1075.16 449 1158 449C1240.84 449 1308 516.157 1308 599Z"
-        fill="url(#paint0_radial_31_18)"
-      />
-      <rect x="1076.5" y="513.5" width="164" height="173.545" rx="82" fill="#1D1A3F" />
-      <path
-        fillRule="evenodd"
-        clipRule="evenodd"
-        d="M1155.78 547.404C1159.18 544.9 1163.83 544.945 1167.19 547.514L1201.42 573.746C1206.35 577.527 1206.35 584.941 1201.42 588.722L1188.36 598.727L1201.64 609.359C1206.46 613.226 1206.33 620.592 1201.37 624.287L1166.23 650.459C1162.62 653.149 1157.61 652.931 1154.25 649.939L1126.75 625.474L1122.91 622.181C1105.75 607.486 1107.86 580.423 1127.06 568.544L1155.78 547.404ZM1183.3 594.667L1167.34 581.882C1163.93 579.151 1159.09 579.099 1155.62 581.755L1143.81 590.804C1138.88 594.586 1138.88 602 1143.81 605.781L1155.71 614.896C1159.12 617.506 1163.86 617.506 1167.26 614.896L1183.21 602.676L1197.68 614.266C1199.29 615.556 1199.24 618.011 1197.59 619.243L1162.45 645.416C1161.25 646.312 1159.58 646.239 1158.45 645.242L1130.94 620.756L1127.02 617.405C1113.08 605.46 1114.83 583.441 1130.49 573.836L1130.6 573.766L1159.53 552.469C1160.67 551.635 1162.22 551.649 1163.34 552.506L1197.57 578.738C1199.21 579.998 1199.21 582.47 1197.57 583.73L1183.3 594.667ZM1178.14 598.617L1163.41 609.904C1162.28 610.774 1160.7 610.774 1159.56 609.904L1147.67 600.789C1146.02 599.528 1146.02 597.057 1147.67 595.796L1159.47 586.748C1160.63 585.862 1162.24 585.88 1163.38 586.79L1178.14 598.617Z"
-        fill="#7C3AED"
-      />
-      <path
-        d="M1142 264C1142 379.98 1047.98 474 932 474C816.02 474 722 379.98 722 264C722 148.02 816.02 54 932 54C1047.98 54 1142 148.02 1142 264Z"
-        fill="url(#paint1_radial_31_18)"
-      />
-      <path
-        d="M1051.18 230.402H812.815C808.169 230.402 804.402 234.169 804.402 238.815V325.75C804.402 330.396 808.169 334.163 812.815 334.163H1051.18C1055.83 334.163 1059.6 330.396 1059.6 325.75V238.815C1059.6 234.169 1055.83 230.402 1051.18 230.402Z"
-        fill="#FF774C"
-      />
-      <path
-        d="M833.848 311.261V264.522L859.554 290.228L885.728 264.054V310.794"
-        stroke="black"
-        strokeWidth="9"
-      />
-      <path d="M934.804 303.783V249.098" stroke="black" strokeWidth="9" />
-      <path d="M909.565 279.946L934.804 305.185L960.044 279.946" stroke="black" strokeWidth="9" />
-      <path
-        d="M1032.02 306.101L977.337 251.435M977.804 306.12L1032.49 251.435"
-        stroke="black"
-        strokeWidth="9"
-      />
-      <g>
-        <path
-          d="M454.859 332.277H534.826V347.036H503.104V424.685H487.242V347.036H454.859V332.277Z"
-          fill="currentColor"
-        />
-        <path
-          d="M323.344 332.277V347.036H259.246V370.78H310.794V385.54H259.246V409.925H323.344V424.685H243.385V347.036H243.378V332.277H323.344Z"
-          fill="currentColor"
-        />
-        <path
-          d="M363.274 332.315H342.517L416.865 424.724H437.682L400.504 378.551L437.623 332.386L416.865 332.418L390.111 365.644L363.274 332.315Z"
-          fill="currentColor"
-        />
-        <path
-          d="M384.574 398.323L374.179 385.398L342.458 424.794H363.274L384.574 398.323Z"
-          fill="currentColor"
-        />
-        <path
-          fillRule="evenodd"
-          clipRule="evenodd"
-          d="M243.941 424.685L169.493 332.238H149.667V424.647H165.528V351.99L224.015 424.685H243.941Z"
-          fill="currentColor"
-        />
-        <path
-          d="M538.391 424.121C537.229 424.121 536.241 423.718 535.414 422.913C534.586 422.109 534.177 421.134 534.188 419.98C534.177 418.857 534.586 417.894 535.414 417.089C536.241 416.284 537.229 415.882 538.391 415.882C539.508 415.882 540.486 416.284 541.313 417.089C542.152 417.894 542.571 418.857 542.582 419.98C542.571 420.742 542.377 421.441 541.99 422.066C541.593 422.702 541.088 423.199 540.453 423.559C539.83 423.93 539.142 424.121 538.391 424.121Z"
-          fill="currentColor"
-        />
-        <path
-          d="M565.462 385.192H572.491V412.27C572.481 414.759 571.942 416.888 570.89 418.678C569.826 420.467 568.353 421.833 566.462 422.797C564.582 423.75 562.378 424.237 559.874 424.237C557.584 424.237 555.532 423.824 553.705 423.019C551.878 422.215 550.428 421.007 549.364 419.419C548.288 417.83 547.762 415.85 547.762 413.478H554.802C554.812 414.516 555.049 415.416 555.5 416.168C555.951 416.919 556.574 417.491 557.37 417.894C558.175 418.296 559.1 418.497 560.142 418.497C561.271 418.497 562.238 418.264 563.022 417.788C563.807 417.322 564.409 416.623 564.829 415.691C565.236 414.77 565.452 413.626 565.462 412.27V385.192Z"
-          fill="currentColor"
-        />
-        <path
-          d="M601.411 395.782C601.239 394.14 600.486 392.859 599.176 391.948C597.853 391.027 596.145 390.572 594.049 390.572C592.577 390.572 591.309 390.794 590.256 391.228C589.203 391.673 588.386 392.266 587.826 393.018C587.268 393.77 586.989 394.628 586.966 395.591C586.966 396.396 587.16 397.095 587.536 397.677C587.913 398.27 588.417 398.768 589.073 399.171C589.718 399.584 590.438 399.922 591.223 400.198C592.018 400.473 592.814 400.706 593.608 400.897L597.273 401.797C598.746 402.136 600.175 402.591 601.54 403.174C602.904 403.746 604.141 404.476 605.225 405.355C606.311 406.234 607.171 407.293 607.805 408.532C608.439 409.771 608.762 411.222 608.762 412.895C608.762 415.151 608.182 417.131 607.009 418.847C605.838 420.552 604.151 421.886 601.937 422.85C599.734 423.803 597.069 424.29 593.931 424.29C590.9 424.29 588.256 423.824 586.032 422.892C583.797 421.971 582.055 420.615 580.798 418.836C579.541 417.057 578.864 414.886 578.767 412.334H585.731C585.828 413.668 586.258 414.78 586.989 415.681C587.73 416.57 588.697 417.227 589.88 417.671C591.073 418.106 592.405 418.328 593.877 418.328C595.414 418.328 596.768 418.095 597.939 417.64C599.1 417.184 600.013 416.549 600.669 415.723C601.336 414.907 601.669 413.944 601.68 412.842C601.669 411.836 601.367 411 600.787 410.343C600.196 409.687 599.38 409.136 598.337 408.691C597.284 408.246 596.059 407.844 594.662 407.494L590.213 406.372C586.999 405.556 584.452 404.317 582.592 402.655C580.723 400.992 579.798 398.789 579.798 396.025C579.798 393.759 580.421 391.768 581.68 390.063C582.926 388.358 584.635 387.035 586.795 386.092C588.966 385.139 591.416 384.673 594.145 384.673C596.919 384.673 599.347 385.139 601.443 386.092C603.538 387.035 605.183 388.348 606.375 390.021C607.569 391.694 608.192 393.611 608.225 395.782H601.411Z"
-          fill="currentColor"
-        />
-      </g>
-      <path
-        d="M687 378C687 549.208 548.208 688 377 688C205.792 688 67 549.208 67 378C67 206.792 205.792 68 377 68C548.208 68 687 206.792 687 378Z"
-        fill="url(#paint2_radial_31_18)"
-      />
-      <defs>
-        <radialGradient
-          id="paint0_radial_31_18"
-          cx="0"
-          cy="0"
-          r="1"
-          gradientUnits="userSpaceOnUse"
-          gradientTransform="translate(1158 599) rotate(90) scale(150)"
-        >
-          <stop offset="0.749" stopOpacity="0" />
-          <stop offset="1" stopColor="#7C3AED" stopOpacity="0.3" />
-        </radialGradient>
-        <radialGradient
-          id="paint1_radial_31_18"
-          cx="0"
-          cy="0"
-          r="1"
-          gradientUnits="userSpaceOnUse"
-          gradientTransform="translate(932 264) rotate(90) scale(210)"
-        >
-          <stop offset="0.749" stopOpacity="0" />
-          <stop offset="1" stopColor="#FF774C" stopOpacity="0.3" />
-        </radialGradient>
-        <radialGradient
-          id="paint2_radial_31_18"
-          cx="0"
-          cy="0"
-          r="1"
-          gradientUnits="userSpaceOnUse"
-          gradientTransform="translate(377 378) rotate(90) scale(310)"
-        >
-          <stop offset="0.749" stopOpacity="0" />
-          <stop offset="1" stopColor="currentColor" stopOpacity="0.3" />
-        </radialGradient>
-      </defs>
-    </svg>
-  );
-}
-
-export function VercelLogo(props: SVGProps<SVGSVGElement>): JSX.Element {
-  return (
-    <svg
-      aria-label="Vercel logotype"
-      height="64"
-      role="img"
-      viewBox="0 0 283 64"
-      width="283"
-      {...props}
-    >
-      <path
-        d="M141.68 16.25c-11.04 0-19 7.2-19 18s8.96 18 20 18c6.67 0 12.55-2.64 16.19-7.09l-7.65-4.42c-2.02 2.21-5.09 3.5-8.54 3.5-4.79 0-8.86-2.5-10.37-6.5h28.02c.22-1.12.35-2.28.35-3.5 0-10.79-7.96-17.99-19-17.99zm-9.46 14.5c1.25-3.99 4.67-6.5 9.45-6.5 4.79 0 8.21 2.51 9.45 6.5h-18.9zm117.14-14.5c-11.04 0-19 7.2-19 18s8.96 18 20 18c6.67 0 12.55-2.64 16.19-7.09l-7.65-4.42c-2.02 2.21-5.09 3.5-8.54 3.5-4.79 0-8.86-2.5-10.37-6.5h28.02c.22-1.12.35-2.28.35-3.5 0-10.79-7.96-17.99-19-17.99zm-9.45 14.5c1.25-3.99 4.67-6.5 9.45-6.5 4.79 0 8.21 2.51 9.45 6.5h-18.9zm-39.03 3.5c0 6 3.92 10 10 10 4.12 0 7.21-1.87 8.8-4.92l7.68 4.43c-3.18 5.3-9.14 8.49-16.48 8.49-11.05 0-19-7.2-19-18s7.96-18 19-18c7.34 0 13.29 3.19 16.48 8.49l-7.68 4.43c-1.59-3.05-4.68-4.92-8.8-4.92-6.07 0-10 4-10 10zm82.48-29v46h-9v-46h9zM37.59.25l36.95 64H.64l36.95-64zm92.38 5l-27.71 48-27.71-48h10.39l17.32 30 17.32-30h10.39zm58.91 12v9.69c-1-.29-2.06-.49-3.2-.49-5.81 0-10 4-10 10v14.8h-9v-34h9v9.2c0-5.08 5.91-9.2 13.2-9.2z"
-        fill="currentColor"
-      />
-    </svg>
-  );
-}
-
-export function NetlifyLogo(props: SVGProps<SVGSVGElement>): JSX.Element {
-  return (
-    <svg aria-label="Netlify" width="512" height="209" viewBox="0 0 512 209" {...props}>
-      <g>
-        <path
-          d="M117.436 207.036V154.604L118.529 153.51H129.452L130.545 154.604V207.036L129.452 208.13H118.529L117.436 207.036Z"
-          fill="currentColor"
-        />
-        <path
-          d="M117.436 53.5225V1.09339L118.529 0H129.452L130.545 1.09339V53.5225L129.452 54.6159H118.529L117.436 53.5225Z"
-          fill="currentColor"
-        />
-        <path
-          d="M69.9539 169.238H68.4094L60.6869 161.512V159.967L78.7201 141.938L86.8976 141.942L87.9948 143.031V151.209L69.9539 169.238Z"
-          fill="currentColor"
-        />
-        <path
-          d="M69.9462 38.8917H68.4017L60.6792 46.6181V48.1626L78.7124 66.192L86.8899 66.1882L87.9871 65.0986V56.9212L69.9462 38.8917Z"
-          fill="currentColor"
-        />
-        <path
-          d="M1.09339 97.5104H75.3711L76.4645 98.6038V109.526L75.3711 110.62H1.09339L0 109.526V98.6038L1.09339 97.5104Z"
-          fill="currentColor"
-        />
-        <path
-          d="M440.999 97.5104H510.91L512.004 98.6038V109.526L510.91 110.62H436.633L435.539 109.526L439.905 98.6038L440.999 97.5104Z"
-          fill="currentColor"
-        />
-        <path
-          d="M212.056 108.727L210.963 109.821H177.079L175.986 110.914C175.986 113.101 178.173 119.657 186.916 119.657C190.196 119.657 193.472 118.564 194.566 116.377L195.659 115.284H208.776L209.869 116.377C208.776 122.934 203.313 132.774 186.916 132.774C168.336 132.774 159.589 119.657 159.589 104.357C159.589 89.0576 168.332 75.9408 185.822 75.9408C203.313 75.9408 212.056 89.0576 212.056 104.357V108.731V108.727ZM195.659 97.7971C195.659 96.7037 194.566 89.0538 185.822 89.0538C177.079 89.0538 175.986 96.7037 175.986 97.7971L177.079 98.8905H194.566L195.659 97.7971Z"
-          fill="currentColor"
-        />
-        <path
-          d="M242.66 115.284C242.66 117.47 243.753 118.564 245.94 118.564H255.776L256.87 119.657V130.587L255.776 131.681H245.94C236.103 131.681 227.36 127.307 227.36 115.284V91.2368L226.266 90.1434H218.617L217.523 89.05V78.1199L218.617 77.0265H226.266L227.36 75.9332V66.0965L228.453 65.0031H241.57L242.663 66.0965V75.9332L243.757 77.0265H255.78L256.874 78.1199V89.05L255.78 90.1434H243.757L242.663 91.2368V115.284H242.66Z"
-          fill="currentColor"
-        />
-        <path
-          d="M283.1 131.681H269.983L268.889 130.587V56.2636L269.983 55.1702H283.1L284.193 56.2636V130.587L283.1 131.681Z"
-          fill="currentColor"
-        />
-        <path
-          d="M312.61 68.2871H299.493L298.399 67.1937V56.2636L299.493 55.1702H312.61L313.703 56.2636V67.1937L312.61 68.2871ZM312.61 131.681H299.493L298.399 130.587V78.1237L299.493 77.0304H312.61L313.703 78.1237V130.587L312.61 131.681Z"
-          fill="currentColor"
-        />
-        <path
-          d="M363.98 56.2636V67.1937L362.886 68.2871H353.05C350.863 68.2871 349.769 69.3805 349.769 71.5672V75.9408L350.863 77.0342H361.793L362.886 78.1276V89.0576L361.793 90.151H350.863L349.769 91.2444V130.591L348.676 131.684H335.559L334.466 130.591V91.2444L333.372 90.151H325.723L324.629 89.0576V78.1276L325.723 77.0342H333.372L334.466 75.9408V71.5672C334.466 59.5438 343.209 55.1702 353.046 55.1702H362.882L363.976 56.2636H363.98Z"
-          fill="currentColor"
-        />
-        <path
-          d="M404.42 132.774C400.046 143.704 395.677 150.261 380.373 150.261H374.906L373.813 149.167V138.237L374.906 137.144H380.373C385.836 137.144 386.929 136.05 388.023 132.77V131.677L370.536 89.05V78.1199L371.63 77.0265H381.466L382.56 78.1199L395.677 115.284H396.77L409.887 78.1199L410.98 77.0265H420.817L421.91 78.1199V89.05L404.424 132.77L404.42 132.774Z"
-          fill="currentColor"
-        />
-        <path
-          d="M135.454 131.681L134.361 130.587L134.368 98.9172C134.368 93.4541 132.22 89.2182 125.625 89.0806C122.234 88.9926 118.354 89.0729 114.209 89.2488L113.59 89.8834L113.598 130.587L112.504 131.681H99.3913L98.2979 130.587V77.5388L99.3913 76.4454L128.901 76.1778C143.685 76.1778 149.668 86.3356 149.668 97.8009V130.587L148.575 131.681H135.454Z"
-          fill="currentColor"
-        />
-      </g>
-    </svg>
-  );
-}
-
-export function ContentlayerIcon(props: SVGProps<SVGSVGElement>): JSX.Element {
-  return (
-    <svg
-      aria-label="Contentlayer Icon"
-      width="22"
-      height="24"
-      viewBox="0 0 22 24"
-      fill="none"
-      {...props}
-    >
-      <path
-        fillRule="evenodd"
-        clipRule="evenodd"
-        d="M10.43 0.92268C11.1426 0.398115 12.1177 0.407491 12.82 0.945665L19.9928 6.44198C21.0266 7.23419 21.0266 8.78771 19.9928 9.57992L17.2573 11.6761L20.0379 13.9037C21.0493 14.7139 21.022 16.2574 19.9826 17.0315L12.62 22.5153C11.8634 23.0788 10.8134 23.0332 10.1089 22.4063L4.34789 17.2802L3.54224 16.5903C-0.0530112 13.5114 0.390183 7.84094 4.41274 5.35212L10.43 0.92268ZM16.1955 10.8254L12.8515 8.14659C12.1375 7.57457 11.1235 7.56365 10.3972 8.12017L7.92298 10.0161C6.88913 10.8084 6.88913 12.3619 7.92298 13.1541L10.4154 15.064C11.129 15.6108 12.1224 15.6108 12.836 15.064L16.1773 12.5036L19.2086 14.932C19.5457 15.2021 19.5366 15.7166 19.1901 15.9747L11.8275 21.4585C11.5753 21.6463 11.2253 21.6311 10.9905 21.4221L5.2248 16.2918L4.40495 15.5895C1.48255 13.0869 1.84941 8.47338 5.13088 6.46078L5.15471 6.44617L11.2165 1.98398C11.454 1.80913 11.779 1.81225 12.0132 1.99164L19.1859 7.48796C19.5305 7.75203 19.5305 8.26987 19.1859 8.53394L16.1955 10.8254ZM15.1155 11.653L12.0291 14.018C11.7913 14.2003 11.4601 14.2003 11.2223 14.018L8.72984 12.1081C8.38523 11.844 8.38523 11.3262 8.72984 11.0621L11.2041 9.16615C11.4462 8.98065 11.7842 8.98429 12.0222 9.17496L15.1155 11.653Z"
-        fill="currentColor"
-      />
-    </svg>
-  );
-}
-
-export function OpenAPIIcon(props: SVGProps<SVGSVGElement>): JSX.Element {
-  return (
-    <svg fill="currentColor" viewBox="0 0 512 512" {...props}>
-      <path d="m.2041784 294.3757629 135.0729218-.0019836c1.0510101 10.3673706 3.8841248 20.5690308 8.4522095 30.170166l-115.790062 69.7536621c-15.1902405-26.1945495-24.7731477-59.514801-27.7350693-99.9218445zm131.8023066 196.8029786 51.4067841-124.8407288c-5.2182617-2.7826233-10.2264862-6.0957642-14.9382172-9.9553528l-95.4706802 95.4720459c19.4898223 17.5570679 39.5628662 30.7094116 59.0021133 39.3240357zm-65.6047211-45.6471253 95.2843628-95.2860413c-4.9330902-4.9628906-9.4824219-10.8501282-13.6674042-17.6151123l-115.5066642 69.5827027c10.4910965 17.068634 22.1482162 31.8469848 33.8897056 43.3184509zm313.9973145 6.3275757-95.5295105-95.5253601c-1.0485229.8474121-2.1081848 1.671936-3.184845 2.4666138l69.7098999 115.7191772c9.7306824-6.0542297 19.3898926-13.8226013 29.0044556-22.6604309zm-36.7403565 27.5314331-69.5648804-115.4782104c-25.9638519 14.4993591-53.3182526 17.5528564-82.4063263 6.3365173l-51.3009338 124.5834045c70.200531 28.4663086 142.9616852 20.3123169 203.2721405-15.4417114zm-171.9461059-267.7199554-69.7079392-115.7203217c-10.1640396 6.5237503-19.8186493 14.1064529-29.0061646 22.6601715l95.5275803 95.5278625c1.0482636-.8363342 2.1095887-1.6597595 3.1865235-2.4677123zm-171.712616 73.5650482 134.7621918-.0019531c.291153-23.8374939 8.7095032-45.6818237 26.9275513-65.005722l-95.2863083-95.2865982c-43.9871293 46.6117019-65.8919295 100.1147994-66.4034348 160.2942733zm226.6937714-91.9374695.0058594-134.7585754c-44.7272644.2738724-84.0045013 12.32621-116.959053 32.5391159l69.5626297 115.4798889c13.0764617-7.6767197 28.6641692-12.980278 47.3905639-13.2604294zm186.4042816-37.1177979-99.4490967 99.4510498c2.2626953 6.6661987 3.7337646 13.5315552 4.4528503 20.4605103h135.0907898c-.8839111-40.9807434-14.4047241-80.9386597-40.0945434-119.9115601zm40.2803039 129.0516358h-134.747406c-.4680481 25.240448-9.8990479 48.2441101-26.923645 65.0134888l95.2901917 95.2860413c43.8191833-43.1222535 65.1218261-96.9472352 66.3808593-160.2995301zm-217.5386657-226.4921341-.0058594 135.0865784c7.082489.8026276 13.8835602 2.3424988 20.4658203 4.4556732l99.4153442-99.4150772c-35.131958-24.5753861-76.5397338-38.3618508-119.8753051-40.1271744zm195.1100769-56.1426528c-39.1646423 11.456749-55.5329285 55.1829491-38.7815857 88.6712189l-137.3599701 137.3618682c-32.4068756-16.1573944-74.9024811-1.5699463-87.7949829 36.0340729-15.7162628 45.8401489 24.2427673 91.8019104 71.7535858 82.5325317 42.0110779-8.1963196 62.3093567-54.1882019 44.4657593-90.0109253l137.4894714-137.4859314c34.6590576 17.2256775 79.5329285-1.0651627 89.3959961-41.653656 11.4301758-47.0377617-32.6579895-89.0548125-79.1682739-75.449179z" />
-    </svg>
-  );
-}
-
-export function EarthIcon(props: SVGProps<SVGSVGElement>): JSX.Element {
-  return (
-    <svg width="900" height="900" viewBox="0 0 900 900" fill="none" {...props}>
-      <circle cx="450" cy="450" r="450" fill="url(#paint0_linear_26_28)" />
-      <g opacity={0.3}>
-        <path
-          d="M449.5 450C449.5 572.589 441.666 683.562 429.004 763.878C422.672 804.039 415.136 836.512 406.779 858.934C402.599 870.147 398.224 878.817 393.711 884.674C389.191 890.541 384.602 893.5 380 893.5C375.398 893.5 370.809 890.541 366.289 884.674C361.776 878.817 357.401 870.147 353.221 858.934C344.864 836.512 337.328 804.039 330.996 763.878C318.334 683.562 310.5 572.589 310.5 450C310.5 327.411 318.334 216.438 330.996 136.122C337.328 95.9608 344.864 63.4878 353.221 41.0664C357.401 29.8528 361.776 21.183 366.289 15.3257C370.809 9.45855 375.398 6.5 380 6.5C384.602 6.5 389.191 9.45855 393.711 15.3257C398.224 21.183 402.599 29.8528 406.779 41.0664C415.136 63.4878 422.672 95.9608 429.004 136.122C441.666 216.438 449.5 327.411 449.5 450Z"
-          stroke="currentColor"
-        />
-        <path
-          d="M449.5 450C449.5 567.875 433.834 674.57 408.52 751.779C395.862 790.386 380.8 821.593 364.099 843.138C347.393 864.689 329.107 876.5 310 876.5C290.893 876.5 272.607 864.689 255.901 843.138C239.2 821.593 224.138 790.386 211.48 751.779C186.166 674.57 170.5 567.875 170.5 450C170.5 332.125 186.166 225.43 211.48 148.221C224.138 109.614 239.2 78.4069 255.901 56.8621C272.607 35.3107 290.893 23.5 310 23.5C329.107 23.5 347.393 35.3107 364.099 56.8621C380.8 78.4069 395.862 109.614 408.52 148.221C433.834 225.43 449.5 332.125 449.5 450Z"
-          stroke="currentColor"
-        />
-        <path
-          d="M449.5 449.5C449.5 554.228 426.009 649.016 388.055 717.605C350.091 786.211 297.725 828.5 240 828.5C182.275 828.5 129.909 786.211 91.9451 717.605C53.9908 649.016 30.5 554.228 30.5 449.5C30.5 344.772 53.9908 249.984 91.9451 181.395C129.909 112.789 182.275 70.5 240 70.5C297.725 70.5 350.091 112.789 388.055 181.395C426.009 249.984 449.5 344.772 449.5 449.5Z"
-          stroke="currentColor"
-        />
-        <path
-          d="M450.5 450C450.5 572.589 458.334 683.562 470.996 763.878C477.328 804.039 484.864 836.512 493.221 858.934C497.401 870.147 501.776 878.817 506.289 884.674C510.809 890.541 515.398 893.5 520 893.5C524.602 893.5 529.191 890.541 533.711 884.674C538.224 878.817 542.599 870.147 546.779 858.934C555.136 836.512 562.672 804.039 569.004 763.878C581.666 683.562 589.5 572.589 589.5 450C589.5 327.411 581.666 216.438 569.004 136.122C562.672 95.9608 555.136 63.4878 546.779 41.0664C542.599 29.8528 538.224 21.183 533.711 15.3257C529.191 9.45855 524.602 6.5 520 6.5C515.398 6.5 510.809 9.45855 506.289 15.3257C501.776 21.183 497.401 29.8528 493.221 41.0664C484.864 63.4878 477.328 95.9608 470.996 136.122C458.334 216.438 450.5 327.411 450.5 450Z"
-          stroke="currentColor"
-        />
-        <path
-          d="M450.5 450C450.5 567.875 466.166 674.57 491.48 751.779C504.138 790.386 519.2 821.593 535.901 843.138C552.607 864.689 570.893 876.5 590 876.5C609.107 876.5 627.393 864.689 644.099 843.138C660.8 821.593 675.862 790.386 688.52 751.779C713.834 674.57 729.5 567.875 729.5 450C729.5 332.125 713.834 225.43 688.52 148.221C675.862 109.614 660.8 78.4069 644.099 56.8621C627.393 35.3107 609.107 23.5 590 23.5C570.893 23.5 552.607 35.3107 535.901 56.8621C519.2 78.4069 504.138 109.614 491.48 148.221C466.166 225.43 450.5 332.125 450.5 450Z"
-          stroke="currentColor"
-        />
-        <path
-          d="M450.5 449.5C450.5 554.228 473.991 649.016 511.945 717.605C549.909 786.211 602.275 828.5 660 828.5C717.725 828.5 770.091 786.211 808.055 717.605C846.009 649.016 869.5 554.228 869.5 449.5C869.5 344.772 846.009 249.984 808.055 181.395C770.091 112.789 717.725 70.5 660 70.5C602.275 70.5 549.909 112.789 511.945 181.395C473.991 249.984 450.5 344.772 450.5 449.5Z"
-          stroke="currentColor"
-        />
-        <path
-          d="M450 450.5C572.589 450.5 683.562 458.334 763.878 470.996C804.039 477.328 836.512 484.864 858.934 493.221C870.147 497.401 878.817 501.776 884.674 506.289C890.541 510.809 893.5 515.398 893.5 520C893.5 524.602 890.541 529.191 884.674 533.711C878.817 538.224 870.147 542.599 858.934 546.779C836.512 555.136 804.039 562.672 763.878 569.004C683.562 581.666 572.589 589.5 450 589.5C327.411 589.5 216.438 581.666 136.122 569.004C95.9608 562.672 63.4878 555.136 41.0664 546.779C29.8528 542.599 21.183 538.224 15.3257 533.711C9.45855 529.191 6.5 524.602 6.5 520C6.5 515.398 9.45855 510.809 15.3257 506.289C21.183 501.776 29.8528 497.401 41.0664 493.221C63.4878 484.864 95.9608 477.328 136.122 470.996C216.438 458.334 327.411 450.5 450 450.5Z"
-          stroke="currentColor"
-        />
-        <path
-          d="M450 450.5C567.875 450.5 674.57 466.166 751.779 491.48C790.386 504.138 821.593 519.2 843.138 535.901C864.689 552.607 876.5 570.893 876.5 590C876.5 609.107 864.689 627.393 843.138 644.099C821.593 660.8 790.386 675.862 751.779 688.52C674.57 713.834 567.875 729.5 450 729.5C332.125 729.5 225.43 713.834 148.221 688.52C109.614 675.862 78.4069 660.8 56.8621 644.099C35.3107 627.393 23.5 609.107 23.5 590C23.5 570.893 35.3107 552.607 56.8621 535.901C78.4069 519.2 109.614 504.138 148.221 491.48C225.43 466.166 332.125 450.5 450 450.5Z"
-          stroke="currentColor"
-        />
-        <path
-          d="M449.5 450.5C554.228 450.5 649.016 473.991 717.605 511.945C786.211 549.909 828.5 602.275 828.5 660C828.5 717.725 786.211 770.091 717.605 808.055C649.016 846.009 554.228 869.5 449.5 869.5C344.772 869.5 249.984 846.009 181.395 808.055C112.789 770.091 70.5 717.725 70.5 660C70.5 602.275 112.789 549.909 181.395 511.945C249.984 473.991 344.772 450.5 449.5 450.5Z"
-          stroke="currentColor"
-        />
-        <path
-          d="M450 449.5C572.589 449.5 683.562 441.666 763.878 429.004C804.039 422.672 836.512 415.136 858.934 406.779C870.147 402.599 878.817 398.224 884.674 393.711C890.541 389.191 893.5 384.602 893.5 380C893.5 375.398 890.541 370.809 884.674 366.289C878.817 361.776 870.147 357.401 858.934 353.221C836.512 344.864 804.039 337.328 763.878 330.996C683.562 318.334 572.589 310.5 450 310.5C327.411 310.5 216.438 318.334 136.122 330.996C95.9608 337.328 63.4878 344.864 41.0664 353.221C29.8528 357.401 21.183 361.776 15.3257 366.289C9.45855 370.809 6.5 375.398 6.5 380C6.5 384.602 9.45855 389.191 15.3257 393.711C21.183 398.224 29.8528 402.599 41.0664 406.779C63.4878 415.136 95.9608 422.672 136.122 429.004C216.438 441.666 327.411 449.5 450 449.5Z"
-          stroke="currentColor"
-        />
-        <path
-          d="M450 449.5C567.875 449.5 674.57 433.834 751.779 408.52C790.386 395.862 821.593 380.8 843.138 364.099C864.689 347.393 876.5 329.107 876.5 310C876.5 290.893 864.689 272.607 843.138 255.901C821.593 239.2 790.386 224.138 751.779 211.48C674.57 186.166 567.875 170.5 450 170.5C332.125 170.5 225.43 186.166 148.221 211.48C109.614 224.138 78.4069 239.2 56.8621 255.901C35.3107 272.607 23.5 290.893 23.5 310C23.5 329.107 35.3107 347.393 56.8621 364.099C78.4069 380.8 109.614 395.862 148.221 408.52C225.43 433.834 332.125 449.5 450 449.5Z"
-          stroke="currentColor"
-        />
-        <path
-          d="M449.5 449.5C554.228 449.5 649.016 426.009 717.605 388.055C786.211 350.091 828.5 297.725 828.5 240C828.5 182.275 786.211 129.909 717.605 91.9451C649.016 53.9908 554.228 30.5 449.5 30.5C344.772 30.5 249.984 53.9908 181.395 91.9451C112.789 129.909 70.5 182.275 70.5 240C70.5 297.725 112.789 350.091 181.395 388.055C249.984 426.009 344.772 449.5 449.5 449.5Z"
-          stroke="currentColor"
-        />
-      </g>
-
-      <path
-        d="M449.5 450C449.5 572.589 441.666 683.562 429.004 763.878C422.672 804.039 415.136 836.512 406.779 858.934C402.599 870.147 398.224 878.817 393.711 884.674C389.191 890.541 384.602 893.5 380 893.5C375.398 893.5 370.809 890.541 366.289 884.674C361.776 878.817 357.401 870.147 353.221 858.934C344.864 836.512 337.328 804.039 330.996 763.878C318.334 683.562 310.5 572.589 310.5 450C310.5 327.411 318.334 216.438 330.996 136.122C337.328 95.9608 344.864 63.4878 353.221 41.0664C357.401 29.8528 361.776 21.183 366.289 15.3257C370.809 9.45855 375.398 6.5 380 6.5C384.602 6.5 389.191 9.45855 393.711 15.3257C398.224 21.183 402.599 29.8528 406.779 41.0664C415.136 63.4878 422.672 95.9608 429.004 136.122C441.666 216.438 449.5 327.411 449.5 450Z"
-        stroke="currentColor"
-        className="animate-stroke"
-      />
-      <path
-        d="M449.5 450C449.5 567.875 433.834 674.57 408.52 751.779C395.862 790.386 380.8 821.593 364.099 843.138C347.393 864.689 329.107 876.5 310 876.5C290.893 876.5 272.607 864.689 255.901 843.138C239.2 821.593 224.138 790.386 211.48 751.779C186.166 674.57 170.5 567.875 170.5 450C170.5 332.125 186.166 225.43 211.48 148.221C224.138 109.614 239.2 78.4069 255.901 56.8621C272.607 35.3107 290.893 23.5 310 23.5C329.107 23.5 347.393 35.3107 364.099 56.8621C380.8 78.4069 395.862 109.614 408.52 148.221C433.834 225.43 449.5 332.125 449.5 450Z"
-        stroke="currentColor"
-        className="animate-stroke"
-      />
-      <path
-        d="M449.5 449.5C449.5 554.228 426.009 649.016 388.055 717.605C350.091 786.211 297.725 828.5 240 828.5C182.275 828.5 129.909 786.211 91.9451 717.605C53.9908 649.016 30.5 554.228 30.5 449.5C30.5 344.772 53.9908 249.984 91.9451 181.395C129.909 112.789 182.275 70.5 240 70.5C297.725 70.5 350.091 112.789 388.055 181.395C426.009 249.984 449.5 344.772 449.5 449.5Z"
-        stroke="currentColor"
-        className="animate-stroke"
-      />
-      <path
-        d="M450.5 450C450.5 572.589 458.334 683.562 470.996 763.878C477.328 804.039 484.864 836.512 493.221 858.934C497.401 870.147 501.776 878.817 506.289 884.674C510.809 890.541 515.398 893.5 520 893.5C524.602 893.5 529.191 890.541 533.711 884.674C538.224 878.817 542.599 870.147 546.779 858.934C555.136 836.512 562.672 804.039 569.004 763.878C581.666 683.562 589.5 572.589 589.5 450C589.5 327.411 581.666 216.438 569.004 136.122C562.672 95.9608 555.136 63.4878 546.779 41.0664C542.599 29.8528 538.224 21.183 533.711 15.3257C529.191 9.45855 524.602 6.5 520 6.5C515.398 6.5 510.809 9.45855 506.289 15.3257C501.776 21.183 497.401 29.8528 493.221 41.0664C484.864 63.4878 477.328 95.9608 470.996 136.122C458.334 216.438 450.5 327.411 450.5 450Z"
-        stroke="currentColor"
-        className="animate-stroke"
-      />
-      <path
-        d="M450.5 450C450.5 567.875 466.166 674.57 491.48 751.779C504.138 790.386 519.2 821.593 535.901 843.138C552.607 864.689 570.893 876.5 590 876.5C609.107 876.5 627.393 864.689 644.099 843.138C660.8 821.593 675.862 790.386 688.52 751.779C713.834 674.57 729.5 567.875 729.5 450C729.5 332.125 713.834 225.43 688.52 148.221C675.862 109.614 660.8 78.4069 644.099 56.8621C627.393 35.3107 609.107 23.5 590 23.5C570.893 23.5 552.607 35.3107 535.901 56.8621C519.2 78.4069 504.138 109.614 491.48 148.221C466.166 225.43 450.5 332.125 450.5 450Z"
-        stroke="currentColor"
-        className="animate-stroke"
-      />
-      <path
-        d="M450.5 449.5C450.5 554.228 473.991 649.016 511.945 717.605C549.909 786.211 602.275 828.5 660 828.5C717.725 828.5 770.091 786.211 808.055 717.605C846.009 649.016 869.5 554.228 869.5 449.5C869.5 344.772 846.009 249.984 808.055 181.395C770.091 112.789 717.725 70.5 660 70.5C602.275 70.5 549.909 112.789 511.945 181.395C473.991 249.984 450.5 344.772 450.5 449.5Z"
-        stroke="currentColor"
-        className="animate-stroke"
-      />
-      <path
-        d="M450 450.5C572.589 450.5 683.562 458.334 763.878 470.996C804.039 477.328 836.512 484.864 858.934 493.221C870.147 497.401 878.817 501.776 884.674 506.289C890.541 510.809 893.5 515.398 893.5 520C893.5 524.602 890.541 529.191 884.674 533.711C878.817 538.224 870.147 542.599 858.934 546.779C836.512 555.136 804.039 562.672 763.878 569.004C683.562 581.666 572.589 589.5 450 589.5C327.411 589.5 216.438 581.666 136.122 569.004C95.9608 562.672 63.4878 555.136 41.0664 546.779C29.8528 542.599 21.183 538.224 15.3257 533.711C9.45855 529.191 6.5 524.602 6.5 520C6.5 515.398 9.45855 510.809 15.3257 506.289C21.183 501.776 29.8528 497.401 41.0664 493.221C63.4878 484.864 95.9608 477.328 136.122 470.996C216.438 458.334 327.411 450.5 450 450.5Z"
-        stroke="currentColor"
-        className="animate-stroke"
-      />
-      <path
-        d="M450 450.5C567.875 450.5 674.57 466.166 751.779 491.48C790.386 504.138 821.593 519.2 843.138 535.901C864.689 552.607 876.5 570.893 876.5 590C876.5 609.107 864.689 627.393 843.138 644.099C821.593 660.8 790.386 675.862 751.779 688.52C674.57 713.834 567.875 729.5 450 729.5C332.125 729.5 225.43 713.834 148.221 688.52C109.614 675.862 78.4069 660.8 56.8621 644.099C35.3107 627.393 23.5 609.107 23.5 590C23.5 570.893 35.3107 552.607 56.8621 535.901C78.4069 519.2 109.614 504.138 148.221 491.48C225.43 466.166 332.125 450.5 450 450.5Z"
-        stroke="currentColor"
-        className="animate-stroke"
-      />
-      <path
-        d="M449.5 450.5C554.228 450.5 649.016 473.991 717.605 511.945C786.211 549.909 828.5 602.275 828.5 660C828.5 717.725 786.211 770.091 717.605 808.055C649.016 846.009 554.228 869.5 449.5 869.5C344.772 869.5 249.984 846.009 181.395 808.055C112.789 770.091 70.5 717.725 70.5 660C70.5 602.275 112.789 549.909 181.395 511.945C249.984 473.991 344.772 450.5 449.5 450.5Z"
-        stroke="currentColor"
-        className="animate-stroke"
-      />
-      <path
-        d="M450 449.5C572.589 449.5 683.562 441.666 763.878 429.004C804.039 422.672 836.512 415.136 858.934 406.779C870.147 402.599 878.817 398.224 884.674 393.711C890.541 389.191 893.5 384.602 893.5 380C893.5 375.398 890.541 370.809 884.674 366.289C878.817 361.776 870.147 357.401 858.934 353.221C836.512 344.864 804.039 337.328 763.878 330.996C683.562 318.334 572.589 310.5 450 310.5C327.411 310.5 216.438 318.334 136.122 330.996C95.9608 337.328 63.4878 344.864 41.0664 353.221C29.8528 357.401 21.183 361.776 15.3257 366.289C9.45855 370.809 6.5 375.398 6.5 380C6.5 384.602 9.45855 389.191 15.3257 393.711C21.183 398.224 29.8528 402.599 41.0664 406.779C63.4878 415.136 95.9608 422.672 136.122 429.004C216.438 441.666 327.411 449.5 450 449.5Z"
-        stroke="currentColor"
-        className="animate-stroke"
-      />
-      <path
-        d="M450 449.5C567.875 449.5 674.57 433.834 751.779 408.52C790.386 395.862 821.593 380.8 843.138 364.099C864.689 347.393 876.5 329.107 876.5 310C876.5 290.893 864.689 272.607 843.138 255.901C821.593 239.2 790.386 224.138 751.779 211.48C674.57 186.166 567.875 170.5 450 170.5C332.125 170.5 225.43 186.166 148.221 211.48C109.614 224.138 78.4069 239.2 56.8621 255.901C35.3107 272.607 23.5 290.893 23.5 310C23.5 329.107 35.3107 347.393 56.8621 364.099C78.4069 380.8 109.614 395.862 148.221 408.52C225.43 433.834 332.125 449.5 450 449.5Z"
-        stroke="currentColor"
-        className="animate-stroke"
-      />
-      <path
-        d="M449.5 449.5C554.228 449.5 649.016 426.009 717.605 388.055C786.211 350.091 828.5 297.725 828.5 240C828.5 182.275 786.211 129.909 717.605 91.9451C649.016 53.9908 554.228 30.5 449.5 30.5C344.772 30.5 249.984 53.9908 181.395 91.9451C112.789 129.909 70.5 182.275 70.5 240C70.5 297.725 112.789 350.091 181.395 388.055C249.984 426.009 344.772 449.5 449.5 449.5Z"
-        stroke="currentColor"
-        className="animate-stroke"
-      />
-      <defs>
-        <linearGradient
-          id="paint0_linear_26_28"
-          x1="450"
-          y1="0"
-          x2="450"
-          y2="900"
-          gradientUnits="userSpaceOnUse"
-        >
-          <stop stopColor="rgba(255,255,255,0)" />
-          <stop offset="0.5" stopColor="rgba(200,200,255,0.2)" />
-          <stop offset="1" stopColor="rgba(255,255,255,0)" />
-        </linearGradient>
-      </defs>
-    </svg>
-  );
-}
diff --git a/app/(home)/layout.tsx b/app/(home)/layout.tsx
deleted file mode 100644
index 5b9820521..000000000
--- a/app/(home)/layout.tsx
+++ /dev/null
@@ -1,7 +0,0 @@
-import type { ReactNode } from 'react';
-import { baseOptions } from '@/app/layout.config';
-import { HomeLayout } from '@/components/layouts/home';
-
-export default function Layout({ children }: { children: ReactNode }) {
-  return <HomeLayout {...baseOptions}>{children}</HomeLayout>;
-}
diff --git a/app/(home)/page.tsx b/app/(home)/page.tsx
deleted file mode 100644
index 321bbe10b..000000000
--- a/app/(home)/page.tsx
+++ /dev/null
@@ -1,194 +0,0 @@
-import { ImageZoom } from 'fumadocs-ui/components/image-zoom';
-import { Braces, Database, Play } from 'lucide-react';
-import { Card, Cards, SmallCard } from '@/components/card';
-import {
-  API,
-  Chainhook,
-  Clarinet,
-  Clarity,
-  Hiro,
-  Js,
-  Ordinals,
-  Runes,
-  StacksIcon,
-} from '@/components/ui/icon';
-import heroImage from '@/public/stacks-hero.svg';
-
-export default function HomePage() {
-  return (
-    <main className="my-2 space-y-10">
-      <div className="px-4 md:px-[var(--nav-offset)] py-6">
-        <div className="space-y-10">
-          <div className="space-y-1">
-            <div className="flex space-x-6 items-end">
-              <ImageZoom
-                alt="banner"
-                src={heroImage}
-                className="mt-0 mb-6 first-line:rounded-xl bg-background"
-                priority
-              />
-
-              <div className="flex flex-col [&_p]:mb-6 space-y-3">
-                <h3 className="text-3xl">Welcome to Hiro Docs</h3>
-                <p>Find all the guides and resources you need to build on Stacks.</p>
-              </div>
-            </div>
-          </div>
-          <Cards>
-            <Card
-              className="group space-y-1"
-              icon={
-                <API className="transition-colors duration-500 ease-in-out group-hover:text-primary" />
-              }
-              href="/apis/stacks-blockchain-api"
-              title="Stacks API Reference"
-              description="Explore API endpoints for interacting with the Stacks Blockchain."
-            />
-            <Card
-              className="group space-y-1"
-              icon={
-                <Play className="transition-colors duration-500 ease-in-out group-hover:text-primary" />
-              }
-              href="/resources/guides"
-              title="Guides"
-              description="Explore guides for building on Stacks."
-            />
-          </Cards>
-          <div className="flex flex-col">
-            <h4 id="explore-by-category" className="scroll-m-20">
-              <a
-                href="#explore-by-category"
-                className="not-prose group text-sm text-muted-foreground uppercase"
-              >
-                Tools
-              </a>
-            </h4>
-            <hr className="border-t border-border my-2" />
-            <Cards>
-              <SmallCard
-                icon={<Clarinet />}
-                href="/tools/clarinet"
-                title="Clarinet"
-                description="A comprehensive development environment for building and testing Clarity smart contracts."
-              />
-              <SmallCard
-                icon={<Chainhook />}
-                href="/tools/chainhook"
-                title="Chainhook"
-                description="Create custom event streams and triggers for real-time blockchain data processing."
-              />
-              <SmallCard
-                icon={<Braces />}
-                href="/tools/contract-monitoring"
-                title="Contract Monitoring"
-                description="Monitor and track smart contract activity and performance metrics."
-              />
-              <SmallCard
-                icon={<Database />}
-                href="/tools/bitcoin-indexer"
-                title="Bitcoin Indexer"
-                description="Index and query Bitcoin blockchain data with high-performance indexing."
-              />
-            </Cards>
-          </div>
-          <div className="flex flex-col">
-            <h4 id="explore-by-category" className="text-muted-foreground scroll-m-20">
-              <a href="#explore-by-category" className="not-prose group text-sm uppercase">
-                APIs
-              </a>
-            </h4>
-            <hr className="border-t border-border my-2" />
-            <Cards>
-              <SmallCard
-                icon={<StacksIcon />}
-                href="/apis/stacks-blockchain-api"
-                title="Stacks Blockchain API"
-                description="Comprehensive REST API for interacting with the Stacks blockchain and network data."
-              />
-              <SmallCard
-                icon={<API />}
-                href="/apis/token-metadata-api"
-                title="Token Metadata API"
-                description="Fast, reliable metadata for fungible and non-fungible tokens on Stacks."
-              />
-              <SmallCard
-                icon={<Hiro />}
-                href="/apis/platform-api"
-                title="Platform API"
-                description="Programmatically manage devnets and chainhooks via REST interface."
-              />
-              <SmallCard
-                icon={<Ordinals />}
-                href="/apis/ordinals-api"
-                title="Ordinals API"
-                description="Complete Bitcoin ordinals and BRC-20 token data with caching optimization."
-              />
-              <SmallCard
-                icon={<Runes />}
-                href="/apis/runes-api"
-                title="Runes API"
-                description="Fast, reliable data for Bitcoin Runes via an easy-to-use REST interface."
-              />
-              <SmallCard
-                icon={<API />}
-                href="/apis/signer-metrics-api"
-                title="Signer Metrics API"
-                description="Monitor and analyze signer behavior and performance on the Stacks network."
-              />
-            </Cards>
-          </div>
-          <div className="flex flex-col">
-            <h4 id="explore-by-category" className="text-muted-foreground scroll-m-20">
-              <a href="#explore-by-category" className="not-prose group text-sm uppercase">
-                Libraries &amp; SDKs
-              </a>
-            </h4>
-            <hr className="border-t border-border my-2" />
-            <Cards>
-              <SmallCard
-                icon={<Js />}
-                href="/reference/stacks.js"
-                title="Stacks.js"
-                description="JavaScript SDK for building applications on Stacks with transactions, network utilities, and wallet integration."
-              />
-              <SmallCard
-                icon={<Js />}
-                href="/tools/clarinet/sdk-introduction"
-                title="Clarinet JS SDK"
-                description="JavaScript SDK for testing and interacting with Clarity smart contracts in simulated environments."
-              />
-              {/* <SmallCard
-                icon={<StacksIcon />}
-                href="/reference/stacks-blockchain-api"
-                title="Stacks Blockchain API Client"
-                description="Type-safe JavaScript client library for interacting with the Stacks Blockchain API."
-              /> */}
-            </Cards>
-          </div>
-          <div className="flex flex-col">
-            <h4 id="explore-by-category" className="text-muted-foreground scroll-m-20">
-              <a href="#explore-by-category" className="not-prose group text-sm uppercase">
-                Resources
-              </a>
-            </h4>
-            <hr className="border-t border-border my-2" />
-            <Cards>
-              <SmallCard
-                icon={<Clarity />}
-                href="/resources/clarity"
-                title="Clarity Reference"
-                description="Comprehensive guides and function reference for the Clarity smart contract language."
-              />
-              <SmallCard
-                icon={<Database />}
-                href="/resources/archive"
-                title="Hiro Archive"
-                description="Data snapshots for quickly bootstrapping Stacks ecosystem services with pre-loaded data."
-              />
-            </Cards>
-          </div>
-        </div>
-      </div>
-    </main>
-  );
-}
diff --git a/app/[locale]/(home)/apis/_pages/page.es.tsx b/app/[locale]/(home)/apis/_pages/page.es.tsx
index db8878c9c..82e0bb19a 100644
--- a/app/[locale]/(home)/apis/_pages/page.es.tsx
+++ b/app/[locale]/(home)/apis/_pages/page.es.tsx
@@ -15,49 +15,55 @@ export default function APIsPage() {
               icon={<StacksIcon />}
               href="/apis/stacks-blockchain-api"
               title="API de la cadena de bloques Stacks"
-              description="API REST completa para interactuar con la cadena de bloques de Stacks y los datos de la red." />
+              description="API REST completa para interactuar con la cadena de bloques de Stacks y los datos de la red."
+            />
 
             <IndexCard
               icon={<StacksIcon />}
               href="/apis/stacks-node-rpc-api"
               title="API RPC del Nodo Stacks"
-              description="Métodos de nodo de blockchain sin procesar: enviar transacciones, llamar contratos de solo lectura, consultar mempool/estado." />
+              description="Métodos de nodo de blockchain sin procesar: enviar transacciones, llamar contratos de solo lectura, consultar mempool/estado."
+            />
 
             <IndexCard
               icon={<API />}
               href="/apis/token-metadata-api"
               title="API de Metadatos de Tokens"
-              description="Metadatos rápidos y confiables para tokens fungibles y no fungibles en Stacks." />
+              description="Metadatos rápidos y confiables para tokens fungibles y no fungibles en Stacks."
+            />
 
             <IndexCard
               icon={<Hiro />}
               href="/apis/platform-api"
               title="API de la plataforma"
-              description="Gestione programáticamente devnets y chainhooks a través de la interfaz REST." />
+              description="Gestione programáticamente devnets y chainhooks a través de la interfaz REST."
+            />
 
             <IndexCard
               icon={<Ordinals />}
               href="/apis/ordinals-api"
               title="API de Ordinals"
               tag="Bitcoin L1"
-              description="Datos completos de ordinales de Bitcoin y tokens BRC-20 con optimización de caché." />
+              description="Datos completos de ordinales de Bitcoin y tokens BRC-20 con optimización de caché."
+            />
 
             <IndexCard
               icon={<Runes />}
               href="/apis/runes-api"
               title="API de Runas"
               tag="Bitcoin L1"
-              description="Datos rápidos y confiables para Bitcoin Runes a través de una interfaz REST fácil de usar." />
+              description="Datos rápidos y confiables para Bitcoin Runes a través de una interfaz REST fácil de usar."
+            />
 
             <IndexCard
               icon={<API />}
               href="/apis/signer-metrics-api"
               title="API de Métricas del Firmante"
-              description="Monitorea y analiza el comportamiento y rendimiento de los firmantes en la red Stacks." />
-
+              description="Monitorea y analiza el comportamiento y rendimiento de los firmantes en la red Stacks."
+            />
           </Cards>
         </div>
       </div>
-    </main>);
-
+    </main>
+  );
 }
diff --git a/app/[locale]/[...slug]/page.tsx b/app/[locale]/[...slug]/page.tsx
index 845bf4735..8a45b177c 100644
--- a/app/[locale]/[...slug]/page.tsx
+++ b/app/[locale]/[...slug]/page.tsx
@@ -216,7 +216,9 @@ export default async function Page(props: {
               {/* RPC endpoint callout */}
               {page.data.isRpc && (
                 <Callout type="info" title="About RPC endpoints">
-                  These are served by Stacks nodes, not directly operated by Hiro. Availability and performance may vary depending on upstream node health. For guaranteed performance, run your own node or talk to us about dedicated options.
+                  These are served by Stacks nodes, not directly operated by Hiro. Availability and
+                  performance may vary depending on upstream node health. For guaranteed
+                  performance, run your own node or talk to us about dedicated options.
                 </Callout>
               )}
 
diff --git a/app/apis/layout.tsx b/app/apis/layout.tsx
deleted file mode 100644
index 5b9820521..000000000
--- a/app/apis/layout.tsx
+++ /dev/null
@@ -1,7 +0,0 @@
-import type { ReactNode } from 'react';
-import { baseOptions } from '@/app/layout.config';
-import { HomeLayout } from '@/components/layouts/home';
-
-export default function Layout({ children }: { children: ReactNode }) {
-  return <HomeLayout {...baseOptions}>{children}</HomeLayout>;
-}
diff --git a/app/apis/page.tsx b/app/apis/page.tsx
deleted file mode 100644
index ea6c64077..000000000
--- a/app/apis/page.tsx
+++ /dev/null
@@ -1,57 +0,0 @@
-import { Cards, IndexCard } from '@/components/card';
-import { API, Hiro, Ordinals, Runes, StacksIcon } from '@/components/ui/icon';
-
-export default function APIsPage() {
-  return (
-    <main className="my-6 space-y-10">
-      <div className="px-4 md:px-[var(--nav-offset)]">
-        <div className="space-y-10">
-          <div className="space-y-1">
-            <h3 className="text-3xl">APIs</h3>
-            <hr className="border-t border-border mt-8" />
-          </div>
-          <Cards>
-            <IndexCard
-              icon={<StacksIcon />}
-              href="/apis/stacks-blockchain-api"
-              title="Stacks Blockchain API"
-              description="Comprehensive REST API for interacting with the Stacks blockchain and network data."
-            />
-            <IndexCard
-              icon={<API />}
-              href="/apis/token-metadata-api"
-              title="Token Metadata API"
-              description="Fast, reliable metadata for fungible and non-fungible tokens on Stacks."
-            />
-            <IndexCard
-              icon={<Hiro />}
-              href="/apis/platform-api"
-              title="Platform API"
-              description="Programmatically manage devnets and chainhooks via REST interface."
-            />
-            <IndexCard
-              icon={<Ordinals />}
-              href="/apis/ordinals-api"
-              title="Ordinals API"
-              tag="Bitcoin L1"
-              description="Complete Bitcoin ordinals and BRC-20 token data with caching optimization."
-            />
-            <IndexCard
-              icon={<Runes />}
-              href="/apis/runes-api"
-              title="Runes API"
-              tag="Bitcoin L1"
-              description="Fast, reliable data for Bitcoin Runes via an easy-to-use REST interface."
-            />
-            <IndexCard
-              icon={<API />}
-              href="/apis/signer-metrics-api"
-              title="Signer Metrics API"
-              description="Monitor and analyze signer behavior and performance on the Stacks network."
-            />
-          </Cards>
-        </div>
-      </div>
-    </main>
-  );
-}
diff --git a/app/reference/layout.tsx b/app/reference/layout.tsx
deleted file mode 100644
index 5b9820521..000000000
--- a/app/reference/layout.tsx
+++ /dev/null
@@ -1,7 +0,0 @@
-import type { ReactNode } from 'react';
-import { baseOptions } from '@/app/layout.config';
-import { HomeLayout } from '@/components/layouts/home';
-
-export default function Layout({ children }: { children: ReactNode }) {
-  return <HomeLayout {...baseOptions}>{children}</HomeLayout>;
-}
diff --git a/app/reference/page.tsx b/app/reference/page.tsx
deleted file mode 100644
index ffb6f1b6f..000000000
--- a/app/reference/page.tsx
+++ /dev/null
@@ -1,43 +0,0 @@
-import { Cards, IndexCard } from '@/components/card';
-import { Js } from '@/components/ui/icon';
-
-export default function ReferencePage() {
-  return (
-    <main className="my-6 space-y-10">
-      <div className="px-4 md:px-[var(--nav-offset)]">
-        <div className="space-y-10">
-          <div className="space-y-1">
-            <h3 className="text-3xl">Libraries &amp; SDKs</h3>
-            <hr className="border-t border-border mt-8" />
-          </div>
-          <Cards>
-            <IndexCard
-              icon={<Js />}
-              href="/reference/stacks.js"
-              title="Stacks.js"
-              description="JavaScript SDK for building applications on Stacks with transactions, network utilities, and wallet integration."
-            />
-            <IndexCard
-              icon={<Js />}
-              href="/tools/clarinet/sdk-introduction"
-              title="Clarinet JS SDK"
-              description="JavaScript SDK for testing and interacting with Clarity smart contracts in simulated environments."
-            />
-            <IndexCard
-              icon={<Js />}
-              href="/tools/clarinet/browser-sdk-reference"
-              title="Clarinet JS Browser SDK"
-              description="JavaScript SDK for interacting with the simnet in web browsers."
-            />
-            {/* <IndexCard
-              icon={<API />}
-              href="/reference/stacks-blockchain-api"
-              title="Stacks Blockchain API Client"
-              description="Type-safe JavaScript client library for interacting with the Stacks Blockchain API."
-            /> */}
-          </Cards>
-        </div>
-      </div>
-    </main>
-  );
-}
diff --git a/app/resources/layout.tsx b/app/resources/layout.tsx
deleted file mode 100644
index 5b9820521..000000000
--- a/app/resources/layout.tsx
+++ /dev/null
@@ -1,7 +0,0 @@
-import type { ReactNode } from 'react';
-import { baseOptions } from '@/app/layout.config';
-import { HomeLayout } from '@/components/layouts/home';
-
-export default function Layout({ children }: { children: ReactNode }) {
-  return <HomeLayout {...baseOptions}>{children}</HomeLayout>;
-}
diff --git a/app/resources/page.tsx b/app/resources/page.tsx
deleted file mode 100644
index b797eb3c4..000000000
--- a/app/resources/page.tsx
+++ /dev/null
@@ -1,50 +0,0 @@
-import { Code, Database, Terminal } from 'lucide-react';
-import { Cards, IndexCard } from '@/components/card';
-import { Clarity } from '@/components/ui/icon';
-
-export default function ResourcesPage() {
-  return (
-    <main className="my-6 space-y-10">
-      <div className="px-4 md:px-[var(--nav-offset)]">
-        <div className="space-y-10">
-          <div className="space-y-1">
-            <h3 className="text-3xl">Resources</h3>
-            <hr className="border-t border-border mt-8" />
-          </div>
-          <Cards>
-            <IndexCard
-              icon={<Clarity />}
-              href="/resources/clarity"
-              title="Clarity Reference"
-              description="Comprehensive guides and function reference for the Clarity smart contract language."
-            />
-            <IndexCard
-              icon={<Terminal />}
-              href="/resources/guides"
-              title="Guides"
-              description="Guides for building on Stacks and Bitcoin."
-            />
-            {/* <IndexCard
-              icon={<Braces />}
-              href="/resources/templates"
-              title="Project templates"
-              description="Project templates for building on Stacks and Bitcoin."
-            /> */}
-            <IndexCard
-              icon={<Code />}
-              href="/resources/snippets"
-              title="Snippets"
-              description="Code snippets for building on Stacks and Bitcoin."
-            />
-            <IndexCard
-              icon={<Database />}
-              href="/resources/archive"
-              title="Hiro Archive"
-              description="Data snapshots for quickly bootstrapping Stacks ecosystem services with pre-loaded data."
-            />
-          </Cards>
-        </div>
-      </div>
-    </main>
-  );
-}
diff --git a/app/tools/layout.tsx b/app/tools/layout.tsx
deleted file mode 100644
index 5b9820521..000000000
--- a/app/tools/layout.tsx
+++ /dev/null
@@ -1,7 +0,0 @@
-import type { ReactNode } from 'react';
-import { baseOptions } from '@/app/layout.config';
-import { HomeLayout } from '@/components/layouts/home';
-
-export default function Layout({ children }: { children: ReactNode }) {
-  return <HomeLayout {...baseOptions}>{children}</HomeLayout>;
-}
diff --git a/app/tools/page.tsx b/app/tools/page.tsx
deleted file mode 100644
index 480ffccab..000000000
--- a/app/tools/page.tsx
+++ /dev/null
@@ -1,45 +0,0 @@
-import { Brackets, Database } from 'lucide-react';
-import { Cards, IndexCard } from '@/components/card';
-import { Chainhook, Clarinet } from '@/components/ui/icon';
-
-export default function ToolsPage() {
-  return (
-    <main className="my-6 space-y-10">
-      <div className="px-4 md:px-[var(--nav-offset)]">
-        <div className="space-y-10">
-          <div className="space-y-1">
-            <h3 className="text-3xl">Tools</h3>
-            <hr className="border-t border-border mt-8" />
-          </div>
-          <Cards>
-            <IndexCard
-              href="/tools/clarinet"
-              title="Clarinet"
-              icon={<Clarinet />}
-              description="A comprehensive development environment for building and testing Clarity smart contracts."
-            />
-            <IndexCard
-              href="/tools/chainhook"
-              title="Chainhook"
-              icon={<Chainhook />}
-              description="Create custom event streams and triggers for real-time blockchain data processing."
-            />
-            <IndexCard
-              href="/tools/contract-monitoring"
-              title="Contract Monitoring"
-              icon={<Brackets />}
-              description="Monitor and track smart contract activity and performance metrics."
-            />
-            <IndexCard
-              href="/tools/bitcoin-indexer"
-              title="Bitcoin Indexer"
-              icon={<Database />}
-              tag="Bitcoin L1"
-              description="Index and query Bitcoin blockchain data with high-performance indexing."
-            />
-          </Cards>
-        </div>
-      </div>
-    </main>
-  );
-}

From 4530e2257a0b51cdd3c054661e89c2196e073d17 Mon Sep 17 00:00:00 2001
From: Ryan Waits <ryan.waits@gmail.com>
Date: Mon, 18 Aug 2025 13:08:03 -0500
Subject: [PATCH 4/6] update rpc node docs

---
 .../reference/smart-contracts/meta.json       |  7 +--
 .../en/apis/stacks-node-rpc-api/index.mdx     | 18 +++----
 .../en/apis/stacks-node-rpc-api/meta.json     | 10 +---
 .../reference/accounts/meta.json              |  6 +--
 .../reference/blocks/meta.json                |  8 +--
 .../reference/fees/meta.json                  |  7 +--
 .../reference/info/meta.json                  |  7 +--
 .../reference/nakamoto/meta.json              | 10 +---
 .../reference/proof-of-transfer/meta.json     |  8 +--
 .../reference/smart-contracts/meta.json       |  2 +-
 .../reference/sortitions/meta.json            |  2 +-
 .../reference/transactions/meta.json          |  7 +--
 .../en/apis/stacks-node-rpc-api/usage.mdx     | 49 ++++++++++---------
 13 files changed, 52 insertions(+), 89 deletions(-)

diff --git a/content/docs/en/apis/stacks-blockchain-api/reference/smart-contracts/meta.json b/content/docs/en/apis/stacks-blockchain-api/reference/smart-contracts/meta.json
index 254725608..72880557e 100644
--- a/content/docs/en/apis/stacks-blockchain-api/reference/smart-contracts/meta.json
+++ b/content/docs/en/apis/stacks-blockchain-api/reference/smart-contracts/meta.json
@@ -1,10 +1,5 @@
 {
   "title": "Smart Contracts",
-  "pages": [
-    "status",
-    "info",
-    "by-trait",
-    "events"
-  ],
+  "pages": ["status", "info", "by-trait", "events"],
   "defaultOpen": false
 }
diff --git a/content/docs/en/apis/stacks-node-rpc-api/index.mdx b/content/docs/en/apis/stacks-node-rpc-api/index.mdx
index 3e624c8f0..dee945d52 100644
--- a/content/docs/en/apis/stacks-node-rpc-api/index.mdx
+++ b/content/docs/en/apis/stacks-node-rpc-api/index.mdx
@@ -7,14 +7,14 @@ llm: false
 
 ## Overview
 
-The Stacks Node RPC API provides direct access to Stacks blockchain nodes through RPC endpoints. These endpoints offer real-time access to blockchain state, smart contract execution, and node operations without intermediary caching layers.
+The Stacks Node RPC API provides direct access to Stacks blockchain nodes through RPC endpoints. **Hiro proxies these calls to upstream Stacks nodes** - we don't maintain or control the nodes themselves, so performance and availability depend on upstream blockchain infrastructure.
 
 ## Key features
 
-- **Direct node access** - Connect directly to Stacks nodes for real-time data
-- **Smart contract interaction** - Execute read-only functions and retrieve contract state
-- **Block and transaction data** - Access detailed block information and transaction details
-- **Network operations** - Perform network-level operations like broadcasting transactions
+- **Raw blockchain node methods** - Submit transactions, call read-only contracts, query mempool/state
+- **Real-time blockchain state** - No caching layers, direct node responses
+- **Smart contract execution** - Execute read-only functions and retrieve contract state
+- **Transaction broadcasting** - Submit transactions directly to the network
 
 ## Usage
 
@@ -22,12 +22,8 @@ The Stacks Node RPC API provides direct access to Stacks blockchain nodes throug
 $ curl -L 'https://api.hiro.so/v2/info' -H 'Accept: application/json'
 ```
 
-For more usage examples, click [here](/apis/stacks-node-rpc-api/usage).
+For more usage examples and rate limiting information, see [Usage](/apis/stacks-node-rpc-api/usage).
 
 :::callout
-All Stacks Node RPC API responses provide direct access to blockchain data without caching, ensuring you receive the most current information available.
-:::
-
-:::callout
-The RPC endpoints are designed for applications that require real-time blockchain state and direct node interaction. For cached and optimized data access, consider using the [Stacks Blockchain API](/apis/stacks-blockchain-api).
+**REST vs RPC:** Use [Stacks Blockchain API](/apis/stacks-blockchain-api) for cached, indexed blockchain data (balances, transactions, events). Use RPC endpoints for raw node operations and real-time blockchain state queries.
 :::
\ No newline at end of file
diff --git a/content/docs/en/apis/stacks-node-rpc-api/meta.json b/content/docs/en/apis/stacks-node-rpc-api/meta.json
index 706436219..4c84cf1fc 100644
--- a/content/docs/en/apis/stacks-node-rpc-api/meta.json
+++ b/content/docs/en/apis/stacks-node-rpc-api/meta.json
@@ -1,11 +1,5 @@
 {
   "title": "APIs",
   "root": true,
-  "pages": [
-    "---Stacks Node RPC API---",
-    "index",
-    "usage",
-    "---Reference---",
-    "...reference"
-  ]
-}
\ No newline at end of file
+  "pages": ["---Stacks Node RPC API---", "index", "usage", "---Reference---", "...reference"]
+}
diff --git a/content/docs/en/apis/stacks-node-rpc-api/reference/accounts/meta.json b/content/docs/en/apis/stacks-node-rpc-api/reference/accounts/meta.json
index d2bf1632c..24286ac17 100644
--- a/content/docs/en/apis/stacks-node-rpc-api/reference/accounts/meta.json
+++ b/content/docs/en/apis/stacks-node-rpc-api/reference/accounts/meta.json
@@ -1,7 +1,5 @@
 {
   "title": "Accounts",
-  "pages": [
-    "info"
-  ],
+  "pages": ["info"],
   "defaultOpen": false
-}
\ No newline at end of file
+}
diff --git a/content/docs/en/apis/stacks-node-rpc-api/reference/blocks/meta.json b/content/docs/en/apis/stacks-node-rpc-api/reference/blocks/meta.json
index 282d373ed..ae4afee3a 100644
--- a/content/docs/en/apis/stacks-node-rpc-api/reference/blocks/meta.json
+++ b/content/docs/en/apis/stacks-node-rpc-api/reference/blocks/meta.json
@@ -1,9 +1,5 @@
 {
   "title": "Blocks",
-  "pages": [
-    "block-by-height-v3",
-    "block-proposal",
-    "upload-block"
-  ],
+  "pages": ["block-by-height-v3", "block-proposal", "upload-block"],
   "defaultOpen": false
-}
\ No newline at end of file
+}
diff --git a/content/docs/en/apis/stacks-node-rpc-api/reference/fees/meta.json b/content/docs/en/apis/stacks-node-rpc-api/reference/fees/meta.json
index 8553c9cf0..b14707173 100644
--- a/content/docs/en/apis/stacks-node-rpc-api/reference/fees/meta.json
+++ b/content/docs/en/apis/stacks-node-rpc-api/reference/fees/meta.json
@@ -1,8 +1,5 @@
 {
   "title": "Fees",
-  "pages": [
-    "estimate",
-    "transfer-estimate"
-  ],
+  "pages": ["estimate", "transfer-estimate"],
   "defaultOpen": false
-}
\ No newline at end of file
+}
diff --git a/content/docs/en/apis/stacks-node-rpc-api/reference/info/meta.json b/content/docs/en/apis/stacks-node-rpc-api/reference/info/meta.json
index 855dbecbf..60430a09b 100644
--- a/content/docs/en/apis/stacks-node-rpc-api/reference/info/meta.json
+++ b/content/docs/en/apis/stacks-node-rpc-api/reference/info/meta.json
@@ -1,8 +1,5 @@
 {
   "title": "Info",
-  "pages": [
-    "core-api",
-    "health"
-  ],
+  "pages": ["core-api", "health"],
   "defaultOpen": false
-}
\ No newline at end of file
+}
diff --git a/content/docs/en/apis/stacks-node-rpc-api/reference/nakamoto/meta.json b/content/docs/en/apis/stacks-node-rpc-api/reference/nakamoto/meta.json
index d0feb50a0..be2914109 100644
--- a/content/docs/en/apis/stacks-node-rpc-api/reference/nakamoto/meta.json
+++ b/content/docs/en/apis/stacks-node-rpc-api/reference/nakamoto/meta.json
@@ -1,11 +1,5 @@
 {
   "title": "Nakamoto",
-  "pages": [
-    "nakamoto-block",
-    "tenure-blocks",
-    "tenure-fork-info",
-    "tenure-metadata",
-    "tenure-tip"
-  ],
+  "pages": ["nakamoto-block", "tenure-blocks", "tenure-fork-info", "tenure-metadata", "tenure-tip"],
   "defaultOpen": false
-}
\ No newline at end of file
+}
diff --git a/content/docs/en/apis/stacks-node-rpc-api/reference/proof-of-transfer/meta.json b/content/docs/en/apis/stacks-node-rpc-api/reference/proof-of-transfer/meta.json
index 344f2651e..570d2fa7c 100644
--- a/content/docs/en/apis/stacks-node-rpc-api/reference/proof-of-transfer/meta.json
+++ b/content/docs/en/apis/stacks-node-rpc-api/reference/proof-of-transfer/meta.json
@@ -1,9 +1,5 @@
 {
   "title": "Proof of Transfer",
-  "pages": [
-    "pox-details",
-    "signer-details",
-    "stacker-set"
-  ],
+  "pages": ["pox-details", "signer-details", "stacker-set"],
   "defaultOpen": false
-}
\ No newline at end of file
+}
diff --git a/content/docs/en/apis/stacks-node-rpc-api/reference/smart-contracts/meta.json b/content/docs/en/apis/stacks-node-rpc-api/reference/smart-contracts/meta.json
index 4dde299b6..c903ea747 100644
--- a/content/docs/en/apis/stacks-node-rpc-api/reference/smart-contracts/meta.json
+++ b/content/docs/en/apis/stacks-node-rpc-api/reference/smart-contracts/meta.json
@@ -11,4 +11,4 @@
     "variable"
   ],
   "defaultOpen": false
-}
\ No newline at end of file
+}
diff --git a/content/docs/en/apis/stacks-node-rpc-api/reference/sortitions/meta.json b/content/docs/en/apis/stacks-node-rpc-api/reference/sortitions/meta.json
index ae78bb606..3e8e90d10 100644
--- a/content/docs/en/apis/stacks-node-rpc-api/reference/sortitions/meta.json
+++ b/content/docs/en/apis/stacks-node-rpc-api/reference/sortitions/meta.json
@@ -8,4 +8,4 @@
     "sortition-by-consensus-hash"
   ],
   "defaultOpen": false
-}
\ No newline at end of file
+}
diff --git a/content/docs/en/apis/stacks-node-rpc-api/reference/transactions/meta.json b/content/docs/en/apis/stacks-node-rpc-api/reference/transactions/meta.json
index b57242d9c..2ce05a7e8 100644
--- a/content/docs/en/apis/stacks-node-rpc-api/reference/transactions/meta.json
+++ b/content/docs/en/apis/stacks-node-rpc-api/reference/transactions/meta.json
@@ -1,8 +1,5 @@
 {
   "title": "Transactions",
-  "pages": [
-    "broadcast-transaction",
-    "transaction-details-v3"
-  ],
+  "pages": ["broadcast-transaction", "transaction-details-v3"],
   "defaultOpen": false
-}
\ No newline at end of file
+}
diff --git a/content/docs/en/apis/stacks-node-rpc-api/usage.mdx b/content/docs/en/apis/stacks-node-rpc-api/usage.mdx
index 6c618eee1..fc25408ea 100644
--- a/content/docs/en/apis/stacks-node-rpc-api/usage.mdx
+++ b/content/docs/en/apis/stacks-node-rpc-api/usage.mdx
@@ -6,7 +6,7 @@ description: Learn the basics of using the Stacks Node RPC API.
 
 ## Usage
 
-The Stacks Node RPC API provides direct access to Stacks blockchain nodes through RPC endpoints, built on REST principles and enforcing HTTPS for all requests to ensure data security, integrity, and privacy.
+The Stacks Node RPC API provides direct access to Stacks blockchain nodes through RPC endpoints. All requests use HTTPS and enforce standard REST principles.
 
 ### Base URL
 
@@ -16,8 +16,6 @@ https://api.hiro.so
 
 ### Making requests
 
-To make a request to the Stacks Node RPC API, you can paste the curl command below in your terminal.
-
 ```terminal
 $ curl -L 'https://api.hiro.so/v2/info' \
   -H 'Accept: application/json'
@@ -25,7 +23,7 @@ $ curl -L 'https://api.hiro.so/v2/info' \
 
 ### Authentication
 
-If you are using an api-key, replace `$HIRO_API_KEY` with your secret API key.
+Include your API key for higher rate limits:
 
 ```terminal
 $ curl -L 'https://api.hiro.so/v2/info' \
@@ -33,31 +31,36 @@ $ curl -L 'https://api.hiro.so/v2/info' \
   -H 'x-api-key: $HIRO_API_KEY'
 ```
 
-## Response codes
+## Rate limits
+
+RPC calls are **weighted based on method cost** and consume more units than REST endpoints:
+
+| Method Type | Examples | Cost Multiplier |
+|-------------|----------|-----------------|
+| Light reads | `get_block`, `get_transaction` | 1× |
+| Read-only contract calls | `call_read_only_function` | 2× |
+| Transaction submission | `submit_transaction` | 3× |
+| Heavy operations | `trace_call`, deep contract scans | 5× |
+
+### Rate limit headers
+
+```
+X-RateLimit-Limit: 900              # window capacity in units
+X-RateLimit-Remaining: 125          # remaining units
+X-RateLimit-Reset: 60               # seconds until reset
+X-RateLimit-Method-Cost: 3          # cost for this RPC method
+X-Plan-Tier: starter                # your plan tier
+X-Surface: rpc                      # indicates RPC endpoint
+```
 
-The Stacks Node RPC API uses standard HTTP response codes to indicate request success or failure.
+## Response codes
 
 | Code | Description |
 |------|-------------|
 | `200` | Successful request |
-| `400` | Check that the parameters were correct |
+| `400` | Invalid parameters |
 | `401` | Missing API key |
 | `403` | Invalid API key |
 | `404` | Resource not found |
 | `429` | Rate limit exceeded |
-| `5xx` | Server errors |
-
-## Real-time data
-
-Unlike cached APIs, the RPC endpoints provide direct access to blockchain state:
-
-- Smart contract calls return current state
-- Block data reflects the latest confirmed blocks
-- Transaction details include real-time status
-
-## Common use cases
-
-- **Smart contract development** - Test and debug contract functions
-- **Real-time monitoring** - Track blockchain state changes as they occur  
-- **Node operations** - Perform administrative and diagnostic operations
-- **Transaction broadcasting** - Submit transactions directly to the network
\ No newline at end of file
+| `5xx` | Server/upstream node errors |

From 9607ddd47775f328be6437001c29e6b384b58a3e Mon Sep 17 00:00:00 2001
From: Ryan Waits <ryan.waits@gmail.com>
Date: Mon, 18 Aug 2025 13:08:15 -0500
Subject: [PATCH 5/6] update imports

---
 components/card.tsx              |  2 +-
 components/interactive-badge.tsx | 26 ++++++++++++++++++++++++++
 2 files changed, 27 insertions(+), 1 deletion(-)
 create mode 100644 components/interactive-badge.tsx

diff --git a/components/card.tsx b/components/card.tsx
index a8f235ea1..ef7543fe6 100644
--- a/components/card.tsx
+++ b/components/card.tsx
@@ -1,8 +1,8 @@
 import Link, { type LinkProps } from 'fumadocs-core/link';
 import { ChevronRight } from 'lucide-react';
 import type { HTMLAttributes, ReactNode } from 'react';
-import { InteractiveBadge } from '@/app/(home)/components/interactive-badge';
 import { CopyButton } from '@/components/docskit/copy-button';
+import { InteractiveBadge } from '@/components/interactive-badge';
 import { Badge } from '@/components/ui/badge';
 import { cn } from '@/lib/utils';
 
diff --git a/components/interactive-badge.tsx b/components/interactive-badge.tsx
new file mode 100644
index 000000000..8a48aabff
--- /dev/null
+++ b/components/interactive-badge.tsx
@@ -0,0 +1,26 @@
+'use client';
+
+import { Badge } from '@/components/ui/badge';
+
+interface InteractiveBadgeProps {
+  href: string;
+  label: string;
+}
+
+export function InteractiveBadge({ href, label }: InteractiveBadgeProps) {
+  return (
+    <button
+      onClick={(e) => {
+        e.preventDefault();
+        e.stopPropagation();
+        window.location.href = href;
+      }}
+      type="button"
+      className="hover:no-underline"
+    >
+      <Badge className="bg-neutral-50 dark:bg-neutral-800 text-neutral-500 dark:text-neutral-300 hover:bg-neutral-200 hover:text-primary dark:hover:text-primary dark:hover:bg-neutral-950 cursor-pointer transition-colors">
+        {label}
+      </Badge>
+    </button>
+  );
+}

From c8b11dd7dbbafcae49fef4e367f31fa0ae1359fe Mon Sep 17 00:00:00 2001
From: Ryan Waits <ryan.waits@gmail.com>
Date: Mon, 18 Aug 2025 13:08:25 -0500
Subject: [PATCH 6/6] update types

---
 lib/translations/types.ts | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/lib/translations/types.ts b/lib/translations/types.ts
index a1ebe9f1d..bd899b692 100644
--- a/lib/translations/types.ts
+++ b/lib/translations/types.ts
@@ -94,6 +94,10 @@ export interface Translations {
       title: string;
       description: string;
     };
+    stacksNodeRpcApi: {
+      title: string;
+      description: string;
+    };
     tokenMetadata: {
       title: string;
       description: string;
