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-itemsAdd --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-filesThe 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 backendUse 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.