How to Install ZuodaoTech/everyone-can-use-english Locally: Complete Setup Guide

Clone the repository, install Node ≥ 20 and Yarn 4, run yarn install at the root, then start your desired component with yarn enjoy:start, yarn docs:dev, or yarn portal:generate.

The Everyone Can Use English project by ZuodaoTech is a Yarn 4 monorepo containing three distinct workspaces: an Electron desktop app for AI-assisted English learning, a Markdown-driven documentation site, and a web portal. Installing it locally requires setting up modern JavaScript tooling and choosing which component to run. This guide walks through the complete installation process using commands and file references from the official source code.

Prerequisites for Installing everyone-can-use-english

Before cloning the repository, verify your environment meets these requirements:

  • Node.js version 20.0.0 or higher (check with node -v)
  • Yarn version 4.6.0 or later (the repository uses Yarn 4 workspaces)

Install Yarn 4 globally if you haven't already:

npm install -g yarn@4

Clone and Bootstrap the Repository

The repository uses Yarn 4 workspaces defined in package.json at the root, so a single installation command prepares all three workspaces simultaneously.


# Clone the repository

git clone https://github.com/ZuodaoTech/everyone-can-use-english.git
cd everyone-can-use-english

# Verify Node version

node -v   # Should output v20.x.x or higher

# Install dependencies for all workspaces

yarn install

This yarn install command reads the workspaces array in package.json and installs dependencies for enjoy/, 1000-hours/, and 1000h-portal/ in one operation.

Run the Desktop App (enjoy Workspace)

The enjoy workspace contains an Electron-based desktop application that provides AI-assisted English learning features.

yarn enjoy:start

This launches the Electron app, which opens a window pointing to https://enjoy.bot according to the implementation in enjoy/src/renderer/components/layouts/title-bar.tsx. The app references the install URL https://1000h.org/enjoy-app/install.html for distribution.

For programmatic control from another Node script:

const { execSync } = require('child_process');

// Run the Yarn script that starts the Enjoy Electron app
execSync('yarn enjoy:start', { stdio: 'inherit' });

Run the Documentation Site (1000-hours Workspace)

The 1000-hours workspace contains the "book" — Markdown-driven teaching materials rendered as a documentation site.

Development server:

yarn docs:dev

Serves the site locally, typically at http://localhost:3000.

Production build:

yarn docs:build

Generates static files for deployment.

Programmatic example using child_process.spawn:

import { spawn } from 'child_process';

const dev = spawn('yarn', ['docs:dev'], { stdio: 'inherit' });
dev.on('close', (code) => console.log(`Docs dev server exited with code ${code}`));

Generate the Web Portal (1000h-portal Workspace)

The 1000h-portal workspace generates static assets for the 1000-hour project's web presence.

yarn portal:generate

Outputs built files to 1000h-portal/dist/ for static hosting.

CI/CD integration example (.github/workflows/build-portal.yml):

name: Build Portal
on: [push, pull_request]
jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: Set up Node
        uses: actions/setup-node@v4
        with:
          node-version: '>=20'
      - name: Install Yarn 4
        run: npm install -g yarn@4
      - name: Install dependencies
        run: yarn install
      - name: Generate portal
        run: yarn portal:generate

Workspace Overview

Workspace Purpose Start Command Key File
enjoy Electron desktop app yarn enjoy:start enjoy/README.md
1000-hours Documentation/book yarn docs:dev / yarn docs:build 1000-hours/README.md
1000h-portal Web portal generator yarn portal:generate 1000h-portal/README.md

All workspace scripts are defined in the root package.json under the "scripts" section, as implemented in ZuodaoTech/everyone-can-use-english.

Troubleshooting Common Installation Issues

Yarn version conflicts: If yarn -v shows a version below 4, run npm install -g yarn@4 again and verify your PATH doesn't reference an older Yarn installation.

Node version errors: Use nvm or fnm to switch to Node 20+ if your system default is older.

Workspace dependency issues: The repository relies on Yarn 4's Plug'n'Zero or node_modules behavior. Delete node_modules and .yarn/cache only as a last resort, then re-run yarn install.

Summary

  • Install Node ≥ 20 and Yarn 4 before beginning
  • Clone and run yarn install once at the repository root to bootstrap all three workspaces
  • Choose your component: yarn enjoy:start for the desktop app, yarn docs:dev for documentation development, or yarn portal:generate for the web portal
  • All scripts originate from the root package.json and leverage Yarn 4's workspace features as defined in ZuodaoTech/everyone-can-use-english

Frequently Asked Questions

What is the minimum Node.js version for everyone-can-use-english?

Node.js 20.0.0 or higher is required. The CI workflows and package.json engines field both specify >=20, and some dependencies rely on Node 20 features for optimal performance.

Can I install and run only one workspace?

Yes. While yarn install at the root installs dependencies for all workspaces, you can run only the workspace you need. Each workspace has its own directory with focused functionality, and the root package.json scripts provide convenient aliases like yarn enjoy:start that delegate to the appropriate workspace.

Where does the Electron app load its content from?

The enjoy workspace loads https://enjoy.bot in its Electron window, as shown in enjoy/src/renderer/components/layouts/title-bar.tsx. For offline use or development, you would need to modify the source or run a local instance of the web service.

How do I update dependencies after pulling new changes?

Run yarn install again at the repository root. Yarn 4's workspace-aware resolution will update all locked dependencies across enjoy/, 1000-hours/, and 1000h-portal/ based on the checked-in yarn.lock file.

Have a question about this repo?

These articles cover the highlights, but your codebase questions are specific. Give your agent direct access to the source. Share this with your agent to get started:

Share the following with your agent to get started:
curl -s "https://instagit.com/install.md"

Works with
Claude Codex Cursor VS Code OpenClaw Any MCP Client

Maintain an open-source project? Get it listed too →