An intelligent, lightning-fast Unix/Linux command reference Progressive Web App
- β¨ Overview
- π― Key Features
- π Quick Start
- π» Usage Guide
- β‘ Performance
- π οΈ Tech Stack
- π Project Structure
- π€ Contributing
- π License
- π Acknowledgments
TL;DRx is a next-generation Progressive Web App that transforms how developers interact with Unix/Linux command documentation. Built with React 19 and optimized for 2025's web standards, it delivers instant command lookup with sub-50ms response times, intelligent fuzzy search, and a Matrix-inspired interface. Install anywhere, works offline, 500+ commands at your fingertips.
- π± Install Anywhere - Works offline as a PWA on desktop and mobile
- β‘ Blazing Fast - 93.4% performance improvement with virtual scrolling
- π Smart Search - 4-tier fuzzy search with consecutive match bonuses
- π¨ Beautiful UI - Matrix terminal theme with GPU-accelerated animations
- π± Fully Responsive - Optimized layouts for all screen sizes from mobile to desktop
- π Free & Open Source - MIT licensed, community-driven
π Live Demo: TL;DRx
Try searching for commands like grep, docker, ssh, or git to see instant, intelligent results.
| Feature | Description |
|---|---|
| 500+ Commands | Comprehensive library covering System, Security, Shell, File Operations, Text Processing, Networking, Development, and more |
| Intelligent Fuzzy Search | 4-tier priority system ranks results by relevance with exact matches prioritized |
| Platform Filtering | Multi-select filters for Linux, macOS, and Windows with OR logic |
| 11 Categories | Organized taxonomy for easy navigation and discovery |
| Virtual Scrolling | React Virtuoso renders only visible cards for optimal performance |
| Offline Support | Service worker caching enables full offline functionality |
- Matrix Terminal Theme - Dark UI with signature green accent glows
- Fully Responsive Design - Fluid layouts adapt seamlessly across smartphones, tablets, and desktop displays
- Scroll-Based Transitions - Seamless switch between full and mini search interfaces
- One-Click Copy - Copy command examples instantly with visual feedback
- Related Commands - Discover similar, alternative, and complementary commands
- Collapsible Sections - Expandable key features, warnings, and advanced options
- Man Page Integration - Direct links to official documentation
- PWA Installation - Add to home screen, works like a native app
π Core Web Vitals (2025 Standards)
βββββββββββββββββββββββββββββββββββββββββββ
β INP: 47ms (Target: <200ms) β
β
β Search: 150ms (Debounced) β
β
β Rendering: ~15 (Virtual cards) β
β
β Bundle: Optimized with Vite 7 β
β
βββββββββββββββββββββββββββββββββββββββββββ
- React.memo - Component memoization prevents unnecessary re-renders
- useMemo - Multi-stage filter pipeline optimization
- IntersectionObserver - Efficient scroll detection without event listeners
- RequestAnimationFrame - Throttled scroll handlers
- 150ms Debouncing - Instant-feeling search with optimized re-renders
- GPU Acceleration - Smooth CSS transitions and wave animations
- Node.js 18.0 or higher
- npm, yarn, or pnpm
# Clone the repository
git clone https://github.com/vladbortnik/TLDRx.git
cd TLDRx
# Install dependencies
npm install
# Start development server
npm run devThe app will be available at http://localhost:5173
| Command | Description |
|---|---|
npm run dev |
Start development server with hot reload |
npm run build |
Build optimized production bundle |
npm run preview |
Preview production build locally |
npm run lint |
Run ESLint for code quality checks |
npm run test |
Run Vitest unit tests |
npm run test:watch |
Run tests in watch mode |
# Create optimized production build
npm run build
# Preview the production build
npm run previewBuild output will be in the dist/ directory, ready for deployment.
- Type any command name (e.g.,
grep,docker,ssh) in the search bar - Fuzzy search automatically finds matches as you type
- Results are ranked by relevance with exact matches at the top
- Platform Filters: Click Linux, macOS, or Windows badges to filter by platform
- Category Filters: Click "Advanced filters" to select from 11 categories
- Combine Filters: Use multiple filters simultaneously for precise results
- Clear Filters: Click the logo to reset all filters and return to top
Each command card displays comprehensive information:
βββββββββββββββββββββββββββββββββββββββββββ
β π’ grep β
β "Globally search for Regular β
β Expression and Print" β
βββββββββββββββββββββββββββββββββββββββββββ€
β Syntax: grep [options] pattern [files] β
βββββββββββββββββββββββββββββββββββββββββββ€
β π Key Features β
β π» Code Examples (click to copy) β
β β οΈ Warnings β
β π Related Commands β
β π Man Page Link β
βββββββββββββββββββββββββββββββββββββββββββ
- Click search area to focus input
- Scroll down to activate mini search mode (compact header)
- Click logo to reset all filters and scroll to top
- Click examples to copy to clipboard with visual feedback
| Metric | Before | After | Improvement |
|---|---|---|---|
| INP | 710ms | 47ms | 93.4% β¬οΈ |
| Cards Rendered | 500 | ~15 | 97% β¬οΈ |
| Memory Usage | High | Low | Optimized |
| Search Response | Variable | <150ms | Consistent |
TL;DRx exceeds all Core Web Vitals targets:
- β Interaction to Next Paint (INP): 47ms (Target: <200ms)
- β First Contentful Paint (FCP): <1.8s
- β Largest Contentful Paint (LCP): <2.5s
- β Cumulative Layout Shift (CLS): <0.1
Traditional Rendering Virtual Rendering
βββββββββββββββββββ βββββββββββββββββββ
β Card 1 β β Card 1 β
β Card 2 β β Card 2 β
β ... β β ... β
β Card 500 β 710ms β Card 15 β 47ms
β (All in DOM) β β β (Visible only) β
βββββββββββββββββββ βββββββββββββββββββ
| Technology | Version | Purpose |
|---|---|---|
| React | 19.1 | UI library with Compiler optimizations |
| Vite | 7.1 | Lightning-fast build tool and dev server |
| Tailwind CSS | 3.4 | Utility-first CSS framework |
- React Virtuoso 4.14 - Virtual scrolling for 500+ commands
- Radix UI - Accessible component primitives (Accordion, Dialog, Tooltip)
- Lucide React 0.542 - Beautiful, consistent icon set
- React Icons 5.5 - Comprehensive icon library
- class-variance-authority - Type-safe CSS class composition
- clsx & tailwind-merge - Efficient class name merging
- ESLint 9.29 - Code linting and quality enforcement
- Vitest 3.2 - Fast unit testing framework
- Playwright 1.53 - End-to-end testing
- Puppeteer 24.19 - Browser automation for testing
- @testing-library/react 16.3 - React component testing utilities
- Vite PWA Plugin 1.0 - Progressive Web App generation
- Workbox 7.3 - Service worker and caching strategies
- Web Manifest - App metadata and icon configuration
- CSS Variables - Dynamic theming
- CSS Transforms - GPU-accelerated animations
- IntersectionObserver - Efficient visibility detection
- RequestAnimationFrame - Smooth scroll handling
TL;DRx/
βββ public/ # Static assets
β βββ icons/ # PWA icons and app images
β β βββ icon-192x192.png
β β βββ icon-512x512.png
β β βββ tldr.png # Banner image
β βββ favicon.svg
β
βββ src/
β βββ main.jsx # React app initialization
β βββ App.jsx # Main orchestrator (593 lines)
β β
β βββ components/
β β βββ commands/ # Command display components
β β β βββ CommandGrid.jsx # Virtual scrolling container
β β β βββ CommandCard.jsx # Individual command card (memoized)
β β β βββ CommandCardHeader.jsx # Card header (memoized)
β β β
β β βββ filters/ # Filtering components
β β β βββ FilterBar.jsx # Main filter container
β β β βββ PlatformFilterButton.jsx
β β β βββ CategoryFilters.jsx # Advanced category filters
β β β
β β βββ search/ # Search interface
β β β βββ SearchInterface.jsx # Full search header
β β β βββ SearchInput.jsx # Search input field
β β β βββ SearchInterfaceMini.jsx # Compact search header
β β β βββ ResultsCounter.jsx # Results count display
β β β
β β βββ ui/ # Reusable UI components
β β β βββ LoadingState.jsx
β β β βββ ErrorState.jsx
β β β βββ badge.jsx
β β β βββ button.jsx
β β β βββ input.jsx
β β β βββ utils.js
β β β
β β βββ Header.jsx # App header
β β βββ PWAInstall.jsx # PWA installation prompt
β β
β βββ data/
β β βββ commands.js # 500+ commands (production)
β β βββ dev-loader.js # Development data optimizer (development only)
β β βββ chunks/ # Command category modules (development only)
β β βββ index.js
β β βββ system.js
β β βββ security.js
β β βββ shell.js
β β βββ file-operations.js
β β βββ text-processing.js
β β βββ networking.js
β β βββ automation.js
β β βββ data-processing.js
β β βββ package-management.js
β β βββ development-*.js # Git, Web, Containers, Database, etc.
β β βββ ...
β β
β βββ hooks/
β β βββ useWaveAnimation.js # Synchronized RGB wave animations
β β βββ useScrollBehavior.js # Header hide/show logic
β β
β βββ utils/
β β βββ ui-icons.js # Platform/category icon configuration
β β βββ copyToClipboard.js # Clipboard utilities with feedback
β β
β βββ __tests__/ # Test suites
β βββ App.test.jsx
β βββ App.performance.test.jsx
β βββ commands.test.js
β βββ setupTests.js
β
βββ vite.config.js # Vite configuration
βββ tailwind.config.js # Tailwind CSS configuration
βββ postcss.config.js # PostCSS configuration
βββ eslint.config.js # ESLint configuration
βββ package.json # Dependencies and scripts
βββ README.md # This file
βββ LICENSE # MIT License
Contributions are welcome and appreciated! TL;DRx is a community-driven project that benefits from diverse perspectives and expertise.
When reporting issues, please:
- Use the GitHub issue tracker
- Provide clear, detailed reproduction steps
- Include browser and OS information
- Attach screenshots or screen recordings if relevant
- Label the issue appropriately (bug, enhancement, question)
- Fork the repository
- Create a feature branch
git checkout -b feature/amazing-feature
- Make your changes following the existing code style
- Test thoroughly
npm run test npm run lint - Commit your changes with a descriptive message
git commit -m 'feat: Add amazing feature' - Push to your branch
git push origin feature/amazing-feature
- Open a Pull Request with a clear description
- Use React.memo for expensive components
- Implement proper error handling and loading states
- Write tests for new features (target >80% coverage)
- Update documentation as needed
- Follow conventional commit messages
- Ensure all tests pass before submitting PRs
- Use ES6+ syntax
- Follow React Hooks best practices
- Use Tailwind CSS utility classes
- Keep components small and focused
- Document complex logic with comments
- Use TypeScript JSDoc for type hints (optional)
This project is licensed under the MIT License - see the LICENSE file for full details.
MIT License
Copyright (c) 2025 Vlad Bortnik
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
- tldr-pages - The original community-driven documentation project
- DevDocs - Fast, offline API documentation browser
- Modern Terminal UIs - Inspiration from tools like Warp, Hyper, and Starship
- Command Data - Curated from official documentation, man pages, and community resources
- Icons - React Icons, Lucide React, and custom Matrix-themed designs
- Performance Research - Google Web.dev guidelines and Core Web Vitals
Special thanks to the maintainers and contributors of:
- React team for React 19 and Compiler optimizations
- Vite team for the blazing-fast build tool
- Tailwind Labs for the utility-first CSS framework
- Radix UI for accessible component primitives
- React Virtuoso for the virtual scrolling implementation
Thank you to all contributors who have helped shape TL;DRx:
I've opened a dedicated engineering blog to go deeper into the ideas behind TL;DRx and my other projects.
π Visit the Blog on vladbortnik.dev
Short, no-fluff write-ups on performance, clean architecture, and real-world debugging stories.
Built with β€οΈ by Vlad Bortnik
Making command-line mastery accessible to everyone.
2025 | Optimized for the Modern Web