DEV Community

Cover image for How I Write Online Articles
John Papa for Microsoft Azure

Posted on • Edited on • Originally published at johnpapa.net

How I Write Online Articles

Straight to the Point

I like to write, and when I do, I prefer writing in markdown. Lately, people have been asking my writing process involves, so I decided to write it down in this short post. This is my process and in no way should you feel obligated to use it. Hopefully, this helps you.

My Writing Process

All of this assumes I have an idea and I know what I am writing. That in itself is a whole different topic and not covered here. If you want to know how I write, this is the right place to be.

My Goals

I have some primary goals with writing:

  1. Stable Tools: What I write in must be stable (I don't want to have to rewrite it!)
  2. Saving: I want to save my articles, so I can iterate, refer back, and always have it.
  3. Proofing: I want to spell check and grammar check my articles.
  4. Markdown: I prefer writing in markdown
  5. Offline: It must work offline

My Workflow

My workflow is short and hits my main goals. So let's get right to the workflow.

- 1 - VS Code

I use VS Code to write my articles. It has excellent markdown support and is super stable which satisfies two of my goals. Plus, I work in this for my coding all day, so I don't have to switch to another tool.

Here are the VS Code extensions I use:

- 2 - Proofing

I currently use Spell Right (see the link above) for spell checking in my markdown. I then copy and paste the content to a local doc in Grammarly for grammar checking. You can use any grammar checking tools including Microsoft Word.

I find this to be a good step because spell check only catches part of the story. Grammar checking helps to avoid confusing sentences.

- 3 - Push to a Private GitHub Repo

Saving my content and making sure I do not lose it (2 of my goals) are reinforced by creating a GitHub repository for my content. I prefer this to be private as it contains a lot of my writing. I also organize my repository in a way that makes sense to me. I can find my articles quickly, modify them, iterate on them, and move along.

VS Code integrates with GitHub well, and I use this every day for source control. I find comfort staying in my familiar tools to write articles, commit, push, and move along.

Here is an example of my meta in dev.to:

---
title: How I Write Online Articles
published: true
description: How you can write online articles
tags: devrel, vscode, markdown, discuss
cover_image: https://thepracticaldev.s3.amazonaws.com/i/n0ecqvxjrzh9qy6ekfgy.png
canonical_url: https://johnpapa.net/how-i-write-online-articles/
---
Enter fullscreen mode Exit fullscreen mode

- 4 - Copy and Paste to Target Site

The target for my articles could be Ghost (where I host my blog), Medium, dev.to, or any number of platforms. Unfortunately, because they are all different, some support various features, and few have an API, I currently copy and paste. Copy and paste only takes a few moments, so it's not a big deal.

Once I paste into the target platform, I generally find something that looks a little awkward. I make my adjustments in the target platform, test it out in preview (not publishing it), and repeat till it is good.

Then I copy the changes back to my local VS Code editor, commit, and push.

- 5 - Publish on my Blog and then dev.to

I publish my content to my blog first, since it is my blog and I like having a home for all of my content. Then I copy the canonical URL for my blog post and that to the dev.to target in the headers by setting canonical_url. Then I'll publish the same article on dev.to.

Cover Image or SketchNotes

I like to add something visual to my articles. I find visuals in articles to help connect the concepts in my mind. Also, it's fun! There are a lot of ways to get royalty free images. Pexels is one of these.

Often I want a very specific image and it is much easier to draw one. This is where I use my sketchnotes. The sketchnote at the top of this article is what I use to plan out my article.

I'll share more on how and why I use sketchnotes in a future article.

Ideas for the Future

I'd love to have an open API for all writing platforms, especially dev.to. Imagine writing locally in your favorite tools like VS Code, and then pressing a command which publishes the article on dev.to! I'm currently discussing some ideas for how I could write such an extension to publish to dev.to. An extension would require an API from a target platform and a bunch of cool features which I could code in the extension (gist previews using liquid embeds, for example). But ... hey ... it would be a lot of fun and very useful.

The great team at dev.to are considering an API. I imagine it one feature in a long list of great ideas they are prioritizing.

Showing the Read Time

I like to see an estimate of how long the markdown will take to read. This helps me know if I hit the right length for what I am aiming for (whether longer or shorter). Here is a post I wrote about this new extension and a link where you can install it.

You can get Read Time here from the VS Code Marketplace

What Do You Do?

I shared my writing process. I'd love to hear about yours! Is yours different? What do you like about it? What do you wish you could change?

Top comments (59)

Collapse
 
aspittel profile image
Ali Spittel

Wow, our workflow is almost identical! I just always make my cover images in Sketch or Figma, but other than that totally the same setup!

Collapse
 
john_papa profile image
John Papa

Great minds think alike! :)

I haven’t used sketch. I’m mostly a paper and pen person these days - old school

Collapse
 
lankydandev profile image
Dan Newton

Agree with this. Nice to have some self validation that my routine is taken by others 😄

Collapse
 
martinakuzniecowa profile image
martinakuzniecowa

If i wants to send ready article using api directly to the website using nuxtjs, how to do it quickly?

Collapse
 
lauragift21 profile image
Gift Egwuenu

This is a great article! Thanks for writing it. I typically follow the same process as you do. I use VS Code for writing my articles and sometimes use paper by dropbox too. Then I copy to Grammarly to check spelling errors and then push to GitHub. I then publish to my blog and cross post on dev.to! I absolutely love the idea of having an API it'll be really cool to try out. Thanks for sharing the extensions too I've been looking for an extension like Grammarly on VS Code but discovered that does not exist.

Collapse
 
makky_og profile image
Amaks

Hey Gift! Random question: what do you use for the backend of your blog.

I am about to create mine and I have no idea what to use since my stack is frontend.

Collapse
 
lauragift21 profile image
Gift Egwuenu

Hi @Amaks I use Gridsome and it uses GraphQL as the data layer.

Collapse
 
john_papa profile image
John Papa

Thanks! I hope to get some community contributions too on the extension.

Collapse
 
geocine profile image
Aivan Monceller

I recently published a gatsby source for Dev.to API. The idea is , you write your content on Dev.to and it would be posted on your website.

Collapse
 
john_papa profile image
John Papa

Very cool! thanks for sharing

Collapse
 
amejiarosario profile image
Adrian Mejia

@john_papa I thought that summiting the same post on multiple sites would hurt the SEO. So, the canonical_url avoid this issue?

Collapse
 
john_papa profile image
John Papa

Yes. Exactly the idea behind it.

Collapse
 
djangotricks profile image
Aidas Bendoraitis

As I am working from a Mac, I use MacDown for Markdown. I am very happy with it. I usually use the images from unsplash.com with some layouts from canva.com. And I also at first publish it on a personal blog first, and then on dev.to through the RSS feed. For version control and history of the texts, I use Bitbucket and local disk backups.

As for a plugin to direct publish from an editor to the target platform, I think, it is essential before publishing to be able to see the style of your blog post on that platform.

Collapse
 
softchris profile image
Chris Noring

I was using MacDown but I'm all Typora now..

Collapse
 
john_papa profile image
John Papa

Thanks for sharing!

Collapse
 
aaronpowell profile image
Aaron Powell • Edited

I'm similar but I use a static site for my blog so I just write the content in markdown and push it to GitHub when it's ready (generally done on master, but if it's a longer piece or a piece for review I'll use a branch).

I've then connected up dev.to to the RSS feed for my blog so that once a new post is published on my site it appears on dev.to with the canonical URL linking back to my site. I'll then review it on here (since it's parsing the markdown from the rendered HTML) and publish it.

Collapse
 
martinakuzniecowa profile image
martinakuzniecowa

can you you tell me how to this blog -> rss

Collapse
 
aaronpowell profile image
Aaron Powell

I use a static site generator, Hugo, with all the markdown stored in a git repo.

I've just written a blog today about how I do it with GitHub Actions:

Collapse
 
eekayonline profile image
Edwin Klesman

I instantly downloaded the VS Code plugins. Loving it. Thanks for the nice article on your workflow.

Question:

The peacock plugin works only when you're using a workspace, right?
Do you have a dedicated "content writing" workspace? Or do you write alongside the codings stuff that happens to be open?

All the best John 🙌🏻

Collapse
 
john_papa profile image
John Papa

Yes - Peacock needs a workspace. I have a github repo of my articles, so that is the workspace that i use for writing

Collapse
 
eekayonline profile image
Edwin Klesman

Awesome. btw: i used Pexels too, now I'm into Pixelmob.co: it is an "umbrella search page" that searches for images in multiple free image repos (i believe it searches through Pexels, too). Very nice.

Thanks for your reply!

Collapse
 
amansubhan profile image
Aman Subhan

I like the workflow you use. Surely i will adapt your way of writing too 😊

Collapse
 
john_papa profile image
John Papa

😊choose your own adventure- there are many ways to write!

Collapse
 
amansubhan profile image
Aman Subhan

Sure, thanks for the push!

Collapse
 
chiangs profile image
Stephen Chiang • Edited

I use Notion and Figma, sometimes Lightroom. Notion is great for markdown and spell check..you can lock the note, etc. I was using VS Code before, but switched when I started using Notion to manage projects, schedules, work outs, meeting notes, etc. so it seemed the logical place to put writing in as it's always on either my PC or phone.

I haven't had to use until just today, but it also tracks page versions so that you can go back in time and restore it if you accidentally delete something and close the page. Saving happens automatically too!

Collapse
 
john_papa profile image
John Papa

Very cool! thanks for sharing

Collapse
 
wesgrimes profile image
Wes

We share a very similar work flow for writing articles. Nice job documenting this for others!

Collapse
 
john_papa profile image
John Papa

Very cool! Thanks for reading this!

Some comments may only be visible to logged-in visitors. Sign in to view all comments.