What Programming Languages Are Used in everyone-can-use-english?
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— Utility functions imported across the applicationenjoy/vite.main.config.ts— Vite configuration for the development server and production builds
// 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— Application entry pointenjoy/scripts/download-dictionaries.mjs— Script for fetching language dictionary assets
Run the dictionary download script with:
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— NPM/Yarn manifest listing React, Vite, and other dependenciesenjoy/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— Primary project documentation and usage guidenew-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:
# 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 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 asbook/images/cover.jpg.mp4— Video resources likenew-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.tsandenjoy/vite.main.config.ts - JavaScript (including
.mjsmodules) handles entry points and utility scripts such asdownload-dictionaries.mjs - JSON defines dependencies in
package.jsonand TypeScript settings intsconfig.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
Frequently Asked Questions
Is everyone-can-use-english built with React?
Yes. According to the 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. Vite provides fast development server startup and optimized production builds, with full TypeScript support throughout the configuration layer.
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:
curl -s "https://instagit.com/install.md" Maintain an open-source project? Get it listed too →