<commit_before>---
title: "Uppy 0.30: Introducing Robodog"
date: 2019-03-06
author: renee
image: "https://uppy.io/images/blog/0.30/robodog-assemble.jpg"
published: true
---

In `0.30` we are introducing a new friend for Uppy — the Robodog.

<img src="/images/blog/0.30/robodog-assemble.jpg">
<small>Robodog: easy to assemble</small>

<!--more-->

## 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 3 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.

<img src="https://media.giphy.com/media/Eq7T3GwDAlggE/giphy.gif">

Here’s a demo:

<div class="wide">
  <p class="codepen" data-height="600" data-theme-id="light" data-default-tab="js,result" data-user="uppy" data-slug-hash="gEgPav" style="height: 600px; box-sizing: border-box; display: flex; align-items: center; justify-content: center; border: 2px solid black; margin: 1em 0; padding: 1em;" data-pen-title="Robodog: resizing and optimizng your avatar">
    <span>See the Pen <a href="https://codepen.io/uppy/pen/gEgPav/">
    Robodog: resizing and optimizng your avatar</a> by Uppy File Uploader (<a href="https://codepen.io/uppy">@uppy</a>)
    on <a href="https://codepen.io">CodePen</a>.</span>
  </p>
  <script async src="https://static.codepen.io/assets/embed/ei.js"></script>
</div>


You can install Robodog from NPM:

```shell
npm install --save @uppy/robodog
```

Or import it using an HTML script tag:

```html
<link rel="stylesheet" href="https://transloadit.edgly.net/releases/uppy/v0.30.3/robodog.min.css">
<script src="https://transloadit.edgly.net/releases/uppy/v0.30.3/robodog.min.js"></script>
```

<img src="https://media.giphy.com/media/MqGA1Za9ar6lG/giphy.gif">

## Dashboard Improvements

As usual, we are iterating and impoving the Dashboard plugin. The accessibility has been improved, along with icons, bredcrumbs in remote providers, the issue with `browserBackButton` and multiple modals, and more.

## Progress or no progress
<commit_msg>ues <figure> in the post<commit_after>---
title: "Uppy 0.30: Introducing Robodog"
date: 2019-03-06
author: renee
image: "https://uppy.io/images/blog/0.30/robodog-assemble.jpg"
published: true
---

In `0.30` we are introducing a new friend for Uppy — the Robodog.

<img src="/images/blog/0.30/robodog-assemble.jpg">
<small>Robodog: easy to assemble</small>

<!--more-->

## 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 3 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.

<img src="https://media.giphy.com/media/Eq7T3GwDAlggE/giphy.gif">

Here’s a demo:

<figure class="wide">
  <p class="codepen" data-height="600" data-theme-id="light" data-default-tab="js,result" data-user="uppy" data-slug-hash="gEgPav" style="height: 600px; width: 100%; box-sizing: border-box; display: flex; align-items: center; justify-content: center; border: 2px solid black; margin: 1em 0; padding: 1em;" data-pen-title="Robodog: resizing and optimizng your avatar">
    <span>See the Pen <a href="https://codepen.io/uppy/pen/gEgPav/">
    Robodog: resizing and optimizng your avatar</a> by Uppy File Uploader (<a href="https://codepen.io/uppy">@uppy</a>)
    on <a href="https://codepen.io">CodePen</a>.</span>
  </p>
  <script async src="https://static.codepen.io/assets/embed/ei.js"></script>
</figure>


You can install Robodog from NPM:

```shell
npm install --save @uppy/robodog
```

Or import it using an HTML script tag:

```html
<link rel="stylesheet" href="https://transloadit.edgly.net/releases/uppy/v0.30.3/robodog.min.css">
<script src="https://transloadit.edgly.net/releases/uppy/v0.30.3/robodog.min.js"></script>
```

<img src="https://media.giphy.com/media/MqGA1Za9ar6lG/giphy.gif">

## Dashboard Improvements

As usual, we are iterating and impoving the Dashboard plugin. The accessibility has been improved, along with icons, bredcrumbs in remote providers, the issue with `browserBackButton` and multiple modals, and more.

## Progress or no progress

{'fraction_non_alphanumeric': 0.13422027618726845, 'fraction_numerical': 0.01633546648703267, 'mean_word_length': 4.650808753568031, 'pattern_counts': {'":': 0, '<': 50, '<?xml version=': 0, '>': 50, 'https://': 28, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '910637', 'n_tokens_mistral': 2066, 'n_tokens_neox': 1968, 'n_words': 628}