A modern, extensible collection of web development tools built with Next.js 14. Features a JSON-based configuration system, secure OAuth authentication, and responsive design. Perfect for developers who need reliable, fast tools with the flexibility to customize and extend functionality.
Deploy your own instance on Vercel
This application uses NextAuth.js with OAuth providers for secure authentication:
- GitHub OAuth - Sign in with your GitHub account
- Google OAuth - Sign in with your Google account
- Session Management - 7-day login sessions with automatic extension
- Extensible - Easy to add more OAuth providers
- Encode: Convert special characters in URLs to percent-encoded equivalents
- Decode: Convert percent-encoded characters back to their original form
- Smart Handling: Intelligently processes full URLs while preserving protocol and hostname
- Use Cases: API endpoints, query parameters, path encoding
- Encode: Convert text to Base64 format
- Decode: Convert Base64 back to original text
- Unicode Support: Handles international characters correctly
- Use Cases: Data transmission, embedding binary data in JSON, HTML/CSS image embedding
- Format: Beautify JSON with proper indentation
- Minify: Remove whitespace for production use
- Sort by Keys: Recursively sort all object properties alphabetically by key names
- Sort by Values: Recursively sort all object properties by their values
- Validate: Check JSON syntax and report errors
- Customizable: Adjustable indentation sizes (2, 4, 8 spaces)
- Use Cases: API responses, configuration files, data validation, data organization
- Multiple Formats: UPPERCASE, lowercase, Title Case, camelCase, PascalCase, snake_case, kebab-case
- Special Cases: Sentence case, aNtIcAsE, ReVeRsE
- Batch Conversion: Convert to all formats at once
- Use Cases: Variable naming, content formatting, data normalization
- Visual Picker: Intuitive color selection interface
- Format Conversion: HEX, RGB, HSL, CMYK
- Color Palette: Curated selection of popular colors
- Random Generation: Generate random colors for inspiration
- Use Cases: Web design, CSS development, color scheme creation
- Syntax Highlighting: Beautiful code highlighting in the editor with 5 theme options
- Live Preview: Real-time Markdown rendering with GitHub Flavored Markdown support
- Theme Selection: Choose from Light, Dark, Tomorrow, Okaidia, and Coy themes
- Formatting Toolbar: Quick access to common Markdown syntax (headers, bold, italic, code, links, lists, quotes)
- Export Options: Download as Markdown (.md) or HTML files with custom filenames
- Split View: Side-by-side editor and preview with toggle visibility options
- Table Support: Full GitHub Flavored Markdown table rendering with proper styling
- Synchronized Scrolling: Smooth scrolling experience with proper text selection
- Copy & Sample: Copy content to clipboard and load sample markdown
- Use Cases: Documentation, README files, blog posts, note-taking, technical writing
- Multi-Source Integration: Fetch events from Google Calendar, Apple Calendar, Outlook, and other iCalendar-compliant sources
- Time Range Filtering: View events for 1 week, 1 month, 3 months, 6 months, or 1 year
- Custom Calendar Sources: Add your own iCalendar URLs (ICS format)
- Color-Coded Events: Each calendar source has a unique color for easy identification
- Event Details: Display event titles, times, locations, and descriptions
- Chronological Organization: Events grouped by date and sorted by time
- Real-time Updates: Refresh calendar data on demand
- Use Cases: Schedule management, multi-calendar aggregation, event planning, time management
- Framework: Next.js 14 - React framework with App Router
- Language: TypeScript - Type-safe JavaScript
- Authentication: NextAuth.js - Secure authentication for Next.js
- Styling: Tailwind CSS - Utility-first CSS framework
- Icons: Lucide React - Beautiful, customizable icons
- Markdown: ReactMarkdown - Markdown rendering with GitHub Flavored Markdown
- Syntax Highlighting: react-syntax-highlighter - Code syntax highlighting with multiple themes
- Calendar Parsing: ical.js - iCalendar data parsing and processing
- Deployment: Vercel - Optimized for Next.js
- Node.js 18+
- npm or yarn
- GitHub OAuth App (for authentication)
- Google OAuth App (for authentication)
-
Clone the repository
git clone https://github.com/yourusername/web-tools.git cd web-tools -
Install dependencies
npm install # or yarn install -
Set up environment variables
Create a
.env.localfile in the root directory:NEXTAUTH_URL=http://localhost:3000 NEXTAUTH_SECRET=your-super-secret-key-at-least-32-characters-long GITHUB_ID=your-github-client-id GITHUB_SECRET=your-github-client-secret GOOGLE_CLIENT_ID=your-google-client-id GOOGLE_CLIENT_SECRET=your-google-client-secret
Generate NEXTAUTH_SECRET:
openssl rand -base64 32
-
Configure OAuth Applications
See
docs/auth-configuration.mdfor detailed setup instructions. -
Run the development server
npm run dev # or yarn dev -
Open your browser Navigate to http://localhost:3000
npm run build
npm startweb-tools/
βββ app/ # Next.js App Router
β βββ api/auth/[...nextauth]/ # NextAuth.js API routes
β βββ components/ # Reusable React components
β β βββ UserHeader.tsx # User authentication header
β βββ lib/ # Utility functions
β β βββ auth.ts # Authentication utilities
β βββ login/ # Login page
β βββ tools/ # Individual tool pages
β β βββ url-encoder/ # URL Encoder/Decoder
β β βββ base64-converter/ # Base64 Converter
β β βββ json-formatter/ # JSON Formatter
β β βββ text-converter/ # Text Case Converter
β β βββ color-picker/ # Color Picker & Converter
β β βββ markdown-editor/ # Markdown Editor
β β βββ calendar-dashboard/ # Calendar Dashboard
β βββ auth.ts # NextAuth.js configuration
β βββ globals.css # Global styles and Tailwind imports
β βββ layout.tsx # Root layout component
β βββ page.tsx # Homepage with tool navigation
β βββ providers.tsx # Authentication providers wrapper
βββ docs/ # Documentation
β βββ auth-configuration.md # OAuth setup guide
β βββ vercel-deployment.md # Original deployment guide
β βββ vercel-deployment-auth.md # Auth deployment guide
βββ public/ # Static assets
βββ types/ # TypeScript type definitions
β βββ next-auth.d.ts # NextAuth.js type extensions
βββ middleware.ts # Next.js middleware for auth
βββ package.json # Dependencies and scripts
βββ tailwind.config.js # Tailwind CSS configuration
βββ tsconfig.json # TypeScript configuration
βββ README.md # Project documentation
- Secure Authentication: OAuth integration with GitHub and Google
- Session Management: Persistent login with automatic extension
- Responsive Design: Works perfectly on desktop, tablet, and mobile
- Modern UI: Clean, intuitive interface with smooth animations
- User Experience: Personalized welcome messages and user avatars
- Accessibility: Proper ARIA labels and keyboard navigation
- Component-Based: Reusable components for easy maintenance
- Create a new directory in
app/tools/ - Add your tool page component
- Update the tools array in
app/page.tsx - Add navigation and routing
- Install the provider package for NextAuth.js
- Add provider configuration in
app/auth.ts - Update environment variables
- Add provider button in
app/login/page.tsx
- Modify
tailwind.config.jsfor theme customization - Update
app/globals.cssfor custom component styles - Use the existing design system classes for consistency
For detailed deployment instructions with authentication, see docs/vercel-deployment-auth.md.
Quick Steps:
- Set up OAuth applications with your production domain
- Configure environment variables in Vercel dashboard:
NEXTAUTH_URL=https://your-domain.vercel.app NEXTAUTH_SECRET=[generate with: openssl rand -base64 32] GITHUB_ID=your-github-client-id GITHUB_SECRET=your-github-client-secret GOOGLE_CLIENT_ID=your-google-client-id GOOGLE_CLIENT_SECRET=your-google-client-secret - Push your code to GitHub
- Connect repository to Vercel
- Deploy automatically on every push
- Netlify: Configure environment variables and use
npm run build - AWS Amplify: Set up OAuth environment variables and connect repository
- Traditional Hosting: Not recommended due to serverless authentication requirements
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-tool) - 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.
- Next.js team for the amazing framework
- Tailwind CSS for the utility-first approach
- Lucide for the beautiful icons
- The open-source community for inspiration and tools
If you have any questions or need help:
- Create an issue on GitHub
- Check the documentation in the
/docsfolder - Review the authentication setup guide:
docs/auth-configuration.md - Review the deployment guide:
docs/vercel-deployment-auth.md
| Variable | Description | Required | Example |
|---|---|---|---|
NEXTAUTH_URL |
Your application URL | β | https://your-domain.vercel.app |
NEXTAUTH_SECRET |
Secret key for JWT signing | β | Generated with openssl rand -base64 32 |
GITHUB_ID |
GitHub OAuth App Client ID | β | From GitHub Developer Settings |
GITHUB_SECRET |
GitHub OAuth App Client Secret | β | From GitHub Developer Settings |
GOOGLE_CLIENT_ID |
Google OAuth Client ID | β | From Google Cloud Console |
GOOGLE_CLIENT_SECRET |
Google OAuth Client Secret | β | From Google Cloud Console |
Built with β€οΈ using Next.js, TypeScript, NextAuth.js, and Tailwind CSS