A simple but elegant pointing poker app for agile teams to estimate user stories and tasks.
Kiko is a Hawaiian word meaning "dot," "point," or "spot" - referring to small marks or punctuation. In the context of this app, it refers to marking estimates for user stories and tasks during agile planning sessions.
-
rust(v1.88.0 or later)rustupcargo-watchtrunk- Install the wasm target
rustup target add wasm32-unknown-unknown
-
node(v20.0.0 or later) fornpx- Install tailwind globally
npm i -g tailwindcss
- Install tailwind globally
- This runs the entire app in development or release mode
- The frontend is served at
http://localhost:8080and the backend athttp://localhost:3030respectively - The frontend and backend are reloaded automatically when you make changes to the code
- The frontend is built using
trunkand the backend is built usingcargo watch, read the documentation on each tool for more details
- The frontend is built using
To generate documentation for all workspace crates without external dependencies:
cargo doc --no-deps --document-private-items
Add --open to automatically open the docs in your browser after generation.
Pre-commit hooks are configured to run cargo fmt and cargo clippy automatically on each commit:
# Install pre-commit hooks (one-time setup) pre-commit install # Run hooks manually on all files pre-commit run --all-files
The hooks will format code and check for linting issues, treating warnings as errors.
For production deployment with optimized builds and compression:
# Development mode docker-compose up # Production mode with resource limits docker-compose -f docker-compose.yml -f docker-compose.prod.yml up # Build all images docker-compose build # Build individual services docker-compose build frontend docker-compose build backend
Use the convenient build scripts to create and push Docker images:
# Build images locally (defaults to 'sleazyrom' username) ./bin/docker/docker-build [username] # Push images to Docker Hub ./bin/docker/docker-push [username] # Build and push in one command ./bin/docker/docker-build-and-push [username]
Examples:
# Build with custom username ./bin/docker/docker-build myusername # Build and push with default username ./bin/docker/docker-build-and-push
- Multi-stage builds: Optimized Dockerfiles for both services
- Frontend: Rust 1.88 builder β Alpine runtime with nginx and brotli compression
- Backend: Rust 1.88 builder β Debian slim runtime
- Compression: Brotli compression provides 70-85% size reduction for frontend assets
- Security: Non-root containers with health checks
For complete production deployment with SSL/TLS certificates and domain setup:
See DEPLOYMENT.md for detailed production deployment instructions.