A comprehensive collection of free online utilities built with modern web technologies. This Next.js application provides professional-grade tools for developers and everyday users, featuring real-time processing, responsive design, and a consistent user experience.
Production: https://tools.webcored.com/
- Framework: Next.js 15 with App Router and TypeScript
- Styling: Tailwind CSS v3.4 + shadcn/ui components + CSS variables
- UI Components: 15+ shadcn/ui components with Radix UI primitives
- Icons: Lucide React icon library
- Animations: Framer Motion for smooth transitions
- JSON Processing: @uiw/react-json-view for syntax highlighting
- Date Handling: date-fns for date calculations
- Utilities: class-variance-authority, clsx, tailwind-merge
- Storage: localStorage with error handling and fallbacks
- Deployment: GitHub Pages with static export
- Create & Manage: Up to 10 simultaneous countdown timers
- Real-time Updates: Live countdown with days, hours, minutes, seconds
- CRUD Operations: Add, edit, delete timers with form validation
- Fullscreen Mode: Presentation mode for events and deadlines
- Persistent Storage: localStorage with UUID-based identification
- Date Validation: Prevents past dates with helpful error messages
- 4 Calculation Modes:
- Percentage of a number (25% of 200 = 50)
- What percentage (50 is what % of 200 = 25%)
- Percentage change (200 increased by 25% = 250)
- Percentage difference (difference between 200 and 250)
- Real-time Results: Instant calculations as you type
- Custom Components: Specialized input fields with validation
- Examples: Built-in examples for each calculation mode
- Error Handling: Comprehensive validation with helpful messages
- Dual-Panel Layout: Input and output side-by-side
- Real-time Validation: Instant JSON syntax checking
- Interactive Tree View: Collapsible/expandable JSON structure
- Syntax Highlighting: Color-coded JSON with @uiw/react-json-view
- File Upload: Direct JSON file processing
- Multiple Views: Tree, formatted, and minified display modes
- Error Detection: Detailed error messages with line numbers
- Mode Selection: Toggle between encode and decode operations
- Real-time Processing: Instant results as you type
- Copy Functionality: One-click copy to clipboard with feedback
- Error Handling: Validation for malformed URLs
- Large Text Support: Handles long URLs and query strings
- Clear Interface: Clean input/output design
- Layout Components: ToolLayout, ToolHeader, EmptyState, ActionDropdown
- Design Consistency: Unified spacing, typography, and interaction patterns
- Responsive Design: Mobile-first approach with progressive enhancement
- Accessibility: WCAG compliant with keyboard navigation support
- Client-side Storage: localStorage for persistent user data
- State Management: React hooks with custom validation logic
- Real-time Updates: useEffect patterns for live data processing
- Error Boundaries: Comprehensive error handling throughout
- Node.js 18+
- npm or yarn
- Clone the repository:
git clone https://github.com/webcored/tools.git
cd tools- Install dependencies:
npm install- Start the development server:
npm run dev- Open http://localhost:3003 in your browser
npm run dev # Start development server on port 3003
npm run build # Build for production (static export)
npm run start # Start production server
npm run lint # Run ESLint with Next.js rulessrc/
โโโ app/ # Next.js App Router pages
โ โโโ layout.tsx # Root layout with sidebar & SEO
โ โโโ page.tsx # Homepage with tools grid
โ โโโ countdown-timer/ # Countdown timer tool
โ โโโ percentage-calculator/ # Percentage calculator tool
โ โโโ json-viewer/ # JSON viewer/parser tool
โ โโโ url-decoder/ # URL encoder/decoder tool
โ โโโ globals.css # Global styles & CSS variables
โโโ components/
โ โโโ layout/ # Shared layout components
โ โ โโโ tool-layout.tsx # Main container layout
โ โ โโโ tool-header.tsx # Consistent page headers
โ โ โโโ empty-state.tsx # Placeholder content
โ โ โโโ action-dropdown.tsx # Three-dot action menus
โ โโโ tools/ # Tool-specific components
โ โ โโโ tool-card.tsx # Homepage tool cards
โ โโโ calculator/ # Percentage calculator components
โ โ โโโ percentage-input.tsx
โ โ โโโ calculation-result.tsx
โ โโโ json/ # JSON processing components
โ โ โโโ json-input.tsx
โ โ โโโ json-output.tsx
โ โโโ ui/ # shadcn/ui component library
โ โ โโโ button.tsx, card.tsx, dialog.tsx
โ โ โโโ input.tsx, textarea.tsx, select.tsx
โ โ โโโ sidebar.tsx, dropdown-menu.tsx
โ โ โโโ [12+ more components]
โ โโโ app-sidebar.tsx # Main navigation sidebar
โโโ lib/ # Utility libraries & business logic
โ โโโ utils.ts # Common utilities (cn function, etc.)
โ โโโ countdown.ts # Countdown timer logic & localStorage
โ โโโ percentage.ts # Percentage calculation modes
โ โโโ json-utils.ts # JSON validation & processing
โ โโโ url-utils.ts # URL encoding/decoding functions
โโโ hooks/
โโโ use-mobile.tsx # Mobile detection hook
- Static Export: Optimized for GitHub Pages deployment
- Base Path: Conditional
/toolspath for GitHub Pages - Image Optimization: Disabled for static compatibility
- TypeScript: Strict mode with path aliases (@/ imports)
- Custom Theme: Extended colors with CSS variables
- shadcn/ui Integration: Consistent component theming
- Responsive Breakpoints: Mobile-first design system
- Animation Support: tailwindcss-animate plugin
- Port 3003: Non-conflicting development port
- ESLint: Next.js recommended rules with TypeScript
- Component Installation:
npx shadcn@latest add component-name
- Container:
max-w-6xl mx-autofor consistent page width - Spacing:
space-y-6between sections,space-y-4between items - Typography: Consistent text sizes and weights across tools
- Color System: CSS variables for theme consistency
- Cards: shadcn Card components with
p-4padding - Forms: Consistent input validation and error states
- Actions: ActionDropdown for all item-level operations
- Loading: Skeleton components for loading states
- Animations: Framer Motion for list transitions
- Modern Browsers: Chrome 90+, Firefox 88+, Safari 14+, Edge 90+
- Mobile: iOS Safari 14+, Chrome Mobile 90+
- Features: ES2020, CSS Grid, Flexbox, CSS Variables
- PWA: Basic PWA support with manifest.json
- Automatic Deployment: Pushes to main branch trigger deployment
- Custom Domain: Deployed to tools.webcored.com subdomain
- Static Assets: Optimized for CDN delivery
- DNS Configuration: CNAME record pointing to GitHub Pages
- Code Splitting: Automatic route-based splitting
- Asset Optimization: Minified CSS and JavaScript
- Image Handling: Optimized for static export
- Bundle Analysis: Built-in Next.js bundle analyzer
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-tool) - Follow the existing code patterns and component structure
- Add your tool to the sidebar navigation and homepage
- Commit your changes (
git commit -m 'Add amazing tool') - Push to the branch (
git push origin feature/amazing-tool) - Open a Pull Request
This project is open source and available under the MIT License.
- Live Site: https://tools.webcored.com/
- Repository: https://github.com/webcored/tools
- Issues: https://github.com/webcored/tools/issues
Built with โค๏ธ by WebCored