# What Programming Languages Are Used in everyone-can-use-english?

> Discover the programming languages powering everyone-can-use-english. Learn about TypeScript, JavaScript, JSON, HTML, Markdown, and Shell scripts used in this project.

- Repository: [Zuodao/everyone-can-use-english](https://github.com/ZuodaoTech/everyone-can-use-english)
- Tags: unknown
- Published: 2026-08-14

---

**The everyone-can-use-english repository uses TypeScript as its primary language, supplemented by JavaScript, JSON, Markdown, HTML, and Shell scripts.**

The **everyone-can-use-english** project by ZuodaoTech is a multilingual codebase designed to deliver an English learning web application. Built with modern tooling and extensive documentation, it combines statically typed application logic with flexible scripting and rich content formats. This article breaks down each programming language used, why it was chosen, and where you'll find it in the source tree.

## Primary Language: TypeScript

**TypeScript** (`.ts`) drives the core application logic. It provides compile-time type safety, modern ES-module support, and seamless integration with the Vite build system.

Key TypeScript files include:

- [`enjoy/src/utils.ts`](https://github.com/ZuodaoTech/everyone-can-use-english/blob/main/enjoy/src/utils.ts) — Utility functions imported across the application
- [`enjoy/vite.main.config.ts`](https://github.com/ZuodaoTech/everyone-can-use-english/blob/main/enjoy/vite.main.config.ts) — Vite configuration for the development server and production builds

```typescript
// Example usage from utils.ts
import { formatTime } from './utils';

const readable = formatTime(125); // → "02:05"
console.log(readable);

```

The project leverages TypeScript for both **source code** and **configuration**, ensuring consistency from application logic to build tooling.

## Supporting Languages and Their Roles

### JavaScript (.js, .mjs)

**JavaScript** handles Node-based entry points, runtime scripts, and legacy compatibility layers. The repository uses `.mjs` files for modern ES-module scripts.

Representative files:

- [`entry/index.js`](https://github.com/ZuodaoTech/everyone-can-use-english/blob/main/entry/index.js) — Application entry point
- `enjoy/scripts/download-dictionaries.mjs` — Script for fetching language dictionary assets

Run the dictionary download script with:

```bash
node ./enjoy/scripts/download-dictionaries.mjs

```

### JSON (.json)

**JSON** serves as the universal configuration and package manifest format. It defines dependencies, TypeScript compiler options, and tool settings.

Critical JSON files:

- [`package.json`](https://github.com/ZuodaoTech/everyone-can-use-english/blob/main/package.json) — NPM/Yarn manifest listing React, Vite, and other dependencies
- [`enjoy/tsconfig.json`](https://github.com/ZuodaoTech/everyone-can-use-english/blob/main/enjoy/tsconfig.json) — TypeScript compiler configuration

### Markdown (.md)

**Markdown** powers the extensive documentation and tutorial content that forms the core learning material. The repository contains substantial educational content in Chinese and English.

Key documentation files:

- [`README.md`](https://github.com/ZuodaoTech/everyone-can-use-english/blob/main/README.md) — Primary project documentation and usage guide
- `new-edition-drafts/英文语音简明教程.md` — Core tutorial on English pronunciation

### HTML (.html)

**HTML** appears as rendered documentation pages generated from Markdown sources, such as `new-edition-drafts/英文语音简明教程.html`.

### Shell Script (.sh)

**Shell scripts** automate platform-specific setup tasks. The repository includes macOS-specific automation:

```bash

# Example: macOS certificate installation

chmod +x ./enjoy/scripts/add-macos-cert.sh
./enjoy/scripts/add-macos-cert.sh

```

The file [`enjoy/scripts/add-macos-cert.sh`](https://github.com/ZuodaoTech/everyone-can-use-english/blob/main/enjoy/scripts/add-macos-cert.sh) demonstrates typical platform-specific automation found in the codebase.

## Asset Files

Beyond code, the repository contains media assets that support the learning experience:

- `.png`, `.jpg` — Images such as `book/images/cover.jpg`
- `.mp4` — Video resources like `new-edition-drafts/videos/closing-door-as-approaching.mp4`

## How the Languages Work Together

The **everyone-can-use-english** architecture follows a clear separation:

| Layer | Language | Purpose |
|-------|----------|---------|
| Application core | TypeScript | Type-safe business logic and UI components |
| Build & tooling | TypeScript/JavaScript | Vite configuration and custom scripts |
| Runtime scripts | JavaScript (.mjs) | Dictionary downloads and automation |
| Documentation | Markdown/HTML | Tutorials and project guides |
| Configuration | JSON | Package management and compiler settings |
| Platform setup | Shell | macOS certificate installation |

This multilingual approach allows the maintainers to use the right tool for each task: **TypeScript** for maintainable application code, **JavaScript** for lightweight scripts, **Markdown** for collaborative documentation, and **Shell** for system integration.

## Summary

- **TypeScript** is the dominant language, used for application code and Vite configuration in files like [`enjoy/src/utils.ts`](https://github.com/ZuodaoTech/everyone-can-use-english/blob/main/enjoy/src/utils.ts) and [`enjoy/vite.main.config.ts`](https://github.com/ZuodaoTech/everyone-can-use-english/blob/main/enjoy/vite.main.config.ts)
- **JavaScript** (including `.mjs` modules) handles entry points and utility scripts such as `download-dictionaries.mjs`
- **JSON** defines dependencies in [`package.json`](https://github.com/ZuodaoTech/everyone-can-use-english/blob/main/package.json) and TypeScript settings in [`tsconfig.json`](https://github.com/ZuodaoTech/everyone-can-use-english/blob/main/tsconfig.json)
- **Markdown** contains the core educational content, with tutorials stored in `new-edition-drafts/`
- **Shell scripts** provide macOS-specific automation via [`add-macos-cert.sh`](https://github.com/ZuodaoTech/everyone-can-use-english/blob/main/add-macos-cert.sh)

## Frequently Asked Questions

### Is everyone-can-use-english built with React?

Yes. According to the [`package.json`](https://github.com/ZuodaoTech/everyone-can-use-english/blob/main/package.json) file in the repository, React is listed as a dependency alongside Vite and other modern frontend tools. The TypeScript source files implement React components with type safety.

### Why does the project use both TypeScript and JavaScript?

The maintainers use **TypeScript** for the main application to benefit from static type checking and better IDE support. **JavaScript** (particularly `.mjs` modules) is reserved for simpler scripts like `download-dictionaries.mjs` where the overhead of type definitions adds minimal value.

### Where is the learning content stored in the repository?

The educational material resides primarily in `new-edition-drafts/`, with source files written in **Markdown** (e.g., `英文语音简明教程.md`) and rendered to **HTML** for distribution. The directory also contains video assets referenced by the tutorials.

### What build tool does everyone-can-use-english use?

The project uses **Vite**, configured in [`enjoy/vite.main.config.ts`](https://github.com/ZuodaoTech/everyone-can-use-english/blob/main/enjoy/vite.main.config.ts). Vite provides fast development server startup and optimized production builds, with full TypeScript support throughout the configuration layer.