瀏覽代碼

website: update links to work under the new URL (#4371)

This is just to fix the old unmaintained website. The official Uppy
website is still at https://uppy.io/.
Antoine du Hamel 2 年之前
父節點
當前提交
170dcb9eb9
共有 80 個文件被更改,包括 194 次插入194 次删除
  1. 3 3
      website/_config.yml
  2. 1 1
      website/src/_posts/2016-11-0.11.md
  3. 2 2
      website/src/_posts/2017-02-0.14.md
  4. 1 1
      website/src/_posts/2017-03-0.15.md
  5. 2 2
      website/src/_posts/2017-05-0.17.md
  6. 3 3
      website/src/_posts/2017-08-0.18.md
  7. 2 2
      website/src/_posts/2017-09-0.19.md
  8. 1 1
      website/src/_posts/2017-10-0.20.md
  9. 1 1
      website/src/_posts/2017-10-0.21.md
  10. 7 7
      website/src/_posts/2017-12-0.22.md
  11. 4 4
      website/src/_posts/2018-02-0.23.md
  12. 4 4
      website/src/_posts/2018-04-0.24.md
  13. 1 1
      website/src/_posts/2018-06-0.25.md
  14. 1 1
      website/src/_posts/2018-07-0.26.md
  15. 3 3
      website/src/_posts/2018-08-0.27.md
  16. 7 7
      website/src/_posts/2018-10-0.28.md
  17. 2 2
      website/src/_posts/2018-12-0.29.md
  18. 7 7
      website/src/_posts/2019-03-0.30.md
  19. 2 2
      website/src/_posts/2019-03-liftoff-01.md
  20. 2 2
      website/src/_posts/2019-03-liftoff-02.md
  21. 2 2
      website/src/_posts/2019-03-liftoff-03.md
  22. 2 2
      website/src/_posts/2019-03-liftoff-04.md
  23. 1 1
      website/src/_posts/2019-03-liftoff-05.md
  24. 1 1
      website/src/_posts/2019-03-liftoff-06.md
  25. 4 4
      website/src/_posts/2019-04-1.0.md
  26. 2 2
      website/src/_posts/2019-04-liftoff-07.md
  27. 2 2
      website/src/_posts/2019-04-liftoff-08.md
  28. 2 2
      website/src/_posts/2019-04-liftoff-09.md
  29. 2 2
      website/src/_posts/2019-04-liftoff-10.md
  30. 2 2
      website/src/_posts/2019-04-liftoff-11.md
  31. 1 1
      website/src/_posts/2019-04-liftoff-12.md
  32. 1 1
      website/src/_posts/2019-04-liftoff-13.md
  33. 2 2
      website/src/_posts/2019-04-liftoff-14.md
  34. 2 2
      website/src/_posts/2019-04-liftoff-15.md
  35. 2 2
      website/src/_posts/2019-04-liftoff-16.md
  36. 2 2
      website/src/_posts/2019-04-liftoff-17.md
  37. 2 2
      website/src/_posts/2019-04-liftoff-18.md
  38. 1 1
      website/src/_posts/2019-04-liftoff-19.md
  39. 1 1
      website/src/_posts/2019-04-liftoff-20.md
  40. 2 2
      website/src/_posts/2019-04-liftoff-21.md
  41. 2 2
      website/src/_posts/2019-04-liftoff-22.md
  42. 2 2
      website/src/_posts/2019-04-liftoff-23.md
  43. 2 2
      website/src/_posts/2019-04-liftoff-24.md
  44. 1 1
      website/src/_posts/2019-04-liftoff-25.md
  45. 1 1
      website/src/_posts/2019-04-liftoff-26.md
  46. 1 1
      website/src/_posts/2019-04-liftoff-27.md
  47. 2 2
      website/src/_posts/2019-04-liftoff-28.md
  48. 2 2
      website/src/_posts/2019-04-liftoff-29.md
  49. 3 3
      website/src/_posts/2019-04-liftoff-30.md
  50. 2 2
      website/src/_posts/2019-08-1.3.md
  51. 1 1
      website/src/_posts/2019-11-1.6.md
  52. 2 2
      website/src/_posts/2019-12-1.7.md
  53. 5 5
      website/src/_posts/2020-03-custom-providers.md
  54. 1 1
      website/src/_posts/2020-04-1.10.md
  55. 1 1
      website/src/_posts/2020-04-1.13.md
  56. 5 5
      website/src/_posts/2020-07-1.18-image-editor.md
  57. 1 1
      website/src/_posts/2020-09-companion-2.0.md
  58. 2 2
      website/src/_posts/2020-10-1.22.md
  59. 5 5
      website/src/_posts/2020-11-1.23.md
  60. 3 3
      website/src/_posts/2020-12-1.24.md
  61. 2 2
      website/src/_posts/2021-01-1.25.md
  62. 3 3
      website/src/_posts/2021-02-1.26.md
  63. 4 4
      website/src/_posts/2021-04-1.27.md
  64. 7 7
      website/src/_posts/2021-04-1.29.md
  65. 2 2
      website/src/_posts/2021-07-1.30.md
  66. 3 3
      website/src/_posts/2021-08-2.0.md
  67. 8 8
      website/src/_posts/2021-12-2.1-2.3.md
  68. 4 4
      website/src/_posts/2022-03-2.4-2.7.md
  69. 3 3
      website/src/_posts/2022-09-3.0.md
  70. 1 1
      website/src/_posts/2022-12-3.3.md
  71. 1 1
      website/src/docs/aws-s3.md
  72. 3 3
      website/src/docs/companion.md
  73. 5 5
      website/src/docs/dashboard.md
  74. 1 1
      website/src/docs/golden-retriever.md
  75. 1 1
      website/src/docs/informer.md
  76. 1 1
      website/src/docs/locales.md
  77. 6 6
      website/src/docs/migration-guides.md
  78. 1 1
      website/src/docs/redux.md
  79. 1 1
      website/src/docs/robodog-form.md
  80. 1 1
      website/src/docs/xhr-upload.md

+ 3 - 3
website/_config.yml

@@ -3,7 +3,7 @@
 ## Source: https://github.com/tommy351/hexo/
 
 # Theme
-root_domain: uppy.io
+root_domain: transloadit.github.io
 
 # Site
 title: Uppy
@@ -27,8 +27,8 @@ language: English
 
 # URL
 ## If your site is put in a subdirectory, set url as 'http://yoursite.com/child' and root as '/child/'
-url: https://uppy.io
-root: /
+url: https://transloadit.github.io/uppy
+root: /uppy/
 permalink: blog/:year/:month/:title/
 tag_dir: tags
 archive_dir: archives

+ 1 - 1
website/src/_posts/2016-11-0.11.md

@@ -21,7 +21,7 @@ Here's what we have been up to, in some more detail.
 
 ## Dashboard: example features, StatusBar and updated UI
 
-**Dashboard example** [on our website](https://uppy.io/examples/dashboard/) now features several options:
+**Dashboard example** [on our website](/uppy/examples/dashboard/) now features several options:
 
 - switchting between “inline” and “modal dialog / popup” mode;
 - toggling the `autoProceed` option that starts uploads automatically, without waiting for a click on the “upload” button;

+ 2 - 2
website/src/_posts/2017-02-0.14.md

@@ -29,7 +29,7 @@ It used to be the case that when you clicked that stylish “authenticate” \[w
 <img class="border" src="/images/blog/0.14/smooth-auth.png">
 
 **Dropbox plugin**
-Dropbox support made it into Uppy this release! 🎉 [Ife](https://github.com/ifedapoolarewaju) rocks like that. (A shoutout here as well to [Harry](https://github.com/hedgerh) for the initial work on Uppy Server and the Google Drive plugin!) Why don't you [give it a try](https://uppy.io/examples/dashboard/)!
+Dropbox support made it into Uppy this release! 🎉 [Ife](https://github.com/ifedapoolarewaju) rocks like that. (A shoutout here as well to [Harry](https://github.com/hedgerh) for the initial work on Uppy Server and the Google Drive plugin!) Why don't you [give it a try](/uppy/examples/dashboard/)!
 
 <img class="border" src="/images/blog/0.14/uppy-dropbox.png">
 
@@ -62,7 +62,7 @@ Total and uploaded sizes have been added to the StatusBar, allowing you and your
 
 <img src="/images/blog/0.14/statusbar-uploaded-total-size.png">
 
-You can play with all of these new features on [the Dashboard example page](https://uppy.io/examples/dashboard/).
+You can play with all of these new features on [the Dashboard example page](/uppy/examples/dashboard/).
 
 <!-- more -->
 

+ 1 - 1
website/src/_posts/2017-03-0.15.md

@@ -11,7 +11,7 @@ Spring is in the air and Uppy is feeling particularly full of life. In this post
 
 ## Yo-yoify for NPM-installed Uppy
 
-In [`0.14`](https://uppy.io/blog/2017/02/0.14/), we added `yo-yoify` transform to give Uppy some extra speed and eliminate `Function.caller` issues. As it turned out, we [forgot](https://github.com/transloadit/uppy/issues/158) about our Babel-transpiled `lib` version of Uppy that gets published to NPM 🙀. We then spent some time creating a standalone version of `yo-yoify` that would be able to parse `yo-yo` template strings before Babel-transpilation, only to discover that there already is a [`babel-plugin-yo-yoify`](https://www.npmjs.com/package/babel-plugin-yo-yoify) that not only does precisely that, but also frees us from jumping through a lot of unnecessary hoops. It did [have](https://github.com/goto-bus-stop/babel-plugin-yo-yoify/issues/9) [a few](https://github.com/goto-bus-stop/babel-plugin-yo-yoify/pull/8) [issues](https://github.com/goto-bus-stop/babel-plugin-yo-yoify/issues/11) at first, but luckily our friend [Renée](https://github.com/goto-bus-stop) was available to colaborate with us on this. Renée has also agreed to join Uppy for a while to help us with other pressing issues. So, silver linings — bugs can sometimes lead to new friends and wonderful beginnings. We are very excited about what this all means for Uppy in the months to come.
+In [`0.14`](/uppy/blog/2017/02/0.14/), we added `yo-yoify` transform to give Uppy some extra speed and eliminate `Function.caller` issues. As it turned out, we [forgot](https://github.com/transloadit/uppy/issues/158) about our Babel-transpiled `lib` version of Uppy that gets published to NPM 🙀. We then spent some time creating a standalone version of `yo-yoify` that would be able to parse `yo-yo` template strings before Babel-transpilation, only to discover that there already is a [`babel-plugin-yo-yoify`](https://www.npmjs.com/package/babel-plugin-yo-yoify) that not only does precisely that, but also frees us from jumping through a lot of unnecessary hoops. It did [have](https://github.com/goto-bus-stop/babel-plugin-yo-yoify/issues/9) [a few](https://github.com/goto-bus-stop/babel-plugin-yo-yoify/pull/8) [issues](https://github.com/goto-bus-stop/babel-plugin-yo-yoify/issues/11) at first, but luckily our friend [Renée](https://github.com/goto-bus-stop) was available to colaborate with us on this. Renée has also agreed to join Uppy for a while to help us with other pressing issues. So, silver linings — bugs can sometimes lead to new friends and wonderful beginnings. We are very excited about what this all means for Uppy in the months to come.
 
 Uppy from NPM is now good to go and the issue has been completely resolved. You can update at: <https://www.npmjs.com/package/uppy>. And yeah, if you use `yo-yo`, give [`babel-plugin-yo-yoify`](https://www.npmjs.com/package/babel-plugin-yo-yoify) a try.
 

+ 2 - 2
website/src/_posts/2017-05-0.17.md

@@ -77,7 +77,7 @@ Yes, Instagram is now supported in Uppy, so you can easily import all of your ca
   <img class="border" src="/images/blog/0.17/instagram-ui.jpg">
 </figure>
 
-You can try it live in the [Dashboard example](https://uppy.io/examples/dashboard/).
+You can try it live in the [Dashboard example](/uppy/examples/dashboard/).
 
 The UI for all “provider” plugins, which is the way we call Google Drive, Dropbox and other external services, have been revamped to make better use of the space.
 
@@ -123,7 +123,7 @@ Here is the full list of changes for version 0.17:
 - core: added `uppy.reset()` as discussed in #179 (@arturi)
 - core: added nanoraf <https://github.com/yoshuawuyts/choo/pull/135/files?diff=unified> (@goto-bus-stop, @arturi)
 - core: file type detection: archives, markdown (possible modules: file-type, identify-filetype) example: <http://requirebin.com/?gist=f9bea9602030f1320a227cf7f140c45f>, <http://stackoverflow.com/a/29672957> (@arturi)
-- dashboard: made file icons prettier: <https://uppy.io/images/blog/0.16/service-logos.png> (@arturi, @nqst / #215)
+- dashboard: made file icons prettier: </uppy/images/blog/0.16/service-logos.png> (@arturi, @nqst / #215)
 - fileinput: allow retrieving fields/options from form (@arturi #153)
 - server: configurable server port (@ifedapoolarewaju)
 - server: added support for custom providers (@ifedapoolarewaju)

+ 3 - 3
website/src/_posts/2017-08-0.18.md

@@ -12,11 +12,11 @@ Hi! Another month — a new Uppy release 🎉
 
 ## New documentation
 
-Documentation for Uppy has been re-written, and now features chapters on Uppy’s settings and API, using various plugins, and running Uppy Server. Check it out: <https://uppy.io/docs/>. More chapters to come!
+Documentation for Uppy has been re-written, and now features chapters on Uppy’s settings and API, using various plugins, and running Uppy Server. Check it out: </uppy/docs/>. More chapters to come!
 
 ## The GoldenRetriever
 
-The GoldenRetriever has been released as a public beta. For details, please refer to the previous post, [The GoldenRetriever: Making uploads survive browser crashes](https://uppy.io/blog/2017/07/golden-retriever/), but the gist is: when enabled, this plugin will save uppy-state to localStorage on every change, and then if your browser crashes, or you accidentaly navigate away from a tab,later when you return, your uploads will resume like nothing happened. Spoiler: it uses Service Workers and IndexedDB.
+The GoldenRetriever has been released as a public beta. For details, please refer to the previous post, [The GoldenRetriever: Making uploads survive browser crashes](/uppy/blog/2017/07/golden-retriever/), but the gist is: when enabled, this plugin will save uppy-state to localStorage on every change, and then if your browser crashes, or you accidentaly navigate away from a tab,later when you return, your uploads will resume like nothing happened. Spoiler: it uses Service Workers and IndexedDB.
 
 <img class="border" src="/images/blog/0.18/golden-retriever.jpg">
 
@@ -41,7 +41,7 @@ uppy.use(AwsS3, {
 })
 ```
 
-Please find [more info and examples](https://uppy.io/docs/aws-s3/) in the docs.
+Please find [more info and examples](/uppy/docs/aws-s3/) in the docs.
 
 ## Transloadit `getAssemblyOptions`
 

+ 2 - 2
website/src/_posts/2017-09-0.19.md

@@ -1,6 +1,6 @@
 ---
 title: "Uppy 0.19: Tests, Informer details and better APIs"
-image: "https://uppy.io/images/blog/0.19/informer-details.jpg"
+image: "/uppy/images/blog/0.19/informer-details.jpg"
 date: 2017-09-21
 author: arturi
 published: true
@@ -33,7 +33,7 @@ button.addEventListener('click', () => {
 })
 ```
 
-Check out [the docs](https://uppy.io/docs/dashboard/#Methods).
+Check out [the docs](/uppy/docs/dashboard/#Methods).
 
 <!--more-->
 

+ 1 - 1
website/src/_posts/2017-10-0.20.md

@@ -1,6 +1,6 @@
 ---
 title: "Uppy 0.20: React, Retry & Time Travel"
-image: "https://uppy.io/images/blog/0.20/dnd-gray.jpg"
+image: "/uppy/images/blog/0.20/dnd-gray.jpg"
 date: 2017-10-05
 author: renee
 published: true

+ 1 - 1
website/src/_posts/2017-10-0.21.md

@@ -52,7 +52,7 @@ uppy.on('core:complete', ({ successful, failed }) => {
 })
 ```
 
-See [`uppy.upload()`](https://uppy.io/docs/uppy/#uppy-upload) and [`core:complete`](https://uppy.io/docs/uppy/#core-complete) in docs, as well as [#404 PR](https://github.com/transloadit/uppy/pull/404) for more details.
+See [`uppy.upload()`](/uppy/docs/uppy/#uppy-upload) and [`core:complete`](/uppy/docs/uppy/#core-complete) in docs, as well as [#404 PR](https://github.com/transloadit/uppy/pull/404) for more details.
 
 ## End to end tests
 

+ 7 - 7
website/src/_posts/2017-12-0.22.md

@@ -2,7 +2,7 @@
 title: "Uppy 0.22: Preact, Form, Improved Dashboard, Custom Stores"
 date: 2017-12-23
 author: arturi
-image: "https://uppy.io/images/blog/0.22/uppy-dashboard-updated.jpg"
+image: "/uppy/images/blog/0.22/uppy-dashboard-updated.jpg"
 published: true
 ---
 
@@ -28,7 +28,7 @@ See [#451 PR](https://github.com/transloadit/uppy/pull/451) for details on why w
 - **⚠️ Breaking** Events have been renamed to remove the `core:` prefix. So `core:success` becomes just `success`, and this also results in now having `error`, `upload-started` and so on. Prefixed event names are used for plugin-specific event sometimes, like `dashboard:file-card`.
 - **⚠️ Breaking** CSS class names have been altered to use the `uppy-` namespace, so `.UppyDashboard-files` becomes `.uppy-Dashboard-files` and so on.
 - **⚠️ Breaking** `getMetaFromForm` was removed in favor of the new `Form` plugin (see below).
-- **⚠️ Breaking** `MetaData` plugin was removed in favor of the `metaFields` option in Dashboard, [see docs](https://uppy.io/docs/dashboard/#metaFields) for more details.
+- **⚠️ Breaking** `MetaData` plugin was removed in favor of the `metaFields` option in Dashboard, [see docs](/uppy/docs/dashboard/#metaFields) for more details.
 - Plugins now use `this.el` to refer to their UI element instead of `this.target`.
 - `setPluginState` and `getPluginState` are now used in Providers.
 
@@ -39,7 +39,7 @@ See [#451 PR](https://github.com/transloadit/uppy/pull/451) for details on why w
 - File cards are simpler, we’ve removed the excess white backgrounds, improved the remove icon, reduced paddings, added slight shadows.
 - Cicular upload button in the Dashboard has been moved to the StatusBar. It’s also not circular anymore, and there’s no cloud icon. Plain and simple.
 - Redesigned “retry” and “add +1 file” buttons.
-- Added `metaFields` option: an array of settings for UI field objects, which previousely lived in a separate `MetaData` plugin: `{ id: 'caption', name: 'Caption', placeholder: 'describe what the image is about' }`, [see docs](https://uppy.io/docs/dashboard/#metaFields) for more details.
+- Added `metaFields` option: an array of settings for UI field objects, which previousely lived in a separate `MetaData` plugin: `{ id: 'caption', name: 'Caption', placeholder: 'describe what the image is about' }`, [see docs](/uppy/docs/dashboard/#metaFields) for more details.
 
 See [#434 PR](https://github.com/transloadit/uppy/pull/451) for more screenshots and details.
 
@@ -49,7 +49,7 @@ Thanks to [@sadovnychyi](https://github.com/sadovnychyi), you can now select mul
 
 ![Uppy Dashboard UI with 3 files selected](/images/blog/0.22/uppy-dashboard-provider-select.jpg)
 
-[Check it out →](https://uppy.io/examples/dashboard/)
+[Check it out →](/uppy/examples/dashboard/)
 
 ## Stores
 
@@ -83,7 +83,7 @@ const uppy = Uppy({
 
 Now Uppy will use your app’s Redux store instead of its own, so you have a “single source of truth” 🔮
 
-Read [more on stores](https://uppy.io/docs/stores/) in docs.
+Read [more on stores](/uppy/docs/stores/) in docs.
 
 ## Form
 
@@ -100,11 +100,11 @@ uppy.use(Form, {
 })
 ```
 
-Read [more about the Form plugin](https://uppy.io/docs/form/) in docs.
+Read [more about the Form plugin](/uppy/docs/form/) in docs.
 
 ## Encoding support in GoldenRetriever
 
-Our browser crash / page refresh restore plugin `GoldenRetriever` (read [more about it](https://uppy.io/docs/golden-retriever/)) now supports correctly restoring [Transloadit](https://transloadit.com) assemblies!
+Our browser crash / page refresh restore plugin `GoldenRetriever` (read [more about it](/uppy/docs/golden-retriever/)) now supports correctly restoring [Transloadit](https://transloadit.com) assemblies!
 
 Also, we’ve fixed restoring from paused state. Now uploads will remain paused and not get out of sync.
 

+ 4 - 4
website/src/_posts/2018-02-0.23.md

@@ -29,7 +29,7 @@ We’ve also fixed previews in Safari and tweaked the code slightly after readin
 
 ## Processing results
 
-Processing results from encoding plugins like [`Transloadit`](https://uppy.io/docs/transloadit/), are now added to `complete` event:
+Processing results from encoding plugins like [`Transloadit`](/uppy/docs/transloadit/), are now added to `complete` event:
 
 ```js
 uppy.on('complete', (result) => {
@@ -51,7 +51,7 @@ uppy.upload().then((result) => {
 })
 ```
 
-You can still use events like [`transloadit:result`](https://uppy.io/docs/transloadit/#transloadit-result), its just easier when things are in the same place. Plugins can use the new `uppy.addResultData()` API to add data to the `result`, like so:
+You can still use events like [`transloadit:result`](/uppy/docs/transloadit/#transloadit-result), its just easier when things are in the same place. Plugins can use the new `uppy.addResultData()` API to add data to the `result`, like so:
 
 ```js
 uppy.addResultData(uploadID, { transloadit: assemblies })
@@ -61,11 +61,11 @@ uppy.addResultData(uploadID, { transloadit: assemblies })
 
 The Webcam plugin now mirrors image previews by default, so when you are making a selfie and wave with your right hand, you see that right hand in the Webcam preview, just like in the mirror. This option can be disabled via `uppy.use(Webcam, { mirror: false }`. Note that the resulting image will not be mirrored, so your hand will actually be waving on the left. This mimics the behaviour of smarphone selfie cameras.
 
-We’ve also added an option to select which camera will be used to capture pictures or video: [facingMode](https://uppy.io/docs/webcam/#facingMode-39-user-39), set to `user` (front camera) by default.
+We’ve also added an option to select which camera will be used to capture pictures or video: [facingMode](/uppy/docs/webcam/#facingMode-39-user-39), set to `user` (front camera) by default.
 
 ## Server
 
-- You can now specify a config path when starting the standalone Uppy Server like so `uppy-server --config /path/to/uppyconf.json`. The config file is expected to be a JSON file with the same schema as the [Uppy Server options](https://uppy.io/docs/server/#Options).
+- You can now specify a config path when starting the standalone Uppy Server like so `uppy-server --config /path/to/uppyconf.json`. The config file is expected to be a JSON file with the same schema as the [Uppy Server options](/uppy/docs/server/#Options).
 - A periodic cleanup job has been added to Uppy Server, to delete stale upload files from the specified `filePath`. Even though we'd rarely expect uploaded files to go undeleted immediately, there could be cases where an error occurs during an upload, and so Uppy Server leaves the file undeleted to give room for upload retries. With the cleanup job in place, we can ensure that this file would eventually be deleted after the file upload is done.
 - Responses from Multipart uploads are now relayed to Uppy Client as they are received from the target server. With this in place, you can now handle responses from local and remote XHRUpload in nearly the same way.
 

+ 4 - 4
website/src/_posts/2018-04-0.24.md

@@ -2,7 +2,7 @@
 title: "Uppy 0.24: Refreshed Dashboard, StatusBar and Provider UI, revamped XHR Response Handling"
 date: 2018-04-17
 author: arturi
-image: "https://uppy.io/images/blog/0.24/uppy-screenshot.jpg"
+image: "/uppy/images/blog/0.24/uppy-screenshot.jpg"
 published: true
 ---
 
@@ -30,7 +30,7 @@ Import from URL (Link):
 
 <img class="border" src="/images/blog/0.24/import-from-url.jpg">
 
-And more, check out the [Dashboard example page](https://uppy.io/examples/dashboard/).
+And more, check out the [Dashboard example page](/uppy/examples/dashboard/).
 
 ## A Cleaner StatusBar
 
@@ -126,7 +126,7 @@ Other non-security improvements are:
 
 ## Other Fixes & Improvements
 
-- ⚠️ **breaking** `addFile()`, `onBeforeFileAdded()` and `onBeforeUpload()` are now synchronous and have to return nothing or file objects to proceed, or false to abort; please check out the update docs for details: [onBeforeFileAdded()](https://uppy.io/docs/uppy/#onBeforeFileAdded) and [onBeforeUpload()](https://uppy.io/docs/uppy/#onBeforeUpload).
+- ⚠️ **breaking** `addFile()`, `onBeforeFileAdded()` and `onBeforeUpload()` are now synchronous and have to return nothing or file objects to proceed, or false to abort; please check out the update docs for details: [onBeforeFileAdded()](/uppy/docs/uppy/#onBeforeFileAdded) and [onBeforeUpload()](/uppy/docs/uppy/#onBeforeUpload).
 - ⚠️ **breaking** Most events now emit the whole `file` object instead of a `fileId`. So you can access `file.name` right away, for example, so you no longer have to fish for the file using its id.
 - ⚠️ **breaking** We’ve added `postcss-safe-important` to our style build step, so now 90% of rules got `!important` declaration added to them. This is done to prevent page styles (especially global ones like from Bootstrap) from leaking into the Uppy widget. There are other solutions we are looking into, like iFrames and WebComponents, this is an experiment. Keep in mind that to override Uppy styles, you now have to also use `!important`.
 - dashboard: ⚠️ **breaking** `maxWidth`, `maxHeight` options have been converted to `width` and `height`, because this makes more sense, `maxWidth` and `maxHeight` are actually `100%`.
@@ -137,7 +137,7 @@ Other non-security improvements are:
 - Provider views now have `showFilter` and `showBreadcrumbs` options, those are `false` for the Instagram plugin, for example.
 - Uppy Server to Client communication has been refactored into `Provider` and `Request` modules. `Request` can be used when a simple request needs to be made to Uppy Server, like in the URL plugin. `Provider` is used for more complex implementations shared between Google Drive and Instagram, for example.
 
-Finally, we’ve added a Transloadit example to the website, [check it out](https://uppy.io/examples/transloadit/).
+Finally, we’ve added a Transloadit example to the website, [check it out](/uppy/examples/transloadit/).
 
 Have fun,
 

+ 1 - 1
website/src/_posts/2018-06-0.25.md

@@ -2,7 +2,7 @@
 title: "Uppy 0.25: Drag & Drop Links Urls & Images, Improved File Selecting in Providers, Interactive Components In i18n"
 date: 2018-06-07
 author: arturi
-image: "https://uppy.io/images/blog/0.25/new-select-provider.jpg"
+image: "/uppy/images/blog/0.25/new-select-provider.jpg"
 published: true
 ---
 

+ 1 - 1
website/src/_posts/2018-07-0.26.md

@@ -2,7 +2,7 @@
 title: "Uppy 0.26: Lerna"
 date: 2018-07-12
 author: renee
-image: "https://uppy.io/images/blog/0.26/uppy-multiple-packages.png"
+image: "/uppy/images/blog/0.26/uppy-multiple-packages.png"
 published: true
 ---
 

+ 3 - 3
website/src/_posts/2018-08-0.27.md

@@ -2,7 +2,7 @@
 title: "Uppy 0.27: First Swing at React Native Support"
 date: 2018-08-23
 author: ife
-image: "https://uppy.io/images/blog/0.27/uppy-add-initial.jpg"
+image: "/uppy/images/blog/0.27/uppy-add-initial.jpg"
 ---
 
 <img src="/images/blog/0.27/uppy-add-initial.jpg">
@@ -43,7 +43,7 @@ The mobile version is now much more refined as well:
 
 <img src="/images/blog/0.27/uppy-mobile.jpg">
 
-As always, feel free to [try Uppy live on the Dashboard example](https://uppy.io/examples/dashboard/).
+As always, feel free to [try Uppy live on the Dashboard example](/uppy/examples/dashboard/).
 
 ## `autoProceed: false` by default
 
@@ -70,7 +70,7 @@ Built-in React Native support has been a 1.0 goal from the start. We have had ma
 
 ## Package sizes
 
-We now have a cool table showing mingzipped bundle sizes for each individual Uppy package, [check it out](https://uppy.io/docs/stats/#bundle-sizes):
+We now have a cool table showing mingzipped bundle sizes for each individual Uppy package, [check it out](/uppy/docs/stats/#bundle-sizes):
 
 <img width="400" src="/images/blog/0.27/uppy-sizes.png">
 

+ 7 - 7
website/src/_posts/2018-10-0.28.md

@@ -2,7 +2,7 @@
 title: "Uppy 0.28: A look behind the scenes"
 date: 2018-11-05
 author: renee
-image: "https://uppy.io/images/blog/0.28/dashboard-uploading.jpg"
+image: "/uppy/images/blog/0.28/dashboard-uploading.jpg"
 published: true
 ---
 
@@ -18,15 +18,15 @@ Uppy has been flexible about uploading lots of things from the start. You can ad
 
 An upload in Uppy terminology can be more than one file. Users can add a bunch of files and when they press "Upload", all those files are bunched up into an upload. They can then add more files and press the "Upload" button again: the _new_ files are bunched into a second upload.
 
-The new [`allowMultipleUploads`](https://uppy.io/docs/uppy/#allowMultipleUploads-true) option in Uppy Core can be set to `false` to only allow a single one of those uploads. Once an upload is started, the Dashboard and Status Bar no longer show "add files" and "upload" buttons. You can listen for a 'complete' event and then safely continue your app's form flow.
+The new [`allowMultipleUploads`](/uppy/docs/uppy/#allowMultipleUploads-true) option in Uppy Core can be set to `false` to only allow a single one of those uploads. Once an upload is started, the Dashboard and Status Bar no longer show "add files" and "upload" buttons. You can listen for a 'complete' event and then safely continue your app's form flow.
 
-The Dashboard also has a new option: [`closeAfterFinish`](https://uppy.io/docs/dashboard/#closeAfterFinish-false). When `true`, the modal Dashboard will automatically hide once an upload has completed. You should only use this option in conjunction with `allowMultipleUploads`, otherwise it might close the Dashboard when the user isn't done yet! It can only be used with the modal Dashboard, when [`inline`](https://uppy.io/docs/dashboard/#inline-false) is set to `false`. "Closing" an inline Dashboard makes no sense :smile: You will see a warning in the console in both cases, so you don't have to remember all that.
+The Dashboard also has a new option: [`closeAfterFinish`](/uppy/docs/dashboard/#closeAfterFinish-false). When `true`, the modal Dashboard will automatically hide once an upload has completed. You should only use this option in conjunction with `allowMultipleUploads`, otherwise it might close the Dashboard when the user isn't done yet! It can only be used with the modal Dashboard, when [`inline`](/uppy/docs/dashboard/#inline-false) is set to `false`. "Closing" an inline Dashboard makes no sense :smile: You will see a warning in the console in both cases, so you don't have to remember all that.
 
 Speaking of the Dashboard, it now also shows more statuses in the title bar: “Upload complete”, “Upload paused”, “Processing 5 files” and “Uploading 5 files”.
 
 ## Status Bar improvements
 
-- ⚠️ **breaking** We’ve added separate options for hiding pause/resume and cancel buttons. So now there are several options for buttons: `hideUploadButton`, `hideRetryButton`, `hidePauseResumeButton` and `hideCancelButton`. These options can be passed from the Dashboard, if you are not using Status Bar separately (most common case). See the docs for more info: <https://uppy.io/docs/status-bar/>.
+- ⚠️ **breaking** We’ve added separate options for hiding pause/resume and cancel buttons. So now there are several options for buttons: `hideUploadButton`, `hideRetryButton`, `hidePauseResumeButton` and `hideCancelButton`. These options can be passed from the Dashboard, if you are not using Status Bar separately (most common case). See the docs for more info: </uppy/docs/status-bar/>.
 - The Status Bar now features a spinner animation when upload is in progress.
 - Encoding (with the Transloadit plugin, for example) and uploading progress now get different colors, so it’s easier to tell what’s happening, visually.
 
@@ -62,7 +62,7 @@ After Uppy 0.28.0, this functionality is technically possible, but we still need
 
 ## Hosted Companion with Transloadit
 
-When using remote providers such as Google Drive and Dropbox, so that your users can pick files from these sources, you can host [Companion](https://uppy.io/docs/companion/) yourself, or use the one provided by Transloadit. And to simplify the latter, you can now use `Transloadit.COMPANION` and `Transloadit.COMPANION_PATTERN` constants in remote provider options:
+When using remote providers such as Google Drive and Dropbox, so that your users can pick files from these sources, you can host [Companion](/uppy/docs/companion/) yourself, or use the one provided by Transloadit. And to simplify the latter, you can now use `Transloadit.COMPANION` and `Transloadit.COMPANION_PATTERN` constants in remote provider options:
 
 ```js
 const Dropbox = require('@uppy/dropbox')
@@ -74,11 +74,11 @@ uppy.use(Dropbox, {
 })
 ```
 
-Please see [Transloadit plugin documentation](https://uppy.io/docs/transloadit/) for more details.
+Please see [Transloadit plugin documentation](/uppy/docs/transloadit/) for more details.
 
 ## Transloadit Preset
 
-Lately, we've been working on a wrapper package around Uppy and the [Transloadit plugin](https://uppy.io/docs/transloadit/) that will make common Transloadit-based workflows much simpler to implement. It's not ready just yet, but it should land in the next month!
+Lately, we've been working on a wrapper package around Uppy and the [Transloadit plugin](/uppy/docs/transloadit/) that will make common Transloadit-based workflows much simpler to implement. It's not ready just yet, but it should land in the next month!
 
 This "preset" will provide three or so simple methods:
 

+ 2 - 2
website/src/_posts/2018-12-0.29.md

@@ -2,7 +2,7 @@
 title: "Uppy 0.29: separate Core and Plugin styles, React Native in tus-js-client"
 date: 2018-12-11
 author: arturi
-image: "https://uppy.io/images/blog/0.29/uppy-core-plugins-separate-styles.jpg"
+image: "/uppy/images/blog/0.29/uppy-core-plugins-separate-styles.jpg"
 published: true
 ---
 
@@ -37,7 +37,7 @@ import '@uppy/webcam/dist/style.css'
 
 Thus, the Core styles are only included once. `@uppy/core` styles must be included before Plugin styles.
 
-Please see the [documentation](https://uppy.io/docs/plugins/) for the Plugin you are using to find out whether it requires a CSS file to work. Generally speaking, UI plugins, such as the Dashboard, Webcam and Status Bar, need a CSS file, while utility plugins, such as Tus or XHR Upload, don’t.
+Please see the [documentation](/uppy/docs/plugins/) for the Plugin you are using to find out whether it requires a CSS file to work. Generally speaking, UI plugins, such as the Dashboard, Webcam and Status Bar, need a CSS file, while utility plugins, such as Tus or XHR Upload, don’t.
 
 ⚠️ Important things to remember:
 

+ 7 - 7
website/src/_posts/2019-03-0.30.md

@@ -2,7 +2,7 @@
 title: "Uppy 0.30: Introducing Robodog"
 date: 2019-03-06
 author: renee
-image: "https://uppy.io/images/blog/0.30/robodog-assemble.jpg"
+image: "/uppy/images/blog/0.30/robodog-assemble.jpg"
 published: true
 ---
 
@@ -17,11 +17,11 @@ In `0.30`, we are introducing a new friend for Uppy — the Robodog.
 
 Uppy is developed by [Transloadit](https://transloadit.com). Transloadit is the Swiss Army Knife for your files: importing, resizing, cropping and watermarking images, making GIFs, transcoding videos, extracting thumbnails, generating audio waveforms, and so much more — all in a single service. Uppy has a similarly large feature set in dozens of plugins, but because of that it can be complicated to wire everything up for the best experience.
 
-[Robodog](https://uppy.io/docs/robodog/) is a new Uppy-based library that has been trained to work with Transloadit. It includes three components:
+[Robodog](/uppy/docs/robodog/) is a new Uppy-based library that has been trained to work with Transloadit. It includes three components:
 
-1. [File picker](https://uppy.io/docs/robodog/picker/), using the Dashboard plugin you know and love for the modal UI, with support for imports from third-party services.
-2. [Form](https://uppy.io/docs/robodog/form/): integration with your existing HTML forms. Files will be uploaded to Transloadit, and the form will submit JSON information about the files and encoding results.
-3. [Upload](https://uppy.io/docs/robodog/upload/): one-line programmatic uploads — call `transloadit.upload(files, opts)` and get an array of results back.
+1. [File picker](/uppy/docs/robodog/picker/), using the Dashboard plugin you know and love for the modal UI, with support for imports from third-party services.
+2. [Form](/uppy/docs/robodog/form/): integration with your existing HTML forms. Files will be uploaded to Transloadit, and the form will submit JSON information about the files and encoding results.
+3. [Upload](/uppy/docs/robodog/upload/): one-line programmatic uploads — call `transloadit.upload(files, opts)` and get an array of results back.
 
 <center><img src="https://media.giphy.com/media/Eq7T3GwDAlggE/giphy.gif"></center>
 
@@ -64,7 +64,7 @@ We’ve improved how the StatusBar behaves when no progress reporting is availab
 
 ⚠️ Breaking
 
-We’ve changed [`upload-success`](https://uppy.io/docs/uppy/#upload-success) and [`upload-error`](https://uppy.io/docs/uppy/#upload-error) signatures.
+We’ve changed [`upload-success`](/uppy/docs/uppy/#upload-success) and [`upload-error`](/uppy/docs/uppy/#upload-error) signatures.
 
 ```js
 uppy.on('upload-success', (file, responseObject) => {
@@ -87,7 +87,7 @@ uppy.on('upload-error', (file, responseObject) => {
 })
 ```
 
-[See the docs](https://uppy.io/docs/uppy/) and [PR #1138](https://github.com/transloadit/uppy/pull/1138) for more details.
+[See the docs](/uppy/docs/uppy/) and [PR #1138](https://github.com/transloadit/uppy/pull/1138) for more details.
 
 ## Changelog
 

+ 2 - 2
website/src/_posts/2019-03-liftoff-01.md

@@ -2,7 +2,7 @@
 title: "Day 1"
 author: [kvz, aj]
 date: 2019-03-26
-image: "https://uppy.io/images/blog/30daystoliftoff/day1.jpg"
+image: "/uppy/images/blog/30daystoliftoff/day1.jpg"
 series: 30 Days to Liftoff
 seriesSuffix: 'of 30'
 alias: '/blog/2019/03/26-30daystoliftoff-day1/'
@@ -38,4 +38,4 @@ We can use your help! As we've said, we're looking to spread the word so any ret
 
 See you tomorrow for the first progress update on [Day 2](/blog/2019/03/liftoff-02/) of our 30 Days to Liftoff!
 
-PS If you don't want to miss an update, consider [good ol' RSS](https://uppy.io/atom.xml) :)
+PS If you don't want to miss an update, consider [good ol' RSS](/uppy/atom.xml) :)

+ 2 - 2
website/src/_posts/2019-03-liftoff-02.md

@@ -2,7 +2,7 @@
 title: "Day 2"
 date: 2019-03-27
 author: samuel
-image: "https://uppy.io/images/blog/30daystoliftoff/day2.jpg"
+image: "/uppy/images/blog/30daystoliftoff/day2.jpg"
 series: 30 Days to Liftoff
 seriesSuffix: 'of 30'
 alias: /blog/2019/03/27-30daystoliftoff-day2/
@@ -34,4 +34,4 @@ And tomorrow, we'll look at the *To Do*s in more detail, so we can get a clearer
 
 That's all the updates I have for you today. See you tomorrow for [Day 3](/blog/2019/03/liftoff-03/) of our 30 Days to Liftoff!
 
-PS If you don't want to miss an update, consider [good ol' RSS](https://uppy.io/atom.xml) :)
+PS If you don't want to miss an update, consider [good ol' RSS](/uppy/atom.xml) :)

+ 2 - 2
website/src/_posts/2019-03-liftoff-03.md

@@ -2,7 +2,7 @@
 title: "Day 3"
 date: 2019-03-28
 author: samuel
-image: "https://uppy.io/images/blog/30daystoliftoff/day3.jpg"
+image: "/uppy/images/blog/30daystoliftoff/day3.jpg"
 series: 30 Days to Liftoff
 seriesSuffix: 'of 30'
 ---
@@ -48,4 +48,4 @@ MVP for React Native support should:
 
 That's all the updates I have for you today. See you tomorrow for [Day 4](/blog/2019/03/liftoff-04/) of our 30 Days to Liftoff!
 
-P.S. If you don't want to miss an update, consider [good ol' RSS](https://uppy.io/atom.xml) :)
+P.S. If you don't want to miss an update, consider [good ol' RSS](/uppy/atom.xml) :)

+ 2 - 2
website/src/_posts/2019-03-liftoff-04.md

@@ -2,7 +2,7 @@
 title: "Day 4"
 date: 2019-03-29
 author: tyler
-image: "https://uppy.io/images/blog/30daystoliftoff/day4.jpg"
+image: "/uppy/images/blog/30daystoliftoff/day4.jpg"
 series: 30 Days to Liftoff
 seriesSuffix: 'of 30'
 alias: /blog/2019/03/27-30daystoliftoff-day4/
@@ -29,4 +29,4 @@ One of the more exciting updates of this day was also contributed by Alex, with
 
 [Ife](https://github.com/ifedapoolarewaju) has been focused on [fixing hanging Instagram files uploaded through Companion](https://github.com/transloadit/uppy/pull/1274/files) and our content team's own [Samuel](https://github.com/samuelayo) added examples for [handling uploads in Node.js, and in Python (using the Flask microframework)](https://github.com/transloadit/uppy/pull/1389). 
 
-And that's Day 4 complete! Catch up with us [tomorrow](/blog/2019/03/liftoff-05/), as we take this thing into our first weekend of the 30 Days to Liftoff! And of course, if you want to keep yourself constantly updated, feel free to subscribe to our [RSS feed](https://uppy.io/atom.xml) :smile:
+And that's Day 4 complete! Catch up with us [tomorrow](/blog/2019/03/liftoff-05/), as we take this thing into our first weekend of the 30 Days to Liftoff! And of course, if you want to keep yourself constantly updated, feel free to subscribe to our [RSS feed](/uppy/atom.xml) :smile:

+ 1 - 1
website/src/_posts/2019-03-liftoff-05.md

@@ -2,7 +2,7 @@
 title: "Day 5"
 date: 2019-03-30
 author: kvz
-image: "https://uppy.io/images/blog/30daystoliftoff/15.jpg"
+image: "/uppy/images/blog/30daystoliftoff/15.jpg"
 series: 30 Days to Liftoff
 seriesSuffix: 'of 30'
 ---

+ 1 - 1
website/src/_posts/2019-03-liftoff-06.md

@@ -2,7 +2,7 @@
 title: "Day 6"
 date: 2019-03-31
 author: aj
-image: "https://uppy.io/images/blog/30daystoliftoff/day3.jpg"
+image: "/uppy/images/blog/30daystoliftoff/day3.jpg"
 series: 30 Days to Liftoff
 seriesSuffix: 'of 30'
 ---

+ 4 - 4
website/src/_posts/2019-04-1.0.md

@@ -2,7 +2,7 @@
 title: "Uppy 1.0: Your best friend in file uploading"
 date: 2019-04-25
 author: arturi
-image: "https://uppy.io/images/blog/1.0/uppy-dashboard-1.png"
+image: "/uppy/images/blog/1.0/uppy-dashboard-1.png"
 published: true
 ---
 
@@ -58,13 +58,13 @@ In the summer of 2017, the Transloadit team had another meeting. This time in Be
 
 <img src="/images/blog/1.0/uppy-team-kong.jpg">
 
-Read more [about Golden Retriever and that team meetup](https://uppy.io/blog/2017/07/golden-retriever/). Golden Retriever got good press on Reddit and Hacker News because it goes above and beyond to make things absurdly reliable. In the demo video, you see us `kill -9` our browser, restart, and the upload just picks right up where it left off. A first!
+Read more [about Golden Retriever and that team meetup](/uppy/blog/2017/07/golden-retriever/). Golden Retriever got good press on Reddit and Hacker News because it goes above and beyond to make things absurdly reliable. In the demo video, you see us `kill -9` our browser, restart, and the upload just picks right up where it left off. A first!
 
 ## Challenge accepted: only 30 days to liftoff
 
 We had been postponing the 1.0 release for quite some time. There’s always just one more feature you’d like to add or another bug you want to fix, before calling something ready for a 1.0 release. Truth be told, Uppy has been [used in production](https://github.com/transloadit/uppy#used-by) for a while already, and even though we iterate and change things frequently, the API had mostly stabilized.
 
-So, about a month ago, we decided to pull the trigger and [announced an Uppy Month](https://uppy.io/blog/2019/03/liftoff-01/) within Transloadit. This meant that all team members, including those not working primarily on Uppy — the Tus core team, our SDK teams, as well as our infra and API engineers, designers, content writers, and the founders themselves — all chipped in and did their part to ensure liftoff in thirty days. We also asked [Evgenia](http://github.com/lakesare) to join us for the month to lend a hand with frontend work. Every week, we had a call where we looked at the Uppy 1.0 project board and talked about our progress:
+So, about a month ago, we decided to pull the trigger and [announced an Uppy Month](/uppy/blog/2019/03/liftoff-01/) within Transloadit. This meant that all team members, including those not working primarily on Uppy — the Tus core team, our SDK teams, as well as our infra and API engineers, designers, content writers, and the founders themselves — all chipped in and did their part to ensure liftoff in thirty days. We also asked [Evgenia](http://github.com/lakesare) to join us for the month to lend a hand with frontend work. Every week, we had a call where we looked at the Uppy 1.0 project board and talked about our progress:
 
 <img src="/images/blog/30daystoliftoff/15-dashboard.png">
 
@@ -82,7 +82,7 @@ Here are some highlights of what we’ve managed to deliver during one month of
 - [Upload progress is reported more accurately with XHR-upload and Companion](https://github.com/transloadit/uppy/pull/1454).
 - [Upload progress is improved in general](https://github.com/transloadit/uppy/pull/1376).
 - [npm scripts have been refactored](https://github.com/transloadit/uppy/pull/1392) — yes, that’s important!
-- And craziest of all: our content team has been on a roll and [released a post *every day*](https://uppy.io/blog/2019/03/liftoff-01/) for the past thirty days to keep you updated on our day-to-day progress.
+- And craziest of all: our content team has been on a roll and [released a post *every day*](/uppy/blog/2019/03/liftoff-01/) for the past thirty days to keep you updated on our day-to-day progress.
 
 ## Which features made it into 1.0? And which didn’t (yet)?
 

+ 2 - 2
website/src/_posts/2019-04-liftoff-07.md

@@ -2,7 +2,7 @@
 title: "Day 7"
 date: 2019-04-01
 author: kvz
-image: "https://uppy.io/images/blog/30daystoliftoff/day07.png"
+image: "/uppy/images/blog/30daystoliftoff/day07.png"
 series: 30 Days to Liftoff
 seriesSuffix: 'of 30'
 ---
@@ -39,4 +39,4 @@ After:<br />
 
 <center><img width="400" src="/images/blog/30daystoliftoff/2019-04-liftoff-07c.png"></center>
 
-And that's all the news we have for you today! Catch up with us [tomorrow](/blog/2019/04/liftoff-08/) for more progress on our 30 Days to Liftoff! And of course, if you want to make sure you're not missing out on anything, feel free to subscribe to our [RSS feed](https://uppy.io/atom.xml) :rocket:
+And that's all the news we have for you today! Catch up with us [tomorrow](/blog/2019/04/liftoff-08/) for more progress on our 30 Days to Liftoff! And of course, if you want to make sure you're not missing out on anything, feel free to subscribe to our [RSS feed](/uppy/atom.xml) :rocket:

+ 2 - 2
website/src/_posts/2019-04-liftoff-08.md

@@ -2,7 +2,7 @@
 title: "Day 8"
 date: 2019-04-02
 author: samuel
-image: "https://uppy.io/images/blog/30daystoliftoff/day08.jpg"
+image: "/uppy/images/blog/30daystoliftoff/day08.jpg"
 series: 30 Days to Liftoff
 seriesSuffix: 'of 30'
 ---
@@ -52,4 +52,4 @@ After:<br />
 
 That's all the updates I have for you today. See you tomorrow for [Day 9](/blog/2019/04/liftoff-09/) of our 30 Days to Liftoff!
 
-P.S. If you don't want to miss an update, you might like to subscribe to our [RSS feed](https://uppy.io/atom.xml) :)
+P.S. If you don't want to miss an update, you might like to subscribe to our [RSS feed](/uppy/atom.xml) :)

+ 2 - 2
website/src/_posts/2019-04-liftoff-09.md

@@ -2,7 +2,7 @@
 title: "Day 9"
 date: 2019-04-03
 author: tyler
-image: "https://uppy.io/images/blog/30daystoliftoff/day09.jpg"
+image: "/uppy/images/blog/30daystoliftoff/day09.jpg"
 series: 30 Days to Liftoff
 seriesSuffix: 'of 30'
 ---
@@ -48,4 +48,4 @@ Meanwhile, on the progress side of things:
 
 Come Thursday, they'll be having another call to discuss their completed work so far and map out the remaining RN tasks from there. I'm looking forward to sharing more details on that call soon!
 
-The first third of our thirty-day challenge ends tomorrow with [Day 10](/blog/2019/04/liftoff-10/). Look forward to more updates (and pictures of dogs in space) tomorrow and, as usual, don't forget about our [RSS feed](https://uppy.io/atom.xml) :dog:
+The first third of our thirty-day challenge ends tomorrow with [Day 10](/blog/2019/04/liftoff-10/). Look forward to more updates (and pictures of dogs in space) tomorrow and, as usual, don't forget about our [RSS feed](/uppy/atom.xml) :dog:

+ 2 - 2
website/src/_posts/2019-04-liftoff-10.md

@@ -2,7 +2,7 @@
 title: "Day 10"
 date: 2019-04-04
 author: tyler
-image: "https://uppy.io/images/blog/30daystoliftoff/day10.jpg"
+image: "/uppy/images/blog/30daystoliftoff/day10.jpg"
 series: 30 Days to Liftoff
 seriesSuffix: 'of 30'
 ---
@@ -37,4 +37,4 @@ While not strictly related to our Uppy 1.0 release, we have managed to reach ove
 
 <center><img src="/images/blog/30daystoliftoff/2019-04-04.png"><br /></center>
  
-On that note, Day 10 of our thirty-day challenge comes to an end. Friday looks like it will be another exciting day, so don't hesitate to keep checking up on us via [Twitter](https://twitter.com/uppy_io) or [RSS](https://uppy.io/atom.xml)!
+On that note, Day 10 of our thirty-day challenge comes to an end. Friday looks like it will be another exciting day, so don't hesitate to keep checking up on us via [Twitter](https://twitter.com/uppy_io) or [RSS](/uppy/atom.xml)!

+ 2 - 2
website/src/_posts/2019-04-liftoff-11.md

@@ -2,7 +2,7 @@
 title: Day 11
 date: 2019-04-05
 author: samuel
-image: https://uppy.io/images/blog/30daystoliftoff/day11.jpg
+image: /uppy/images/blog/30daystoliftoff/day11.jpg
 series: 30 Days to Liftoff
 seriesSuffix: of 30
 ---
@@ -44,5 +44,5 @@ And another week bites the dust! With the weekend right around the corner, we're
 - [Kevin](https://github.com/kvz) finished up his work on the [new documentation menu structure](https://github.com/transloadit/uppy/pull/1405) that we talked about [yesterday](/blog/2019/04/liftoff-10/). 
 
 
-That’s it. All the updates I have for you today. Have a great [weekend](/blog/2019/04/liftoff-12/) everyone! And if you don’t want to miss a post, keep tabs on our [Twitter](https://twitter.com/uppy_io) or [RSS](https://uppy.io/atom.xml) feed.
+That’s it. All the updates I have for you today. Have a great [weekend](/blog/2019/04/liftoff-12/) everyone! And if you don’t want to miss a post, keep tabs on our [Twitter](https://twitter.com/uppy_io) or [RSS](/uppy/atom.xml) feed.
 

+ 1 - 1
website/src/_posts/2019-04-liftoff-12.md

@@ -2,7 +2,7 @@
 title: "Day 12"
 date: 2019-04-06
 author: aj
-image: "https://uppy.io/images/blog/30daystoliftoff/discodog.jpg"
+image: "/uppy/images/blog/30daystoliftoff/discodog.jpg"
 series: 30 Days to Liftoff
 seriesSuffix: 'of 30'
 ---

+ 1 - 1
website/src/_posts/2019-04-liftoff-13.md

@@ -2,7 +2,7 @@
 title: "Day 13"
 date: 2019-04-07
 author: aj
-image: "https://uppy.io/images/blog/30daystoliftoff/discodog.jpg"
+image: "/uppy/images/blog/30daystoliftoff/discodog.jpg"
 series: 30 Days to Liftoff
 seriesSuffix: 'of 30'
 ---

+ 2 - 2
website/src/_posts/2019-04-liftoff-14.md

@@ -2,7 +2,7 @@
 title: "Day 14"
 date: 2019-04-08
 author: kvz
-image: "https://uppy.io/images/blog/30daystoliftoff/day14.jpg"
+image: "/uppy/images/blog/30daystoliftoff/day14.jpg"
 series: 30 Days to Liftoff
 seriesSuffix: 'of 30'
 ---
@@ -39,4 +39,4 @@ While there are still things to be implemented, such as picking files from Insta
 
 - The whole team will again do a call this afternoon to reassess our roadmap and see where all we stand. Some new tasks were added on [Friday](/blog/2019/04/liftoff-11/), so we'll also have to see about getting those into gear.
 
-That's it for Day 14. Tomorrow, it will be Samuel's turn again to update you on our board and progress. Subscribe via [Twitter](https://twitter.com/uppy_io) or [RSS](https://uppy.io/atom.xml) and don't miss out on [Day 15](/blog/2019/04/liftoff-15/)! :dog:
+That's it for Day 14. Tomorrow, it will be Samuel's turn again to update you on our board and progress. Subscribe via [Twitter](https://twitter.com/uppy_io) or [RSS](/uppy/atom.xml) and don't miss out on [Day 15](/blog/2019/04/liftoff-15/)! :dog:

+ 2 - 2
website/src/_posts/2019-04-liftoff-15.md

@@ -2,7 +2,7 @@
 title: "Day 15"
 date: 2019-04-09
 author: samuel
-image: "https://uppy.io/images/blog/30daystoliftoff/rockdog.jpg"
+image: "/uppy/images/blog/30daystoliftoff/rockdog.jpg"
 series: 30 Days to Liftoff
 seriesSuffix: 'of 30'
 ---
@@ -42,4 +42,4 @@ Here is a view of what our Asana board looks like this week:
 - Alex is also still actively working on making design improvements for Uppy. You can follow his progress [here](https://github.com/nqst/uppy/commits/design-facelift).
 
 
-And that's Day 15! Tyler will be here again [tomorrow](/blog/2019/04/liftoff-16/) to give you more updates on our launch preparations. Subscribe via [Twitter](https://twitter.com/uppy_io) or [RSS](https://uppy.io/atom.xml), so you'll never miss out!
+And that's Day 15! Tyler will be here again [tomorrow](/blog/2019/04/liftoff-16/) to give you more updates on our launch preparations. Subscribe via [Twitter](https://twitter.com/uppy_io) or [RSS](/uppy/atom.xml), so you'll never miss out!

+ 2 - 2
website/src/_posts/2019-04-liftoff-16.md

@@ -2,7 +2,7 @@
 title: "Day 16"
 date: 2019-04-10
 author: tyler
-image: "https://uppy.io/images/blog/30daystoliftoff/day16.gif"
+image: "/uppy/images/blog/30daystoliftoff/day16.gif"
 series: 30 Days to Liftoff
 seriesSuffix: 'of 30'
 ---
@@ -36,4 +36,4 @@ Big shout out to both!
 
 In addition to getting Uppy 1.0 out of the dog house, I mentioned that the team is already talking about features and fixes to tackle after 1.0. If you look at our [CHANGELOG](https://github.com/transloadit/uppy/blob/master/CHANGELOG.md), you'll notice some 1.1 todos in there. There's always room for improvement, so now you have something to look forward to after Uppy 1.0 hits the web! :wink:
 
-That's all from me today. Stay in the loop with us on [Twitter](https://twitter.com/uppy_io) or [RSS](https://uppy.io/atom.xml) for more Uppy updates. [Day 17](/blog/2019/04/liftoff-17/)  is coming up next!
+That's all from me today. Stay in the loop with us on [Twitter](https://twitter.com/uppy_io) or [RSS](/uppy/atom.xml) for more Uppy updates. [Day 17](/blog/2019/04/liftoff-17/)  is coming up next!

+ 2 - 2
website/src/_posts/2019-04-liftoff-17.md

@@ -2,7 +2,7 @@
 title: "Day 17"
 date: 2019-04-11
 author: samuel
-image: "https://uppy.io/images/blog/30daystoliftoff/day17.jpg"
+image: "/uppy/images/blog/30daystoliftoff/day17.jpg"
 series: 30 Days to Liftoff
 seriesSuffix: 'of 30'
 ---
@@ -40,4 +40,4 @@ After:<br />
 - [Ife](https://github.com/ifedapoolarewaju) is updating this [PR](https://github.com/tus/tus-js-client/pull/73), which deals with supporting resumability for Node.js environments.
 
 
-That's all from us today. As I mentioned, we are now focusing on the big tasks and as a result, our daily list of updates might sometimes be a little shorter than usual. Remember to keep tabs on our [Twitter](https://twitter.com/uppy_io) or [RSS](https://uppy.io/atom.xml) for more Uppy updates. [Day 18](/blog/2019/04/liftoff-18/) is coming up next!
+That's all from us today. As I mentioned, we are now focusing on the big tasks and as a result, our daily list of updates might sometimes be a little shorter than usual. Remember to keep tabs on our [Twitter](https://twitter.com/uppy_io) or [RSS](/uppy/atom.xml) for more Uppy updates. [Day 18](/blog/2019/04/liftoff-18/) is coming up next!

+ 2 - 2
website/src/_posts/2019-04-liftoff-18.md

@@ -2,7 +2,7 @@
 title: "Day 18"
 date: 2019-04-12
 author: kvz
-image: "https://uppy.io/images/blog/30daystoliftoff/day18.jpg"
+image: "/uppy/images/blog/30daystoliftoff/day18.jpg"
 series: 30 Days to Liftoff
 seriesSuffix: 'of 30'
 ---
@@ -25,4 +25,4 @@ Hi! You're reading our '30 Days to Liftoff' blog post challenge about the **laun
 
 - [Evgenia](https://github.com/lakesare) continues to charge at fixing Drag & Drop issues, and [Renée](https://github.com/goto-bus-stop) is working on making the Robodog Dashboard work inline (as well as a popup).
 
-Hope you'll have a great weekend and see you on [Monday](/blog/2019/04/liftoff-21/) for another real update on the 1.0 launch preparations! We'll of course also have a few more light-hearted posts in the meantime for you, so be sure to check those out as well :slightly_smiling_face: Keep tabs on [@uppy_io](https://twitter.com/uppy_io) or [RSS](https://uppy.io/atom.xml) for more Uppy updates!
+Hope you'll have a great weekend and see you on [Monday](/blog/2019/04/liftoff-21/) for another real update on the 1.0 launch preparations! We'll of course also have a few more light-hearted posts in the meantime for you, so be sure to check those out as well :slightly_smiling_face: Keep tabs on [@uppy_io](https://twitter.com/uppy_io) or [RSS](/uppy/atom.xml) for more Uppy updates!

+ 1 - 1
website/src/_posts/2019-04-liftoff-19.md

@@ -2,7 +2,7 @@
 title: "Day 19"
 date: 2019-04-13
 author: aj
-image: "https://uppy.io/images/blog/30daystoliftoff/dogdj.jpg"
+image: "/uppy/images/blog/30daystoliftoff/dogdj.jpg"
 series: 30 Days to Liftoff
 seriesSuffix: 'of 30'
 ---

+ 1 - 1
website/src/_posts/2019-04-liftoff-20.md

@@ -2,7 +2,7 @@
 title: "Day 20"
 date: 2019-04-14
 author: aj
-image: "https://uppy.io/images/blog/30daystoliftoff/coffeedog.jpg"
+image: "/uppy/images/blog/30daystoliftoff/coffeedog.jpg"
 series: 30 Days to Liftoff
 seriesSuffix: 'of 30'
 ---

+ 2 - 2
website/src/_posts/2019-04-liftoff-21.md

@@ -2,7 +2,7 @@
 title: "Day 21"
 date: 2019-04-15
 author: tyler
-image: "https://uppy.io/images/blog/30daystoliftoff/day21.jpg"
+image: "/uppy/images/blog/30daystoliftoff/day21.jpg"
 series: 30 Days to Liftoff
 seriesSuffix: 'of 30'
 ---
@@ -31,4 +31,4 @@ There are still a few unique, and possibly daunting, tasks left for the remainde
 
 - [Alex](https://github.com/nqst) [discovered an issue](https://github.com/transloadit/uppy/issues/1447) with the filter field when using Google Drive on the Dashboard.
 
-Our goal is in sight, so we're starting to get pretty excited! Keep us in your thoughts by giving us a follow on [Twitter](https://twitter.com/uppy_io) or subscribing to regular updates on [RSS](https://uppy.io/atom.xml). [Day 22](/blog/2019/04/liftoff-22/) is up next, so you can look forward to another lovely post from Kevin!
+Our goal is in sight, so we're starting to get pretty excited! Keep us in your thoughts by giving us a follow on [Twitter](https://twitter.com/uppy_io) or subscribing to regular updates on [RSS](/uppy/atom.xml). [Day 22](/blog/2019/04/liftoff-22/) is up next, so you can look forward to another lovely post from Kevin!

+ 2 - 2
website/src/_posts/2019-04-liftoff-22.md

@@ -2,7 +2,7 @@
 title: "Day 22"
 date: 2019-04-16
 author: kvz
-image: "https://uppy.io/images/blog/30daystoliftoff/day22.png"
+image: "/uppy/images/blog/30daystoliftoff/day22.png"
 series: 30 Days to Liftoff
 seriesSuffix: 'of 30'
 ---
@@ -38,4 +38,4 @@ Artur will also be reviewing the many PRs that have been submitted by both Trans
 - [Evgenia](https://github.com/lakesare) finished her work on [drag and drop improvements](https://github.com/transloadit/uppy/pull/1440) and will continue working on accessibility improvements.
 
 
-Stay current by following us on [Twitter](https://twitter.com/uppy_io) or subscribing to regular updates on [RSS](https://uppy.io/atom.xml). See you tomorrow for [Day 23](/blog/2019/04/liftoff-23/)!
+Stay current by following us on [Twitter](https://twitter.com/uppy_io) or subscribing to regular updates on [RSS](/uppy/atom.xml). See you tomorrow for [Day 23](/blog/2019/04/liftoff-23/)!

+ 2 - 2
website/src/_posts/2019-04-liftoff-23.md

@@ -2,7 +2,7 @@
 title: "Day 23"
 date: 2019-04-17
 author: samuel
-image: "https://uppy.io/images/blog/30daystoliftoff/day23.png"
+image: "/uppy/images/blog/30daystoliftoff/day23.png"
 series: 30 Days to Liftoff
 seriesSuffix: 'of 30'
 ---
@@ -47,4 +47,4 @@ While the new locale packs weren't finished, we had to reject updates to the old
 
 - [Evgenia](https://github.com/lakesare) continues her work on browser compatibility for dropping or pasting URLs.
 
-On that note, Day 23 of our thirty-day challenge comes to an end. Tomorrow looks like it will be another exciting day, so don't hesitate to keep checking up on us via [Twitter](https://twitter.com/uppy_io) or [RSS](https://uppy.io/atom.xml)!
+On that note, Day 23 of our thirty-day challenge comes to an end. Tomorrow looks like it will be another exciting day, so don't hesitate to keep checking up on us via [Twitter](https://twitter.com/uppy_io) or [RSS](/uppy/atom.xml)!

+ 2 - 2
website/src/_posts/2019-04-liftoff-24.md

@@ -3,7 +3,7 @@ title: "Day 24"
 date: 2019-04-18
 author: tyler
 published: true
-image: "https://uppy.io/images/blog/30daystoliftoff/day24-1.jpg"
+image: "/uppy/images/blog/30daystoliftoff/day24-1.jpg"
 series: 30 Days to Liftoff
 seriesSuffix: 'of 30'
 ---
@@ -32,4 +32,4 @@ Luckily, we're also very close to reaching all of our release goals. Let's take
 
 - Error reporting for the Transloadit plugin will be worked on by [Renée](https://github.com/goto-bus-stop). This will ensure users are notified of various issues while utilizing the API, such as connection issues.
 
-Thus ends Day 24. We're all taking an early break for Good Friday tomorrow and we hope you'll have a Good one as well! Check us out on [Twitter](https://twitter.com/uppy_io) and on [RSS](https://uppy.io/atom.xml) as we edge closer to **Uppy 1.0** :dog:
+Thus ends Day 24. We're all taking an early break for Good Friday tomorrow and we hope you'll have a Good one as well! Check us out on [Twitter](https://twitter.com/uppy_io) and on [RSS](/uppy/atom.xml) as we edge closer to **Uppy 1.0** :dog:

+ 1 - 1
website/src/_posts/2019-04-liftoff-25.md

@@ -2,7 +2,7 @@
 title: "Day 25"
 date: 2019-04-19
 author: aj
-image: "https://uppy.io/images/blog/30daystoliftoff/gooddog.jpg"
+image: "/uppy/images/blog/30daystoliftoff/gooddog.jpg"
 series: 30 Days to Liftoff
 seriesSuffix: 'of 30'
 ---

+ 1 - 1
website/src/_posts/2019-04-liftoff-26.md

@@ -2,7 +2,7 @@
 title: "Day 26"
 date: 2019-04-20
 author: aj
-image: "https://uppy.io/images/blog/30daystoliftoff/sleepingdog.jpg"
+image: "/uppy/images/blog/30daystoliftoff/sleepingdog.jpg"
 series: 30 Days to Liftoff
 seriesSuffix: 'of 30'
 ---

+ 1 - 1
website/src/_posts/2019-04-liftoff-27.md

@@ -2,7 +2,7 @@
 title: "Day 27"
 date: 2019-04-21
 author: aj
-image: "https://uppy.io/images/blog/30daystoliftoff/easterdog1.jpg"
+image: "/uppy/images/blog/30daystoliftoff/easterdog1.jpg"
 series: 30 Days to Liftoff
 seriesSuffix: 'of 30'
 ---

+ 2 - 2
website/src/_posts/2019-04-liftoff-28.md

@@ -2,7 +2,7 @@
 title: "Day 28"
 date: 2019-04-22
 author: aj
-image: "https://uppy.io/images/blog/30daystoliftoff/easterdog2.jpg"
+image: "/uppy/images/blog/30daystoliftoff/easterdog2.jpg"
 series: 30 Days to Liftoff
 seriesSuffix: 'of 30'
 ---
@@ -19,4 +19,4 @@ Here's an 80's-style montage of GIFs to give you an idea of what we're doing to
 <center><img width="400"  src="https://media.giphy.com/media/cLcxtL1z8t8oo/giphy.gif"><br/><br/></center>
 <center><img width="400"  src="https://media.giphy.com/media/ngzhAbaGP1ovS/giphy.gif"><br/><br/></center>
 
-See you back tomorrow on [Day 29](/blog/2019/04/liftoff-29/) of our 30 Days to Liftoff! We'll have a lot more to share as we prepare for Uppy's Big Day. Give us a follow on [Twitter](https://twitter.com/uppy_io) or on [RSS](https://uppy.io/atom.xml) to stay up to date with everything.
+See you back tomorrow on [Day 29](/blog/2019/04/liftoff-29/) of our 30 Days to Liftoff! We'll have a lot more to share as we prepare for Uppy's Big Day. Give us a follow on [Twitter](https://twitter.com/uppy_io) or on [RSS](/uppy/atom.xml) to stay up to date with everything.

+ 2 - 2
website/src/_posts/2019-04-liftoff-29.md

@@ -3,7 +3,7 @@ title: "Day 29"
 date: 2019-04-23
 author: tyler
 published: true
-image: "https://uppy.io/images/blog/30daystoliftoff/day-29.jpg"
+image: "/uppy/images/blog/30daystoliftoff/day-29.jpg"
 series: 30 Days to Liftoff
 seriesSuffix: 'of 30'
 ---
@@ -32,4 +32,4 @@ In terms of progress and completed features, things are looking good. We don't h
 
 - [Evgenia](https://github.com/lakesare) has continued her work on [accessibility issues with Uppy's provider views](https://github.com/transloadit/uppy/issues/created_by/nqst) and is planning on adding her improvements in the coming days.
 
-Don't forget that today is Day 29 of our '30 Days to Liftoff' challenge. With **Uppy 1.0** on its way and our blog post challenge coming to an end, we hope you won't miss these quick updates too much! If you can't stand to miss our grand finale [tomorrow](/blog/2019/04/liftoff-30/), make sure to follow us on [Twitter](https://twitter.com/uppy_io) and have a look at our [RSS feed](https://uppy.io/atom.xml).
+Don't forget that today is Day 29 of our '30 Days to Liftoff' challenge. With **Uppy 1.0** on its way and our blog post challenge coming to an end, we hope you won't miss these quick updates too much! If you can't stand to miss our grand finale [tomorrow](/blog/2019/04/liftoff-30/), make sure to follow us on [Twitter](https://twitter.com/uppy_io) and have a look at our [RSS feed](/uppy/atom.xml).

+ 3 - 3
website/src/_posts/2019-04-liftoff-30.md

@@ -2,7 +2,7 @@
 title: "Day 30"
 date: 2019-04-24
 author: kvz
-image: "https://uppy.io/images/blog/30daystoliftoff/day30.jpg"
+image: "/uppy/images/blog/30daystoliftoff/day30.jpg"
 series: 30 Days to Liftoff
 seriesSuffix: 'of 30'
 ---
@@ -13,7 +13,7 @@ And then there were none! Zero days left in our thirty-day blog post challenge.
 
 <!--more-->
 
-- [Tim](https://github.com/tim-kos) added additional information to the [migration guide](https://uppy.io/docs/robodog/form/#Migrating-From-the-jQuery-SDK), so Transloadit customers looking to move from the jQuery SDK to Uppy Robodog will have an easier time doing so. He also implemented support for a jQuery SDK parameter that didn't work in Robodog.form yet, and smashed out the [German Locale Pack](https://github.com/transloadit/uppy/pull/1475)!
+- [Tim](https://github.com/tim-kos) added additional information to the [migration guide](/uppy/docs/robodog/form/#Migrating-From-the-jQuery-SDK), so Transloadit customers looking to move from the jQuery SDK to Uppy Robodog will have an easier time doing so. He also implemented support for a jQuery SDK parameter that didn't work in Robodog.form yet, and smashed out the [German Locale Pack](https://github.com/transloadit/uppy/pull/1475)!
 
 - [Abdel](https://github.com/kiloreux) [translated](https://github.com/transloadit/uppy/pull/1481) Uppy to French. <img src="https://avatars1.githubusercontent.com/u/20061212?s=460&v=4" width="16" align="absmiddle">
 
@@ -33,7 +33,7 @@ A post a day can steal focus, but we learned a lot. It quickly became clear that
 
 Luckily, we had our content team to take ownership of the whole process and keep these distractions away from the Uppy core team as much as possible. In the end, we really enjoyed sharing our development process with the world and giving interested developers a better understanding of what we're trying to accomplish, and how.
 
-We hope to see you tomorrow again for our 1.0 launch, which will be accompanied by a meaty release post! Make sure to follow us on [Twitter](https://twitter.com/uppy_io) or via our [RSS feed](https://uppy.io/atom.xml) if you don't want to miss it!
+We hope to see you tomorrow again for our 1.0 launch, which will be accompanied by a meaty release post! Make sure to follow us on [Twitter](https://twitter.com/uppy_io) or via our [RSS feed](/uppy/atom.xml) if you don't want to miss it!
 
 
 <!-- <center><img width="400" src="https://media.giphy.com/media/11syU6ZZ6PsGRO/giphy.gif"><br/><br/></center> -->

+ 2 - 2
website/src/_posts/2019-08-1.3.md

@@ -5,7 +5,7 @@ author: arturi
 published: true
 ---
 
-Hi there! We are back after a period of silence following the [Uppy 1.0 release](https://uppy.io/blog/2019/04/1.0/) in the end of April. It was pretty well received by the commnunity and press: we hit the front pages of Hacker News, [Product Hunt](https://www.producthunt.com/posts/uppy-1-0/) and [Reddit](https://www.reddit.com/r/javascript/comments/bhkx5k/uppy_10_your_best_friend_in_file_uploading/). We then started trending and gained over 20,000 stargazers on GitHub, got mentioned by [Smashing Magazine](https://mobile.twitter.com/smashingmag/status/1097870169043546112), [JavaScript Daily](https://twitter.com/JavaScriptDaily/status/1122935583603556352) and [JavaScript Weekly](https://javascriptweekly.com/issues/434). It’s been a crazy ride! We’d like to thank all our contributors and users for their continued support.
+Hi there! We are back after a period of silence following the [Uppy 1.0 release](/uppy/blog/2019/04/1.0/) in the end of April. It was pretty well received by the commnunity and press: we hit the front pages of Hacker News, [Product Hunt](https://www.producthunt.com/posts/uppy-1-0/) and [Reddit](https://www.reddit.com/r/javascript/comments/bhkx5k/uppy_10_your_best_friend_in_file_uploading/). We then started trending and gained over 20,000 stargazers on GitHub, got mentioned by [Smashing Magazine](https://mobile.twitter.com/smashingmag/status/1097870169043546112), [JavaScript Daily](https://twitter.com/JavaScriptDaily/status/1122935583603556352) and [JavaScript Weekly](https://javascriptweekly.com/issues/434). It’s been a crazy ride! We’d like to thank all our contributors and users for their continued support.
 
 It was not all self reflection and celebrations, though, in Uppy Remote Headquaters™ following the `1.0` launch. After some vacation time, we quickly got back to work, releasing Uppy `1.1`, `1.2` and `1.3`. These updates address a lot of issues raised by the community and the team.
 
@@ -51,7 +51,7 @@ See [#1671](https://github.com/transloadit/uppy/pull/1671) for more details. As
 
 ## Logger
 
-We’ve added an option to supply a `logger` object with `debug`, `warn` and `error` methods, so you can use a custom logging solution with Uppy. Check out [the docs](https://uppy.io/docs/uppy/#logger) for more information.
+We’ve added an option to supply a `logger` object with `debug`, `warn` and `error` methods, so you can use a custom logging solution with Uppy. Check out [the docs](/uppy/docs/uppy/#logger) for more information.
 
 In the future, past 2.0, the `logger: Uppy.debugLogger` option is going to replace `debug: true`. The latter will be kept for backwards compatibility for now.
 

+ 1 - 1
website/src/_posts/2019-11-1.6.md

@@ -53,7 +53,7 @@ uppy.setOptions({
 
 Now, Uppy will bark in Finnish! Hau, hau, hau!
 
-Please see [`uppy.setOptions()` docs](https://uppy.io/docs/uppy/#uppy-setOptions-opts) for details.
+Please see [`uppy.setOptions()` docs](/uppy/docs/uppy/#uppy-setOptions-opts) for details.
 
 ## Misc
 

+ 2 - 2
website/src/_posts/2019-12-1.7.md

@@ -3,7 +3,7 @@ title: "Uppy 1.7: A Small One"
 date: 2020-01-10
 author: renee
 published: true
-image: "https://uppy.io/images/blog/1.7/cat-video-screen.jpg"
+image: "/uppy/images/blog/1.7/cat-video-screen.jpg"
 ---
 
 Uppy 1.7 was released last December! This release added Hebrew translations, a recording length timer for the `@uppy/webcam` plugin, and a collection of improvements to Companion.
@@ -27,7 +27,7 @@ We now run Companion tests on Node.js 6 on each commit, in addition to Node.js 1
 
 Uploading files from remote providers with the `@uppy/aws-s3-multipart` plugin now uses the correct file name in your S3 bucket by default, instead of the temporary filename that Companion uses internally.
 
-The `getKey()` option for S3 now has a [`metadata`](https://uppy.io/docs/companion/#s3-getKey-req-filename-metadata) parameter, so you can use file metadata from the client to determine the name of files in S3.
+The `getKey()` option for S3 now has a [`metadata`](/uppy/docs/companion/#s3-getKey-req-filename-metadata) parameter, so you can use file metadata from the client to determine the name of files in S3.
 
 ## Locales
 

+ 5 - 5
website/src/_posts/2020-03-custom-providers.md

@@ -5,7 +5,7 @@ author: ife
 published: false
 ---
 
-In this post we will be going through a step by step tutorial on how to develop, and add custom [providers](https://uppy.io/docs/providers/) to Uppy and Companion. For the purpose of this tutorial we will be building a custom provider for [Unsplash](https://unsplash.com/).
+In this post we will be going through a step by step tutorial on how to develop, and add custom [providers](/uppy/docs/providers/) to Uppy and Companion. For the purpose of this tutorial we will be building a custom provider for [Unsplash](https://unsplash.com/).
 
 <!--more-->
 
@@ -15,7 +15,7 @@ In this post we will be going through a step by step tutorial on how to develop,
 >
 > They work tightly with [Companion](https://www.npmjs.com/package/@uppy/companion) — Uppy's server-to-server communication handler between your server and file storage providers.
 
-Read more on [Provider Plugins](https://uppy.io/docs/providers/).
+Read more on [Provider Plugins](/uppy/docs/providers/).
 
 
 Creating a custom provider composes of two parts; **Custom Companion Provider** and **Custom Uppy Plugin**
@@ -146,7 +146,7 @@ Click "New Application" to create a new application. For the sake of this tutori
 
 Back to our project directory, we are going to create a `server/customprovider.js` file. This will contain the code that implements the Unsplash provider.
 
-According to [the docs](https://uppy.io/docs/companion/#Adding-custom-providers), we need to create a class that implements the methods `list`, `download`, and `size`.
+According to [the docs](/uppy/docs/companion/#Adding-custom-providers), we need to create a class that implements the methods `list`, `download`, and `size`.
 
 The constructor of our class will look something like this:
 
@@ -211,7 +211,7 @@ _adaptData (res) {
 }
 ```
 
-the method makes an http request to the unsplash API based on the documentation to [list collections](https://unsplash.com/documentation#list-collections) and [list collection's photos](https://unsplash.com/documentation#get-a-collections-photos). The `_adaptData` method exists to help us conform to [the list data](https://uppy.io/docs/companion/#list-data)
+the method makes an http request to the unsplash API based on the documentation to [list collections](https://unsplash.com/documentation#list-collections) and [list collection's photos](https://unsplash.com/documentation#get-a-collections-photos). The `_adaptData` method exists to help us conform to [the list data](/uppy/docs/companion/#list-data)
 
 Our `size` method will look something like this:
 
@@ -417,7 +417,7 @@ You can find your unsplash API key on your Unsplash [app dashboard](https://unsp
 
 Now we need to implement the client part of this. To do this we need to implement an Uppy Plugin.
 
-First, we'll create a `client/MyCustomProvider.js` file. Following the instructions [here](https://uppy.io/docs/writing-plugins/), our Uppy Plugin (aka `client/MyCustomProvider.js` file) could look something like this:
+First, we'll create a `client/MyCustomProvider.js` file. Following the instructions [here](/uppy/docs/writing-plugins/), our Uppy Plugin (aka `client/MyCustomProvider.js` file) could look something like this:
 
 ```js
 const { UIPlugin } = require('@uppy/core')

+ 1 - 1
website/src/_posts/2020-04-1.10.md

@@ -26,7 +26,7 @@ Try the live demos on [Transloadit.com](https://transloadit.com): import your fi
 
 (Uppy demos are below the description and steps, under “Live Demo. See for yourself” ;-)
 
-You can also play with an interactive demo, enabling different Uppy options and providers on the fly: <https://uppy.io/examples/dashboard>
+You can also play with an interactive demo, enabling different Uppy options and providers on the fly: </uppy/examples/dashboard>
 
 OneDrive:
 

+ 1 - 1
website/src/_posts/2020-04-1.13.md

@@ -2,7 +2,7 @@
 title: "Uppy 1.11 — 1.13: Dark Mode, custom meta fields and Google Docs in Companion"
 date: 2020-04-20
 author: arturi
-image: "https://uppy.io/images/blog/1.13/uppy-dashboard-dark-mar-2020.png"
+image: "/uppy/images/blog/1.13/uppy-dashboard-dark-mar-2020.png"
 published: true
 ---
 

+ 5 - 5
website/src/_posts/2020-07-1.18-image-editor.md

@@ -2,15 +2,15 @@
 title: "Image Editor 🌈"
 date: 2020-07-21
 author: arturi
-image: "https://uppy.io/images/blog/1.18-image-editor/image-editor-dashboard.jpg"
+image: "/uppy/images/blog/1.18-image-editor/image-editor-dashboard.jpg"
 published: true
 ---
 
 One of the most-requested Uppy features, the [Image Editor](/docs/image-editor/), has landed (as beta) in 1.18.
 
-<video alt="Demo video showing Uppy with Image Editor plugin — cropping, rotating and resizing images" poster="https://uppy.io/images/blog/1.18-image-editor/image-editor-dashboard.jpg" muted autoplay loop>
+<video alt="Demo video showing Uppy with Image Editor plugin — cropping, rotating and resizing images" poster="/uppy/images/blog/1.18-image-editor/image-editor-dashboard.jpg" muted autoplay loop>
   <source src="/images/blog/1.18-image-editor/image-editor-demo.mp4" type="video/mp4">
-  Your browser does not support the video tag: https://uppy.io/images/blog/1.18-image-editor/image-editor-demo.mp4
+  Your browser does not support the video tag: /uppy/images/blog/1.18-image-editor/image-editor-demo.mp4
 </video>
 
 <!--more-->
@@ -36,11 +36,11 @@ uppy.use(ImageEditor, {
 })
 ```
 
-![Uppy with Image Editor plugin screenshot — cropping, rotating and resizing images](https://uppy.io/images/blog/1.18-image-editor/image-editor-dashboard.jpg)
+![Uppy with Image Editor plugin screenshot — cropping, rotating and resizing images](/uppy/images/blog/1.18-image-editor/image-editor-dashboard.jpg)
 
 The Image Editor plugin is meant to be used with the Dashboard UI, but in theory it can work without it, rendered somewhere else. This has not been tested, try at your own risk ;-)
 
-You can [override the options from Cropper.js](https://uppy.io/docs/image-editor/#cropperOptions), too. Check out [the docs for up to date options and events](https://uppy.io/docs/image-editor).
+You can [override the options from Cropper.js](/uppy/docs/image-editor/#cropperOptions), too. Check out [the docs for up to date options and events](/uppy/docs/image-editor).
 
 Please leave your feedback [on Twitter](https://mobile.twitter.com/uppy_io/status/1285532376249110528).
 

+ 1 - 1
website/src/_posts/2020-09-companion-2.0.md

@@ -33,4 +33,4 @@ Companion 1.x will continue to receive security patches until March 1, 2021.
 
 ## Migrating from Companion 1.x to 2.x
 
-Given the breaking changes, we've created a [migration tutorial for upgrading from Companion v1 to v2](https://uppy.io/docs/companion/#Migrating-v1-to-v2).
+Given the breaking changes, we've created a [migration tutorial for upgrading from Companion v1 to v2](/uppy/docs/companion/#Migrating-v1-to-v2).

+ 2 - 2
website/src/_posts/2020-10-1.22.md

@@ -2,7 +2,7 @@
 title: "🎃 Uppy 1.22: Webcam camera source, Unsplash and maxTotalFileSize"
 date: 2020-10-30
 author: arturi
-image: "https://uppy.io/images/blog/1.22/unsplash.jpg"
+image: "/uppy/images/blog/1.22/unsplash.jpg"
 published: true
 ---
 
@@ -12,7 +12,7 @@ Uppy 1.22 (the spooky Halloween edition) adds a new Unsplash provider, Webcam ca
 
 ## Webcam Camera Source
 
-If your device has multiple cameras, you can now choose which one you want to use (if you allow the [showVideoSourceDropdown](https://uppy.io/docs/webcam/#showVideoSourceDropdown-false) option).
+If your device has multiple cameras, you can now choose which one you want to use (if you allow the [showVideoSourceDropdown](/uppy/docs/webcam/#showVideoSourceDropdown-false) option).
 
 ![](/images/blog/1.22/webcam-dropdown-full.png)
 

+ 5 - 5
website/src/_posts/2020-11-1.23.md

@@ -2,7 +2,7 @@
 title: "Uppy 1.23: Vue.js, Box, Done button and cloud file restrictions"
 date: 2020-11-30
 author: arturi
-image: "https://uppy.io/images/blog/1.23/vue-code-cover.png"
+image: "/uppy/images/blog/1.23/vue-code-cover.png"
 published: true
 ---
 
@@ -14,7 +14,7 @@ Uppy 1.23 brings Vue.js components 💥, Box file service support, a “Done”
 
 ## Vue.js
 
-We’ve had [Uppy React components](https://uppy.io/docs/react/) available for quite some time now. With the increasing popularity of Vue.js library, we’re proud to announce it’s now much easier to use [Uppy with Vue](https://uppy.io/docs/vue/), thanks to the amazing work by [Andrew Kachnic](https://mobile.twitter.com/su_andrewk):
+We’ve had [Uppy React components](/uppy/docs/react/) available for quite some time now. With the increasing popularity of Vue.js library, we’re proud to announce it’s now much easier to use [Uppy with Vue](/uppy/docs/vue/), thanks to the amazing work by [Andrew Kachnic](https://mobile.twitter.com/su_andrewk):
 
 ```sh
 npm install @uppy/vue
@@ -59,7 +59,7 @@ export default {
 - `<progress-bar />` - renders a `@uppy/progress-bar`
 - `<status-bar />` - renders a `@uppy/status-bar`
 
-Check out the [Vue documentation](https://uppy.io/docs/vue/) for details.
+Check out the [Vue documentation](/uppy/docs/vue/) for details.
 
 Angular and Svelte support is on our list next.
 
@@ -73,7 +73,7 @@ Dropbox, Instagram, Google Drive and other cloud providers now immediately gray
 
 ## Done Button
 
-If [`doneButtonHandler`](https://uppy.io/docs/dashboard/#doneButtonHandler) option is passed to the Status Bar plugin, it will render a “Done” button in place of Pause/Resume/Cancel buttons, once the upload/encoding is done. The behaviour of the “Done” button is defined by the handler function — can be used to close file picker modals or clear the upload state.
+If [`doneButtonHandler`](/uppy/docs/dashboard/#doneButtonHandler) option is passed to the Status Bar plugin, it will render a “Done” button in place of Pause/Resume/Cancel buttons, once the upload/encoding is done. The behaviour of the “Done” button is defined by the handler function — can be used to close file picker modals or clear the upload state.
 
 <img class="border" alt="Status Bar Done button UI" src="/images/blog/1.23/status-bar-done.jpg">
 
@@ -91,7 +91,7 @@ Bragging moment, here’s what [@cartfish had to say about Uppy](https://github.
 
 `@uppy/image-editor` plugin got support for optional buttons — you can choose to hide or show just the ones you need — crop, rotate, square, landscape, etc. Thanks, [@lamartire](https://github.com/lamartire)!
 
-See new [`actions`](https://uppy.io/docs/image-editor/#Options) property in the Image Editor’s options.
+See new [`actions`](/uppy/docs/image-editor/#Options) property in the Image Editor’s options.
 
 ## Misc
 

+ 3 - 3
website/src/_posts/2020-12-1.24.md

@@ -2,7 +2,7 @@
 title: "Uppy 1.24: 🎅 Happy Holidays — Svelte, React hook, Auto Open Image Editor"
 date: 2020-12-24
 author: renee
-image: "https://uppy.io/images/blog/1.24/uppy-svelte.png"
+image: "/uppy/images/blog/1.24/uppy-svelte.png"
 published: true
 ---
 
@@ -38,7 +38,7 @@ let uppy = new Uppy().use(Webcam)
 </script>
 ```
 
-Please see [the Uppy Svelte documentation](https://uppy.io/docs/svelte/) for all the components.
+Please see [the Uppy Svelte documentation](/uppy/docs/svelte/) for all the components.
 
 ## React
 
@@ -74,7 +74,7 @@ This does not solve all our problems yet: dynamic configuration is still difficu
 
 ## Auto Open Image Editor
 
-If you are using Image Editor plugin with the Dashboard, there’s a new option [`autoOpenFileEditor`](https://uppy.io/docs/dashboard/#autoOpenFileEditor-false), which will open Image Editor automatically for the first image that was added to Uppy.
+If you are using Image Editor plugin with the Dashboard, there’s a new option [`autoOpenFileEditor`](/uppy/docs/dashboard/#autoOpenFileEditor-false), which will open Image Editor automatically for the first image that was added to Uppy.
 
 ```js
 const uppy = new Uppy()

+ 2 - 2
website/src/_posts/2021-01-1.25.md

@@ -2,7 +2,7 @@
 title: "Uppy 1.25: right-to-left scripts, Ukrainian translation, Companion improvements"
 date: 2021-01-29
 author: arturi
-image: "https://uppy.io/images/blog/1.25/right-to-left.jpg"
+image: "/uppy/images/blog/1.25/right-to-left.jpg"
 published: true
 ---
 
@@ -20,7 +20,7 @@ Renée have improved support for right-to-left scripts (such as Arabic, Farsi, H
 
 <video alt="Demo video showing Uppy with right-to-left mirrored UI" poster="/images/blog/1.25/right-to-left.jpg" muted autoplay loop>
   <source src="/images/blog/1.25/right-to-left.mp4" type="video/mp4">
-  Your browser does not support the video tag: https://uppy.io/images/blog/images/blog/1.25/right-to-left.mp4
+  Your browser does not support the video tag: /uppy/images/blog/images/blog/1.25/right-to-left.mp4
 </video>
 
 HTML `dir` attribute can be used to set the direction — any parent element of the Dashboard may have it. It’s good practice for sites to add a dir attribute on `<html>` element, but for backwards compatibility the Dashboard will default to left-to-right rendering.

+ 3 - 3
website/src/_posts/2021-02-1.26.md

@@ -2,7 +2,7 @@
 title: "Uppy 1.26: Dashboard “disabled”, per-file headers"
 date: 2021-02-26
 author: arturi
-image: "https://uppy.io/images/blog/1.26/dashboard-disabled.jpg"
+image: "/uppy/images/blog/1.26/dashboard-disabled.jpg"
 published: true
 ---
 
@@ -20,7 +20,7 @@ This is useful when you need to confitionally enable/disable file uploading or m
 
 <video alt="Demo video showing Uppy with Dashboard disabled vs enabled state" poster="/images/blog/1.26/dashboard-disabled.jpg" muted autoplay loop>
   <source src="/images/blog/1.26/dashboard-disabled-vs-enabled.mp4" type="video/mp4">
-  Your browser does not support the video tag: https://uppy.io/images/blog/images/blog/1.26/dashboard-disabled-vs-enabled.mp4
+  Your browser does not support the video tag: /uppy/images/blog/images/blog/1.26/dashboard-disabled-vs-enabled.mp4
 </video>
 
 This option can be set on init:
@@ -42,7 +42,7 @@ userNameInput.addEventListener('change', () => {
 })
 ```
 
-[See the docs](https://uppy.io/docs/dashboard/#disabled-false).
+[See the docs](/uppy/docs/dashboard/#disabled-false).
 
 ## XHR Upload Per File headers
 

+ 4 - 4
website/src/_posts/2021-04-1.27.md

@@ -2,7 +2,7 @@
 title: "Uppy 1.27: Drop Target plugin, Vue 3 support, Dashboard dynamic meta fields, “Shared with me” in Google Drive"
 date: 2021-04-05
 author: arturi
-image: "https://uppy.io/images/blog/1.27/drop-target.jpg"
+image: "/uppy/images/blog/1.27/drop-target.jpg"
 published: true
 ---
 
@@ -10,7 +10,7 @@ In Uppy 1.27 we’ve added a new `@uppy/drop-target` plugin, enabled support for
 
 <video alt="Demo video showing Uppy with Drop Target plugin which allows accepting drag and drop anywhere on a page" poster="/images/blog/1.26/dashboard-disabled.jpg" muted autoplay loop>
   <source src="/images/blog/1.27/drop-target.mp4" type="video/mp4">
-  Your browser does not support the video tag: https://uppy.io/images/blog/1.27/drop-target.mp4
+  Your browser does not support the video tag: /uppy/images/blog/1.27/drop-target.mp4
 </video>
 
 <!--more-->
@@ -53,7 +53,7 @@ Sometimes you may want to show specific meta fields for certain type of files. F
 })
 ```
 
-See [Dashboard `metaFields`](https://uppy.io/docs/dashboard/#metaFields) docs for details.
+See [Dashboard `metaFields`](/uppy/docs/dashboard/#metaFields) docs for details.
 
 ## Vue 3
 
@@ -93,4 +93,4 @@ See [changelog](https://github.com/transloadit/uppy/blob/master/CHANGELOG.md#127
 
 <a class="TryButton" href="https://releases.transloadit.com/uppy/v1.27.0/uppy-v1.27.0.zip">Download Uppy 1.27.0</a>
 
-<small>Or [include from CDN](https://uppy.io/docs/). Note that it’s highly recommended to [pick and choose specific Uppy plugins](https://uppy.io/docs/plugins/#package-list) that you need, and install them with `npm` or `yarn`. This is because the bundle includes all Uppy plugins at once.</small>
+<small>Or [include from CDN](/uppy/docs/). Note that it’s highly recommended to [pick and choose specific Uppy plugins](/uppy/docs/plugins/#package-list) that you need, and install them with `npm` or `yarn`. This is because the bundle includes all Uppy plugins at once.</small>

+ 7 - 7
website/src/_posts/2021-04-1.29.md

@@ -2,7 +2,7 @@
 title: "Uppy 1.29: Golden Retriever, disableLocalFiles, Webcam previews, uppy.logout"
 date: 2021-05-31
 author: arturi
-image: "https://uppy.io/images/blog/1.29/golden-retriever-all-recovered.png"
+image: "/uppy/images/blog/1.29/golden-retriever-all-recovered.png"
 published: true
 ---
 
@@ -10,7 +10,7 @@ In Uppy 1.29, we’ve revamped the Golden Retriever plugin with support for part
 
 <video alt="Demo of Uppy Golden Retriever file restore plugin in action" muted autoplay loop>
   <source src="/images/blog/1.29/ghosts-demo.mp4" type="video/mp4">
-  Your browser does not support the video tag: https://uppy.io/images/blog/1.29/ghosts-demo.mp4
+  Your browser does not support the video tag: /uppy/images/blog/1.29/ghosts-demo.mp4
 </video>
 
 <!--more-->
@@ -25,7 +25,7 @@ In this release, we’re adding support for “ghosts” — files for which we
 
 ![](/images/blog/1.29/golden-retriever-ghost.png)
 
-You can try Golden Retriever in action on [the Dashboard example page](https://uppy.io/examples/dashboard/).
+You can try Golden Retriever in action on [the Dashboard example page](/uppy/examples/dashboard/).
 
 <center><img src="/images/blog/golden-retriever/catch-fail-2.gif" alt="Golden Retriever failing to catch something" title="Good try, girl!"></center>
 
@@ -35,7 +35,7 @@ The `disableLocalFiles: true` option will disable drag & drop, and hide the “B
 
 ![](/images/blog/1.29/disableLocalFiles.png)
 
-[Docs: disableLocalFiles](https://uppy.io/docs/dashboard/#disableLocalFiles).
+[Docs: disableLocalFiles](/uppy/docs/dashboard/#disableLocalFiles).
 
 ## Webcam Previews
 
@@ -43,7 +43,7 @@ When recording a video with the `@uppy/webcam` plugin, you will now be given the
 
 <video alt="Demo of Uppy Golden Retriever file restore plugin in action" muted autoplay loop>
   <source src="/images/blog/1.29/webcam-preview-demo.mp4" type="video/mp4">
-  Your browser does not support the video tag: https://uppy.io/images/blog/1.29/webcam-preview-demo.mp4
+  Your browser does not support the video tag: /uppy/images/blog/1.29/webcam-preview-demo.mp4
 </video>
 
 ## uppy.logout()
@@ -52,7 +52,7 @@ When your users log out of your app, you might want to also log them out of any
 
 `uppy.logout()` calls `provider.logout()` on each remote provider plugin, like Google Drive, Instagram, Dropbox, etc.
 
-[Docs: uppy-logout](https://uppy.io/docs/uppy/#uppy-logout)
+[Docs: uppy-logout](/uppy/docs/uppy/#uppy-logout)
 
 ## Companion
 
@@ -76,4 +76,4 @@ See [changelog](https://github.com/transloadit/uppy/blob/master/CHANGELOG.md#129
 
 <a class="TryButton" href="https://releases.transloadit.com/uppy/v1.29.1/uppy-v1.29.1.zip">Download Uppy 1.29.1</a>
 
-<small>Or [include from CDN](https://uppy.io/docs/). Note that it’s highly recommended to [pick and choose specific Uppy plugins](https://uppy.io/docs/plugins/#package-list) that you need, and install them with `npm` or `yarn`. This is because the bundle includes all Uppy plugins at once.</small>
+<small>Or [include from CDN](/uppy/docs/). Note that it’s highly recommended to [pick and choose specific Uppy plugins](/uppy/docs/plugins/#package-list) that you need, and install them with `npm` or `yarn`. This is because the bundle includes all Uppy plugins at once.</small>

+ 2 - 2
website/src/_posts/2021-07-1.30.md

@@ -53,7 +53,7 @@ See the [Angular docs](/docs/angular/) for more details.
 
 <video alt="" muted autoplay loop>
   <source src="/images/blog/1.30/granular-rotation.mp4" type="video/mp4">
-  Your browser does not support the video tag: https://uppy.io/images/blog/1.30/granular-rotation.mp4
+  Your browser does not support the video tag: /uppy/images/blog/1.30/granular-rotation.mp4
 </video>
 
 ## Google Drive Shortcuts
@@ -77,4 +77,4 @@ See the [changelog](https://github.com/transloadit/uppy/blob/master/CHANGELOG.md
 
 <a class="TryButton" href="https://releases.transloadit.com/uppy/v1.29.1/uppy-v1.30.0.zip">Download Uppy 1.30 Bundle</a>
 
-<small>Or [include from CDN](https://uppy.io/docs/). Note that it’s highly recommended to [pick and choose specific Uppy plugins](https://uppy.io/docs/plugins/#package-list) that you need, and install them with `npm` or `yarn`. This is because the bundle includes all Uppy plugins at once.</small>
+<small>Or [include from CDN](/uppy/docs/). Note that it’s highly recommended to [pick and choose specific Uppy plugins](/uppy/docs/plugins/#package-list) that you need, and install them with `npm` or `yarn`. This is because the bundle includes all Uppy plugins at once.</small>

+ 3 - 3
website/src/_posts/2021-08-2.0.md

@@ -8,13 +8,13 @@ author:
   - renee
   - mifi
   - andrew
-image: https://uppy.io/images/blog/2.0/uppy-2-0-cover.jpg
+image: /uppy/images/blog/2.0/uppy-2-0-cover.jpg
 published: true
 ---
 
 Today, our tails are positively wagging with excitement about the release of Uppy 2.0! This latest version is on average 25% smaller and up to a thousand times faster, thanks to dropping support for IE11 and a lot of refactoring work. We’ve upgraded many dependencies, most notably Preact 8 to Preact X, greatly improved TypeScript support and screen reader accessibility, paid technical debt, and added support for multiple messages in the Informer plugin.
 
-Chow down on all the juicy bits and pieces inside! And make sure to [try Uppy live demo](https://uppy.io/examples/dashboard/).
+Chow down on all the juicy bits and pieces inside! And make sure to [try Uppy live demo](/uppy/examples/dashboard/).
 
 ![Uppy 2.0 cover banner](/images/blog/2.0/uppy-2-0-cover.jpg)
 
@@ -47,7 +47,7 @@ With that in mind, we felt it was high time to give Uppy some more much-needed t
 
 <video alt="Video demo showing updated Uppy 2.0 UI" muted autoplay loop>
   <source src="/images/uppy-2-0-demo-aug-2021.mp4" type="video/mp4">
-  Your browser does not support the video tag: https://uppy.io/images/uppy-2-0-demo-aug-2021.mp4
+  Your browser does not support the video tag: /uppy/images/uppy-2-0-demo-aug-2021.mp4
 </video>
 
 ## Highlights since 1.0

+ 8 - 8
website/src/_posts/2021-12-2.1-2.3.md

@@ -6,15 +6,15 @@ author:
   - murderlon
   - arturi
   - mifi
-image: https://uppy.io/images/blog/2.1-2.3/audio-cover.jpg
+image: /uppy/images/blog/2.1-2.3/audio-cover.jpg
 published: true
 ---
 
 <!--retext-simplify ignore very-->
 
-Last Christmas, we gave you [Uppy 1.24](https://uppy.io/blog/2020/12/1.24/), but this very next year, we’ll take it away (since it’s outdated by now) and give you a brand-new Uppy 2.3 🎁!
+Last Christmas, we gave you [Uppy 1.24](/uppy/blog/2020/12/1.24/), but this very next year, we’ll take it away (since it’s outdated by now) and give you a brand-new Uppy 2.3 🎁!
 
-After the [release](https://uppy.io/blog/2021/08/2.0/) of our latest major version, 2.0.0, we’ve been busy with many things. First of all is the long-awaited Audio plugin to record and upload live audio directly. We then worked on adding a fast and efficient streaming interface to Companion and made Unsplash production ready. Housekeeping was also part of the job: we made Status Bar improvements, moved from npm to Yarn 3, did some refactoring, and updated dependencies.
+After the [release](/uppy/blog/2021/08/2.0/) of our latest major version, 2.0.0, we’ve been busy with many things. First of all is the long-awaited Audio plugin to record and upload live audio directly. We then worked on adding a fast and efficient streaming interface to Companion and made Unsplash production ready. Housekeeping was also part of the job: we made Status Bar improvements, moved from npm to Yarn 3, did some refactoring, and updated dependencies.
 
 Last but not least, we got the issue count down from around 110 since 2.0.0 to around 45 now.
 
@@ -22,16 +22,16 @@ Last but not least, we got the issue count down from around 110 since 2.0.0 to a
 
 ## Audio plugin
 
-Uppy now has a new `@uppy/audio` plugin for recording audio memos, sounds, jingling bells, Christmas carols, and all your holiday cheer. Check it out on the [demo page](https://uppy.io/examples/dashboard/).
+Uppy now has a new `@uppy/audio` plugin for recording audio memos, sounds, jingling bells, Christmas carols, and all your holiday cheer. Check it out on the [demo page](/uppy/examples/dashboard/).
 
 <video alt="Audio plugin demo" muted autoplay loop>
   <source src="/images/blog/2.1-2.3/audio-demo.mp4" type="video/mp4">
-  Your browser does not support the video tag: https://uppy.io/images/blog/2.1-2.3/audio-demo.mp4
+  Your browser does not support the video tag: /uppy/images/blog/2.1-2.3/audio-demo.mp4
 </video>
 
 ## `@uppy/unsplash` is now production ready
 
-The Unsplash plugin has received an update, providing attribution to the image authors and adding some polish to make it look better. Being fully brand compliant with Unsplash means it’s now production ready. You can demo the plugin on the [website](https://uppy.io/examples/dashboard) or read the [docs](https://uppy.io/docs/unsplash/).
+The Unsplash plugin has received an update, providing attribution to the image authors and adding some polish to make it look better. Being fully brand compliant with Unsplash means it’s now production ready. You can demo the plugin on the [website](/uppy/examples/dashboard) or read the [docs](/uppy/docs/unsplash/).
 
 ## New streaming interface for Companion
 
@@ -41,7 +41,7 @@ It used to work by downloading the requested file from a remote provider on the
 
 We now built streaming support into Companion, which means the download and upload can happen simultaneously. This can result in **two times faster uploads**, because we no longer have to wait for files to finish downloading before starting the upload process. It’s especially useful for large files and removes the need for a lot of storage space on the server, as data will be buffered in memory.
 
-You can enable this by setting `streamingUpload` in the Companion [options](https://uppy.io/docs/companion/#Options).
+You can enable this by setting `streamingUpload` in the Companion [options](/uppy/docs/companion/#Options).
 
 **NOTE:** Streaming is turned off by default. Do not turn it on yet if you’re using TUS for uploads, due to [this tus-js-client bug](https://github.com/tus/tus-js-client/issues/275).
 
@@ -118,4 +118,4 @@ Happy Holidays from the Uppy team! Enjoy Christmas and New Year, stay safe, take
 
 <!-- definitions -->
 
-[companion]: https://uppy.io/docs/companion/
+[companion]: /uppy/docs/companion/

+ 4 - 4
website/src/_posts/2022-03-2.4-2.7.md

@@ -6,11 +6,11 @@ author:
   - arturi
   - mifi
   - murderlon
-image: "https://uppy.io/images/blog/2.4-2.7/compressor.jpg"
+image: "/uppy/images/blog/2.4-2.7/compressor.jpg"
 published: true
 ---
 
-We’re always looking for opportunities to teach Uppy cool new tricks, and the past few months have been no exception. Since our [most recent post](https://uppy.io/blog/2021/12/2.1-2.3/) in December, Uppy has continued to receive a steady stream of updates. This post covers all the improvements made in Uppy versions 2.4 through 2.7. Changes and additions include: image compression, improved Transloadit rate limiting and a lighter Dashboard plugin. We’ve also moved our end-to-end tests to Cypress, and are slowly converting plugins to ES modules (ESM).
+We’re always looking for opportunities to teach Uppy cool new tricks, and the past few months have been no exception. Since our [most recent post](/uppy/blog/2021/12/2.1-2.3/) in December, Uppy has continued to receive a steady stream of updates. This post covers all the improvements made in Uppy versions 2.4 through 2.7. Changes and additions include: image compression, improved Transloadit rate limiting and a lighter Dashboard plugin. We’ve also moved our end-to-end tests to Cypress, and are slowly converting plugins to ES modules (ESM).
 
 <img class="border" alt="Uppy Compressor plugin showing compressed images notification" src="/images/blog/2.4-2.7/compressor.jpg">
 
@@ -20,7 +20,7 @@ We’re always looking for opportunities to teach Uppy cool new tricks, and the
 
 Some of the most commonly uploaded files on the internet are images — photos, stock images, screenshots, and documents scans. Uppy now includes a new plugin called `@uppy/compressor` that optimizes images (JPEG, PNG), saving on average up to 60% in size (roughly 18 MB for 10 images). It uses [Compressor.js](https://github.com/fengyuanchen/compressorjs) under the hood.
 
-[Read the docs](https://uppy.io/docs/compressor/) and [try Compressor in action](https://uppy.io/examples/dashboard/).
+[Read the docs](/uppy/docs/compressor/) and [try Compressor in action](/uppy/examples/dashboard/).
 
 ```js
 import Uppy from '@uppy/core'
@@ -34,7 +34,7 @@ uppy.use(Compressor)
 
 ## Hosted Companion custom credentials
 
-It cannot be overstated that our [Transloadit-hosted](https://transloadit.com/docs/sdks/uppy/) [Companion Plugin](https://uppy.io/docs/companion/) is the easiest secure way to allow your users pick files from cloud sources like Google Drive, Instagram, Box, etc. via Uppy. Up until now, however, that meant your users had to authenticate their cloud account with Transloadit, preventing you from showing your own logo instead. That has now been fixed! Head to `Transloadit Console` / `Credentials`, scroll down to `Third-party Credentials`, click on `Add new Credentials`, select `Companion OAuth`, and voilà!
+It cannot be overstated that our [Transloadit-hosted](https://transloadit.com/docs/sdks/uppy/) [Companion Plugin](/uppy/docs/companion/) is the easiest secure way to allow your users pick files from cloud sources like Google Drive, Instagram, Box, etc. via Uppy. Up until now, however, that meant your users had to authenticate their cloud account with Transloadit, preventing you from showing your own logo instead. That has now been fixed! Head to `Transloadit Console` / `Credentials`, scroll down to `Third-party Credentials`, click on `Add new Credentials`, select `Companion OAuth`, and voilà!
 
 <img class="border" alt="Transloadit Companion 3rd party credentials" src="/images/blog/2.4-2.7/companion-3rd-party-oauth.jpg">
 

+ 3 - 3
website/src/_posts/2022-09-3.0.md

@@ -6,13 +6,13 @@ author:
   - arturi
   - mifi
   - murderlon
-image: "https://uppy.io/images/blog/3.0/uppy-3-0.jpg"
+image: "/uppy/images/blog/3.0/uppy-3-0.jpg"
 published: true
 ---
 
 ![Screenshot of Uppy 3.0.0 UI](/images/blog/3.0/uppy-3-0.jpg)
 
-> For those new to Uppy, coming from Reddit, Hacker News and Product Hunt today: Uppy is a popular open source file uploader for the browser. Pick files from local disk or camera, remote sources like Instagram, Unsplash, Dropbox etc, record audio and screencasts. Crop and tweak images with the image editor plugin. Supports resumable uploads to a tus.io server, AWS S3 (and many others with similar API like DigitalOcean), multipart. [Try it](https://uppy.io/examples/dashboard)!
+> For those new to Uppy, coming from Reddit, Hacker News and Product Hunt today: Uppy is a popular open source file uploader for the browser. Pick files from local disk or camera, remote sources like Instagram, Unsplash, Dropbox etc, record audio and screencasts. Crop and tweak images with the image editor plugin. Supports resumable uploads to a tus.io server, AWS S3 (and many others with similar API like DigitalOcean), multipart. [Try it](/uppy/examples/dashboard)!
 
 Uppy is turning three! When you’re counting in [dog years](https://www.akc.org/expert-advice/health/how-to-calculate-dog-years-to-human-years/) – which we most certainly are – that’s 29 already. An age like that signifies proper adulthood. For Uppy, this means it’s ready to stay loyal, but without the silly mistakes (read: bugs). Uppy also underwent (ESM) surgery to keep it strolling by your side in the current ecosystem, and received other behavioral improvements 🐶
 
@@ -65,7 +65,7 @@ It did, however, come with its own set of new problems:
 
 This has now led us to deprecating Robodog and embracing Uppy for its strong suits: modularity and flexibility. At the same time, we’re also introducing something to take away some of the repetitive integration code: [`@uppy/remote-sources`](/docs/remote-sources).
 
-Are you using Robodog in your code base? You can check out the [migration guide](https://uppy.io/docs/migration-guides.html#Migrate-from-Robodog-to-Uppy-plugins) to see how you can transition to Uppy plugins without losing functionality. We have committed ourselves to extending Robodog support for one year to give our users more time to migrate.
+Are you using Robodog in your code base? You can check out the [migration guide](/uppy/docs/migration-guides.html#Migrate-from-Robodog-to-Uppy-plugins) to see how you can transition to Uppy plugins without losing functionality. We have committed ourselves to extending Robodog support for one year to give our users more time to migrate.
 
 ## Native mobile camera
 

+ 1 - 1
website/src/_posts/2022-12-3.3.md

@@ -6,7 +6,7 @@ author:
   - arturi
   - murderlon
   - mifi
-image: "https://uppy.io/images/blog/3.1-3.3/dashboard-christmas.jpg"
+image: "/uppy/images/blog/3.1-3.3/dashboard-christmas.jpg"
 published: true
 ---
 

+ 1 - 1
website/src/docs/aws-s3.md

@@ -110,7 +110,7 @@ Set to `0` to disable limiting.
 
 > This is an advanced option intended for use with _almost_ S3-compatible storage solutions.
 
-Customize response handling once an upload is completed. This passes the function through to @uppy/xhr-upload, see its [documentation](https://uppy.io/docs/xhr-upload/#getResponseData-responseText-response) for API details.
+Customize response handling once an upload is completed. This passes the function through to @uppy/xhr-upload, see its [documentation](/uppy/docs/xhr-upload/#getResponseData-responseText-response) for API details.
 
 This option is useful when uploading to an S3-like service that doesn’t reply with an XML document, but with something else such as JSON.
 

+ 3 - 3
website/src/docs/companion.md

@@ -424,7 +424,7 @@ For example, if your Companion server is hosted on `https://my.companion.server.
 
 `https://my.companion.server.com/onedrive/redirect`
 
-Please see [Supported Providers](https://uppy.io/docs/companion/#Supported-providers) for a list of all Providers and their corresponding names.
+Please see [Supported Providers](/uppy/docs/companion/#Supported-providers) for a list of all Providers and their corresponding names.
 
 ### S3 options
 
@@ -463,7 +463,7 @@ Get the key name for a file. The key is the file path to which the file will be
 
 * `req`, the HTTP request, for _regular_ S3 uploads using the `@uppy/aws-s3` plugin. This parameter is _not_ available for multipart uploads using the `@uppy/aws-s3-multipart` plugin;
 * `filename`, the original name of the uploaded file;
-* `metadata`, user-provided metadata for the file. See the [`@uppy/aws-s3`](https://uppy.io/docs/aws-s3/#metaFields) docs. The `@uppy/aws-s3-multipart` plugin unconditionally sends all metadata fields, so they all are available here.
+* `metadata`, user-provided metadata for the file. See the [`@uppy/aws-s3`](/uppy/docs/aws-s3/#metaFields) docs. The `@uppy/aws-s3-multipart` plugin unconditionally sends all metadata fields, so they all are available here.
 
 If your bucket is public, you should include a cryptographically random token in the uploaded name for security (hence the default `crypto.randomUUID()`).
 
@@ -521,7 +521,7 @@ The other option is to set up a load balancer in front of many Companion instanc
 
 ### Adding custom providers
 
-As of now, Companion supports the [providers listed here](https://uppy.io/docs/companion/#Supported-providers) out of the box, but you may also choose to add your own custom providers. You can do this by passing the `customProviders` option when calling the Uppy `app` method. The custom provider is expected to support Oauth 1 or 2 for authentication/authorization.
+As of now, Companion supports the [providers listed here](/uppy/docs/companion/#Supported-providers) out of the box, but you may also choose to add your own custom providers. You can do this by passing the `customProviders` option when calling the Uppy `app` method. The custom provider is expected to support Oauth 1 or 2 for authentication/authorization.
 
 ```javascript
 import providerModule from './path/to/provider/module'

+ 5 - 5
website/src/docs/dashboard.md

@@ -213,7 +213,7 @@ See also `disableStatusBar` option, which can hide the progress and upload butto
 
 ### `showRemoveButtonAfterComplete: false`
 
-Sometimes you might want to let users remove an uploaded file. Enabling this option only shows the remove `X` button in the Dashboard UI, but to actually send a request you should listen to [`file-removed`](https://uppy.io/docs/uppy/#file-removed) event and add your logic there.
+Sometimes you might want to let users remove an uploaded file. Enabling this option only shows the remove `X` button in the Dashboard UI, but to actually send a request you should listen to [`file-removed`](/uppy/docs/uppy/#file-removed) event and add your logic there.
 
 ```js
 uppy.on('file-removed', (file, reason) => {
@@ -231,7 +231,7 @@ Optionally, specify a string of text that explains something about the upload fo
 
 ### `metaFields: []`
 
-An array of UI field objects, or a function that takes a [File Object](https://uppy.io/docs/uppy/#File-Objects) and returns an array of UI field objects, that will be shown when a user clicks the “edit” button on that file. Configuring this enables the “edit” button on file cards. Each object requires:
+An array of UI field objects, or a function that takes a [File Object](/uppy/docs/uppy/#File-Objects) and returns an array of UI field objects, that will be shown when a user clicks the “edit” button on that file. Configuring this enables the “edit” button on file cards. Each object requires:
 
 * `id`, the name of the meta field. Note: this will also be used in CSS/HTML as part of the `id` attribute, so it’s better to [avoid using characters like periods, semicolons, etc](https://stackoverflow.com/a/79022).
 * `name`, the label shown in the interface.
@@ -432,7 +432,7 @@ export default {
 
 ### `theme: 'light'`
 
-Uppy Dashboard supports “Dark Mode”. You can try it live on [the Dashboard example page](https://uppy.io/examples/dashboard/).
+Uppy Dashboard supports “Dark Mode”. You can try it live on [the Dashboard example page](/uppy/examples/dashboard/).
 
 It supports the following values:
 
@@ -520,7 +520,7 @@ Fired when a user clicks on a source plugin, such as Webcam or Google Drive, in
 
 **Parameters:**
 
-* `file` — The [File Object](https://uppy.io/docs/uppy/#File-Objects) representing the file that was opened for editing.
+* `file` — The [File Object](/uppy/docs/uppy/#File-Objects) representing the file that was opened for editing.
 
 Fired when the user clicks “edit” icon next to a file in the Dashboard. The FileCard panel is then open with file metadata available for editing.
 
@@ -528,7 +528,7 @@ Fired when the user clicks “edit” icon next to a file in the Dashboard. The
 
 **Parameters:**
 
-* `file` — The [File Object](https://uppy.io/docs/uppy/#File-Objects) representing the file that was edited.
+* `file` — The [File Object](/uppy/docs/uppy/#File-Objects) representing the file that was edited.
 
 Fired when the user finished editing the file metadata.
 

+ 1 - 1
website/src/docs/golden-retriever.md

@@ -8,7 +8,7 @@ category: "Miscellaneous"
 tagline: "restore files and continue uploading after a page refresh or a browser crash"
 ---
 
-The `@uppy/golden-retriever` plugin saves selected files in your browser cache, so that if the browser crashes, Uppy can restore everything and continue uploading as if nothing happened. You can read more about it [on our blog](https://uppy.io/blog/2017/07/golden-retriever/).
+The `@uppy/golden-retriever` plugin saves selected files in your browser cache, so that if the browser crashes, Uppy can restore everything and continue uploading as if nothing happened. You can read more about it [on our blog](/uppy/blog/2017/07/golden-retriever/).
 
 The Golden Retriever uses LocalStorage to store file metadata and Uppy state, and IndexedDB for small files. It also uses a Service Worker for _all_ files because, unlike IndexedDB, a Service Worker can keep large files. Service Worker storage is _quite_ temporary though, and doesn’t persist across browser crashes or restarts. It works well, however, for accidental refreshes or closed tabs.
 

+ 1 - 1
website/src/docs/informer.md

@@ -10,7 +10,7 @@ tagline: "show notifications"
 
 The `@uppy/informer` plugin is a pop-up bar for showing notifications. When plugins have some exciting news (or error) to share, they can show a notification here.
 
-Informer gets its data from `uppy.state.info`, which is updated by various plugins via [`uppy.info`](https://uppy.io/docs/uppy/#uppy-info) method.
+Informer gets its data from `uppy.state.info`, which is updated by various plugins via [`uppy.info`](/uppy/docs/uppy/#uppy-info) method.
 
 ```js
 import Informer from '@uppy/informer'

+ 1 - 1
website/src/docs/locales.md

@@ -47,7 +47,7 @@ var uppy = new Uppy.Uppy({
 
 ## Overriding locale strings for a specific plugin
 
-Many plugins come with their own locale strings, and the packs we provide consist of most of those strings. You can, however, override a locale string for a specific plugin, regardless of whether you are using locale pack or not. See the plugin documentation for the list of locale strings it uses (for example, [here’s how to use it with the Dashboard UI](https://uppy.io/docs/dashboard/#locale)).
+Many plugins come with their own locale strings, and the packs we provide consist of most of those strings. You can, however, override a locale string for a specific plugin, regardless of whether you are using locale pack or not. See the plugin documentation for the list of locale strings it uses (for example, [here’s how to use it with the Dashboard UI](/uppy/docs/dashboard/#locale)).
 
 ```js
 import Uppy from '@uppy/core'

+ 6 - 6
website/src/docs/migration-guides.md

@@ -68,7 +68,7 @@ new Uppy()
     service: 'https://api2.transloadit.com',
     async getAssemblyOptions (file) {
       // This is where you configure your auth key, auth secret, and template ID
-      // https://uppy.io/docs/transloadit/#getAssemblyOptions-file
+      // /uppy/docs/transloadit/#getAssemblyOptions-file
       //
       // It is important to set the secret in production:
       // https://transloadit.com/docs/topics/signature-authentication/
@@ -219,7 +219,7 @@ To use AWS S3 for storage, you configured the `s3` object inside `providerOption
 
 ### Removed compatibility for legacy Custom Provider implementations
 
-[Custom Provider](https://uppy.io/docs/companion/#Adding-custom-providers)
+[Custom Provider](/uppy/docs/companion/#Adding-custom-providers)
 implementations must use the Promise API. The callback API is no longer supported.
 
 ### Default to no ACL for AWS S3
@@ -352,7 +352,7 @@ const otherUppy = Uppy() // incorrect, will throw.
 
 ### Rename `allowMultipleUploads` to `allowMultipleUploadBatches`
 
-[`allowMultipleUploadBatches`](https://uppy.io/docs/uppy/#allowMultipleUploadBatches-true) means allowing several calls to [`.upload()`](https://uppy.io/docs/uppy/#uppy-upload), in other words, a user can add more files after already having uploaded some.
+[`allowMultipleUploadBatches`](/uppy/docs/uppy/#allowMultipleUploadBatches-true) means allowing several calls to [`.upload()`](/uppy/docs/uppy/#uppy-upload), in other words, a user can add more files after already having uploaded some.
 
 <!--retext-simplify ignore multiple-->
 
@@ -464,9 +464,9 @@ uppy.on('dashboard:file-edit-start', (file) => {
 
 ### Changes to pre-signing URLs for [`@uppy/aws-s3-multipart`][aws-s3-multipart]
 
-See the Uppy 2.0.0 announcement post about the batch [pre-signing URLs change](https://uppy.io/blog/2021/08/2.0/#Batch-pre-signing-URLs-for-AWS-S3-Multipart).
+See the Uppy 2.0.0 announcement post about the batch [pre-signing URLs change](/uppy/blog/2021/08/2.0/#Batch-pre-signing-URLs-for-AWS-S3-Multipart).
 
-`prepareUploadPart` has been renamed to [`prepareUploadParts`](https://uppy.io/docs/aws-s3-multipart/#prepareUploadParts-file-partData) (plural). See the documentation link on how to use this function.
+`prepareUploadPart` has been renamed to [`prepareUploadParts`](/uppy/docs/aws-s3-multipart/#prepareUploadParts-file-partData) (plural). See the documentation link on how to use this function.
 
 ### Removed the `.run` method from [`@uppy/core`][core]
 
@@ -492,7 +492,7 @@ Since v2, you now need to be running `node.js >= v10.20.1` to use Companion.
 
 ### ProviderOptions
 
-In v2 the `google` and `microsoft` [providerOptions](https://uppy.io/docs/companion/#Options) have been changed to `drive` and `onedrive` respectively.
+In v2 the `google` and `microsoft` [providerOptions](/uppy/docs/companion/#Options) have been changed to `drive` and `onedrive` respectively.
 
 ### OAuth Redirect URIs
 

+ 1 - 1
website/src/docs/redux.md

@@ -30,7 +30,7 @@ const uppy = new Uppy({ store })
 
 Keep in mind that Uppy state is not serializable (because we have to keep track of files with data blobs). So, if you persist your Redux state, you should exclude Uppy state from persistence.
 
-If you’d like to persist your Uppy state — please look into [@uppy/golden-retriever](https://uppy.io/docs/golden-retriever/). It’s a plugin created specifically for saving and restoring Uppy state, including selected files and upload progress.
+If you’d like to persist your Uppy state — please look into [@uppy/golden-retriever](/uppy/docs/golden-retriever/). It’s a plugin created specifically for saving and restoring Uppy state, including selected files and upload progress.
 
 ## Redux Dev Tools
 

+ 1 - 1
website/src/docs/robodog-form.md

@@ -272,4 +272,4 @@ As for the options that are unavailable:
 | `onDisconnect` | Not available, use something like [`is-offline`](https://www.npmjs.com/package/is-offline) |
 | `onReconnect` | Not available, use something like [`is-offline`](https://www.npmjs.com/package/is-offline) |
 
-[transloadit plugin]: https://uppy.io/docs/transloadit/
+[transloadit plugin]: /uppy/docs/transloadit/

+ 1 - 1
website/src/docs/xhr-upload.md

@@ -107,7 +107,7 @@ Send all files in a single multipart request. When `bundle` is set to `true`, [`
 
 ⚠️ Only use `bundle: true` with local uploads (drag-drop, browse, webcam), Uppy won’t be able to bundle remote files (from Google Drive or Instagram), and will throw an error in this case.
 
-> Note: When `bundle` is set to `true`, only [global uppy metadata](https://uppy.io/docs/uppy/#meta), the one set via `meta` options property, is sent to the endpoint. Individual per-file metadata is ignored.
+> Note: When `bundle` is set to `true`, only [global uppy metadata](/uppy/docs/uppy/#meta), the one set via `meta` options property, is sent to the endpoint. Individual per-file metadata is ignored.
 
 All files will be appended to the provided `fieldName` field in the request. To upload files on different fields, use [`uppy.setFileState()`](/docs/uppy#uppy-setFileState-fileID-state) to set the `xhrUpload.fieldName` property on the file: