{"id":46042610,"url":"https://github.com/synyx/kudos","last_synced_at":"2026-03-01T06:42:17.177Z","repository":{"id":211451209,"uuid":"729083773","full_name":"synyx/kudos","owner":"synyx","description":"Transform workplace culture with personalized appreciation cards. An innovative tool to celebrate colleagues and team achievements.","archived":false,"fork":false,"pushed_at":"2025-11-21T17:04:07.000Z","size":988,"stargazers_count":4,"open_issues_count":4,"forks_count":0,"subscribers_count":5,"default_branch":"main","last_synced_at":"2025-11-21T19:06:20.844Z","etag":null,"topics":["appreciation","culture","javascript","kudos","nodejs","positive","prisma","prisma-orm","skeleton-css","svelte","sveltekit","tailwindcss","vite"],"latest_commit_sha":null,"homepage":"","language":"Svelte","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/synyx.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2023-12-08T11:23:07.000Z","updated_at":"2025-11-21T17:14:08.000Z","dependencies_parsed_at":null,"dependency_job_id":"6b4c57da-6ea3-4a83-a954-919d1c95b321","html_url":"https://github.com/synyx/kudos","commit_stats":null,"previous_names":["synyx/kudos"],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/synyx/kudos","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/synyx%2Fkudos","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/synyx%2Fkudos/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/synyx%2Fkudos/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/synyx%2Fkudos/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/synyx","download_url":"https://codeload.github.com/synyx/kudos/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/synyx%2Fkudos/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29962152,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-01T05:59:08.471Z","status":"ssl_error","status_checked_at":"2026-03-01T05:58:04.208Z","response_time":124,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["appreciation","culture","javascript","kudos","nodejs","positive","prisma","prisma-orm","skeleton-css","svelte","sveltekit","tailwindcss","vite"],"created_at":"2026-03-01T06:42:16.645Z","updated_at":"2026-03-01T06:42:17.165Z","avatar_url":"https://github.com/synyx.png","language":"Svelte","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Kudos\n\n\u003cdiv align=\"center\"\u003e\n    \u003cimg width=\"150\" src=\"res/kudo-monster.svg\" alt=\"Kudo Monster\"\u003e\n\u003c/div\u003e\n\n👏 **Kudos** is a versatile and interactive web application, meticulously crafted to revolutionize the way you appreciate and celebrate your colleagues in the workplace. Kudos allows you not only to send tailor-made \"Kudo\" cards, but also to enhance them with your personal touch.\n\nTransform your workplace culture by celebrating individual and team accomplishments, fostering positive reinforcement, and promoting an atmosphere of genuine appreciation with Kudos!\n\n## 🌟 Features\n\n📝 **Personalized Text**: Add heartfelt messages to let your colleagues know how much they mean to you.\n\n🎴 **Multiple Templates**: Choose from a variety of templates to suit the occasion.\n\n🎨 **Drawing Functionality**: Unleash your creativity by drawing directly on the card for that extra personal touch.\n\n💾 **Download Cards**: Save individual Kudo cards as high-quality PNG images to share outside the application or keep as mementos.\n\n🎉 **Presentation Mode**:\nPlanning to showcase the Kudos in a team meeting or special occasion? Switch to Presentation Mode, where you can shuffle through all received cards and celebrate together as a team.\n\n🗂 **Archiving**:\nKeep track of all the positive vibes by utilizing our archiving functionality. Save cherished moments and revisit them any time you need a morale boost.\n\n## Developing\n\nTo get you up and running you need to run the following steps:\n\n1. Install [nvm](https://github.com/nvm-sh/nvm#installing-and-updating) and install the required NodeJS version with `nvm install`\n2. Make sure you run the correct NodeJS version with `nvm use`\n3. Install dependencies with `pnpm install`\n4. Copy `.env.example` to `.env` and configure database connection: `DATABASE_URL=\"postgres://kudos:secret@localhost:5432/kudos\"`\n5. Start database with `docker compose up -d`\n6. Run database migrations with `pnpm run db:migrate`\n7. Start local dev server with `pnpm run dev`\n\nThe application will be available at `http://localhost:5173`\n\n## Building\n\nTo create a production version of your app:\n\n```bash\npnpm run build\n```\n\nYou can preview the production build with `pnpm run preview`.\n\n## Environment Variables\n\nThe following environment variables can be configured:\n\n- `DATABASE_URL`: PostgreSQL connection string (required)\n- `ORIGIN`: The origin URL for the application (required for production)\n- `KUDOS_MIGRATE`: Set to `\"1\"` or `\"true\"` to run database migrations on startup (optional)\n\nExample:\n```bash\nDATABASE_URL=\"postgresql://kudos:secret@localhost:5432/kudos\"\nORIGIN=\"https://your-domain.com\"\nKUDOS_MIGRATE=\"1\"\n```\n\n## Deployment\n\n### Database Setup\n\n**Important**: Starting with Helm Chart v2.0.0, Kudos requires an external PostgreSQL database. The application no longer manages database infrastructure.\n\n📖 **See [DATABASE_SETUP.md](DATABASE_SETUP.md)** for comprehensive instructions on setting up PostgreSQL for Kudos, including:\n- Cloud database services (AWS RDS, Google Cloud SQL, Azure Database)\n- Self-managed PostgreSQL with operators (CloudNative-PG, Zalando)\n- Security best practices and connection configuration\n- Migration guidance from embedded database setups\n\n### Docker\n\nThe application can be deployed using the provided Docker image:\n\n```bash\ndocker run -e DATABASE_URL=\"your-db-url\" -e ORIGIN=\"your-origin\" -p 3000:3000 ghcr.io/synyx/kudos:main\n```\n\n### Docker Compose\n\nFor a complete setup including the database, you can use Docker Compose. This will start both the PostgreSQL database and the Kudos application:\n\n```bash\n# Start the application and database\ndocker compose up -d\n\n# View logs\ndocker compose logs -f\n\n# Stop the services\ndocker compose down\n```\n\nThe application will be available at `http://localhost:3000`. The Docker Compose configuration automatically handles database migrations through the `KUDOS_MIGRATE` environment variable.\n\n### Helm Chart\n\nA Helm chart is available for Kubernetes deployment. **You must set up an external PostgreSQL database before installing** (see [DATABASE_SETUP.md](DATABASE_SETUP.md)).\n\nThe chart uses an init container to handle database migrations automatically, so the `KUDOS_MIGRATE` environment variable is not needed in the main application container.\n\n#### Install via Helm\n\n```sh\n# add repo\nhelm repo add synyx https://synyx.github.io/kudos/docs/helm\nhelm repo update\n\n# inspect defaults\nhelm show values synyx/kudos \u003e values.yaml\n# edit as needed - CONFIGURE POSTGRESQL CONNECTION\n\n# install or upgrade\nhelm upgrade --install kudos synyx/kudos \\\n  --version \u003cCHART VERSION\u003e \\\n  -f values.yaml\n```\n\n#### Migrating from v1.x to v2.0.0\n\n**Important**: Kudos Helm Chart v2.0.0 introduces breaking changes by removing database management. If you're upgrading from an earlier version, please follow the [Migration Guide](MIGRATION.md) for step-by-step instructions.\n\n## Releasing\n\n### Creating a New Release\n\nTo create a new release, follow these steps:\n\n1. **Update version numbers:**\n   - Update `version` in `package.json` (e.g., `1.2.1` → `1.3.0`)\n   - Update `appVersion` in `helm/kudos/Chart.yaml` to match the package.json version\n   - If the Helm chart itself has changes, also update `version` in `helm/kudos/Chart.yaml` (e.g., `2.0.0` → `2.1.0`)\n\n2. **Commit the version changes:**\n   ```bash\n   git add package.json helm/kudos/Chart.yaml\n   git commit -m \"chore: bump version to v1.3.0\"\n   git push origin main\n   ```\n\n3. **Create and push a git tag:**\n   ```bash\n   git tag v1.3.0\n   git push origin v1.3.0\n   ```\n\n### What Happens Automatically\n\nOnce you push the tag, GitHub Actions will automatically:\n\n- **Docker Image**: Build and publish multi-architecture (amd64/arm64) Docker images to GitHub Container Registry:\n  - `ghcr.io/synyx/kudos:v1.3.0` (versioned tag)\n  - `ghcr.io/synyx/kudos:main` (also updated from main branch pushes)\n\n- **Helm Chart**: When changes are pushed to the `helm/` directory, the chart is automatically packaged and published to GitHub Pages:\n  - Packaged chart: `docs/helm/kudos-2.1.0.tgz`\n  - Repository index: `docs/helm/index.yaml`\n\n### GitHub Release\n\nAfter the automated builds complete, manually create a GitHub Release:\n\n1. Go to the repository's [Releases page](https://github.com/synyx/kudos/releases)\n2. Click \"Create a new release\"\n3. Select the tag you just created (e.g., `v1.3.0`)\n4. Add release notes describing changes, new features, and bug fixes\n5. Publish the release\n\n### Version Strategy\n\n- **Application version** (`package.json` and `Chart.yaml` `appVersion`): Follow [Semantic Versioning](https://semver.org/)\n  - MAJOR: Breaking changes\n  - MINOR: New features (backward compatible)\n  - PATCH: Bug fixes (backward compatible)\n\n- **Helm chart version** (`Chart.yaml` `version`): Increment when chart configuration changes\n  - Update even if only app version changes\n  - Use separate versioning from application version\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsynyx%2Fkudos","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsynyx%2Fkudos","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsynyx%2Fkudos/lists"}