Skip to content

Lightning-fast Unix/Linux command reference PWA with 500+ commands, fuzzy search, and sub-50ms response times

License

Notifications You must be signed in to change notification settings

vladbortnik/TLDRx

Repository files navigation

TL;DRx Banner

Commands Made Simple πŸš€

An intelligent, lightning-fast Unix/Linux command reference Progressive Web App

React Vite Tailwind CSS PWA

License: MIT Node Performance Commands

🌐 Live Demo β€’ πŸ› Report Bug β€’ πŸ’‘ Request Feature


πŸ“‹ Table of Contents


✨ Overview

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.

🎯 Why TL;DRx?

  • πŸ“± 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.


🎯 Key Features

πŸ”₯ Core Functionality

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

🎨 User Experience

  • 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

⚑ Performance Optimizations

πŸ“Š 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

πŸš€ Quick Start

Prerequisites

  • Node.js 18.0 or higher
  • npm, yarn, or pnpm

Installation

# Clone the repository
git clone https://github.com/vladbortnik/TLDRx.git
cd TLDRx

# Install dependencies
npm install

# Start development server
npm run dev

The app will be available at http://localhost:5173

Available Scripts

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

Building for Production

# Create optimized production build
npm run build

# Preview the production build
npm run preview

Build output will be in the dist/ directory, ready for deployment.


πŸ’» Usage Guide

πŸ” Basic Search

  1. Type any command name (e.g., grep, docker, ssh) in the search bar
  2. Fuzzy search automatically finds matches as you type
  3. Results are ranked by relevance with exact matches at the top

πŸŽ›οΈ Filtering

  • 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

πŸ“‡ Command Cards

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                        β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

⌨️ Keyboard & Interaction

  • 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

⚑ Performance

πŸ“ˆ Metrics Overview

Metric Before After Improvement
INP 710ms 47ms 93.4% ⬇️
Cards Rendered 500 ~15 97% ⬇️
Memory Usage High Low Optimized
Search Response Variable <150ms Consistent

🎯 2025 Web Standards Compliance

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

πŸš€ Virtual Scrolling Impact

Traditional Rendering          Virtual Rendering
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”           β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ Card 1          β”‚           β”‚ Card 1          β”‚
β”‚ Card 2          β”‚           β”‚ Card 2          β”‚
β”‚ ...             β”‚           β”‚ ...             β”‚
β”‚ Card 500        β”‚ 710ms     β”‚ Card 15         β”‚ 47ms
β”‚ (All in DOM)    β”‚   β†’       β”‚ (Visible only)  β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜           β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

πŸ› οΈ Tech Stack

🎯 Core Framework

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

πŸ“¦ Key Libraries

  • 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

πŸ”§ Development Tools

  • 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

🌐 PWA Stack

  • Vite PWA Plugin 1.0 - Progressive Web App generation
  • Workbox 7.3 - Service worker and caching strategies
  • Web Manifest - App metadata and icon configuration

🎨 Design System

  • CSS Variables - Dynamic theming
  • CSS Transforms - GPU-accelerated animations
  • IntersectionObserver - Efficient visibility detection
  • RequestAnimationFrame - Smooth scroll handling

πŸ“ Project Structure

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

🀝 Contributing

Contributions are welcome and appreciated! TL;DRx is a community-driven project that benefits from diverse perspectives and expertise.

πŸ› Reporting Issues

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)

πŸ’‘ Pull Requests

  1. Fork the repository
  2. Create a feature branch
    git checkout -b feature/amazing-feature
  3. Make your changes following the existing code style
  4. Test thoroughly
    npm run test
    npm run lint
  5. Commit your changes with a descriptive message
    git commit -m 'feat: Add amazing feature'
  6. Push to your branch
    git push origin feature/amazing-feature
  7. Open a Pull Request with a clear description

πŸ“ Development Guidelines

  • 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

🎨 Code Style

  • 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)

πŸ“„ License

This project is licensed under the MIT License - see the LICENSE file for full details.

Summary

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.

πŸ™ Acknowledgments

🌟 Inspiration

  • 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

πŸ“š Resources

  • 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

πŸ› οΈ Technologies

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

🌐 Community

Thank you to all contributors who have helped shape TL;DRx:


✍️ New: Personal Engineering Blog

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.


πŸ“ž Contact & Support

🌐 Links

πŸš€ Live Demo β€’ πŸ› Report Bug β€’ πŸ’‘ Request Feature

πŸ’¬ Stay Connected

Portfolio LinkedIn Twitter GitHub Contact


🌟 Star History

Star History Chart


Built with ❀️ by Vlad Bortnik

Making command-line mastery accessible to everyone.

2025 | Optimized for the Modern Web