A feature-rich browser extension that enhances your LeetCode experience with friends management, contest predictions, and premium features.
-
Friends Management
- Add users to Friends Page from their Profile Page (⭐ star button)
- View all friends and their data from one place
- Import/Export friends list
-
Contest Enhancements
- Predict your rating before official results
- View friends' participation and predicted ratings
-
Problem Insights
- View all problems by company (with duration + frequency)
- See problem ratings, contest, and company tags
Built with WXT Framework (WebExtensions + TypeScript) for robust extension development.
src/
├── components/ # Reusable UI components
│
├── core/ # Core application logic
│ ├── app.ts # Main application class
│ ├── manager.ts # Base manager class
│ ├── defines/ # Mostly enums
│ ├── interfaces/ # TypeScript interfaces
│ ├── modules/ # Feature modules
│ └── utils/ # Sub-managers and helpers
│
├── entries/ # Extension entry points
│ ├── content.ts # Content script entry
│ ├── background/ # Background service worker
│ ├── import_friends/ # Firefox fix for file import
│ └── popup/ # Extension popup
│
├── public/ # Static assets
│ └── icons/ # Extension icons
│
└── values/ # Configuration values
├── config/ # App configuration
├── html/ # HTML components
├── selectors/ # DOM selectors
└── svg/ # SVG assets
-
Modular Design
- Features are split into independent modules in
core/modules/
- Each module implements
IModule
interface for consistent lifecycle - Enables easy feature toggling and maintenance
- Features are split into independent modules in
-
Separate Selectors
- All DOM selectors are centralized in
values/selectors/
- Organized by LeetCode page type (contest, problem, profile)
- Makes UI changes easier to manage
- All DOM selectors are centralized in
-
HTML Components
- Templates stored in
values/html/
as separate files - Loaded dynamically to keep TSX/JSX minimal
- Promotes separation of concerns
- Templates stored in
-
Type Safety
- Comprehensive type definitions
- Strict TypeScript configuration
Note: Alternatively npm can be used instead of bun
-
Fork this repository
-
Clone the repository
git clone https://github.com/<yourusername>/leet-xt.git cd leet-xt
-
Install dependencies
bun install
-
Start development server
bun run dev
bun run build
We welcome contributions! Please follow these steps:
- Make sure you have forked and cloned the repository
- Create a feature branch (
git checkout -b feature/AmazingFeature
) - Commit your changes (
git commit -m 'Add some AmazingFeature'
) - Push to the branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
Distributed under the MIT License. See LICENSE
for more information.
Leet Xt - [email protected]
Project Link: https://leet-xt.js.org/