v2.3.0

View on GitHub

The headlines

  • 🖼️ Images/video storage improvements/hooks
  • ⛲️ Font/Icons CDN
  • 🗜️ Images network/performance improvements/hooks (dogfooding currently, public release soon)
  • 🪗 Flattening
  • 📚Documentation improvements
  • 🔐 Security improvements

🖼️ Images/video storage improvements/hooks

When using a local-only storage of the whiteboard, we now store the images and videos in a separate indexedDB table. This is instead of storing them as base64-encoded blobs in the room's JSON. That wasn't very performant and blew up the size of the room's JSON quite a bit. This separates out those assets into a separate retrieval mechanism for better separation-of-concerns.

⛲️ Font/Icons CDN

We improved our out-of-the-box/batteries-included CDN for our assets (fonts/icons). We were using unpkg before but now we're just using Cloudflare directly for more fine-grained control.

🗜️ Images network/performance improvements/hooks (dogfooding currently, public release soon)

We've been working on something we call 'level-of-detail' internally for images. We're testing this currently on tldraw.com where for higher-resolution images (over a couple megabytes), the image will get transformed to an appropriate size depending on things like your viewport, zoom level, current network speed, among other considerations. This helps with bandwidth usage and browser memory usage especially when you have multiple high-res images on the board.

🪗 Flattening

@steveruizok worked on adding being able to select multiple shapes and flatten them into an image. For those moments when you need to press 🙏, clamp 🗜️, and squeeze things together. 🪗

📚 Documentation improvements

@SomeHats did a ton of unglorious work to make our documentation much more manageable. So sparkly ✨

🔐 Security improvements

We locked down our referrer network requests in #3884 and #3881 to make sure we weren't leaking tldraw rooms to external media/iframe requests.

🚀 Features

  • Styling: Secretly adds a fill-fill style (Alt-F) #3966 (@steveruizok)
  • Flattening: Add Flatten, a new menu item to flatten shapes into images #3933 (@steveruizok)
  • Images/videos: make option to transform urls dynamically to provide different sized images on demand. (only internal API for now) #3827 (@mimecuvalo)
  • Images/videos: store as reference to blob in indexedDB instead of storing directly as base64 in the snapshot. #3836 (@mimecuvalo)
  • Font/Icons CDN: Start using our own cdn instead of unpkg. #3923 (@MitjaBezensek)
  • API Change: Make ArrowBindingUtil public. #3913 (@ds300)

🔐 Security

  • Security: enforce use of our fetch function and its default referrerpolicy #3884 (@mimecuvalo)

💄 Improvements

🐛 Bug Fixes

📚 Documentation

🛠️ VS Code

Authors: 7

Prev
v2.4.0
Next
v2.2.0