# Dev.to

> Publish articles to Dev.to, with a title, tags, a cover and a canonical link.

Dev.to has no sign-in for apps. You generate an API key on Dev.to and paste it into Orbitwrite; the account it
belongs to becomes the channel.

## Connect

1. On Dev.to, open **Settings → Extensions** and find **DEV Community API Keys**. Give the key a description, such as
   Orbitwrite, and generate it.
2. In Orbitwrite, choose **Dev.to** under **Settings → Channels → Connect** and paste the key.

The key is stored encrypted. Orbitwrite uses it to check whose account it is when you connect, to list your
organizations in the composer, and to publish. Revoke it on Dev.to at any time; the channel then asks to be
reconnected with a new key.

## What you can post

An **article**. The post's text is the article's body, in Markdown: headings, code blocks, links and images all work
as they do in Dev.to's editor.

Write the article in the Dev.to channel's own copy and keep the short version for your other channels: see
[Cross-posting](https://orbitwrite.com/docs/guides/composer/cross-posting).

## Writing the article

A Dev.to channel's row in the composer has a formatting toolbar above the body, like Dev.to's own editor. Each button
writes Markdown around what you have selected, or at the cursor:

- **Heading**, **Bold** (⌘B), **Italic** (⌘I), **Strikethrough**, **Link** (⌘K), **Quote**, **Inline code** (⌘E),
  **Bulleted list** and **Numbered list**. Press Heading or a list button again on the same lines to take the mark off.
- **Code block** opens a fenced block, or fences what you selected. Type a language after the opening backticks
  (` ```ts `) and Dev.to highlights it.
- **Divider** puts a rule on its own line.
- **Embed a link** writes `{% embed url %}`, the Liquid tag Dev.to turns into a card for a YouTube video, a GitHub
  repository, a tweet, a CodePen and the rest. Replace `url` with the link.
- **Insert an image** uploads a picture to your workspace's media and writes `![alt](url)` where the cursor is.
  Edit the alt text in place. Pasting an image into the body, or dropping one anywhere on the row except the cover
  slot, does the same.

The preview on the right renders the Markdown the way Dev.to's article page will.

### Cover image

The slot above the body is the article's **cover**, shown at the top of the article and in Dev.to's feed. Dev.to
displays it at 1000 × 420, so a wide image works best. It is the row's one attachment: images that belong in the
article go in through the toolbar, not the slot.

Over the API, the first entry in `mediaIds` is the cover, and an inline image is any public URL in the body's
Markdown, such as one you uploaded through `/media`.

## Options

- **Title**: every article needs one. Leave it blank and the first line of the article is the title (a leading `#`
  is fine), and it leaves the body.
- **Tags**, up to four, letters and numbers only.
- **Canonical URL**: if the article was first published on your own site, its URL. Dev.to credits the original and
  search engines treat it as the source.
- **Series**: Dev.to links the articles in a series. A new name starts one.
- **Publish as**: your own profile, or an organization you belong to. Dev.to lists an organization once you have
  published under it there.
- **Summary**: the description Dev.to shows in previews and search results.
- **AI disclosure**: Dev.to's label for how much of the article AI wrote.

## Deleting

Dev.to's API can't delete an article. Deleting a published post from its network **unpublishes** it instead: it
leaves the feed and goes back to your drafts on Dev.to.

## Limits

| Limit                     | Value                |
| ------------------------- | -------------------- |
| Text                      | 100,000 characters   |
| Threads                   | No                   |
| Attachments               | Up to 1 per post     |
| Images                    | Up to 9.5 MB         |
| Aspect ratio              | from null            |
| GIF search                | No                   |
| File types                | jpeg, png, gif, webp |
| Polls                     | No                   |
| Quote posts               | No                   |
| Reply to an existing post | No                   |
| Link previews             | No                   |
| Auto-engagement           | No                   |
| AI-generated label        | No                   |

## Good to know

Dev.to accepts an article's text and refuses a canonical URL that another published article already carries.
