A collection of modern, easy-to-use online tools built with Next.js 16, TypeScript, and Tailwind CSS, featuring a sleek interface powered by shadcn/ui.
- Modern UI/UX: Sleek, minimal design inspired by shadcn/ui.
- Theming: Full Dark/Light mode support with smooth transitions.
- Performance: Optimized with Next.js 16 and Turbopack for speed.
- Animations: Smooth interactions using Framer Motion.
- Responsiveness: Flawless display on mobile, tablet, and desktop.
- Accessibility: Components aim for WCAG compliance.
| Category | Technology | Version | Link |
|---|---|---|---|
| Framework | Next.js | 16.x | Next.js |
| Language | TypeScript | 5.x | TypeScript |
| Styling | Tailwind CSS | v4 | Tailwind CSS |
| UI Components | shadcn/ui | Latest | shadcn/ui |
| State Management | Zustand | Latest | Zustand |
| Animations | Framer Motion | Latest | Framer Motion |
| Authentication | NextAuth.js | v5 | NextAuth |
| Notifications | react-hot-toast | Latest | react-hot-toast |
| Icons | Lucide React | Latest | Lucide |
| Package Manager | pnpm (recommended) | Latest | pnpm |
| Containerization | Docker | Latest | Docker |
| Code Highlighting | Shiki | Latest | Shiki |
- Node.js 18+
- pnpm (recommended package manager)
# 1. Clone the repository
git clone <your-repo-url>
cd simple-tool
# 2. Install dependencies
pnpm install
# 3. Run development server
pnpm devOpen http://localhost:3000 to view the application.
# Create optimized production build
pnpm build
# Start production server
pnpm startThe project includes 23+ tools across 8 categories, with professional-grade features and modern UI:
- Hex Calculator - Advanced number base converter with bitwise operations (AND, OR, XOR, shifts)
- Image Converter - Convert between JPG, PNG, WebP formats with batch processing
- Image Cropper - Precise image cropping with rotation and aspect ratio presets
- Timestamp Converter - Convert timestamps to human-readable dates with timezone support
- OCR Tool - Extract text from images with bounding box visualization (max 10MB)
- 3D Model Viewer - Interactive 3D model viewer with multiple format support
- Color Picker - Advanced color selection with palette generation
- Cat Gallery - Browse cute cat pictures from The Cat API
- JSON Formatter - Format, validate, and minify JSON with error highlighting
- Text Compressor - Compress multi-line text into single lines with custom options
- Base64 Encoder/Decoder - Encode/decode text and files to/from Base64
- Hash Generator - Generate MD5, SHA-1, SHA-256 hashes for text and files
- Encoder/Decoder - Multi-format encoding tool supporting Base64, URLs, and MD5
- Password Generator - Generate complex passwords or memorable passphrases with strength evaluation
- Regex Tester - Real-time regex testing with pattern highlighting and capture groups
- Linux Commands - Interactive Linux command reference with examples
- Docker Commands - Docker command cheat sheet with syntax highlighting
- Git Commands - Git workflow reference with common commands
- NGINX Commands - NGINX configuration and management reference
- Pomodoro Timer - Work/break session manager with customizable durations and notifications
- Site Navigator - Bookmark manager with categories, search, and admin interface
- Lottery Tools - AI-powered lottery ticket recognition and prize calculation
- 大乐透 (DLT), 双色球 (SSQ), 福彩8 (FC8) support
- OCR ticket scanning with automatic prize calculation
- Number generator with proper odds and historical data
👉 Try it now: https://your-domain.com
Coming Soon: Screenshots of the main interface and popular tools
- Modern Design: Clean, minimal interface with smooth gradients
- Dark/Light Themes: Seamless theme switching with system preference detection
- Responsive Layout: Optimized for desktop, tablet, and mobile devices
- Interactive Elements: Hover effects, smooth transitions, and micro-interactions
- Accessibility: WCAG-compliant components with keyboard navigation
- Global Search: Find tools quickly from any page
- Category Filtering: Browse tools by functionality
- Recent Tools: Quick access to recently used utilities
- Tool Favorites: Save frequently used tools (coming soon)
- Keyboard Shortcuts: Power user navigation (coming soon)
The main page features a clean layout for discovering tools:
- Hero Section: Gradient title ("Modern Online Tools") with smooth animations.
- Category Filtering: Interactive badge filters (e.g., Converters, Image Tools, Text Tools).
- Tool Cards: Responsive grid displaying tool icons, names, and descriptions with engaging hover effects (lift, scale).
- Navigation Bar: Sticky header with a global Search Bar and Theme Toggle.
This section outlines the project architecture for contributors.
simple-tool/
├── app/ # Next.js 16 App Router
│ ├── (auth)/ # Authentication routes
│ ├── admin/ # Admin dashboard
│ ├── api/ # API routes
│ │ ├── auth/ # Authentication endpoints
│ │ ├── bookmarks/ # Site navigator API
│ │ ├── cats/ # Cat API integration
│ │ ├── file/ # File processing endpoints
│ │ ├── lottery/ # Lottery data and OCR
│ │ └── ocr/ # OCR processing
│ ├── tools/ # Tool pages (23+ tools)
│ │ ├── color-picker/
│ │ ├── encoder-decoder/
│ │ ├── hex-converter/
│ │ ├── image-converter/
│ │ ├── image-cropper/
│ │ ├── json-formatter/
│ │ ├── lottery/
│ │ ├── model-viewer/
│ │ ├── ocr/
│ │ ├── password-generator/
│ │ ├── pomodoro-timer/
│ │ ├── regex-tester/
│ │ ├── site-navigator/
│ │ ├── text-compressor/
│ │ └── timestamp-converter/
│ ├── globals.css
│ ├── layout.tsx # Root layout with providers
│ └── page.tsx # Homepage
├── components/
│ ├── layout/ # Layout components
│ │ ├── navbar.tsx
│ │ ├── footer.tsx
│ │ └── theme-provider.tsx
│ ├── tools/ # Tool-specific components
│ │ ├── hex-converter/
│ │ ├── image-tools/
│ │ ├── json-formatter/
│ │ ├── lottery/
│ │ └── ...
│ └── ui/ # shadcn/ui components
│ ├── button.tsx
│ ├── card.tsx
│ ├── input.tsx
│ ├── dialog.tsx
│ └── 30+ more components
├── lib/
│ ├── auth.ts # NextAuth configuration
│ ├── constants/ # Tool definitions and metadata
│ │ └── tools.ts # Central tool registry
│ ├── db.ts # Database connection
│ ├── stores/ # Zustand state management
│ │ ├── theme-store.ts
│ │ └── ...
│ └── utils.ts # Utility functions
├── public/ # Static assets
├── types/ # TypeScript type definitions
├── Dockerfile # Production container setup
├── docker-compose.yml # Development environment
├── tailwind.config.ts # Tailwind CSS configuration
├── next.config.ts # Next.js configuration
└── package.json # Dependencies and scripts
Follow these steps to add a new tool to the platform:
-
Create Tool Page
# Create new tool directory and page mkdir app/tools/your-tool-name touch app/tools/your-tool-name/page.tsx -
Register Tool Definition Add your tool to
lib/constants/tools.ts:export const tools = { // ... existing tools 'your-tool-name': { id: 'your-tool-name', name: 'Your Tool Name', description: 'Brief description of what your tool does', category: 'category-name', icon: 'icon-name', featured: true, // optional: feature on homepage path: '/tools/your-tool-name', } }
-
Create Tool Components
# Create component directory mkdir components/tools/your-tool-name -
Implement Tool Page Structure
// app/tools/your-tool-name/page.tsx import { YourToolComponent } from '@/components/tools/your-tool-name' import { ToolLayout } from '@/components/layout/tool-layout' export default function YourToolPage() { return ( <ToolLayout title="Your Tool Name" description="Detailed description for SEO" > <YourToolComponent /> </ToolLayout> ) }
-
Add Tool-Specific Features
- Create reusable components in
components/tools/your-tool-name/ - Add API routes in
app/api/your-tool/if needed - Include proper error handling and loading states
- Ensure responsive design and accessibility
- Add unit tests if applicable
- Create reusable components in
-
Update Categories (if creating new category) Update the category list in the homepage to include your new category.
To deploy the application using Docker:
- Build Image:
docker build -t simple-tool:latest . - Run Container:
For production, it is highly recommended to use a Docker Compose setup, especially for managing environment variables and Nginx reverse proxy.
docker run -d --name simple-tool -p 3000:3000 simple-tool:latest
Sensitive configurations (like AUTH_SECRET) must be managed via environment variables, not hardcoded.
# Example for .env.production
AUTH_SECRET=your-random-production-secret-key
AUTH_TRUST_HOST=true
NEXTAUTH_URL=https://yourdomain.com
ADMIN_USERNAME=admin
ADMIN_PASSWORD=your-secure-passwordIf you encounter the UntrustedHost error during authentication after deployment:
- Ensure
AUTH_TRUST_HOSTis set totruein your container's environment variables. - Set the correct
NEXTAUTH_URLto your public domain (e.g.,https://yourdomain.com).
- Next.js 16 with Turbopack for lightning-fast builds
- Image Optimization: Automatic WebP conversion and lazy loading
- Code Splitting: Route-based and component-based code splitting
- Bundle Optimization: Tree-shaking and minification
- Caching Strategy: Smart caching for static assets and API responses
- Lighthouse Score: 95+ (Performance, Accessibility, Best Practices, SEO)
- First Contentful Paint: <1.5s on 3G networks
- Largest Contentful Paint: <2.5s on 3G networks
- Bundle Size: <200KB gzipped for initial load
- Page Speed: A-grade on PageSpeed Insights
- Type Safety: Full TypeScript coverage prevents runtime errors
- Input Validation: Comprehensive validation on all user inputs
- XSS Protection: Built-in protection with React's JSX
- Secure Headers: Proper security headers configuration
- Authentication: Secure session management with NextAuth.js
- User Accounts & Profiles - Save favorite tools and custom settings
- Tool Usage Analytics - Track usage history and popular tools
- Keyboard Shortcuts - Power user navigation and quick actions
- PWA Support - Offline functionality and mobile app experience
- Tool Collections - Custom tool groups and workflows
- API Rate Limiting - Fair usage policies and tiered access
- Multi-language Support - Internationalization (i18n)
- QR Code Generator - Custom QR codes with logos and colors
- Markdown Editor - Live preview with syntax highlighting
- URL Shortener - Custom short URLs with analytics
- Unit Converter - Comprehensive unit conversion system
- CSS Minifier - Optimize CSS with customizable settings
- HTML Entity Encoder - Encode/decode HTML entities
- JSON to CSV Converter - Data format transformation
- Cron Expression Generator - Visual cron schedule builder
- Lorem Ipsum Generator - Placeholder text with customization
- Database Integration - Persistent storage for user data
- Caching Layer - Redis integration for performance
- Advanced Search - Full-text search across tools
- Tool Categories - Dynamic categorization and filtering
- Plugin System - Extensible architecture for third-party tools
We welcome contributions from the community! Here's how you can help:
-
Fork the repository
git clone https://github.com/your-username/simple-tool.git cd simple-tool -
Set up development environment
pnpm install pnpm dev
-
Create a feature branch
git checkout -b feature/amazing-tool
- Follow the tool development guide in the "Adding a New Tool" section
- Ensure your tool has proper error handling and validation
- Include tests for your tool functionality
- Update this README with your new tool
- Describe the bug clearly with reproduction steps
- Include screenshots if applicable
- Fix the issue with proper error handling
- Add tests to prevent regression
- Performance optimizations
- UI/UX improvements
- Documentation updates
- Accessibility enhancements
- Use TypeScript for all new code
- Follow ESLint and Prettier configurations
- Write descriptive commit messages
- Include JSDoc comments for complex functions
- Write unit tests for utility functions
- Add integration tests for API routes
- Test accessibility features
- Verify responsive design on multiple devices
- Follow shadcn/ui component patterns
- Ensure dark/light theme compatibility
- Add loading states and error boundaries
- Maintain consistent spacing and typography
-
Update Documentation
- Add your tool to
lib/constants/tools.ts - Update README if needed
- Include examples in comments
- Add your tool to
-
Quality Checks
# Run type checking pnpm type-check # Run linting pnpm lint # Run tests pnpm test # Build to ensure no errors pnpm build
-
Submit Pull Request
- Use clear title and description
- Link to relevant issues if applicable
- Include screenshots for UI changes
- Request code review from maintainers
Contributors will be recognized in:
- README Contributors Section
- Application Credits Page
- Release Notes
- Community Announcements
Please be respectful and inclusive. Follow our Code of Conduct:
- Be respectful of different opinions and backgrounds
- Be constructive in your feedback
- Be helpful to new contributors
- Be patient with the review process
The application provides several API endpoints for tool functionality and external integrations:
POST /api/auth/signin- User authenticationPOST /api/auth/signout- User logoutGET /api/auth/session- Get current session
POST /api/file/upload- Handle file uploads with validation- Max file size: 10MB for images, varies by tool
- Supported formats: JPG, PNG, WebP, GIF, PDF
POST /api/file/process- Process uploaded files for specific tools
POST /api/ocr/extract- Extract text from images{ "image": "base64-encoded-image", "options": { "format": "text", // or "markdown" "includeBoxes": true } }
GET /api/lottery/history- Get historical lottery dataPOST /api/lottery/calculate- Calculate prize winningsPOST /api/lottery/recognize- OCR ticket recognitionGET /api/lottery/generate- Generate random numbers
GET /api/cats/random- Get random cat imagesGET /api/cats/breeds- Get available cat breeds
GET /api/bookmarks- Get user bookmarks (authenticated)POST /api/bookmarks- Create new bookmarkPUT /api/bookmarks/[id]- Update bookmarkDELETE /api/bookmarks/[id]- Delete bookmark
All API responses follow a consistent format:
{
"success": true,
"data": {},
"error": null,
"timestamp": "2024-01-01T00:00:00.000Z"
}- 400 - Bad Request (validation errors)
- 401 - Unauthorized (authentication required)
- 429 - Too Many Requests (rate limiting)
- 500 - Internal Server Error
API endpoints are rate-limited to ensure fair usage:
- Anonymous users: 100 requests/hour
- Authenticated users: 1000 requests/hour
- Total Tools: 23+ implemented utilities
- Categories: 8 main categories
- Code Coverage: TypeScript throughout
- Dependencies: 40+ production & dev dependencies
- Bundle Size: Optimized under 200KB gzipped
- Performance: 95+ Lighthouse score
- API Endpoints: 15+ functional endpoints
- Component Library: 30+ shadcn/ui components
- Hex Calculator - Advanced number base conversion
- OCR Tool - AI-powered text extraction
- Lottery Tools - OCR ticket recognition with prize calculation
- JSON Formatter - Real-time validation and formatting
- Password Generator - Security-focused with strength evaluation
- Open Source: MIT License
- Contributors: Welcome community contributions
- Issues: Active bug tracking and feature requests
- Documentation: Comprehensive guides and API docs
- Updates: Regular maintenance and feature additions
This project is licensed under the MIT License - see the LICENSE file for details.
Special thanks to the open-source community and creators of:
- Next.js Team - For the amazing React framework
- shadcn/ui - For the beautiful component library
- Tailwind CSS - For the utility-first CSS framework
- Zustand - For the simple state management solution
- Vercel - For the excellent hosting platform
- All Contributors - Who help make this project better
If you find this project useful, please consider:
- ⭐ Starring the repository
- 🔄 Sharing with others
- 🤝 Contributing to improve it
- 💬 Providing feedback and suggestions
Built with ❤️ by the Open Source Community