A modern, production-ready web proxy application for testing and research. Access any website securely through our proxy without exposing your IP address.
β¨ Multi-Tab Support - Open and manage multiple websites simultaneously
π CORS Bypass - Server-side proxy bypasses CORS restrictions
π± Responsive Design - Beautiful UI that works on all screen sizes
π¨ Modern Interface - Clean, professional design with smooth animations
β‘ Fast & Lightweight - Minimal footprint, instant loading
π Tab Management - Create, switch, and close tabs effortlessly
π― URL Validation - Smart URL detection (accepts example.com or https://example.com)
- Frontend: React 18 + React Router 6 + TypeScript + Vite
- Backend: Express.js with server-side proxy
- Styling: Tailwind CSS 3 + modern gradient effects
- Icons: Lucide React
- Package Manager: pnpm
- Node.js 16+
- pnpm (recommended)
# Clone the repository
git clone <repository-url>
cd proxytest
# Install dependencies
pnpm install
# Start the development server
pnpm devThe application will be available at http://localhost:5173 (or the port shown in your terminal).
- Enter a website URL in the input field
- Click "Access" or press Enter
- The website will load in the proxy viewer
- Create New Tab: Click the "+ New" button or the "+" icon in the tab bar
- Switch Tabs: Click on any tab to view that website
- Close Tab: Click the "X" button on a tab to close it
- Open Original: Click the "Open" button to visit the website directly
- Go Back: Click the "Back" button to return to the homepage
- Resize: Drag the right edge to open/close the sidebar (optional)
The proxy accepts URLs in multiple formats:
- Domain only:
example.com - With protocol:
https://example.com - With path:
example.com/page - Full URL:
https://example.com/page/to/content
βββ client/ # React SPA frontend
β βββ pages/ # Route components
β β βββ Index.tsx # Homepage with URL input
β β βββ Proxy.tsx # Multi-tab proxy viewer
β β βββ NotFound.tsx # 404 page
β βββ components/ui/ # Pre-built UI components
β βββ App.tsx # App entry point with routing
β βββ global.css # Global styles and theme
βββ server/ # Express backend
β βββ index.ts # Server setup
β βββ routes/
β βββ proxy.ts # CORS-bypassing proxy endpoint
β βββ demo.ts # Demo endpoint
βββ shared/ # Shared types
β βββ api.ts # API interfaces
βββ index.html # HTML entry point
Fetches content from a URL and bypasses CORS restrictions using your own server.
Query Parameters:
url(required): The URL to proxy (string)
Response:
{
"content": "<!DOCTYPE html>...",
"contentType": "text/html; charset=utf-8",
"url": "https://example.com"
}Example:
curl "http://localhost:5173/api/proxy?url=https://example.com"Note: This endpoint is only available when running the backend server locally or on platforms like Netlify/Vercel that support Node.js. On GitHub Pages, the app uses allorigins.win as a public CORS proxy service instead.
The app is configured to deploy to GitHub Pages automatically using GitHub Actions.
Setup:
- Push your code to the
mainbranch - Go to your repository Settings β Pages
- Under "Build and deployment", select:
- Source: GitHub Actions
- The workflow will automatically build and deploy your site
Note: GitHub Pages uses a public CORS proxy service (allorigins.win) for bypassing CORS restrictions. This works for most sites but may have rate limits or occasional availability issues.
Access your deployed site:
- User/Organization pages:
https://username.github.io - Project repository:
https://username.github.io/ProxyTest
If deploying to a project repository, update the base in vite.config.ts:
const base = "/ProxyTest/"; // Change to your repo name# Build the application
pnpm build
# Start the production server
pnpm startFor a more reliable CORS bypass experience with your own backend:
- Netlify: Use the Netlify MCP integration to deploy in one click
- Vercel: Connect your repository and deploy automatically with Node.js support
# Start development server (hot reload)
pnpm dev
# Run tests
pnpm test
# Type checking
pnpm typecheck
# Format code
pnpm format.fix
# Build for production
pnpm build- Chrome/Edge 90+
- Firefox 88+
- Safari 14+
- Mobile browsers (iOS Safari, Chrome Mobile)
- Website Restrictions - Some websites may block iframe access or have additional security headers
- JavaScript Execution - The proxy allows JavaScript execution within the iframe sandbox
- Responsible Use - This tool is for testing and research only. Use responsibly and respect website terms of service
- No Data Storage - This application does not store any user data
- CORS Policy:
- With Backend (local/Netlify/Vercel): The server bypasses CORS restrictions at the server level
- GitHub Pages: Uses a public CORS proxy service (allorigins.win), which may have rate limits or availability issues
- Rate Limiting - GitHub Pages deployment uses a third-party CORS proxy that may rate-limit requests
- Proxy Service Terms - When using GitHub Pages, you agree to the terms of the allorigins.win service
The iframe uses a security sandbox that allows:
- β Scripts and popups
- β Forms and navigation
- β Presentations and modals
- β Same-origin requests
- Multiple Tabs: While you can open many tabs, performance may degrade with too many loaded simultaneously
- Large Sites: Very large websites may take longer to load
- Network: Connection speed affects proxy response time
- Issue: "Unable to Load" error message
- Solution: The website may block iframe access or have security restrictions. Try clicking "Retry" or use "Open" to visit directly
- Solution: Click "Retry" button or close and reopen the tab
- Solution: Close unused tabs or refresh the page
This is a testing utility. For improvements or bug reports, please use the GitHub issue tracker.
This project is open source and available under the MIT License.
ProxyTest is provided as-is for testing and research purposes. Users are responsible for their own use of this tool and must comply with all applicable laws and website terms of service. The creators are not responsible for misuse or any consequences arising from its use.
Made with β€οΈ using React, Express, and Tailwind CSS