Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ node_modules/

# Build output
dist/
.next/

# Environment variables
.env
Expand Down Expand Up @@ -34,3 +35,9 @@ Thumbs.db
# Logs
*.log
npm-debug.log*
.vercel

# Generated data expansion reports
data/expansion/last-report.json
data/expansion/fixture-report.json
.env*.local
28 changes: 28 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,34 @@ npm test # Run test suite
npm run build # Verify build
npm run lint # Type check
npm run validate # Check for duplicates and dangling refs
npm run expand:data # Generate candidate/freshness report
```

## Data Expansion Workflow

If you want to automate discovery of new terms or review terms that may need fresher definitions:

1. Edit `data/expansion/sources.json`
2. Add the Solana docs, repos, or blogs you want to watch
3. Run:

```bash
npm run expand:data
```

4. Review `data/expansion/last-report.json`
5. Turn good candidates into normal glossary PRs under `data/terms/*.json`

The report contains:

- `candidates`: phrases not already present in the glossary
- `reviewCandidates`: existing terms that appear repeatedly in watched sources
- `fetchFailures`: sources that could not be fetched

For a no-network smoke test:

```bash
npm run expand:data:fixture
```

## PR Requirements
Expand Down
57 changes: 48 additions & 9 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,47 @@

[![npm version](https://img.shields.io/npm/v/@stbr/solana-glossary)](https://www.npmjs.com/package/@stbr/solana-glossary)
[![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](LICENSE)
![Terms](https://img.shields.io/badge/terms-1001-brightgreen)
![Terms](https://img.shields.io/badge/terms-1004-brightgreen)
![Categories](https://img.shields.io/badge/categories-14-blue)

**The most comprehensive Solana glossary ever built — 1001 terms, 14 categories, full cross-references, and i18n support. Packaged as an SDK.**
**The most comprehensive Solana glossary ever built — 1004 terms, 14 categories, full cross-references, and i18n support. Packaged as an SDK.**

## Apps Built on Top

- [Glossary OS](./apps/glossary-os/README.md): a multilingual premium frontend for exploring the glossary as a hostable product.
- Glossary OS also includes onboarding quizzes, builder paths, concept graphs, and AI-ready context handoff.

## Data Expansion Tooling

The repository also includes a lightweight expansion pipeline for discovering candidate terms and flagging existing entries for freshness review.

What it does:

- scans a manifest of watched Solana docs, repos, and blogs
- extracts candidate phrases that are not already in the glossary
- flags existing terms that appear repeatedly in watched sources
- writes a JSON report that can be reviewed before opening a data PR

Run the real manifest:

```bash
npm run expand:data
```

Run the local fixture:

```bash
npm run expand:data:fixture
```

Outputs:

- `data/expansion/last-report.json`
- `data/expansion/fixture-report.json`

Source manifest:

- `data/expansion/sources.json`

---

Expand All @@ -15,12 +52,13 @@ The original Solana Glossary was one of the most loved resources in the ecosyste

Over time, it got absorbed into generic "Terminology" docs and lost its identity.

**Superteam Brazil is bringing it back** — expanded from ~200 terms to 1001, structured as a proper npm package, and designed to actually ship value:
**Superteam Brazil is bringing it back** — expanded from ~200 terms to 1004, structured as a proper npm package, and designed to actually ship value:

- **Onboarding** — New devs get instant context on 1001 Solana concepts
- **Onboarding** — New devs get instant context on 1004 Solana concepts
- **Go deeper** — Seasoned devs explore cross-referenced technical relationships between terms
- **Vibe coders** — AI-assisted builders can understand what's behind the abstractions
- **Save tokens** — Feed glossary context to LLMs instead of burning tokens re-explaining Solana concepts every prompt
- **Keep growing** — Data expansion tooling can surface new candidate terms and freshness reviews before a data PR lands

---

Expand Down Expand Up @@ -59,7 +97,7 @@ const results = searchTerms("account");
const defiTerms = getTermsByCategory("defi");

// Access everything
console.log(`${allTerms.length} terms loaded`); // 1001
console.log(`${allTerms.length} terms loaded`); // 1004
```

---
Expand Down Expand Up @@ -100,7 +138,7 @@ Returns all 14 category identifiers.

### `allTerms: GlossaryTerm[]`

The complete array of all 1001 terms. Useful for building custom indexes or feeding to LLMs.
The complete array of all 1004 terms. Useful for building custom indexes or feeding to LLMs.

---

Expand All @@ -109,13 +147,13 @@ The complete array of all 1001 terms. Useful for building custom indexes or feed
| Category | Terms | Description |
|----------|-------|-------------|
| `core-protocol` | 86 | Consensus, PoH, validators, slots, epochs |
| `programming-model` | 69 | Accounts, instructions, programs, PDAs |
| `programming-model` | 70 | Accounts, instructions, programs, PDAs |
| `token-ecosystem` | 59 | SPL tokens, Token-2022, metadata, NFTs |
| `defi` | 135 | AMMs, liquidity pools, lending protocols |
| `zk-compression` | 34 | ZK proofs, compressed accounts, Light Protocol |
| `infrastructure` | 44 | RPC, validators, staking, snapshots |
| `infrastructure` | 45 | RPC, validators, staking, snapshots |
| `security` | 48 | Attack vectors, audit practices, reentrancy |
| `dev-tools` | 64 | Anchor, Solana CLI, explorers, testing |
| `dev-tools` | 65 | Anchor, Solana CLI, explorers, testing |
| `network` | 58 | Mainnet, devnet, testnet, cluster config |
| `blockchain-general` | 84 | Shared blockchain concepts |
| `web3` | 80 | Wallets, dApps, signing, key management |
Expand Down Expand Up @@ -219,6 +257,7 @@ npm test # Run tests
npm run build # Build package
npm run lint # Type check
npm run validate # Check data integrity
npm run expand:data # Generate candidate/freshness report
```

---
Expand Down
1 change: 1 addition & 0 deletions apps/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
.vercel
2 changes: 2 additions & 0 deletions apps/glossary-os/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
.vercel
.env*.local
88 changes: 88 additions & 0 deletions apps/glossary-os/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,88 @@
# Glossary OS

Glossary OS is a frontend that transforms the Solana Glossary into a structured product for discovery, onboarding, and builder workflows.

Instead of presenting glossary terms as a static list, it provides a multilingual navigation system with contextual learning, concept relationships, and guided exploration.

## Live Demo

https://solana-glossary-two.vercel.app/en

## Overview

Glossary OS enhances the official glossary dataset by turning it into an interactive experience. It supports both new developers and experienced builders through guided learning, use-case navigation, and AI-ready context export.

The platform is designed to scale with new terms through expansion tooling and reviewed contributions.

## Features

- Instant search across all glossary terms
- Contextual term pages with:
- aliases
- related concepts
- commonly confused terms
- next-step exploration
- Mental models to explain concepts intuitively
- Concept graph navigation based on term relationships
- Builder paths for:
- Runtime
- Anchor
- DeFi
- Agents
- Use-case navigation for practical workflows
- Interactive quizzes for onboarding and reinforcement
- Multilingual support: `en`, `pt`, `es`
- Dark and light mode
- AI-ready context export (`Copy context for AI`)
- Data expansion tooling with reviewed glossary contributions

## Routes

- `/en` — Home
- `/en/explore` — Exploration interface
- `/en/term/[slug]` — Term detail page
- `/en/paths` — Builder paths overview
- `/en/paths/[path]` — Builder path detail
- `/en/learn` — Learning interface (quizzes)
- `/en/about` — Project information

## Value Proposition

- Improves onboarding through structured learning and guided exploration
- Enables deeper understanding via relationships between concepts
- Supports real-world workflows with use-case navigation
- Keeps the glossary evolving through contribution and expansion tooling
- Integrates directly with AI workflows via structured context export

## Screenshots

### Landing
![Glossary OS landing](./screenshots/glossary-os-home.png)

### Explore
![Glossary OS explore](./screenshots/glossary-os-explore.png)

### Term Page
![Glossary OS term page](./screenshots/glossary-os-term-pda.png)

### Builder Paths
![Glossary OS builder paths](./screenshots/glossary-os-paths.png)

### Builder Path Detail
![Glossary OS builder path detail](./screenshots/glossary-os-path-anchor.png)

## Local Setup

```bash
npm install
npm run dev:web
```
## Validation

```bash
npm run validate
npm test
npm run typecheck:web
npm run build --workspace @stbr/glossary-os
```

16 changes: 16 additions & 0 deletions apps/glossary-os/docs/SCREENSHOTS.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
# Screenshot Capture

From the repository root:

```bash
npm run dev:web
npm run capture:screenshots --workspace @stbr/glossary-os
```

This script waits for the local app, opens a headless browser, and saves updated PNGs to [`../screenshots`](../screenshots).

Optional overrides:

```bash
BASE_URL=http://127.0.0.1:3001 LOCALE=pt npm run capture:screenshots --workspace @stbr/glossary-os
```
6 changes: 6 additions & 0 deletions apps/glossary-os/next-env.d.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
/// <reference types="next" />
/// <reference types="next/image-types/global" />
/// <reference path="./.next/types/routes.d.ts" />

// NOTE: This file should not be edited
// see https://nextjs.org/docs/app/api-reference/config/typescript for more information.
8 changes: 8 additions & 0 deletions apps/glossary-os/next.config.mjs
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
/** @type {import("next").NextConfig} */
const nextConfig = {
experimental: {
externalDir: true,
},
};

export default nextConfig;
23 changes: 23 additions & 0 deletions apps/glossary-os/package.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
{
"name": "@stbr/glossary-os",
"version": "0.1.0",
"private": true,
"scripts": {
"dev": "next dev",
"build": "next build",
"start": "next start",
"typecheck": "tsc --noEmit -p tsconfig.typecheck.json",
"capture:screenshots": "bash ./scripts/capture-screenshots.sh"
},
"dependencies": {
"next": "^15.2.4",
"react": "^19.0.0",
"react-dom": "^19.0.0"
},
"devDependencies": {
"@types/node": "^25.5.0",
"@types/react": "^19.0.0",
"@types/react-dom": "^19.0.0",
"typescript": "^5.4.0"
}
}
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading