A production-ready, modular Next.js full-stack application featuring 21 daily-use utilities for developers and everyday users.
-
21 Utility Tools across 5 categories:
- Finance (4): Bill Splitter, Tip Calculator, EMI Calculator, Currency Converter
- Security (3): Password Generator, Hash Generator, UUID Generator
- Dev Tools (5): JSON Formatter, Base64 Encoder/Decoder, Timestamp Converter, Regex Tester, Color Converter
- Utilities (4): Unit Converter, Age Calculator, Percentage Calculator, BMI Calculator
- Everyday (5): QR Code Generator, Text Case Converter, Word Counter, URL Encoder/Decoder, Text Summarizer
-
Modern UI
- Clean, responsive design
- Dark/Light mode toggle
- TailwindCSS styling
- shadcn/ui inspired components
-
Search & Filter
- Real-time search across all tools
- Filter by category
- Responsive grid layout
-
Developer Experience
- Type-safe TypeScript
- Modular component architecture
- Plugin-style tool registration
- Easy to add new tools
- Framework: Next.js 16.1.6 (App Router)
- Language: TypeScript
- Styling: TailwindCSS 4 + PostCSS
- UI Library: shadcn/ui inspired components
- Utilities: lucide-react, sonner (notifications), crypto-js, qrcode
- Package Manager: npm
- Node.js 18+
- npm or yarn
# Clone the repository
git clone <repo-url>
cd quick-tools
# Install dependencies
npm install
# Run development server
npm run dev
# Build for production
npm run build
# Start production server
npm startThe app will be available at http://localhost:3000
quick-tools/
βββ app/
β βββ components/ # Reusable UI components
β β βββ Button.tsx
β β βββ Card.tsx
β β βββ Input.tsx
β β βββ CopyButton.tsx
β βββ lib/
β β βββ tool-registry.ts # Tool metadata definitions
β β βββ tool-loader.ts # Tool loading and registration
β βββ tools/ # Individual tool components
β β βββ BillSplitter.tsx
β β βββ PasswordGenerator.tsx
β β βββ JSONFormatter.tsx
β β βββ QRCodeGenerator.tsx
β β βββ ... (15 tools total)
β βββ types/ # TypeScript types
β β βββ tool.ts
β βββ layout.tsx # Root layout with dark mode
β βββ page.tsx # Landing page with search
β βββ tool/
β β βββ [slug]/
β β βββ page.tsx # Dynamic tool page
β βββ globals.css # Global styles
β βββ favicon.ico
βββ public/
βββ package.json
βββ tailwind.config.ts
βββ tsconfig.json
βββ README.md
To add a new tool, follow these steps:
- Create Tool Component (
app/tools/MyTool.tsx):
'use client';
import { Card, CardContent, CardHeader, CardTitle } from '@/app/components/Card';
export function MyTool() {
return (
<Card>
<CardHeader>
<CardTitle>My Tool</CardTitle>
</CardHeader>
<CardContent>
{/* Tool content */}
</CardContent>
</Card>
);
}- Add Metadata to
app/lib/tool-registry.ts:
export const myToolMetadata: ToolMetadata = {
slug: 'my-tool',
name: 'My Tool',
description: 'Tool description',
category: 'Utilities',
icon: 'Settings'
};- Register Tool in
app/lib/tool-loader.ts:
import { MyTool } from '@/app/tools/MyTool';
import { myToolMetadata } from '@/app/lib/tool-registry';
export const tools: Tool[] = [
// ... existing tools
{ metadata: myToolMetadata, component: MyTool },
];<Button variant="primary" | "secondary" | "outline" | "ghost" size="sm" | "md" | "lg">
Click me
</Button><Card>
<CardHeader>
<CardTitle>Title</CardTitle>
<CardDescription>Description</CardDescription>
</CardHeader>
<CardContent>
Content here
</CardContent>
</Card><Input
label="Label"
type="text"
placeholder="Placeholder"
error="Error message"
helpText="Help text"
/><CopyButton text="Text to copy" label="Copy" />Dark mode is toggled via a button in the header. The preference is stored locally and applied to the entire application.
- Mobile-first approach
- Responsive grid layouts
- Mobile-optimized search and filters
- Touch-friendly button sizes
- Server-side rendering where applicable
- Code splitting per route
- Optimized imports
- Zero external API calls
- Client-side only operations
- Bill Splitter - Split bills equally among people
- Tip Calculator - Calculate tips and totals
- EMI Calculator - Calculate loan EMI
- Currency Converter - Convert between major currencies (USD, EUR, GBP, INR, JPY, AUD)
- Password Generator - Generate strong passwords
- Hash Generator - Generate MD5, SHA256, SHA512, SHA1 hashes
- UUID Generator - Generate UUID v4
- JSON Formatter - Format and validate JSON
- Base64 Encoder/Decoder - Encode/decode Base64
- Timestamp Converter - Convert Unix timestamps
- Regex Tester - Test regex patterns
- Color Converter - Convert between HEX, RGB, HSL colors
- Unit Converter - Convert length, weight, temperature
- Age Calculator - Calculate age from DOB
- Percentage Calculator - Calculate percentages
- BMI Calculator - Calculate Body Mass Index with metric/imperial support
- QR Code Generator - Generate and download QR codes
- Text Case Converter - Convert text to different cases
- Word Counter - Count words, characters, sentences
- URL Encoder/Decoder - Encode and decode URLs and query parameters
- Text Summarizer - Analyze text with word frequency, reading time, and statistics
- No backend required
- No authentication
- No database
- All processing done client-side
- No external API calls
- Secure password generation
- Hash generation using crypto-js
MIT
Contributions are welcome! Please feel free to submit pull requests or open issues.
- Offline support (PWA)
- Tool keyboard shortcuts
- Favorites/bookmarks
- Import/export settings
- More tools categories
- Localization support
- Tool history/recent usage
Made with β€οΈ for developers and everyday users