---
# System prepended metadata

title: Untitled

---


## **Initial Context**

Images are really important and widely used in a page.

Images can also be really heavy and need a loading strategy.

For that, we already are using lazy-loading to upload optimized images when the user scroll.

But the apparition isn't smooth and is jumpy.

https://miro.com/app/board/uXjVPNlETFI=/

---

## **Success Criterias**

* No more "jump" loading for users/players
* The user/player understand that the placeholder will be replaced soon by the final image
* Placeholder matches the loaded image/BG image of the given module
* User/Player don't see empty area anymore
* No "blink" effect between placeholder and final image
* No impact on the user

## **Risks**

* Impact on the performance
* Some users will see blink effect when the final image will replace the placeholder
* This solution will not be available for ALL images.
* this solution will be available only for new posts (not retroactif)

---

## Questions that need to be answered

---
### 🤔 Can we get the 'lowest' image in resolution while keeping the ratio ?

#### Reflexion

- ✍️ Since, proxy-image can return the resolution we want
- 👉 Then, yes

---

### 🤔 does the proxy image can serve a base64 version of this extremely low image ?

#### Reflexion

- ✍️ Since, proxy-image doesn't offer this possibility
- 👉 Then, no

### 🤔 does the component serve the image ratio before loading the image ?

#### Reflexion

- ✍️ Since, we can get the ratio as a props by proxy-image
- 👉 Then, yes


### 🔍 WHAT SOLUTIONS ARE EXISTING

- 1️⃣ Keeping the space empty for the image
- 2️⃣ Placeholder
- 3️⃣ Solid colour
- 4️⃣ Progressive image loading [demo](https://jmperezperez.com/static/images/posts/medium-progressive-loading.mp4) [article](https://jmperezperez.medium.com/how-medium-does-progressive-image-loading-fd1e4dc1ee3d)

#### Comparatif


| Criteria | Empty space | Placeholder | Solid colour | Progressive image loading
| -------- | ----------- | ----------- |------------- |--------------------------
| no jump  | 🟢 | 🟢 | 🟢 | 🟢
| The user/player understand that the placeholder will be replaced soon by the final image | 🔴 | 🟢 | 🟠 | 🟢
| Placeholder matches the loaded image/BG image of the given module | 🔴 | 🔴 | 🟠 | 🟢
| User/Player don't see empty area anymore | 🔴 | 🟢 | 🟢 | 🟢
| No "blink" effect between placeholder and final image | 🔴 | 🔴 | 🟢 | 🟢
| No impact on the user | 🟢 | 🟢 | 🟢 | 🟢

---
## ✨ CONCLUSION ✨

> Based this TAD, we can validate that the greatest values will be to use Progressive image loading.

> This solution is the more complex to implement but would not require R&D since this solution is already well documented and used widely.

