{"id":18410232,"url":"https://github.com/slainless/digides-ogimage","last_synced_at":"2025-10-28T07:12:21.738Z","repository":{"id":235030539,"uuid":"779559331","full_name":"slainless/digides-ogimage","owner":"slainless","description":"A Cloudflare worker to generate OpenGraph banner, configured specifically for Digital Desa Profile Website.","archived":true,"fork":false,"pushed_at":"2024-07-19T12:48:22.000Z","size":3372,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-04-12T22:15:39.807Z","etag":null,"topics":["cloudflare","cloudflare-worker","golang","hono","image-generation","image-manipulation","image-processing","ogimage","wasm","worker"],"latest_commit_sha":null,"homepage":"","language":"Go","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/slainless.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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}},"created_at":"2024-03-30T06:26:48.000Z","updated_at":"2025-01-14T06:06:15.000Z","dependencies_parsed_at":"2025-04-12T21:59:07.020Z","dependency_job_id":"38a376d1-845e-4563-90f6-dd8f92fb68d4","html_url":"https://github.com/slainless/digides-ogimage","commit_stats":null,"previous_names":["slainless/digides-ogimage"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/slainless/digides-ogimage","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/slainless%2Fdigides-ogimage","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/slainless%2Fdigides-ogimage/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/slainless%2Fdigides-ogimage/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/slainless%2Fdigides-ogimage/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/slainless","download_url":"https://codeload.github.com/slainless/digides-ogimage/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/slainless%2Fdigides-ogimage/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":281399030,"owners_count":26494303,"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-10-28T02:00:06.022Z","response_time":60,"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":["cloudflare","cloudflare-worker","golang","hono","image-generation","image-manipulation","image-processing","ogimage","wasm","worker"],"created_at":"2024-11-06T03:29:51.139Z","updated_at":"2025-10-28T07:12:21.687Z","avatar_url":"https://github.com/slainless.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# digides-ogimage\n\n\u003e [!WARNING]\n\u003e Deprecated: This implementation has memory leak.\n\u003e WASI version available which is more stable and truly production ready.\n\u003e https://github.com/slainless/digides-ogimaker.\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"./assets/example.jpeg\" width=\"80%\"/\u003e\n\u003c/p\u003e\n\nA cloudflare worker to generate OpenGraph banner, configured specifically for Digital Desa Profile Website.\n\nUsing Hono for edge framework, while Go is used to draw the image.\n\nLive at https://og-image-generator.digital-desa.workers.dev/.\n\n[Click here to view render example.](https://og-image-generator.digital-desa.workers.dev/?d=JfDxtkTsSNXx8lDF4BqMVcHUla4WE59lF6SeUCmRr61FvhaaPrmDfkz41Zt0C1lUKGX0X-ywirXMyPLTW78arco6dyhnnIl4OWgi6g1Evf8rFSh6iMrn1OPB7U7OKAb7-2lLFa5RfmmmAQ2U9wrtIn5EHVFGi8jnrUewocOO5vK2pdSxXaFJnSlM47ULN3fHxuqnYGdi0KT7RjyZ7et1ZAOzA-GD9PZTLhZBlc-H48FOIx9zmLo-E8UBacdm3hHDKXUuociO8e8VJzEaZ1bLhhb8ttipzIzn7wgrQ3PUUjHCar8eCd06jg)\n\n## Performance\n\nManaged to reduce drawing time to around 0.8~0.9s/op. I think i can get more performance gain by optimizing the string drawing but I'm pretty\nsatisfied with the current drawer. Now, I just need to pass the image to a WEBP or AVIF decoder.\n\n## Future plan\n\nConsidering that [cloudflare WebGPU API is not ready yet](https://developers.cloudflare.com/durable-objects/api/webgpu/) \n(and even then, it's only supported on Durable Objects), the only choice is to render using CPU. Not that I know how to program using \nWebGPU (I wish I have time to learn it), but it's the best option for graphic drawing in Cloudflare Worker.\n\nI'm thinking of incorporating libvips to do filtering and image drawing, if possible. \nI'm also planning to improve the drawing logic, I think I might have wasted too much processing power doing \nfiltering four times, perhaps there is a better way.\n\nDoing the processing purely in javascript environment is also an option, using [wasm-vips](https://github.com/kleisauke/wasm-vips) or something.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fslainless%2Fdigides-ogimage","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fslainless%2Fdigides-ogimage","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fslainless%2Fdigides-ogimage/lists"}