{"id":19483290,"url":"https://github.com/cloudinary-community/astro-cloudinary","last_synced_at":"2025-04-25T16:32:01.377Z","repository":{"id":250925171,"uuid":"835875627","full_name":"cloudinary-community/astro-cloudinary","owner":"cloudinary-community","description":"🚀 High-performance image and video delivery and uploading at scale in Astro powered by Cloudinary.","archived":false,"fork":false,"pushed_at":"2024-11-01T16:15:25.000Z","size":655,"stargazers_count":15,"open_issues_count":16,"forks_count":8,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-11-01T17:21:00.443Z","etag":null,"topics":["astro","astro-loader","cloudinary","cloudinary-sdk","hacktoberfest"],"latest_commit_sha":null,"homepage":"https://astro.cloudinary.dev","language":"TypeScript","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/cloudinary-community.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","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}},"created_at":"2024-07-30T17:44:11.000Z","updated_at":"2024-11-01T16:24:34.000Z","dependencies_parsed_at":"2024-11-01T17:29:57.378Z","dependency_job_id":null,"html_url":"https://github.com/cloudinary-community/astro-cloudinary","commit_stats":null,"previous_names":["colbyfayock/astro-cloudinary","cloudinary-community/astro-cloudinary"],"tags_count":28,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cloudinary-community%2Fastro-cloudinary","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cloudinary-community%2Fastro-cloudinary/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cloudinary-community%2Fastro-cloudinary/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cloudinary-community%2Fastro-cloudinary/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cloudinary-community","download_url":"https://codeload.github.com/cloudinary-community/astro-cloudinary/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":224007877,"owners_count":17240294,"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","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":["astro","astro-loader","cloudinary","cloudinary-sdk","hacktoberfest"],"created_at":"2024-11-10T20:14:28.265Z","updated_at":"2025-04-25T16:32:01.368Z","avatar_url":"https://github.com/cloudinary-community.png","language":"TypeScript","readme":"\u003ca href=\"https://github.com/cloudinary-community/astro-cloudinary/actions/workflows/test_and_release.yml\"\u003e\u003cimg alt=\"GitHub Workflow Status\" src=\"https://img.shields.io/github/actions/workflow/status/cloudinary-community/astro-cloudinary/test_and_release.yml?branch=main\u0026label=Test%20%26%20Release\u0026style=flat-square\"\u003e\u003c/a\u003e \u003ca href=\"https://www.npmjs.com/package/astro-cloudinary\"\u003e\u003cimg alt=\"npm\" src=\"https://img.shields.io/npm/v/astro-cloudinary?style=flat-square\"\u003e\u003c/a\u003e \u003ca href=\"https://bundlephobia.com/package/astro-cloudinary\"\u003e\u003cimg alt=\"npm bundle size\" src=\"https://img.shields.io/bundlephobia/min/astro-cloudinary?style=flat-square\u0026label=Minified%20Size\"\u003e\u003c/a\u003e \u003ca href=\"https://github.com/cloudinary-community/astro-cloudinary/blob/main/LICENSE\"\u003e\u003cimg alt=\"GitHub\" src=\"https://img.shields.io/github/license/cloudinary-community/astro-cloudinary?label=License\u0026style=flat-square\"\u003e\u003c/a\u003e\n\n\n# Astro Cloudinary\n\nHigh-performance image delivery and uploading at scale in Astro powered by Cloudinary.\n\n\u003ca href=\"#-features\"\u003eFeatures\u003c/a\u003e • \u003ca href=\"#-getting-started\"\u003eGetting Started\u003c/a\u003e • \u003ca href=\"#%EF%B8%8F-community--support\"\u003eCommunity \u0026 Support\u003c/a\u003e • \u003ca href=\"#-contributing\"\u003eContributing\u003c/a\u003e\n\n**This is a community library supported by the Cloudinary Developer Experience team.**\n\n## ✨ Features\n\n* Automatically optimize images and deliver in modern formats\n* Remove backgrounds from images\n* Dynamically add image and text overlays to images\n* AI-based cropping and resizing\n* Transform images using color and effects\n* Generate Open Graph Social Media cards on the fly\n* Drop-in Upload Widget\n* ...all at scale with Cloudinary\n\n\n## 🚀 Getting Started\n\n### Installation\n\n* Install `astro-cloudinary` with:\n\n```\nnpm install astro-cloudinary\n```\n\n* Add an environment variable with your Cloud Name:\n```\nPUBLIC_CLOUDINARY_CLOUD_NAME=\"\u003cYour Cloud Name\u003e\"\n```\n\n### Adding an Image\n\n```\nimport { CldImage } from 'astro-cloudinary';\n\n\u003cCldImage width=\"600\" height=\"600\" src=\"\u003cPublic ID or Cloudinary URL\u003e\" alt=\"\u003cAlt Text\u003e\" /\u003e\n```\n\n[Learn more about CldImage on the Astro Cloudinary Docs](https://astro.cloudinary.dev/cldimage/basic-usage)\n\n## ❤️ Community \u0026 Support\n\n* [GitHub: Create an Issue](https://github.com/cloudinary-community/astro-cloudinary/issues)\n* [Bluesky: @ericportis.com](https://bsky.app/profile/ericportis.com)\n* [Mastodon: @eeeps@front-end.social](https://front-end.social/@eeeps)\n* [X: @etportis](https://x.com/etportis)\n\n## 🛠 Contributing\n\nPlease read [CONTRIBUTING.md](https://github.com/cloudinary-community/astro-cloudinary/blob/main/CONTRIBUTING.md) prior to contributing.\n\n### Working Locally\n\n#### Installation\n\nThis project is using [pnpm](https://pnpm.io/) as a way to manage dependencies and workspaces.\n\nWith the project cloned, install the dependencies from the root of the project with:\n\n```\npnpm install\n```\n\n#### Configuration\n\nTo work on the project, you need to have an active Cloudinary account.\n\nWith the account, configure a `.env` file inside of `docs` with:\n\n```\nPUBLIC_CLOUDINARY_CLOUD_NAME=\"\u003cYour Cloudinary Cloud Name\u003e\"\nPUBLIC_CLOUDINARY_API_KEY=\"\u003cYour Cloudinary API Key\u003e\"\nCLOUDINARY_API_SECRET=\"\u003cYour Cloudinary API Secret\u003e\"\n\nPUBLIC_ASSETS_DIRECTORY=\"assets\"\n```\n\n\u003e Note: The Cloudinary account can be free, but some features may not work beyond free tier like Background Removal without enabling the add-on\n\nThe Cloud Name is required for all usage, where the API Key and Secret currently is only used for Upload Widget usage. The Upload Preset is additionally used for the Upload Widgets.\n\n#### Uploading Example Images\n\nIn order to run the Docs project, you need to have the images and videos referenced available inside of your Cloudinary account.\n\nMost of the images and videos used in the project take advantage of the sample assets included in every Cloudinary account, so some may work out-of-the-box, but not all.\n\nTo upload the remaining assets, navigate to the `scripts` directory and first create a new `.env` file with:\n\n```\nCLOUDINARY_CLOUD_NAME=\"\u003cYour Cloudinary Cloud Name\u003e\"\nCLOUDINARY_API_KEY=\"\u003cYour API Key\u003e\"\nCLOUDINARY_API_SECRET=\"\u003cYour API Secret\u003e\"\n```\n\nBy default, the images and videos inside of `scripts/assets.json` will be uploaded to the \"assets\" directory inside of your Cloudinary account. To change the location, add the `CLOUDINARY_ASSETS_DIRECTORY` environment variable with your preferred directory:\n\n```\nCLOUDINARY_ASSETS_DIRECTORY=\"\u003cYour Directory\u003e\"\n```\n\n\u003e Note: You will then need to update the `/docs/.env` file to reference the same directory.\n\nTo run the script, install the dependencies:\n\n```\npnpm install\n```\n\nThen run the upload script with:\n\n```\npnpm upload\n```\n\n#### Uploading Example Collections\n\nCollections are groups of images that are showcased using the cldAssetsLoader helper.\n\nThe directories that make up the sample images include too many images to reasonably\nask a contributor to upload.\n\nWe have a few options then.\n\n1. Skip uploading the collections\n\nIf you're not working on cldAssetsLoader, or you can test using the single example\nthat utilizes the samples directory, you may not need to worry about this.\n\n2. Change the collections location\n\nYou could update these directories in the `docs/src/content/config.ts` file to directories that\nalready exist in your account, such as other sample directories.\n\n3. Upload Manually\n\nIf you want to have assets available to test this out, you can create the following directories\nand include some assets inside.\n\n- collection\n- ecommerce/fashion\n- ecommerce/sneakers\n\nA good way to handle this is to download some images from Unsplash or your favorite stock photo site.\n\n#### Running the Project\n\nOnce installed and configured, from the root of your project run:\n\n```\npnpm dev\n```\n\nThe project will now be available at \u003chttp://localhost:4321\u003e or the configured local port.\n\n\n## Contributors\n\n\u003c!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section --\u003e\n\u003c!-- prettier-ignore-start --\u003e\n\u003c!-- markdownlint-disable --\u003e\n\u003ctable\u003e\n  \u003ctbody\u003e\n    \u003ctr\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://colbyfayock.com/newsletter\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/1045274?v=4?s=100\" width=\"100px;\" alt=\"Colby Fayock\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eColby Fayock\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/cloudinary-community/astro-cloudinary/commits?author=colbyfayock\" title=\"Code\"\u003e💻\u003c/a\u003e \u003ca href=\"https://github.com/cloudinary-community/astro-cloudinary/commits?author=colbyfayock\" title=\"Documentation\"\u003e📖\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/Andarist\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/9800850?v=4?s=100\" width=\"100px;\" alt=\"Mateusz Burzyński\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eMateusz Burzyński\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/cloudinary-community/astro-cloudinary/commits?author=Andarist\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"http://hunterbertoson.tech\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/44106297?v=4?s=100\" width=\"100px;\" alt=\"Hunter Bertoson\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eHunter Bertoson\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/cloudinary-community/astro-cloudinary/commits?author=hkbertoson\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/apatel369\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/33442948?v=4?s=100\" width=\"100px;\" alt=\"Arpan Patel \"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eArpan Patel \u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/cloudinary-community/astro-cloudinary/commits?author=apatel369\" title=\"Documentation\"\u003e📖\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/saai-syvendra\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/157691467?v=4?s=100\" width=\"100px;\" alt=\"Saai Syvendra\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eSaai Syvendra\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/cloudinary-community/astro-cloudinary/commits?author=saai-syvendra\" title=\"Documentation\"\u003e📖\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/RaghavMangla\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/97332401?v=4?s=100\" width=\"100px;\" alt=\"Raghav Mangla\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eRaghav Mangla\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/cloudinary-community/astro-cloudinary/commits?author=RaghavMangla\" title=\"Documentation\"\u003e📖\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"http://dunkirk.sh\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/92754843?v=4?s=100\" width=\"100px;\" alt=\"Kieran Klukas\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eKieran Klukas\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/cloudinary-community/astro-cloudinary/commits?author=kcoderhtml\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/smv1256\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/117322465?v=4?s=100\" width=\"100px;\" alt=\"S. M. V.\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eS. M. V.\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/cloudinary-community/astro-cloudinary/commits?author=smv1256\" title=\"Documentation\"\u003e📖\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://michaeluloth.com\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/625364?v=4?s=100\" width=\"100px;\" alt=\"Michael Uloth\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eMichael Uloth\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/cloudinary-community/astro-cloudinary/commits?author=ooloth\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/justinphilpott\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/8027086?v=4?s=100\" width=\"100px;\" alt=\"Justin Philpott\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eJustin Philpott\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/cloudinary-community/astro-cloudinary/commits?author=justinphilpott\" title=\"Documentation\"\u003e📖\u003c/a\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n  \u003c/tbody\u003e\n\u003c/table\u003e\n\n\u003c!-- markdownlint-restore --\u003e\n\u003c!-- prettier-ignore-end --\u003e\n\n\u003c!-- ALL-CONTRIBUTORS-LIST:END --\u003e\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcloudinary-community%2Fastro-cloudinary","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcloudinary-community%2Fastro-cloudinary","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcloudinary-community%2Fastro-cloudinary/lists"}