Skip to content

Latest commit

 

History

History
263 lines (192 loc) · 7.54 KB

README.md

File metadata and controls

263 lines (192 loc) · 7.54 KB

wordsofweb3

A multilingual glossary for web3, crypto, and decentralized web terminology, deployed on IPFS at wordsofweb3.eth.limo.

wordsofweb3 Interface

If the canonical URL isn't working, try the IPNS hash.

Overview

wordsofweb3 is a collaborative project by Education DAO that aims to create a credibly neutral, living record of web3 and decentralized web tech terminology.

The project supports multiple languages and provides an intertextual experience where terms link to related concepts.

Design Philosophy

This app is meant to be for the ages. We follow these core principles:

  • Longevity: Built to sometimes break (but never fail, like every other durable thing out there), using the simplest possible solutions
  • Accessibility: Available to the widest possible audience
  • Decentralization: Deployed on IPFS for permanent availability
  • Simplicity: Minimal dependencies, custom solutions over external packages
  • Language neutrality: Working towards a human language-agnostic design.

Features

  • Multilingual support: Available in 28+ languages
  • Intertextual experience: Terms link to related concepts within definitions
  • Search functionality: Easy term lookup across all supported languages
  • Static generation: All pages built at compile time for reliability
  • Decentralized storage: Deployed on IPFS via Fleek; working towards multiple fallbacks, e.g. Arweave, GH Pages, etc.

Supported Languages

Click to see all 28+ supported languages
  • العربية (Arabic)
  • 中文-简体 (Simplified Chinese)
  • 中文-繁體 (Traditional Chinese)
  • Nederlands (Dutch)
  • English (US/UK)
  • Français (French)
  • Deutsch (German)
  • Eλληνικά (Greek)
  • Hausa
  • हिन्दी (Hindi)
  • 日本語 (Japanese)
  • 한국어 (Korean)
  • Español de (Latin America)
  • Magyar (Hungarian)
  • Bahasa Indonesia (Indonesian)
  • Italiano (Italian)
  • فارسی (Persian)
  • Bahasa Melayu (Malaysian)
  • Pidgin (Nigerian Pidgin)
  • Polski (Polish)
  • Português Brasileiro (Brazilian Portuguese)
  • Limba Română (Romanian)
  • Русские (Russian)
  • Español de América Latina (Latin American Spanish)
  • Tagalog (Filipino)
  • ไทย (Thai)
  • Türkçe (Turkish)
  • Українська (Ukrainian)
  • Tiếng-việt (Vietnamese)

Getting Started

Prerequisites

Installation

bash
git clone https://github.com/mapachurro/wordsofweb3.git
cd wordsofweb3
nvm use

If necessary, based on console output, run nvm install

Once the correct version of node is installed, run:

npm install

Technical Conventions

  1. Module System

    • Use ES Module syntax throughout
    • No CommonJS require() statements
  2. Error Handling

    • Include graceful failures
    • Implement comprehensive error logging
    • Add console logging for debugging
  3. Custom Solutions

    • Prefer custom scripts over npm packages
    • Maintain minimal dependencies

Note: Currently, this project does not bundle any JS into the client side. It outputs static JS files for specific pages only.

Project Architecture

Directory Structure

./
├── src/
│   └── js/           # Client-facing JavaScript
├── utils/            # Build and data processing scripts
├── locales/          # Language-specific content
├── static/           # Static assets
└── build/            # Generated site output

Data Management

CSV Files

  • all-terms.csv: Canonical source for terms across languages
  • english-terms.csv: Working file for English definitions

Build Process

  1. CSV files processed into JSON
  2. Static pages generated from JSON
  3. Intertextual links created
  4. Search indices built

See the build script for more detail.

Search Functionality

The search system provides:

  • Term matches
  • Definition matches
  • Partial matches
  • Language-specific search indices

The search results are drawn from indices made during the build process. They will be located in each locale's built directory, under the file name directoryContents.json.

Visual Identity

Color Palette

  • Primary: #a49ceb
  • Background: #1c1c1c
  • Accents:
    • #5c5481
    • #484366
    • #54547c
    • #5c5c8c

Contributing

We welcome contributions! See our Contributing Guide for:

  • How to submit changes
  • How to report issues
  • Term addition process
  • Translation guidelines

Development

Building the Project

npm run build

This will:

  1. Generate homepages
  2. Build term pages
  3. Create intertextual links
  4. Generate search indices
  5. Copy static assets

For a detailed, if not always up to date, walkthrough of data importation and site build processes, see the build README.

Testing

Before deployment:

  1. Test on local server
  2. Verify language switching
  3. Check search functionality
  4. Validate intertextual links

Test on local server

Once you've installed this project, you can simply run:

- npm run build
- npm run start

and you will have the site running locally at localhost:8080.

Deployment

The site is currently deployed using a combination of two web3 technologies:

  • Site builds uploaded to IPFS, and domain routed to that content hash, via Fleek
  • ENS is used to create the wordsofweb3.eth name
  • ENS' 'limo' routing service integrates with Fleek to allow the site to be accessible at wordsofweb3.eth.limo.

Future Plans

  1. Language-agnostic term key system
  2. Enhanced search capabilities
  3. Attestation-based contribution flow
  4. Improved language switching

License

This project is licensed under the DBAD License.

Contact

  • Create an Issue for bug reports or feature requests
  • Join Education DAO for broader discussions