The web application frontend for ProxLock, a secure API secrets proxy service. This is a modern React application built with TypeScript, Vite, and Clerk authentication.
- React 19 - UI framework
- TypeScript - Type safety
- Vite - Build tool and dev server
- Clerk - Authentication
- React Router - Client-side routing
- Cloudflare Workers - Deployment platform
Before you begin, ensure you have the following installed:
- Node.js (v18 or higher recommended)
- npm (comes with Node.js) or yarn
- A Clerk account and publishable key (for authentication)
git clone <repository-url>
cd api-secrets-proxy-frontendnpm installCreate a .env file in the root directory:
cp .env.example .env # If an example exists, or create manuallyAdd your Clerk publishable key and the api server's url:
VITE_CLERK_PUBLISHABLE_KEY=your_clerk_publishable_key_here
VITE_API_URL=http://127.0.0.1:8080You can obtain your Clerk publishable key from your Clerk Dashboard.
npm run devThe application will be available at http://localhost:5173 (or the port shown in your terminal).
npm run buildThis will create an optimized production build in the dist directory.
npm run previewThis serves the production build locally for testing.
src/
├── assets/ # Static assets (images, icons, etc.)
├── components/ # Reusable React components
│ ├── ErrorToast.tsx
│ ├── Sidebar.tsx
│ ├── UpgradeBanner.tsx
│ └── UsageAlert.tsx
├── contexts/ # React context providers
│ └── ProjectsContext.tsx
├── pages/ # Page components
│ ├── DashboardPage.tsx
│ ├── HomePage.tsx
│ ├── NotFoundPage.tsx
│ └── PricingPage.tsx
├── App.css # Global styles
├── AuthRouter.tsx # Authentication routing logic
├── index.css # Base styles
└── main.tsx # Application entry point
npm run dev- Start the development servernpm run build- Build for productionnpm run preview- Preview the production buildnpm run lint- Run ESLint to check code quality
We welcome contributions to ProxLock! Here's how you can help:
- Fork the repository and clone your fork
- Create a new branch for your feature or bug fix:
git checkout -b feature/your-feature-name # or git checkout -b fix/your-bug-fix - Make your changes following the project's coding standards
- Test your changes thoroughly
- Commit your changes with clear, descriptive commit messages
- Push to your fork and create a Pull Request
- Follow the existing code style and patterns
- Use TypeScript for all new code
- Write meaningful component and variable names
- Add comments for complex logic
- Ensure your code passes linting:
npm run lint
- Ensure your branch is up to date with the main branch
- Make sure all tests pass and linting is clean
- Write a clear description of your changes in the PR
- Reference any related issues in your PR description
- Request review from maintainers
If you find a bug or have a feature request:
- Check if the issue already exists
- Create a new issue with:
- A clear, descriptive title
- Steps to reproduce (for bugs)
- Expected vs. actual behavior
- Screenshots if applicable
- Your environment details (OS, Node version, etc.)
See the License file for details.