diff --git a/docs/docs/intro.md b/docs/docs/intro.md
index fa6b914ee6..0ec8edc190 100644
--- a/docs/docs/intro.md
+++ b/docs/docs/intro.md
@@ -7,68 +7,71 @@ title: Introduction
Juno is a Go implementation of a Starknet full-node client created by Nethermind to allow node operators to easily and reliably support the network and advance its decentralisation goals. Juno supports various node setups, from casual to production-grade indexers.
-- **Small database footprint**: Committed to keeping the database size as small as possible
+- **[Small database](configuring#pruning)**: pruning runs mainnet in roughly a fifth of full-history disk
- **Ultra-fast synchronisation**: Limited only by your hardware and the sequencer.
-- **Complete [JSON-RPC spec](https://github.com/starkware-libs/starknet-specs/tree/master) compliance**: Everything Starknet, accessible from a single point.
-- **Minimal RPC response latency**: Ensuring your applications run smoothly.
-- **Websocket interface**: For seamless real-time updates of the network.
+- **[Snapshot sync](snapshots)**: start from a recent block instead of replaying from genesis
+- **[Three RPC versions](json-rpc)**: `v0_8`, `v0_9` and `v0_10` served at the same time
+- **[WebSocket subscriptions](websocket)**: new blocks and events pushed as they happen
+- **[Minimal RPC latency](configuring#vm--compilation)**: tune VM concurrency and cache size for read-heavy nodes
+- **[Prometheus metrics](monitoring)**: sync, database and RPC counters on a scrape endpoint
## Getting started
-Learn how to configure and manage your Juno node with the following resources:
+These pages follow the order you will need them, from sizing a machine to serving your first request.
```mdx-code-block
import GuideCard from '@site/src/components/GuideCard';
+
+
```
## Community and support
-Join our community for support, engaging discussions, and updates:
+The [FAQ](faq) covers the errors most operators meet first. For anything else:
-- [Telegram](https://t.me/+LHRF4H8iQ3c5MDY0): Share ideas and stay informed with fellow Juno users.
-- [Discord](https://discord.gg/SZkKcmmChJ): Connect in real-time with the Juno team and community.
-- [X (Twitter)](https://x.com/NethermindStark): Follow for the latest news and insights from Nethermind.
+- [Telegram](https://t.me/+LHRF4H8iQ3c5MDY0): Ask questions and follow announcements.
+- [Discord](https://discord.gg/SZkKcmmChJ): Reach the Juno team and other operators.
+- [X (Twitter)](https://x.com/Nethermind): Follow for the latest news and insights from Nethermind.
## Contributions and partnerships
-We value community contributions and are eager to support your involvement. Hereβs how you can contribute:
+We value community contributions and are eager to support your involvement. Here's how you can contribute:
-- [Run a Juno node](running-juno) to strengthen the Starknet network.
-- Give Juno a [star on GitHub](https://github.com/NethermindEth/juno/stargazers).
-- Share your thoughts on [X (Twitter)](https://twitter.com/intent/tweet?url=https%3A%2F%2Fgithub.com%2FNethermindEth%2Fjuno&via=nethermindeth&text=Juno%20is%20Awesome%2C%20they%20are%20working%20hard%20to%20bring%20decentralization%20to%20StarkNet&hashtags=StarkNet%2CJuno%2CEthereum).
+- [Run a Juno node](running-juno) to strengthen the Starknet network, or [stake and validate](staking-validator).
+- Give Juno a [star on GitHub](https://github.com/NethermindEth/juno).
+- Share your thoughts on [X (Twitter)](https://twitter.com/intent/tweet?url=https%3A%2F%2Fgithub.com%2FNethermindEth%2Fjuno&via=Nethermind&hashtags=Starknet%2CJuno).
- [Report bugs](https://github.com/NethermindEth/juno/issues/new) or [suggest new features](https://github.com/NethermindEth/juno/issues/new).
-- Encourage others to explore and use Juno.
:::tip
-If you're ready to make PRs but unsure where to start, join our [Discord](https://discord.gg/TcHbSZ9ATd), and we'll guide you through some beginner-friendly issues.
+If you want to contribute but are unsure where to start, ask in [Discord](https://discord.gg/SZkKcmmChJ) and we'll point you at a beginner-friendly issue.
:::
-If you're interested in forming a partnership with the Juno team or have any suggestions or special requests, please don't hesitate to contact us via juno@nethermind.io
+Whether it's a partnership, an idea, or a question that doesn't fit anywhere above, we'd love to hear from you at [juno@nethermind.io](mailto:juno@nethermind.io).
diff --git a/docs/docusaurus.config.js b/docs/docusaurus.config.js
index 4c8e1d8b5f..d819d2084f 100644
--- a/docs/docusaurus.config.js
+++ b/docs/docusaurus.config.js
@@ -144,7 +144,7 @@ const config = {
},
{
label: "X (Twitter)",
- href: "https://x.com/NethermindStark", // NethermindStark account.
+ href: "https://x.com/Nethermind",
},
{
label: "Telegram",
diff --git a/docs/src/components/GuideCard/index.jsx b/docs/src/components/GuideCard/index.jsx
index 38236c4d1b..f93167b60e 100644
--- a/docs/src/components/GuideCard/index.jsx
+++ b/docs/src/components/GuideCard/index.jsx
@@ -3,24 +3,17 @@ import Link from "@docusaurus/Link";
import "./styles.css";
-const GuideCard = (props) => {
- return (
-
-
- {/* Decorative only: the ordinal is generated in CSS and the link
- text carries the meaning. Hidden from assistive tech so the
- announced experience matches the visual one β font-size:0
- alone would leave the emoji in the accessibility tree. */}
-
+ {/* Ordinal comes from a CSS counter, so it stays right if cards are reordered. */}
+
+
+
{title}
+
{description}
-
- );
-};
+
+
+);
export default GuideCard;
diff --git a/docs/src/components/GuideCard/styles.css b/docs/src/components/GuideCard/styles.css
index 8eed3755da..6dc5f30130 100644
--- a/docs/src/components/GuideCard/styles.css
+++ b/docs/src/components/GuideCard/styles.css
@@ -1,12 +1,4 @@
-/**
- * Guide cards, rendered as a numbered index.
- *
- * The component ships an emoji per card. Decorative emoji are the single
- * clearest "generated" tell on a technical page, so they are suppressed here
- * and replaced with a monospace ordinal generated by CSS β no markup change,
- * and the ordinal carries real information (reading order) rather than
- * decoration.
- */
+/* Guide cards, rendered as a numbered index rather than an icon grid. */
.guide-card-href,
.guide-card-href:hover {
@@ -17,23 +9,23 @@
counter-reset: guide;
}
+/* Border and chevron sit at rest, because hover does not exist on touch. */
.guide-card-container {
counter-increment: guide;
display: grid;
grid-template-columns: 2.25rem 1fr 1.25rem;
align-items: baseline;
gap: 1.25rem;
- padding: 0.85rem 0.75rem 0.85rem 0.5rem;
- margin: 0 -0.75rem;
- border: none;
+ padding: 1rem 1.15rem;
+ margin: 0 0 0.65rem;
+ border: 1px solid var(--juno-rule);
border-radius: var(--ifm-global-radius);
- transition: background-color 120ms linear;
+ transition: background-color 120ms linear, border-color 120ms linear;
}
.guide-card-container:hover {
background-color: var(--ifm-background-surface-color);
- border-color: var(--juno-rule-soft);
- box-shadow: none;
+ border-color: var(--ifm-color-primary);
}
.guide-card-href:focus-visible .guide-card-container {
@@ -41,14 +33,7 @@
outline-offset: -1px;
}
-/* Emoji out, ordinal in. */
-.guide-card-icon {
- font-size: 0;
- line-height: inherit;
- margin: 0;
-}
-
-.guide-card-icon::before {
+.guide-card-ordinal::before {
content: counter(guide, decimal-leading-zero);
font-family: var(--ifm-font-family-monospace);
font-size: 0.82rem;
@@ -57,21 +42,21 @@
letter-spacing: 0.02em;
}
-.guide-card-container:hover .guide-card-icon::before {
+.guide-card-container:hover .guide-card-ordinal::before {
color: var(--ifm-color-primary);
}
.guide-card-detail {
- display: block;
min-width: 0;
}
+/* Link colour is the only affordance that survives on a touch device. */
.guide-card-title {
font-weight: 600;
font-size: 1rem;
line-height: 1.45;
letter-spacing: -0.005em;
- color: var(--juno-ink);
+ color: var(--ifm-color-primary);
}
.guide-card-description {
@@ -80,7 +65,7 @@
color: var(--juno-ink-2);
}
-/* Directional affordance, revealed on approach rather than always shouting. */
+/* Chevron nudges right on hover instead of appearing from nothing. */
.guide-card-container::after {
content: "";
align-self: center;
@@ -89,7 +74,7 @@
border-top: 1px solid var(--juno-ink-3);
border-right: 1px solid var(--juno-ink-3);
transform: rotate(45deg) translateX(-2px);
- opacity: 0;
+ opacity: 0.55;
transition: opacity 120ms linear, transform 120ms linear;
}
@@ -99,6 +84,15 @@
border-color: var(--ifm-color-primary);
}
+/* The ordinal and gaps eat a third of a small phone, so give the words the room. */
+@media (max-width: 480px) {
+ .guide-card-container {
+ grid-template-columns: 1.6rem 1fr 0.85rem;
+ gap: 0.7rem;
+ padding: 0.85rem 0.9rem;
+ }
+}
+
@media (prefers-reduced-motion: reduce) {
.guide-card-container,
.guide-card-container::after {
diff --git a/docs/versioned_docs/version-0.16.0/intro.md b/docs/versioned_docs/version-0.16.0/intro.md
index fa6b914ee6..0ec8edc190 100644
--- a/docs/versioned_docs/version-0.16.0/intro.md
+++ b/docs/versioned_docs/version-0.16.0/intro.md
@@ -7,68 +7,71 @@ title: Introduction
Juno is a Go implementation of a Starknet full-node client created by Nethermind to allow node operators to easily and reliably support the network and advance its decentralisation goals. Juno supports various node setups, from casual to production-grade indexers.
-- **Small database footprint**: Committed to keeping the database size as small as possible
+- **[Small database](configuring#pruning)**: pruning runs mainnet in roughly a fifth of full-history disk
- **Ultra-fast synchronisation**: Limited only by your hardware and the sequencer.
-- **Complete [JSON-RPC spec](https://github.com/starkware-libs/starknet-specs/tree/master) compliance**: Everything Starknet, accessible from a single point.
-- **Minimal RPC response latency**: Ensuring your applications run smoothly.
-- **Websocket interface**: For seamless real-time updates of the network.
+- **[Snapshot sync](snapshots)**: start from a recent block instead of replaying from genesis
+- **[Three RPC versions](json-rpc)**: `v0_8`, `v0_9` and `v0_10` served at the same time
+- **[WebSocket subscriptions](websocket)**: new blocks and events pushed as they happen
+- **[Minimal RPC latency](configuring#vm--compilation)**: tune VM concurrency and cache size for read-heavy nodes
+- **[Prometheus metrics](monitoring)**: sync, database and RPC counters on a scrape endpoint
## Getting started
-Learn how to configure and manage your Juno node with the following resources:
+These pages follow the order you will need them, from sizing a machine to serving your first request.
```mdx-code-block
import GuideCard from '@site/src/components/GuideCard';
+
+
```
## Community and support
-Join our community for support, engaging discussions, and updates:
+The [FAQ](faq) covers the errors most operators meet first. For anything else:
-- [Telegram](https://t.me/+LHRF4H8iQ3c5MDY0): Share ideas and stay informed with fellow Juno users.
-- [Discord](https://discord.gg/SZkKcmmChJ): Connect in real-time with the Juno team and community.
-- [X (Twitter)](https://x.com/NethermindStark): Follow for the latest news and insights from Nethermind.
+- [Telegram](https://t.me/+LHRF4H8iQ3c5MDY0): Ask questions and follow announcements.
+- [Discord](https://discord.gg/SZkKcmmChJ): Reach the Juno team and other operators.
+- [X (Twitter)](https://x.com/Nethermind): Follow for the latest news and insights from Nethermind.
## Contributions and partnerships
-We value community contributions and are eager to support your involvement. Hereβs how you can contribute:
+We value community contributions and are eager to support your involvement. Here's how you can contribute:
-- [Run a Juno node](running-juno) to strengthen the Starknet network.
-- Give Juno a [star on GitHub](https://github.com/NethermindEth/juno/stargazers).
-- Share your thoughts on [X (Twitter)](https://twitter.com/intent/tweet?url=https%3A%2F%2Fgithub.com%2FNethermindEth%2Fjuno&via=nethermindeth&text=Juno%20is%20Awesome%2C%20they%20are%20working%20hard%20to%20bring%20decentralization%20to%20StarkNet&hashtags=StarkNet%2CJuno%2CEthereum).
+- [Run a Juno node](running-juno) to strengthen the Starknet network, or [stake and validate](staking-validator).
+- Give Juno a [star on GitHub](https://github.com/NethermindEth/juno).
+- Share your thoughts on [X (Twitter)](https://twitter.com/intent/tweet?url=https%3A%2F%2Fgithub.com%2FNethermindEth%2Fjuno&via=Nethermind&hashtags=Starknet%2CJuno).
- [Report bugs](https://github.com/NethermindEth/juno/issues/new) or [suggest new features](https://github.com/NethermindEth/juno/issues/new).
-- Encourage others to explore and use Juno.
:::tip
-If you're ready to make PRs but unsure where to start, join our [Discord](https://discord.gg/TcHbSZ9ATd), and we'll guide you through some beginner-friendly issues.
+If you want to contribute but are unsure where to start, ask in [Discord](https://discord.gg/SZkKcmmChJ) and we'll point you at a beginner-friendly issue.
:::
-If you're interested in forming a partnership with the Juno team or have any suggestions or special requests, please don't hesitate to contact us via juno@nethermind.io
+Whether it's a partnership, an idea, or a question that doesn't fit anywhere above, we'd love to hear from you at [juno@nethermind.io](mailto:juno@nethermind.io).