HookLab is a powerful and developer-friendly tool for inspecting and debugging webhooks. It provides a clean and intuitive interface to capture, view, and analyze incoming webhook requests in real-time, making it an essential utility for modern web development.
This project is a full-stack application built with a Vapor (Swift) backend and a Svelte frontend, fully containerized with Docker.
- Real-time Event Inspection: View incoming webhook requests as they happen.
- Project-based Organization: Group related webhooks into projects for easy management.
- Detailed Request/Response Views: Inspect headers, bodies, and other details of each request.
- Dark/Light Mode: A comfortable viewing experience in any lighting condition.
- Containerized: Run the entire application with a single Docker command.
- Framework: Svelte 5
- Build Tool: Vite
- Styling: Tailwind CSS
- Docker and Docker Compose
- Swift 6.0 (for local backend development)
- Node.js and Yarn (for local frontend development)
The easiest way to get started is with Docker.
-
Build the Docker images:
docker compose build
-
Run the application:
docker compose up app
The application will be available at http://localhost:8080.
For more advanced development, you can run the frontend and backend services separately.
- Navigate to the project root.
- Build the Swift project:
swift build
- Run the database migrations:
swift run hooklab migrate
- Start the backend server:
swift run hooklab serve
The backend API will be running on port 8080.
- Navigate to the project root.
- Install frontend dependencies:
yarn install
- Start the Vite development server:
This will watch for changes in the
yarn dev
Frontend/
directory and automatically rebuild the assets inPublic/
.
The Docker build process handles the production build automatically. To manually build the frontend for production, run:
yarn build
This will create optimized and minified assets in the Public/assets
directory.
.
├── Docs/ # Documentation and screenshots
├── Dockerfile # Defines the production Docker image
├── docker-compose.yml # Docker Compose configuration
├── Frontend/ # Svelte source code
│ ├── Components/ # Svelte components
│ ├── stores.js # Svelte stores for state management
│ └── index.js # Main Svelte entry point
├── Public/ # Compiled frontend assets (served by Vapor)
├── Sources/ # Vapor backend source code
│ └── hooklab/
│ ├── Controllers/ # Vapor route handlers
│ ├── Migrations/ # Database migrations
│ └── Models/ # Fluent models
├── Package.swift # Swift package definition
├── package.json # Frontend dependencies and scripts
└── tailwind.config.js # Tailwind CSS configuration