{"id":16475980,"url":"https://github.com/softprops/devtogo","last_synced_at":"2025-10-27T16:31:22.794Z","repository":{"id":56435242,"uuid":"271622643","full_name":"softprops/devtogo","owner":"softprops","description":"👩🏽‍💻🎒 a dev.to tool for the road","archived":false,"fork":false,"pushed_at":"2023-03-04T04:21:07.000Z","size":120,"stargazers_count":1,"open_issues_count":1,"forks_count":3,"subscribers_count":3,"default_branch":"master","last_synced_at":"2024-09-14T10:36:26.292Z","etag":null,"topics":["blogging","devto"],"latest_commit_sha":null,"homepage":null,"language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/softprops.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2020-06-11T18:44:52.000Z","updated_at":"2021-11-28T06:32:01.000Z","dependencies_parsed_at":"2022-08-15T18:40:31.002Z","dependency_job_id":null,"html_url":"https://github.com/softprops/devtogo","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/softprops%2Fdevtogo","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/softprops%2Fdevtogo/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/softprops%2Fdevtogo/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/softprops%2Fdevtogo/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/softprops","download_url":"https://codeload.github.com/softprops/devtogo/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":219861024,"owners_count":16556007,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["blogging","devto"],"created_at":"2024-10-11T12:41:08.382Z","updated_at":"2025-10-27T16:31:22.289Z","avatar_url":"https://github.com/softprops.png","language":"Rust","readme":"\u003cdiv align=\"center\"\u003e\n  👩🏽‍💻🎒\n\u003c/div\u003e\n\n\u003ch1 align=\"center\"\u003e\n  devtogo\n\u003c/h1\u003e\n\n\u003cp align=\"center\"\u003e\n    a \u003ca href=\"https://dev.to/\"\u003edev.to\u003c/a\u003e tool for the road🧳\n\u003c/p\u003e\n\n\u003cdiv align=\"center\"\u003e\n  \u003ca alt=\"GitHub Actions\" href=\"https://github.com/softprops/devtogo/actions\"\u003e\n    \u003cimg src=\"https://github.com/softprops/devtogo/workflows/Main/badge.svg\"/\u003e\n  \u003c/a\u003e\n  \u003ca alt=\"crates.io\" href=\"https://crates.io/crates/devtogo\"\u003e\n    \u003cimg src=\"https://img.shields.io/crates/v/devtogo.svg?logo=rust\"/\u003e\n  \u003c/a\u003e\n  \u003ca alt=\"license\" href=\"LICENSE\"\u003e\n    \u003cimg src=\"https://img.shields.io/badge/license-MIT-brightgreen.svg\"/\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\u003cbr /\u003e\n\n\u003cimg width=\"30px\" src=\"https://cdn.svgporn.com/logos/markdown.svg\"/\u003e devtogo is a cli for publishing offline markdown files to dev.to. \n\n## 💾 install\n\n### 🍻 [Homebrew](https://brew.sh/) (osx)\n\n```sh\n$ brew install softprops/tools/devtogo\n```\n\n### 📦 [Cargo](https://doc.rust-lang.org/cargo/)\n\n```sh\n$ cargo install devtogo\n```\n\n### 🚢 [GitHub Releases](https://help.github.com/github/administering-a-repository/about-releases)\n\nUsing a version from this repo's [GitHub Releases page](https://github.com/softprops/devtogo/releases),\nsubstitute a VERSION below with a valid release version\n\n```sh\n$ cd $HOME/bin\n$ export VERSION=v0.1.0\n$ curl -L \"https://github.com/softprops/devtogo/releases/download/${VERSION}/devtogo-$(uname -s)-$(uname -m).tar.gz\" \\\n  | tar -xz -C ~/bin\n```\n\n## 🤸‍♂️ usage\n\ndevtogo is a cli for publishing offline markdown files to [dev.to](https://dev.to/). These files follow the same formatting rules documented in [dev.to's editor guide](https://dev.to/p/editor_guide).\n\nAt a bare minimum you'll want to declare a **`title`** in a [frontmatter section](https://jekyllrb.com/docs/front-matter/) of your markdown file.\n\n```md\n---\ntitle: my very first post\n---\n\n# hello everybody\n```\n\nTo get started, you will first need to export an **`DEVTO_API_KEY`** environment variable. You can generate yours 👉[here](https://dev.to/settings/account)\n\n```sh\n$ export DEVTO_API_KEY='som3R@ndOmAp1K3y'\n```\n\nThe most basic usage is to run the program inside the directory containing your target article content\n\n```sh\n$ devtogo\n```\n\nThis will scan the current working directory for articles: markdown documents containing frontmatter describing metadata about the article. devtogo uses the **`title`** frontmatter field as a unique identifier to compare existing remote content.\n\nWhen it can't resolve an article by title, it uploads it assuming it's a new article. When it can, it compares local and remote content and uploads local copy if the content of the local copy differs.\n\n\u003e you can use the `published` frontmatter to indicate if and when an article should be published\n\u003e by default articles are saved as drafts only you can see. Setting published to true will publish articles.\n\u003e If you do this by accident you can set `published` back to false to revert a published an article if needed\n\nTo be more explicit you can provide a source argument which provides a path where content\nis stored.\n\n```sh\n$ devtogo --source path/to/content\n```\n\nYou can also experiment without actually posting your content using the `--dryrun` flag. This will perform all operations\nexcept for uploading your content. This may be useful for validating your content.\n\n```sh\n$ devto --dryrun\n```\n\nYou can always review the posts uploaded in [your dev.to dashboard online](https://dev.to/dashboard)\n\nDoug Tangren (softprops) 2020\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsoftprops%2Fdevtogo","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsoftprops%2Fdevtogo","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsoftprops%2Fdevtogo/lists"}