{"id":31230814,"url":"https://github.com/zarcodex/zarcogreeter","last_synced_at":"2025-09-22T10:11:09.515Z","repository":{"id":314344446,"uuid":"1055156091","full_name":"ZarCodeX/ZarcoGreeter","owner":"ZarCodeX","description":"ZarcoGreeter makes creating greeting card images in Node.js effortless and fully customizable.","archived":false,"fork":false,"pushed_at":"2025-09-17T16:58:36.000Z","size":1631,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-09-19T23:33:22.252Z","etag":null,"topics":["canvas","customizable","discord","greeting-card","high-performance","image-generation","image-processing","nodejs","npm-package","welcome-card","zarco","zarcodevelopment","zarcodex","zarcogreeter"],"latest_commit_sha":null,"homepage":"https://www.npmjs.com/package/zarcogreeter","language":"JavaScript","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/ZarCodeX.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","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":"2025-09-11T21:15:35.000Z","updated_at":"2025-09-17T16:58:04.000Z","dependencies_parsed_at":"2025-09-15T03:46:00.464Z","dependency_job_id":null,"html_url":"https://github.com/ZarCodeX/ZarcoGreeter","commit_stats":null,"previous_names":["zarcodex/zarcogreeter"],"tags_count":6,"template":false,"template_full_name":null,"purl":"pkg:github/ZarCodeX/ZarcoGreeter","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ZarCodeX%2FZarcoGreeter","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ZarCodeX%2FZarcoGreeter/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ZarCodeX%2FZarcoGreeter/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ZarCodeX%2FZarcoGreeter/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ZarCodeX","download_url":"https://codeload.github.com/ZarCodeX/ZarcoGreeter/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ZarCodeX%2FZarcoGreeter/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":276383101,"owners_count":25632578,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-22T02:00:08.972Z","response_time":79,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["canvas","customizable","discord","greeting-card","high-performance","image-generation","image-processing","nodejs","npm-package","welcome-card","zarco","zarcodevelopment","zarcodex","zarcogreeter"],"created_at":"2025-09-22T10:11:04.318Z","updated_at":"2025-09-22T10:11:09.508Z","avatar_url":"https://github.com/ZarCodeX.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ZarcoGreeter\n\nZarcoGreeter makes creating greeting card images in Node.js effortless and fully customizable.\n\n![npm](https://img.shields.io/npm/v/zarcogreeter?style=for-the-badge) ![npm](https://img.shields.io/npm/l/zarcogreeter?style=for-the-badge) ![npm](https://img.shields.io/npm/dt/zarcogreeter?style=for-the-badge)\n\n---\n\n![Card](https://raw.githubusercontent.com/ZarCodeX/ZarcoGreeter/main/assets/images/card.png)\n\n## 🌟 Features\n\n- **Multiple Styles**: Choose from several pre-designed card styles.\n- **Customizable**: Easily change colors, text, and background images.\n- **High Performance**: Built with `@napi-rs/canvas` for optimal speed.\n- **Easy to Use**: Simple, intuitive API for generating cards programmatically.\n- **ESM \u0026 CJS Support**: Use with both `import` and `require`.\n\n## 🎨 Style Showcase\n\n# 🟢 Background, colors, and text are customizable.\n\n| Style 1 | Style 2 |\n| :---: | :---: |\n| ![Style 1](https://raw.githubusercontent.com/ZarCodeX/ZarcoGreeter/main/assets/images/welcome-style1-basic.png) | ![Style 2](https://raw.githubusercontent.com/ZarCodeX/ZarcoGreeter/main/assets/images/welcome-style2-basic.png) |\n| Style 3 | Style 4 |\n| ![Style 3](https://raw.githubusercontent.com/ZarCodeX/ZarcoGreeter/main/assets/images/welcome-style3-basic.png) | ![Style 4](https://raw.githubusercontent.com/ZarCodeX/ZarcoGreeter/main/assets/images/welcome-style4-basic.png) |\n\n| Fully Customized |\n| :---: |\n| ![Customized](https://raw.githubusercontent.com/ZarCodeX/ZarcoGreeter/main/assets/images/welcome-style3-fully-custom.png) |\n\n## 📦 Installation\n\n```bash\nnpm install zarcogreeter\n```\n\n## 🚀 Usage \u0026 Examples\n\nBelow are some examples of how to use ZarcoGreeter. You can use either ES Modules (ESM) or CommonJS (CJS).\n\n### Basic Usage (Style 1)\n\n**ESM**\n```javascript\nimport { style1 } from 'zarcogreeter';\nimport fs from 'fs';\n\nasync function generateCard() {\n    const user = {\n        username: 'ZarCodeX',\n        avatarURL: 'https://raw.githubusercontent.com/ZarCodeX/ZarcoGreeter/refs/heads/main/assets/images/ZarCodeX%20(original).png',\n    };\n    const guild = 'My Awesome Server';\n\n    const buffer = await style1(user, guild);\n    fs.writeFileSync('welcome-style1-basic.png', buffer);\n}\n\ngenerateCard();\n```\n\n**CJS**\n```javascript\nconst { style1 } = require('zarcogreeter');\nconst fs = require('fs');\n\nasync function generateCard() {\n    const user = {\n        username: 'ZarCodeX',\n        avatarURL: 'https://raw.githubusercontent.com/ZarCodeX/ZarCodeX/refs/heads/main/assets/images/ZarCodeX%20(original).png',\n    };\n    const guild = 'My Awesome Server';\n\n    const buffer = await style1(user, guild);\n    fs.writeFileSync('welcome-style1-basic.png', buffer);\n}\n\ngenerateCard();\n```\n\n**Result:**\n\n![Style 1 Basic](https://raw.githubusercontent.com/ZarCodeX/ZarcoGreeter/main/assets/images/welcome-style1-basic.png)\n\n### Custom Background (Style 1)\n\n**ESM**\n```javascript\nimport { style1 } from 'zarcogreeter';\nimport fs from 'fs';\n\nasync function generateCard() {\n    const user = {\n        username: 'ZarCodeX',\n        avatarURL: 'https://raw.githubusercontent.com/ZarCodeX/ZarcoGreeter/refs/heads/main/assets/images/ZarCodeX%20(original).png',\n    };\n    const guild = 'My Awesome Server';\n\n    const buffer = await style1(user, guild, {\n        backgroundImage: 'https://raw.githubusercontent.com/ZarCodeX/ZarcoGreeter/refs/heads/main/assets/images/bg.png',\n    });\n    fs.writeFileSync('welcome-style1-custom-bg.png', buffer);\n}\n\ngenerateCard();\n```\n\n**CJS**\n```javascript\nconst { style1 } = require('zarcogreeter');\nconst fs = require('fs');\n\nasync function generateCard() {\n    const user = {\n        username: 'ZarCodeX',\n        avatarURL: 'https://raw.githubusercontent.com/ZarCodeX/ZarCodeX/refs/heads/main/assets/images/ZarCodeX%20(original).png',\n    };\n    const guild = 'My Awesome Server';\n\n    const buffer = await style1(user, guild, {\n        backgroundImage: 'https://raw.githubusercontent.com/ZarCodeX/ZarcoGreeter/refs/heads/main/assets/images/bg.png',\n    });\n    fs.writeFileSync('welcome-style1-custom-bg.png', buffer);\n}\n\ngenerateCard();\n```\n\n**Result:**\n\n![Style 1 Custom BG](https://raw.githubusercontent.com/ZarCodeX/ZarcoGreeter/main/assets/images/welcome-style1-custom-bg.png)\n\n### Custom Background (Style 2)\n\n**ESM**\n```javascript\nimport { style2 } from 'zarcogreeter';\nimport fs from 'fs';\n\nasync function generateCard() {\n    const user = {\n        username: 'ZarCodeX',\n        avatarURL: 'https://raw.githubusercontent.com/ZarCodeX/ZarcoGreeter/refs/heads/main/images/ZarCodeX%20(original).png',\n    };\n    const guild = 'My Awesome Server';\n\n    const buffer = await style2(user, guild, {\n        backgroundImage: 'https://raw.githubusercontent.com/ZarCodeX/ZarcoGreeter/refs/heads/main/assets/images/bg.png',\n    });\n    fs.writeFileSync('welcome-style2-custom-bg.png', buffer);\n}\n\ngenerateCard();\n```\n\n**CJS**\n```javascript\nconst { style2 } = require('zarcogreeter');\nconst fs = require('fs');\n\nasync function generateCard() {\n    const user = {\n        username: 'ZarCodeX',\n        avatarURL: 'https://raw.githubusercontent.com/ZarCodeX/ZarCodeX/refs/heads/main/images/ZarCodeX%20(original).png',\n    };\n    const guild = 'My Awesome Server';\n\n    const buffer = await style2(user, guild, {\n        backgroundImage: 'https://raw.githubusercontent.com/ZarCodeX/ZarcoGreeter/refs/heads/main/assets/images/bg.png',\n    });\n    fs.writeFileSync('welcome-style2-custom-bg.png', buffer);\n}\n\ngenerateCard();\n```\n\n**Result:**\n\n![Style 2 Custom BG](https://raw.githubusercontent.com/ZarCodeX/ZarcoGreeter/main/assets/images/welcome-style2-custom-bg.png)\n\n### Custom Background (Style 3)\n\n**ESM**\n```javascript\nimport { style3 } from 'zarcogreeter';\nimport fs from 'fs';\n\nasync function generateCard() {\n    const user = {\n        username: 'ZarCodeX',\n        avatarURL: 'https://raw.githubusercontent.com/ZarCodeX/ZarcoGreeter/refs/heads/main/images/ZarCodeX%20(original).png',\n    };\n    const guild = 'My Awesome Server';\n\n    const buffer = await style3(user, guild, {\n        backgroundImage: 'https://raw.githubusercontent.com/ZarCodeX/ZarcoGreeter/refs/heads/main/assets/images/bg.png',\n    });\n    fs.writeFileSync('welcome-style3-custom-bg.png', buffer);\n}\n\ngenerateCard();\n```\n\n**CJS**\n```javascript\nconst { style3 } = require('zarcogreeter');\nconst fs = require('fs');\n\nasync function generateCard() {\n    const user = {\n        username: 'ZarCodeX',\n        avatarURL: 'https://raw.githubusercontent.com/ZarCodeX/ZarcoGreeter/refs/heads/main/images/ZarCodeX%20(original).png',\n    };\n    const guild = 'My Awesome Server';\n\n    const buffer = await style3(user, guild, {\n        backgroundImage: 'https://raw.githubusercontent.com/ZarCodeX/ZarcoGreeter/refs/heads/main/assets/images/bg.png',\n    });\n    fs.writeFileSync('welcome-style3-custom-bg.png', buffer);\n}\n\ngenerateCard();\n```\n\n**Result:**\n\n![Style 3 Custom BG](https://raw.githubusercontent.com/ZarCodeX/ZarcoGreeter/main/assets/images/welcome-style3-custom-bg.png)\n\n### Custom Background (Style 4)\n\n**ESM**\n```javascript\nimport { style4 } from 'zarcogreeter';\nimport fs from 'fs';\n\nasync function generateCard() {\n    const user = {\n        username: 'ZarCodeX',\n        avatarURL: 'https://raw.githubusercontent.com/ZarCodeX/ZarCodeX/refs/heads/main/images/ZarCodeX%20(original).png',\n    };\n    const guild = 'My Awesome Server';\n\n    const buffer = await style4(user, guild, {\n        backgroundImage: 'https://raw.githubusercontent.com/ZarCodeX/ZarcoGreeter/refs/heads/main/assets/images/bg.png',\n    });\n    fs.writeFileSync('welcome-style4-custom-bg.png', buffer);\n}\n\ngenerateCard();\n```\n\n**CJS**\n```javascript\nconst { style4 } = require('zarcogreeter');\nconst fs = require('fs');\n\nasync function generateCard() {\n    const user = {\n        username: 'ZarCodeX',\n        avatarURL: 'https://raw.githubusercontent.com/ZarCodeX/ZarCodeX/refs/heads/main/images/ZarCodeX%20(original).png',\n    };\n    const guild = 'My Awesome Server';\n\n    const buffer = await style4(user, guild, {\n        backgroundImage: 'https://raw.githubusercontent.com/ZarCodeX/ZarcoGreeter/refs/heads/main/assets/images/bg.png',\n    });\n    fs.writeFileSync('welcome-style4-custom-bg.png', buffer);\n}\n\ngenerateCard();\n```\n\n**Result:**\n\n![Style 4 Custom Background](https://raw.githubusercontent.com/ZarCodeX/ZarcoGreeter/main/assets/images/welcome-style4-custom-bg.png)\n\n### Custom Welcome Text (Style 2)\n\n**ESM**\n```javascript\nimport { style2 } from 'zarcogreeter';\nimport fs from 'fs';\n\nasync function generateCard() {\n    const user = {\n        username: 'ZarCodeX',\n        avatarURL: 'https://raw.githubusercontent.com/ZarCodeX/ZarcoGreeter/refs/heads/main/images/ZarCodeX%20(original).png',\n    };\n    const guild = 'My Awesome Server';\n\n    const buffer = await style2(user, guild, {\n        text: 'Greetings',\n    });\n    fs.writeFileSync('welcome-style2-custom-text.png', buffer);\n}\n\ngenerateCard();\n```\n\n**CJS**\n```javascript\nconst { style2 } = require('zarcogreeter');\nconst fs = require('fs');\n\nasync function generateCard() {\n    const user = {\n        username: 'ZarCodeX',\n        avatarURL: 'https://raw.githubusercontent.com/ZarCodeX/ZarCodeX/refs/heads/main/images/ZarCodeX%20(original).png',\n    };\n    const guild = 'My Awesome Server';\n\n    const buffer = await style2(user, guild, {\n        text: 'Greetings',\n    });\n    fs.writeFileSync('welcome-style2-custom-text.png', buffer);\n}\n\ngenerateCard();\n```\n\n**Result:**\n\n![Style 2 Custom Text](https://raw.githubusercontent.com/ZarCodeX/ZarcoGreeter/main/assets/images/welcome-style2-custom-text.png)\n\n### Fully Customized (Style 3)\n\n**ESM**\n```javascript\nimport { style3 } from 'zarcogreeter';\nimport fs from 'fs';\n\nasync function generateCard() {\n    const user = {\n        username: 'ZarCodeX',\n        avatarURL: 'https://raw.githubusercontent.com/ZarCodeX/ZarCodeX/refs/heads/main/images/ZarCodeX%20(original).png',\n    };\n    const guild = 'My Awesome Server';\n\n    const buffer = await style3(user, guild, {\n        backgroundImage: 'https://raw.githubusercontent.com/ZarCodeX/ZarcoGreeter/refs/heads/main/assets/images/bg.png',\n        welcomeColor: '#69ffffff',\n        usernameColor: '#FFFFFF',\n        guildColor: '#ade4e6ff',\n    });\n    fs.writeFileSync('welcome-style3-fully-custom.png', buffer);\n}\n\ngenerateCard();\n```\n\n**CJS**\n```javascript\nconst { style3 } = require('zarcogreeter');\nconst fs = require('fs');\n\nasync function generateCard() {\n    const user = {\n        username: 'ZarCodeX',\n        avatarURL: 'https://raw.githubusercontent.com/ZarCodeX/ZarCodeX/refs/heads/main/images/ZarCodeX%20(original).png',\n    };\n    const guild = 'My Awesome Server';\n\n    const buffer = await style3(user, guild, {\n        backgroundImage: 'https://raw.githubusercontent.com/ZarCodeX/ZarcoGreeter/refs/heads/main/assets/images/bg.png',\n        welcomeColor: '#69ffffff',\n        usernameColor: '#FFFFFF',\n        guildColor: '#ade4e6ff',\n    });\n    fs.writeFileSync('welcome-style3-fully-custom.png', buffer);\n}\n\ngenerateCard();\n```\n\n**Result:**\n\n![Style 3 Fully Custom](https://raw.githubusercontent.com/ZarCodeX/ZarcoGreeter/main/assets/images/welcome-style3-fully-custom.png)\n\n## 📚 API\n\nThe following style functions are available:\n\n- `style1(user, guild, options)`\n- `style2(user, guild, options)`\n- `style3(user, guild, options)`\n- `style4(user, guild, options)`\n\nAll functions return a `Promise` that resolves to a `Buffer` containing the PNG image data.\n\n### `user` object\n\nThe `user` object must contain the following properties:\n\n- `username` (string): The user's username.\n- `avatarURL` (string): A URL to the user's avatar image.\n\n### `guild` string\n\nThe `guild` string is the name of the server or community.\n\n### `options` object\n\nThe `options` object is optional and can contain the following properties:\n\n| Option | Type | Description | Default |\n| :--- | :--- | :--- | :--- |\n| `backgroundImage` | string | Path or URL to a custom background image. | Varies by style |\n| `welcomeColor` | string | Hex color code for the welcome text. | `#FFFFFF` |\n| `usernameColor` | string | Hex color code for the username text. | `#FFFFFF` |\n| `guildColor` | string | Hex color code for the guild text. | Varies by style |\n| `avatarBorderColor` | string | Hex color code for the avatar border. | `#00A8FF` (style1 only) |\n| `text` | string | Custom welcome text. | `\"WELCOME\"` or `\"Welcome\"` |\n\nEach style has a different character limit for the custom text:\n\n-   **style1**: 15 characters\n-   **style2**: 15 characters\n-   **style3**: 20 characters\n\n## 🤝 Contributing\n\nContributions, issues, and feature requests are welcome! Feel free to check the [issues page](https://github.com/ZarCodeX/ZarcoGreeter/issues).\n\n## 📝 License\n\nThis project is [MIT](LICENSE) licensed.\n\n## 👤 About the Author\n\n- **Author**: ZarCodeX\n- **Website**: [https://zarcodex.github.io](https://zarcodex.github.io)\n- **Discord**: [https://discord.gg/6YVmxA4Qsf](https://discord.gg/6YVmxA4Qsf)\n- **X (Twitter)**: [https://x.com/ZarCodeX](https://x.com/ZarcoGreeter)\n- **GitHub Repo**: [https://github.com/ZarCodeX/ZarcoGreeter](https://github.com/ZarCodeX/ZarcoGreeter)","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzarcodex%2Fzarcogreeter","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fzarcodex%2Fzarcogreeter","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzarcodex%2Fzarcogreeter/lists"}