Skip to content

Commit

Permalink
Add blog (#40)
Browse files Browse the repository at this point in the history
Co-authored-by: Antoine du Hamel <[email protected]>
  • Loading branch information
arturi and aduh95 authored Mar 16, 2023
1 parent 87496a7 commit a14bd59
Show file tree
Hide file tree
Showing 298 changed files with 9,805 additions and 168 deletions.
11 changes: 11 additions & 0 deletions .eslintignore
Original file line number Diff line number Diff line change
Expand Up @@ -5,3 +5,14 @@
/build

/docs/quick-start.mdx

# Blog

blog/201*.md
blog/2020-*.md
blog/2021-01-*.md
blog/2021-02-*.md
blog/2021-03-*.md
blog/2021-04-*.md
blog/2021-05-*.md
blog/2021-06-*.md
3 changes: 3 additions & 0 deletions .remarkignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
blog/201*
blog/2020-*
blog/2021-0*
10 changes: 9 additions & 1 deletion .remarkrc.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,14 @@ const retextPreset = [
unified()
.use(retextEnglish)
.use(retextEquality, {
ignore: ['disabled', 'host', 'hosts', 'invalid', 'whitespace'],
ignore: [
'disabled',
'host',
'hosts',
'invalid',
'whitespace',
'of course',
],
})
.use(retextProfanities, { sureness: 1 })
.use(retextQuotes)
Expand Down Expand Up @@ -68,6 +75,7 @@ const retextPreset = [
'submit',
'type',
'validate',
'however',
],
})
.use(retextSyntaxMentions),
Expand Down
20 changes: 20 additions & 0 deletions add-slug-to-blog-posts.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
// Adds `slug: '{filename-without-extension}'` to all blog posts in /blog

import globby from 'globby';
import { basename } from 'path';
import { readFile, writeFile } from 'node:fs/promises';

const paths = await globby('./blog/*.md');

for (const path in paths) {
const file = await readFile(paths[path], { encoding: 'utf-8' });

let slug = basename(paths[path], '.md').replace(/-/g, '/');
console.log(slug);

const fileWithSlug = file.replace(/\n---/, `\nslug: "${slug}"\n---`);
console.log(fileWithSlug);
await writeFile(paths[path], fileWithSlug, { encoding: 'utf-8' });
}

// console.log(paths)
96 changes: 96 additions & 0 deletions blog/2016-06-uppy-begins.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,96 @@
---
title: 'Uppy: let’s teach an old dog some new tricks'
date: 2016-07-15
authors: ['arturi']
slug: '2016/06/uppy/begins'
---

For the past six months, we have been working hard on uppy.io. We feel that it
is high time we gave you a look behind the scenes: what are we working on, and
why.

<img src="/img/blog/uppy-begins/uppy-dashboard.jpg" />

The way uploading works has not changed in a meaningful way since the days of
our trusty old 56 kbit/s modems. Of course, files have gotten bigger and speeds
have increased, but that is more or less all there is to say. If it were up to
us – and we hope it is – that is all about to change.

We at [Transloadit](https://transloadit.com/) are on a mission to change the way
the world does uploading. To accomplish this, our first step has been to develop
an open protocol for resumable file uploads, called [‘tus’](http://tus.io/).
Finally, that 2GB video upload from your smartphone doesn’t have to start over
when your train passes through a tunnel! The protocol got
[Hacker News excited](https://news.ycombinator.com/item?id=10591348) on several
occasions and is being deployed by, among others, our friends at Vimeo. Now that
a stable version 1.0 of ‘tus’ has been released, it is time to put it to the
test. A protocol without real-world applications is nothing more than a
meaningless document, after all.

We are therefore excited to tell you about Uppy: the file uploader that will
certainly fetch more than just your newspaper.

<!--truncate-->

## Why the need for another file uploader?

It is true, there are indeed already a good few file uploading solutions out
there ([Dropzone](http://www.dropzonejs.com/), for instance, is quite good). And
– for the most part – they do their job. Nevertheless, they are quite limited in
their functionality:

- You can drag and drop files from local disk, but uploaders that supports
Instagram, Dropbox or Google Drive are scarce. The ones out there lock you in
with vendors and are hard to customize for own use.

- File uploaders are seldom mindful of the existence of encoding and processing
backends, while the reality is that files often require some form of
processing and that the end user would like to receive progress updates with
regard to that.

- None of the currently available file uploaders make use of the standardized
resumability that ‘tus’ provides, which makes them less than ideal for
handling larger files.

- Lastly, we feel that the current solutions are sometimes dropping the ball
when it comes to a polished user experience. We aim to fix that.

All in all, we think there is definitely some ‘trouble at the old mill’ here and
it’s time to let Uppy take care of that!

## Our plans for Uppy

Uppy will be a JavaScript file uploader that allows you to fetch files, not only
from your local disk, but also from places like Dropbox, Instagram, Google
Drive, webcams and remote URLs. It will have a modular, plugin-based design,
making it lightweight and customizable.

Cute on the outside, the core of Uppy is very robust – thanks to resumability
through 'tus'. We are confident that Uppy will be able to send even the biggest
of files over the smallest of tubes.

Uppy will also offer first class support for accessing Transloadit’s uploading
and encoding backend, making it incredibly versatile. Of course, these are all
ultimately just plugins, and Uppy can just as easily be used with your own
backend – meaning no need to pay any subscription fees.

We are intent on making the user experience as smooth and satisfying as
possible, in terms of both functionality and visual design. Uppy will have a
beautiful, themeable UI and it will look – and work – great on mobile platforms
as well. While we hope that advanced users will love the customizable nature of
Uppy, an ample selection of presets will also be there to make sure that novice
users are not going to be lost in the woods.

Lastly, and this is a point of special significance to us, Uppy will be
completely open source. When Uppy is finished, you will be free to use it for
whatever you like. Until that time, we very much welcome your ideas and
contributions. There are still a lot of decisions to be made and this is the
perfect time to come and influence the end product.

We are going to work hard on bringing you the best file uploader possible and
we’ll keep you informed about the development process on
[uppy.io](http://uppy.io/). We can’t wait for you to meet Uppy!

> We were on the [Hacker News](https://news.ycombinator.com/item?id=12109410)
> and [Product Hunt](https://www.producthunt.com/posts/uppy) frontpages.
> Comments welcome there.
137 changes: 137 additions & 0 deletions blog/2016-08-0.8.0.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,137 @@
---
title: 'Uppy version 0.8 released: The Webcam Edition and Meta Data'
date: 2016-08-17
authors: ['arturi']
published: true
slug: '2016/08/0.8.0'
---

We have just released Uppy 0.8.0 and we can't wait to tell you more about it.
Along with various under-the-hood improvements, this release also contains some
very visible upgrades. You can read below for further details.

## Including Meta Data

While fetching your files, Uppy is now also able to supply some custom metadata
to go along with them. So far, there are three components in place for that:
Core API (`core:update-meta` event), `MetaData` plugin, and a new panel in
Dashboard UI called File Card, which looks like this:

<img alt="metadata dashboard UI, editing file name, future size and adding description" src="/img/blog/0.8/metadata-dashboard.jpg" className="border" />

<!--truncate-->

To summon this panel, all you have to do is click the edit button on the
Dashboard:

<img alt="metadata dashboard UI, editing file name, future size and adding description" src="/img/blog/0.8/uppy-dashboard-ui.jpg" className="border" />

By default, the only active metadata field is `Name`. However, if you want to
add other fields you can utilize our new and easy to use `MetaData` plugin:

```javascript
const uppy = new Uppy().use(Dashboard).use(MetaData, {
fields: [
{
id: 'resizeTo',
name: 'Resize to',
value: 1200,
placeholder: 'specify future image size',
},
{
id: 'description',
name: 'Description',
value: '',
placeholder: 'describe what the file is for',
},
],
});
```

And just like that, we have added two fields: `Resize` and `Description`. All
metadata is sent along with both [tus](http://tus.io) and multipart uploads.

## Webcam Support

We have also added a basic `Webcam` plugin, which allows you to acquire images
directly from your own webcam. This is still a work in progress and we will be
improving it in the next release.

## Mime Types and File Icons

Uppy now includes a [mime-type](https://www.npmjs.com/package/mime-types)
library that helps us figure out file types by extension.

Having proper file types also means that we need the right corresponding file
icons for the Dashboard UI. We have already added a few and we will soon supply
more icons for audio, video, text, PDF and other common file types.

## Previously on Uppy: File Previews, Remote File Handling, Accessibility and Acceptance Tests Stats

We thought it might be worth taking a moment to list a few highlights from the
previous versions as well:

- If a file you selected is an image, its preview thumbnail data URL will be
generated and added to `file.preview` in Uppy’s state. This URL can be used
later to render a preview with any plugin. Currently, this is done by the
mighty Dashboard.
- It is now also possible to select remote files in Uppy. Simply double-click a
file from, for instance, Google Drive, and Uppy will then show it in a preview
area.
- We have been doing some more work on accessibility: from now on, when you
switch tabs in Modal, it will focus on the first input in that tab. We have
also added proper labels and titles, and are doing more research in this area.
- Everybody likes to see stats. That is why, on our website, you can now
[view stats](http://uppy.io/stats) that show how acceptance tests are
performing in various browsers. If a test is successful, that means Uppy will
likely be able to load and upload files in that particular browser.
- The Dashboard UI is now way better looking and easier to work with. It
replaced the old `Modal` plugin and it can accept files via drag & drop, local
disk and paste (experimental, WIP). It has become our main source of truth and
the basic acquire plugin for local files. The DragDrop plugin is still
available as a lighter alternative.

## Release Notes

Here is the full list of changes for version 0.8.0.

- core: fix bug: no meta information from uppy-server files
([@hedgerh](https://github.com/hedgerh))
- core: fix bug: uppy-server file is treated as local and directly uploaded
([@hedgerh](https://github.com/hedgerh))
- uppy-server: hammering out websockets/oauth
([@hedgerh](https://github.com/hedgerh),
[@acconut](https://github.com/acconut))
- debugger: introduce MagicLog as a way to debug state changes in Uppy
([@arturi](https://github.com/arturi))
- modifier: A MetaData plugin to supply meta data (like width, tag, filename,
user_id) ([@arturi](https://github.com/arturi))
- modifier: pass custom metadata with non-tus-upload. Maybe mimic meta behavior
of tus here, too ([@arturi](https://github.com/arturi))
- modifier: pass custom metadata with tus-upload with tus-js-client
([@arturi](https://github.com/arturi))
- webcam: initial version: webcam light goes on
([@hedgerh](https://github.com/hedgerh))
- progress: better icons, styles ([@arturi](https://github.com/arturi))
- core: better mime/type detection (via mime + extension)
([@arturi](https://github.com/arturi))
- core: add deep-freeze to getState so that we are sure we are not mutating
state accidentally ([@arturi](https://github.com/arturi))
- meta: release “Uppy Begins” post ([@arturi](https://github.com/arturi)
[@kvz](https://github.com/kvz))
- meta: better readme on GitHub and NPM ([@arturi](https://github.com/arturi))
- test: add pre-commit & lint-staged ([@arturi](https://github.com/arturi))
- test: add next-update <https://www.npmjs.com/package/next-update> to check if
packages we use can be safely updated ([@arturi](https://github.com/arturi))
- website: blog polish — add post authors and their gravatars
([@arturi](https://github.com/arturi))
- dashboard: UI revamp, more prototypes, background image, make dashboard nicer
([@arturi](https://github.com/arturi))
- dashboard: try a workflow where import from external service slides over and
takes up the whole dashboard screen ([@arturi](https://github.com/arturi))
- modal: merge modal and dashboard ([@arturi](https://github.com/arturi))

We hope you will enjoy this latest release. Uppy is still improving every day
and we hope to bring you more news about our progress soon!

The Uppy Team
Loading

0 comments on commit a14bd59

Please sign in to comment.