<?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: Milind Singh</title>
    <description>The latest articles on DEV Community by Milind Singh (@milindsingh).</description>
    <link>https://dev.to/milindsingh</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%2F256394%2F9fa20433-eb4b-471e-948b-b23b5ebc1cf4.jpg</url>
      <title>DEV Community: Milind Singh</title>
      <link>https://dev.to/milindsingh</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/milindsingh"/>
    <language>en</language>
    <item>
      <title>Search for CMS!</title>
      <dc:creator>Milind Singh</dc:creator>
      <pubDate>Tue, 22 Jun 2021 15:06:53 +0000</pubDate>
      <link>https://dev.to/milindsingh/search-for-cms-b0f</link>
      <guid>https://dev.to/milindsingh/search-for-cms-b0f</guid>
      <description>&lt;p&gt;I need a (open-source, free) CMS with rich  features to manage large scale 1000-10K images/digital arts.&lt;br&gt;
I tried Strapi, Prismic, GraphCMS, and  few others but none have folder wise media management like in a DAM (Digital Assets Management) Tool.&lt;/p&gt;

&lt;p&gt;Can anyone suggest any CMS they already used or know about ?&lt;/p&gt;

</description>
      <category>opensource</category>
      <category>css</category>
      <category>help</category>
      <category>dam</category>
    </item>
    <item>
      <title>Automating code quality check using GrumPHP in Magento 2</title>
      <dc:creator>Milind Singh</dc:creator>
      <pubDate>Sun, 11 Apr 2021 11:11:14 +0000</pubDate>
      <link>https://dev.to/milindsingh/automating-code-quality-check-using-grumphp-in-magento-2-232m</link>
      <guid>https://dev.to/milindsingh/automating-code-quality-check-using-grumphp-in-magento-2-232m</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;TLDR; this article is a tutorial setting up GrumPHP task runner for quality checks in Magento 2. An earlier video tutorial and presentation by me is already there.&lt;br&gt;
Check out: &lt;a href="https://youtu.be/tq-DPi9wMss"&gt;https://youtu.be/tq-DPi9wMss&lt;/a&gt; and the presentation &lt;a href="https://slides.com/milindsingh/virtual-magento-meetup/"&gt;https://slides.com/milindsingh/virtual-magento-meetup/&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;h2&gt;
  
  
  why automate?
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;developers are (a little) lazy 

&lt;ul&gt;
&lt;li&gt;running 6-7 tools manually is what I will try to skip few times ( and expect it would pass in deployment pipelines )&lt;/li&gt;
&lt;li&gt;we are overburdened (most of the times)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;development &lt;a href="https://github.com/features/actions"&gt;pipelines&lt;/a&gt; will fail 

&lt;ul&gt;
&lt;li&gt;suppose we miss a space at the end of the file, and &lt;a href="https://github.com/squizlabs/PHP_CodeSniffer"&gt;phpcs&lt;/a&gt; fails while running the automated pipelines on pull request merge.&lt;/li&gt;
&lt;li&gt;fix the change and again push just to add a simple line at the end of the file (time taking)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;automation can be enforced

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/phpro/grumphp"&gt;grumphp&lt;/a&gt; can be configured to listen to git commit commands and will not allow until all quality checks passed.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;


&lt;/li&gt;
&lt;li&gt;

&lt;h2&gt;
  
  
  what to automate?
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;PHP Code Sniffer 

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/squizlabs/PHP_CodeSniffer"&gt;https://github.com/squizlabs/PHP_CodeSniffer&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/magento/magento-coding-standard"&gt;https://github.com/magento/magento-coding-standard&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;tokenizes PHP, JavaScript and CSS files to detect violations of a defined coding standard&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;PHP Code Beautifier

&lt;ul&gt;
&lt;li&gt; automatically correct coding standard violations&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;PHP  Coding Standards Fixer

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/FriendsOfPHP/PHP-CS-Fixer"&gt;https://github.com/FriendsOfPHP/PHP-CS-Fixer&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;automatically correct coding standard violations (more rules available, not needed to validate)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;PHP Mess Detector 

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://phpmd.org/"&gt;https://phpmd.org/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;auto-detects cyclomatic complex in the code&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;PHP Stan

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/phpstan/phpstan"&gt;https://github.com/phpstan/phpstan&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://devdocs.magento.com/guides/v2.4/test/testing.html"&gt;https://devdocs.magento.com/guides/v2.4/test/testing.html&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Keywords

&lt;ul&gt;
&lt;li&gt;print_r("test")&lt;/li&gt;
&lt;li&gt;die("hi")&lt;/li&gt;
&lt;li&gt;ObjectManager::getInstance()&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Custom

&lt;ul&gt;
&lt;li&gt;Create your own automation!&lt;/li&gt;
&lt;li&gt;You can check out a small task created by me to validate swagger documentation before every commit. &lt;a href="https://github.com/milindsingh/grumphp-swagger"&gt;https://github.com/milindsingh/grumphp-swagger&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;


&lt;/li&gt;
&lt;li&gt;&lt;h2&gt;
&lt;br&gt;
  &lt;br&gt;
  &lt;br&gt;
  how to automate?&lt;br&gt;
&lt;/h2&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;- ### GrumPHP

    GrumPHP has a set of common tasks built-in.

    GrumPHP will run some tests on the committed code. If the tests fail, you won't be able to commit your changes.

    This handy tool will not only improve your codebase, it will also teach your co-workers to write better code following the best practices you've determined as a team.

- ### Installation
    Install GrumPHP by running
    + `composer require --dev phpro/grumphp` (in current project only) or,
    + `composer global require --dev phpro/grumphp` (globally recommended)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;h3&gt;
  
  
  Dependencies
&lt;/h3&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;+ #### PHPCS: 

    - Install PHP CodeSniffer (skip if already installed) : 

        + `composer global require --dev "squizlabs/php_codesniffer=*"` (globally recommended)
        +  `composer require --dev "squizlabs/php_codesniffer=*"` (at project level, need to add `project-root/vendor/bin` to PATH for direct cli use)

   - Goto Magento2 root run following commands to install Magento2 coding standard :

       `composer require --dev magento/magento-coding-standard`

   - Set Magento2 Standard in PHP CodeSniffer available standards:

       `phpcs --config-set installed_paths ../../magento/magento-coding-standard/`
&lt;/code&gt;&lt;/pre&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;h4&gt;
  
  
  &lt;a href="https://github.com/FriendsOfPHP/PHP-CS-Fixer"&gt;PHPCS Fixer 2&lt;/a&gt;
&lt;/h4&gt;

&lt;p&gt;Install PHP Coding Standards Fixer (skip if already installed) :&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;composer global require --dev friendsofphp/php-cs-fixer&lt;/code&gt; (globally recommended)&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;composer require --dev friendsofphp/php-cs-fixer&lt;/code&gt; (at project level, need to add &lt;code&gt;project-root/vendor/bin&lt;/code&gt; to PATH for direct cli use)

&lt;ul&gt;
&lt;li&gt;#### &lt;a href="https://phpstan.org/user-guide/getting-started"&gt;PHPStan&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;composer global require --dev phpstan/phpstan&lt;/code&gt; (globally recommended)&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;composer require --dev phpstan/phpstan&lt;/code&gt; (at project level, need to add &lt;code&gt;project-root/vendor/bin&lt;/code&gt; to PATH for direct cli use)&lt;/li&gt;
&lt;li&gt;####  &lt;a href="https://phpmd.org/download/"&gt;PHPMD&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;composer global require --dev phpmd/phpmd&lt;/code&gt; (globally recommended)&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;composer require --dev phpmd/phpmd&lt;/code&gt; (at project level, need to add &lt;code&gt;project-root/vendor/bin&lt;/code&gt; to PATH for direct cli use)&lt;/li&gt;
&lt;li&gt;####  &lt;a href="https://github.com/php-parallel-lint/PHP-Parallel-Lint/"&gt;PHPLint&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;composer global require --dev php-parallel-lint/php-parallel-lint&lt;/code&gt; (globally recommended)&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;composer require --dev php-parallel-lint/php-parallel-lint&lt;/code&gt; (at project level, need to add &lt;code&gt;project-root/vendor/bin&lt;/code&gt; to PATH for direct cli use)&lt;/li&gt;
&lt;li&gt;### Setup&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;GrumPHP can monitor each git repository push action by initializing it in the repository. GrumPHP can be configured at 2 levels:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;h4&gt;
  
  
  Project Level Setup
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Goto the &lt;code&gt;magento-2-root&lt;/code&gt;  and run: 

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;php vendor/bin/grumphp git:init&lt;/code&gt; or &lt;code&gt;grumphp git:init&lt;/code&gt; (recommended)&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;li&gt;Create a &lt;a href="https://github.com/milindsingh/magento2-grumphp/blob/master/project/grumphp.yml"&gt;grumphp.yml&lt;/a&gt; file in &lt;code&gt;magento-2-root&lt;/code&gt; and copy all content as below code. &lt;/li&gt;
&lt;li&gt;Though GrumPHP auto detect &lt;code&gt;git commit&lt;/code&gt; command but you can manually test by running &lt;code&gt;php vendor/bin/grumphp&lt;/code&gt; run or &lt;code&gt;grumphp run&lt;/code&gt; inside in &lt;code&gt;magento-2-root&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://github.com/milindsingh/magento2-grumphp/blob/master/project/grumphp.yml#L1-L135"&gt;@external:code:github&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;h4&gt;
  
  
  Module Level Setup
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Goto the module directory i.e. &lt;code&gt;magento-2-root/app/code/MyVendor/MyModule&lt;/code&gt; and run: &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;php vendor/bin/grumphp git:init&lt;/code&gt; or &lt;code&gt;grumphp git:init&lt;/code&gt; (recommended)&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Create a &lt;a href="https://github.com/milindsingh/magento2-grumphp/blob/master/module/grumphp.yml"&gt;grumphp.yml&lt;/a&gt; file in &lt;code&gt;magento-2-root/app/code/MyVendor/MyModule&lt;/code&gt; and copy all content as below code. &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Add bin path &lt;code&gt;magento2-root/vendor/bin&lt;/code&gt; to your module &lt;code&gt;composer.json&lt;/code&gt;. Refer to &lt;a href="https://github.com/milindsingh/magento2-grumphp/blob/master/module/composer.json.sample"&gt;composer.json.sample&lt;/a&gt;.&lt;br&gt;&lt;br&gt;
&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"config"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
            &lt;/span&gt;&lt;span class="nl"&gt;"bin-dir"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"../../../../vendor/bin"&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;



&lt;ul&gt;
&lt;li&gt;Same as project level setup, GrumPHP auto detect &lt;code&gt;git commit&lt;/code&gt; command but you can manually test by running &lt;code&gt;php ../../../../vendor/bin/grumphp&lt;/code&gt; run or &lt;code&gt;grumphp run&lt;/code&gt; inside module.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://github.com/milindsingh/magento2-grumphp/blob/master/module/grumphp.yml#L1-L136"&gt;@external:code:github&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;### References&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.integer-net.com/magento-2-automatic-code-quality-check-with-grumphp/"&gt;https://www.integer-net.com/magento-2-automatic-code-quality-check-with-grumphp/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/phpro/grumphp/blob/master/doc/tasks.md"&gt;https://github.com/phpro/grumphp/blob/master/doc/tasks.md&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://devdocs.magento.com/guides/v2.4/test/testing.html"&gt;https://devdocs.magento.com/guides/v2.4/test/testing.html&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/milindsingh/magento2-grumphp"&gt;https://github.com/milindsingh/magento2-grumphp&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/milindsingh/grumphp-swagger"&gt;https://github.com/milindsingh/grumphp-swagger&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>magento2</category>
      <category>grumphp</category>
      <category>phpcs</category>
    </item>
    <item>
      <title>adapttive.com - a blog built with Strapi and Gridsome</title>
      <dc:creator>Milind Singh</dc:creator>
      <pubDate>Wed, 06 Jan 2021 19:52:57 +0000</pubDate>
      <link>https://dev.to/milindsingh/adapttive-com-a-dedicated-developer-blog-1ck4</link>
      <guid>https://dev.to/milindsingh/adapttive-com-a-dedicated-developer-blog-1ck4</guid>
      <description>&lt;h3&gt;
  
  
  What I built
&lt;/h3&gt;

&lt;p&gt;I created a Gatsby app in 2019 to build my blog personal blog but couldn't move any further than the below-landing page.&lt;br&gt;
In Dec 2020, &lt;strong&gt;Digital Ocean Dev Hackathon&lt;/strong&gt; inspired me to restart my personal blog and I almost completed it.&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Ky9OCCHh--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/g55cg956ar8atkk5fwf2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Ky9OCCHh--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/g55cg956ar8atkk5fwf2.png" alt="Started with Page"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  Category Submission:
&lt;/h4&gt;

&lt;p&gt;Personal Site/Portfolio&lt;/p&gt;

&lt;h4&gt;
  
  
  App Link
&lt;/h4&gt;

&lt;p&gt;&lt;a href="https://adapttive.com"&gt;https://adapttive.com&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  Screenshots
&lt;/h4&gt;

&lt;h5&gt;
  
  
  My Profile
&lt;/h5&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Uy1FPWPY--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/7j2rtwoi4kap5fkzt3kx.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Uy1FPWPY--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/7j2rtwoi4kap5fkzt3kx.png" alt="My Profile"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h5&gt;
  
  
  My Blogs
&lt;/h5&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--ljAT-RjF--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/47mxxa04tzwqdhho162b.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ljAT-RjF--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/47mxxa04tzwqdhho162b.png" alt="My Blogs"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h5&gt;
  
  
  My Projects
&lt;/h5&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--SqeF1aFq--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/lcr953sjuflsw9a6ay0e.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--SqeF1aFq--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/lcr953sjuflsw9a6ay0e.png" alt="My Projects"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  Description
&lt;/h4&gt;

&lt;p&gt;My personal website:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Blog&lt;/li&gt;
&lt;li&gt;Projects&lt;/li&gt;
&lt;li&gt;My Profile&lt;/li&gt;
&lt;li&gt;Contact Us&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Link to Source Code
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Strapi Blog Template&lt;br&gt;
&lt;a href="https://github.com/adapttive/strapi-template-blog"&gt;https://github.com/adapttive/strapi-template-blog&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Gridsome Starter for Strapi Blog&lt;br&gt;
&lt;a href="https://github.com/adapttive/strapi-starter-gridsome-blog"&gt;https://github.com/adapttive/strapi-starter-gridsome-blog&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Permissive License
&lt;/h4&gt;

&lt;p&gt;MIT&lt;/p&gt;

&lt;h3&gt;
  
  
  Background
&lt;/h3&gt;

&lt;p&gt;I am a Magento Developer, who built a personal blog on Nodejs-Strapi and Gridsome (never have any hands-on).&lt;/p&gt;

&lt;h4&gt;
  
  
  How I built it
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Followed the documentation and started coding.&lt;/li&gt;
&lt;li&gt;Development Deployed on Netlify + Oracle Cloud&lt;/li&gt;
&lt;li&gt;Production Deployed as an app on Digital Ocean platform.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Additional Resources/Info
&lt;/h4&gt;

&lt;p&gt;&lt;a href="https://adapttive.com/blog/how-this-blog-is-built"&gt;https://adapttive.com/blog/how-this-blog-is-built&lt;/a&gt;&lt;/p&gt;

</description>
      <category>dohackathon</category>
      <category>gridsome</category>
      <category>strapi</category>
      <category>blog</category>
    </item>
    <item>
      <title>What is Dev Community business model? </title>
      <dc:creator>Milind Singh</dc:creator>
      <pubDate>Tue, 14 Jul 2020 13:50:10 +0000</pubDate>
      <link>https://dev.to/milindsingh/what-is-dev-community-business-model-2dmg</link>
      <guid>https://dev.to/milindsingh/what-is-dev-community-business-model-2dmg</guid>
      <description>&lt;p&gt;I did't find anything through that a revenue can be generated. But still servers need money to keep running.&lt;/p&gt;

&lt;p&gt;How it happens here?&lt;/p&gt;

</description>
    </item>
  </channel>
</rss>
