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. */} - -
-
{props.title}
-
{props.description}
-
+const GuideCard = ({ href, title, description }) => ( + +
+ {/* Ordinal comes from a CSS counter, so it stays right if cards are reordered. */} + + +); 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).