<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: OlegP</title>
    <description>The latest articles on DEV Community by OlegP (@olegp).</description>
    <link>https://dev.to/olegp</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F773024%2F44a275d1-de05-4bda-a9a2-e85c11fca506.jpeg</url>
      <title>DEV Community: OlegP</title>
      <link>https://dev.to/olegp</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/olegp"/>
    <language>en</language>
    <item>
      <title>Step-by-step mini snippet to set up a blog post SEO</title>
      <dc:creator>OlegP</dc:creator>
      <pubDate>Mon, 03 Jan 2022 11:16:32 +0000</pubDate>
      <link>https://dev.to/olegp/step-by-step-mini-snippet-to-set-up-a-blog-post-seo-2b02</link>
      <guid>https://dev.to/olegp/step-by-step-mini-snippet-to-set-up-a-blog-post-seo-2b02</guid>
      <description>&lt;h2&gt;
  
  
  How to optimize a blog post
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Select the keyword and searcher intent you want for the page. One core keyword = One page. Google rank pages not domains. Use keywords tools: &lt;a href="https://ahrefs.com/"&gt;Ahrefs&lt;/a&gt;, &lt;a href="https://kwfinder.com/"&gt;KW finder&lt;/a&gt;, &lt;a href="https://www.keysearch.co/"&gt;Keysearch&lt;/a&gt;, &lt;a href="https://keywordseverywhere.com/"&gt;Keywordseverywhere&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Optional: find related non-core keywords to write sub-sections.&lt;/li&gt;
&lt;li&gt;Write the content of the page without worrying about optimization. Write for users.&lt;/li&gt;
&lt;li&gt;Optimize page title with the chosen keyword. Use dates, numbers, power words in titles. Use &lt;a href="https://headlines.coschedule.com"&gt;HeadlineStudio&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Optimize URL slug: include keyword, use hyphens, keep it short, max 3 levels of path nesting.&lt;/li&gt;
&lt;li&gt;Optimize meta Description: include keyword, google shows it on the search page, so make it readable and attractive.&lt;/li&gt;
&lt;li&gt;Optimize page content: set up a single H1 tag, include core keyword in the first 100 words, use synonyms and LSI keywords (Latent Semantic Indexing keywords are words that are commonly used within the context of the main topic, e.g. coffee: water, machine, recipe...).&lt;/li&gt;
&lt;li&gt;Structure your document: H1, H2, H3. Make it readable: keep paragraphs short, break up text with images and headings.&lt;/li&gt;
&lt;li&gt;Optimize images filenames and alt attributes: use human-friendly namings.&lt;/li&gt;
&lt;li&gt;Include internal and external links. Your page must be a part of the whole net. Link to already well-ranked pages, competitors, authorities.&lt;/li&gt;
&lt;li&gt;Use semantic markup, use specific HTML tags such as &amp;lt;article&amp;gt;, &amp;lt;p&amp;gt; and others instead of universal one like a &amp;lt;div&amp;gt;.&lt;/li&gt;
&lt;li&gt;Set up robots.txt, sitemap.xml, &lt;a href="https://search.google.com/search-console"&gt;google search console&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Use appropriate microformats and rich snippets. Set up Facebook Open Graph tags and support for Twitter cards.&lt;/li&gt;
&lt;li&gt;Include canonical meta tag: &amp;lt;link rel="canonical" href="https://..." /&amp;gt; and consider to cross-post your content on various platforms.&lt;/li&gt;
&lt;li&gt;Optimize page load speed, make it mobile-friendly and make sure to use https.&lt;/li&gt;
&lt;li&gt;Apply writing tips and tricks: give some value at the very beginning, use "So what?" and "Why should I care?" mindset, use humor, make it controversial, use cliff-hangers, make it personal, end with a call-to-action.&lt;/li&gt;
&lt;/ol&gt;

</description>
      <category>writing</category>
      <category>webdev</category>
      <category>html</category>
    </item>
    <item>
      <title>How to start a blog in a single command?</title>
      <dc:creator>OlegP</dc:creator>
      <pubDate>Fri, 17 Dec 2021 20:42:23 +0000</pubDate>
      <link>https://dev.to/olegp/how-to-start-a-blog-in-a-single-command-e71</link>
      <guid>https://dev.to/olegp/how-to-start-a-blog-in-a-single-command-e71</guid>
      <description>&lt;p&gt;&lt;strong&gt;TL;DR&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;npx create-next-app --example blog-starter-typescript
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://olegpecherin.com/posts/how-to-start-a-blog-in-a-single-command"&gt;Here is mine&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why?&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;to practice writing for the public and putting thoughts on paper&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Writing helps to gather thoughts together, diving deeper into the subject. Even just by starting to write, I can find mistakes and come up with new conclusions. &lt;strong&gt;I believe that writing should be included as the final step in the "Definition of Done"&lt;/strong&gt;.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;to improve the written English&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Do you already watch movies and read articles in English? That's the most obvious way to improve your listening and reading skills. But what about writing? Then probably I should try to write, write and write...&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;to try a tiny-blog approach&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Literally write anything you want. &lt;strong&gt;If you don't know how to create good content, try making a bad one&lt;/strong&gt;.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;to share solutions&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I can find a lot of answers about how to solve various development problems just by googling. Why? Because someone just wrote an article about it.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Or to build community, launch your newsletter, build your own brand...&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Research
&lt;/h2&gt;

&lt;p&gt;There are a lot of ready-to-use solutions to start a blog. Some of them are:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;communities: &lt;a href="https://dev.to/"&gt;dev.to&lt;/a&gt;, &lt;a href="https://hashnode.com/"&gt;hashnode.com&lt;/a&gt;, &lt;a href="https://medium.com/"&gt;medium.com&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;Here your content will be visible to the whole community immediately. Handled and maybe even promoted by the team behind it. And you don't need to install any software.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;ul&gt;
&lt;li&gt;popular CMS (Content Management System) such as &lt;a href="https://wordpress.org/"&gt;wordpress.org&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;It is not just for a blog, but also a popular way to create your own website. Choose your hosting, install the wordpress, pick your design template, and start writing. Or you can even skip the installation process by using ready-to-use hosting solutions such as &lt;a href="https://wordpress.com/create-blog"&gt;wordpress.com&lt;/a&gt;.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;ul&gt;
&lt;li&gt;no-code website builders: &lt;a href="https://wix.com"&gt;wix.com&lt;/a&gt;, &lt;a href="https://tilda.cc"&gt;tilda.cc&lt;/a&gt;...&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;Easy to start without any dev experience. Easy to build your blog alongside other parts of your website.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://jamstack.org/headless-cms/"&gt;headless CMS&lt;/a&gt;, publishing platforms like &lt;a href="https://ghost.org/"&gt;ghost.org&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;Mixed way. There are a lot of built-in integrations with various third-party services out of the box. You can use one of the provided design themes or even set up your own static website while using CMS only as a data-management tool via API. So you will have full control over the visual representation of your site.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://jamstack.org/generators/"&gt;static sites generators&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;Free to change anything. Build anything. Plug-in any analytics, third-party services you want. No dependencies at all. But you have to do a lot of things manually.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;So these are different types of solutions. Each of them has its own pros and cons and the choice really depends on your goals and skills.&lt;/p&gt;

&lt;p&gt;As a developer, to make experiments, to understand how things work under the hood, and to have full control, I chose the static sites option. But in general, &lt;strong&gt;this may not be the best way to start a blog!&lt;/strong&gt; If you are more interested in the content itself and building a community, then another solution is more likely to suit you.&lt;/p&gt;

&lt;p&gt;But keep in mind that your own website gives you a bit more freedom and control. It will stay at any time, can serve you as a playground and your "home" place.&lt;/p&gt;

&lt;p&gt;Another tip could be that it's &lt;strong&gt;not necessary to stick only to a single solution&lt;/strong&gt; or platform, you can have your own self-hosted blog while cross-posting your posts on various websites such as reddit, medium.com and others. Just &lt;strong&gt;do not forget to set up canonical url&lt;/strong&gt; while cross-posting on other platforms.&lt;/p&gt;

&lt;h3&gt;
  
  
  So, what is the static site exactly?
&lt;/h3&gt;

&lt;p&gt;Simply put, it's a bunch of "static" ready-to-read files saved on the server in opposite to the "dynamic" approach when content are generated on the fly dynamically. Static sites have their own pros and cons over dynamic ones such as speed, performance, security, ease of development and deployment. &lt;strong&gt;You don't need to set up a database or a "backend" server&lt;/strong&gt;, so I think this is a perfect choice for a landing page or a blog.&lt;/p&gt;

&lt;p&gt;And again, there are a bunch of static sites generators, just look at this &lt;a href="https://jamstack.org/generators/"&gt;link&lt;/a&gt;. There are literally hundreds of them.&lt;/p&gt;

&lt;p&gt;I was already a little familiar with two popular static sites tools, such as &lt;a href="https://www.gatsbyjs.com/docs/quick-start/"&gt;Gatsby.js&lt;/a&gt; and &lt;a href="https://nextjs.org/docs/getting-started"&gt;Next.js&lt;/a&gt;. But still, I had to do some googling to compare Next.js vs Gatsby.js as a blogging solution, which one is better?&lt;/p&gt;

&lt;p&gt;Personally, I've decided to go with Next.js, due to the following:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Next.js can generate &lt;a href="https://nextjs.org/docs/advanced-features/static-html-export"&gt;static pages&lt;/a&gt;, just like Gatsby.js&lt;/li&gt;
&lt;li&gt;Great support of server-side rendering in Next.js, so it would be easier to migrate to the "dynamic" approach mentioned before&lt;/li&gt;
&lt;li&gt;Gatsby encourages you to use &lt;a href="https://www.gatsbyjs.com/docs/why-gatsby-uses-graphql/"&gt;GraphQL&lt;/a&gt; and this is not my choice for a blog, but it's just a matter of personal preferences.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Solution
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://github.com/vercel/next.js/tree/canary/examples/blog-starter-typescript"&gt;Next.js typescript blog starter!&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The link above is just one of the examples that one can use to start a blog.&lt;br&gt;
&lt;a href="https://nextjs.org/docs/api-reference/create-next-app#options"&gt;Here&lt;/a&gt; you can find more about how to use it.&lt;/p&gt;

&lt;p&gt;So to create this blog I used a simple command:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;npx create-next-app --example blog-starter-typescript
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That's it, that's how &lt;a href="https://olegpecherin.com/posts/how-to-start-a-blog-in-a-single-command"&gt;this first post was born&lt;/a&gt;!&lt;/p&gt;

&lt;h2&gt;
  
  
  Afterwards
&lt;/h2&gt;

&lt;p&gt;I've played a bit with the design by using other sites as references. Mostly it was about typography changes and styling common HTML tags such as &amp;lt;ul&amp;gt;, &amp;lt;table&amp;gt;, &amp;lt;p&amp;gt;... Just try various variants until you are satisfied with the results of HTML appearance.&lt;/p&gt;

&lt;p&gt;Also, to make your blog a little more accessible you can use an appropriate font. You can find many of them on &lt;a href="https://fonts.google.com/"&gt;Google Fonts website&lt;/a&gt;. It's really easy to use by doing so:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;@import url('https://fonts.googleapis.com/css?family=Spectral');

h1 {
  font-family: 'Spectral';
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Personally, on &lt;a href="https://olegpecherin.com"&gt;my blog&lt;/a&gt;, I use the &lt;a href="https://brailleinstitute.org/freefont"&gt;Atkinson Hyperlegible font&lt;/a&gt;. If you would like to find out more about typography I would recommend &lt;a href="https://practicaltypography.com/summary-of-key-rules.html"&gt;practicaltypography.com online book&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Publish
&lt;/h2&gt;

&lt;p&gt;Finally, the blog has been created, the post has been written, there is only one thing left - deploy it to the Internet. And you can even do it without buying a domain at first!&lt;/p&gt;

&lt;p&gt;To deploy static sites, you can use &lt;a href="https://firebase.google.com/docs/hosting/quickstart"&gt;google firebase hosting&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Out of the box it'll give you a third-level domain (subdomain) for your website, e.g. mysuperblog.web.app. Moreover, it provides "https" support for your real domain when you'll be ready to connect it, and it's absolutely free for a small amount of traffic!&lt;/p&gt;

&lt;h2&gt;
  
  
  SEO checklist
&lt;/h2&gt;

&lt;p&gt;The Internet nowadays is literally like a &lt;strong&gt;black hole&lt;/strong&gt;. There are millions of websites. Whether you use a site builder or make your own blog from the scratch it's always a good idea to be sure of SEO (search engine optimization).&lt;/p&gt;

&lt;p&gt;Here is a minimal SEO checklist:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;semantic markup: use specific HTML tags such as &amp;lt;article&amp;gt;, &amp;lt;p&amp;gt; and others instead of universal one like a &amp;lt;div&amp;gt;&lt;/li&gt;
&lt;li&gt;h1, h2, h3: structure your document&lt;/li&gt;
&lt;li&gt;attributes: provide images alt, links titles&lt;/li&gt;
&lt;li&gt;document metadata: set up document's title, description, keywords, Facebook Open Graph tags, support for Twitter cards&lt;/li&gt;
&lt;li&gt;microformats, rich snippets&lt;/li&gt;
&lt;li&gt;internal links, external links: the document must be a part of the whole net&lt;/li&gt;
&lt;li&gt;robots.txt, sitemap.xml, google webmaster usage&lt;/li&gt;
&lt;li&gt;canonical tags: &amp;lt;link rel="canonical" href="https://..." /&amp;gt;&lt;/li&gt;
&lt;li&gt;optimized URLs: include keywords, use hyphens, max 3 levels of path nesting&lt;/li&gt;
&lt;li&gt;optional: use dates, numbers, power words in titles&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>writing</category>
      <category>nextjs</category>
      <category>motivation</category>
      <category>webdev</category>
    </item>
  </channel>
</rss>
