AddThisFeature

Avatar Upload

Let people upload a profile picture without wrecking your layout.

moderate User Accounts

What it adds

Avatar upload with cropping, resizing, and a sensible fallback.

What your agent is told to do

4
  1. 1

    Let the user crop and reposition before upload — never just accept and squash the image.

  2. 2

    Resize server-side to a few fixed sizes. Do not serve a 5MB original as a 32px avatar.

  3. 3

    Provide a deterministic fallback (initials or a generated shape) so a missing avatar never looks broken.

  4. 4

    Strip EXIF metadata — it can contain the user's GPS location.

Edge cases it handles

4
  • Validate the file is genuinely an image server-side; do not trust the extension or MIME type.
  • Enforce a maximum file size and dimensions before processing — image bombs are a real DoS vector.
  • Handle transparent PNGs and animated GIFs deliberately.
  • Removing an avatar must fall back cleanly, not leave a broken image.

Definition of done

8
  • Users can crop and position before uploading.
  • Images are validated as real images server-side.
  • Size and dimension limits are enforced before processing.
  • EXIF metadata is stripped.
  • Resized variants are served, not the original.
  • A missing avatar renders a clean fallback.
  • The feature matches the existing design system.
  • No existing functionality is broken.

Related features

How it works

  1. 1

    Copy the link

    Grab the Markdown instruction URL for this feature.

  2. 2

    Give it to your AI

    Paste it into Claude Code, Cursor, v0, Lovable — whatever you build with.

  3. 3

    It inspects, then implements

    Your agent reads your existing app first, then adds the feature to fit it.

Works with your stack

These instructions are written to adapt. They tell the agent to detect your framework, match your existing design system, and reuse what you already have — rather than assuming a particular stack.

Need it tighter than that? Customize the feature and tell it exactly what you're running.