Kislap is forms to site web platform consists of a website builder, public-facing sites, a Go-based API service, and a Laravel-based admin panel.
The project is organized as a monorepo with the following main applications:
- web-builder: A Next.js 15 application for building websites. Features a drag-and-drop interface powered by
dnd-kit, state management withzustand, and UI components usingradix-uiandtailwindcss. - web-sites: A Next.js 15 application specialized for rendering public sites, configured for Cloudflare OpenNext.
- api-service: A Go (v1.25) backend service using the Gin framework and GORM for database operations. Handles AI integrations (OpenAI, Google GenAI) and PDF generation.
- web-admin: A Laravel 12 application serving as the administrative backend.
- packages/: Shared packages and utilities (e.g., templates).
The backend services are containerized using Docker Compose:
- kislap_web_server: Nginx gateway.
- kislap_flash: The Go API service (Port 5000).
- kislap_admin: The Laravel Admin application (Port 8000).
- kislap_database: MySQL 8 database (Port 3307).
- kislap_adminer: Adminer database management interface (Port 8080).
- Docker Desktop
- Node.js (Project uses NPM workspaces)
- Go (Optional, if running API locally)
- PHP (Optional, if running Admin locally)
Copy the example environment files in each application directory if they exist (e.g., .env.example to .env).
Run the Docker Compose stack to start the database, API, and Admin services.
docker-compose up -dService URLs:
- API Service: http://localhost:5000
- Admin Panel: http://localhost:8000
- Adminer (DB GUI): http://localhost:8080 (Server:
kislap_database, User:root, Pass:password, DB:kislap)
Install Node.js dependencies for the frontend applications from the root directory:
npm installYou can run the frontend applications locally using npm run dev.
Web Builder:
cd apps/web-builder
npm run devWeb Sites:
cd apps/web-sites
npm run dev- Database: The MySQL data is persisted in the
database_datavolume. - Hot Reloading:
- The Go service uses
airfor live reloading within the container. - The Laravel service is configured for development.
- Next.js apps use standard HMR.
- The Go service uses