Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

Improvement: Stop re-uploading bundled cover images to S3 on every project create

Open
#9,970 2 comments 0 reactions 0 assignees View on GitHub

Maintainers usually reply within 1 day

@manshi-n is already working on this.

Since Oct 9, 2026.

Assessment

Difficulty
3/5
Estimated time
Half a day
Newbie friendliness
50/100
Issue type
Refactor
Clarity
Mostly clear
Activity status
Active
Tech stack
python, typescript
Domain
backend, frontend

Research direction

Start in apps/web/components/projects/create/root.tsx around lines 72-79, where the upload runs on every project create, then check needsUpload in apps/web/helpers/cover-image.helper.ts near line 189 to see when a bundled static cover is already treated as needing no upload. The backend key generation is at apps/api/plane/app/views/asset/v2.py line 389. Done means a project created with a bundled cover makes no new S3 object, while uploaded covers still work. The issue leaves open whether to skip the upload or hash the bytes, so confirm the approach with a maintainer first.

Written by the indexing model from the issue text.

Description

What's happening

  • Every project create uploads one of the 30 bundled covers (apps/web/app/assets/cover-images/) to S3 under a new random UUID key
  • Same file, new S3 object, every time
  • asset/v2.py:389: asset_key = f"{workspace.id}/{uuid.uuid4().hex}-{name}"

Scale of waste (rough math)

  • Say 2,000 teams on Cloud
  • Say 3 projects per team = 6,000 projects
  • ~50KB per cover × 6,000 = ~300MB of duplicate covers
  • Only 30 unique files exist — 6,000 objects store 30 images

Fix

  • If cover is local_static, skip the upload
  • Store the static path directly — the app already renders static paths as-is (getCoverImageDisplayURL)
  • Or: sha256(bytes) as the S3 key instead of uuid4(), so identical files dedupe

Files

  • apps/web/components/projects/create/root.tsx:72-79 — upload always runs on create
  • apps/web/helpers/cover-image.helper.ts:189 — needsUpload rule
  • apps/api/plane/app/views/asset/v2.py:389 — random key per upload

Just a small bug i noticed, not much but can save small s3 cost in cloud version

Let me know if this issue can be taken, would like to raise a pr

Dominant language
TypeScript
Stars
60.7k
Forks
6k
Avg merge
1d 9h
Merged PRs (30d)
56

Getting set up

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from makeplane/plane

All issues in makeplane/plane

Similar issues

More TypeScript issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.