A statically generated Next.js glossary for Web3 concepts. The site is backed by MDX content in content/dictionary, grouped into category pages, searchable from the UI, and published under the /web3-dictionary base path.
- Next.js App Router
- React 19
- Tailwind CSS 4
- MDX content loaded from the filesystem
- pnpm for package management
app/: routes, metadata, sitemap, robots, and page shellscomponents/: UI and client-side interactioncontent/dictionary/: one MDX file per dictionary termlib/dictionary/: content loading, validation schemas, categories, and helpersscripts/: maintenance scripts for validation and content cleanup
- Node.js 20+
- pnpm 9+
pnpm installpnpm devThe app uses NEXT_PUBLIC_SITE_URL for canonical URLs, Open Graph URLs, robots.txt, and sitemap.xml. If it is not set, the site falls back to https://lancers.technology.
Each dictionary entry lives in content/dictionary/<slug>.mdx and is validated against the shared schema in lib/dictionary/schemas.ts.
Important rules:
- The frontmatter
slugmust match the filename. relateditems must point to existing slugs.- The body must meet the minimum word count enforced by the validator.
- Ordered lists should use real Markdown list syntax, not inline numbered paragraphs.
Reference docs:
DICTIONARY_STYLE.mdCONTRIBUTING.md
pnpm dev
pnpm build
pnpm start
pnpm lint
pnpm format
pnpm format:check
pnpm validate:dictionary
pnpm fix:inline-lists
pnpm fix:missing-related
pnpm check- The app is configured with
basePath: "/web3-dictionary"innext.config.ts. - Canonical URLs and sitemap entries include that base path.
- Dictionary term pages and category pages are statically generated at build time.
Run these before opening or promoting a release PR:
pnpm validate:dictionary
pnpm lint
pnpm format:check
pnpm build
pnpm audit --prodOpen a PR against the appropriate branch and follow the guidelines in CONTRIBUTING.md. Content updates should include valid related links, accurate category assignment, and enough explanatory detail to pass the validator.