<?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>Forem: Shannon Reca</title>
    <description>The latest articles on Forem by Shannon Reca (@shannonreca).</description>
    <link>https://forem.com/shannonreca</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%2F49197%2F5010692e-4eeb-4630-a8e0-b717382fc4bf.jpg</url>
      <title>Forem: Shannon Reca</title>
      <link>https://forem.com/shannonreca</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/shannonreca"/>
    <language>en</language>
    <item>
      <title>A WordPress Theme with Next.js</title>
      <dc:creator>Shannon Reca</dc:creator>
      <pubDate>Sat, 03 Oct 2020 19:26:32 +0000</pubDate>
      <link>https://forem.com/shannonreca/a-wordpress-theme-with-next-js-4nf6</link>
      <guid>https://forem.com/shannonreca/a-wordpress-theme-with-next-js-4nf6</guid>
      <description>&lt;h1&gt;
  
  
  Why WordPress with Next.js?
&lt;/h1&gt;

&lt;p&gt;At first glance this may seem a little off from a development side of things. WordPress is it's own platform as Next.js is it's own framework, why even combine to two? There a few reasons why I decided to proceed with this project and for specific use cases. &lt;/p&gt;

&lt;h2&gt;
  
  
  Use Case Specific to React Developers
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Redesigning a current WordPress site.&lt;/li&gt;
&lt;li&gt;Customer/Client wants a WordPress site.&lt;/li&gt;
&lt;li&gt;You wish to create a web app and choose WordPress as your admin UI.&lt;/li&gt;
&lt;li&gt;Already built admin functionality such as: users, plugins, etc; within WordPress.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  The Pros of WPNext Builder &amp;amp; Next.js
&lt;/h2&gt;

&lt;p&gt;With the focus of React.js as your primary choice of development, WPNext Builder alongside Next.js, essentially allows you to quickly create and deploy React components to your site. Whether is a request from a client or a need you are trying to fulfill.&lt;/p&gt;

&lt;p&gt;This kit relies on the WordPress API to access the content information. However, since this setup includes Next.js, the call gets made on the server-side allowing the page to render no differently than a typical WordPress site. It's a JS application layered on top of WordPress. You can use WordPress to create pages and post, while building a completely standalone web app and create WordPress admin pages to manage the web app features. The possibilities are really up to you.&lt;/p&gt;

&lt;p&gt;The beauty of it is, it's all within the theme folder and it's easy to setup. If you ever decide to move away from it, you can quickly revert back to another basic WordPress theme. Just follow the &lt;a href="https://github.com/RecaMedia/wpnext-boilerplate"&gt;WPNext documentation&lt;/a&gt; at my GitHub to properly install and begin use. I've provided some basic components along with some "out-the-box" .jsx modules to handle navigation and site header.&lt;/p&gt;

&lt;h2&gt;
  
  
  This Project Will Continue to be Maintained
&lt;/h2&gt;

&lt;p&gt;As I continue to use this theme kit, I'm constantly updating and improving it in hopes of streamlining the development process for future projects. I'm also looking to provide pre-built components that can easily be dropped in to existing sites using the WPNext Theme. Finally, I'm planning on releasing a step-by-step video tutorial from start to finish to help out junior developers.&lt;/p&gt;

&lt;p&gt;With all this being said, if you happen to use this or any of my open source projects and would like to support my work, please visit my &lt;a href="https://github.com/sponsors/RecaMedia"&gt;GitHub Sponsor&lt;/a&gt; page. Any support is greatly appreciated and helps me reach my goal of just working on projects I enjoy.&lt;/p&gt;




&lt;p&gt;Originally posted on &lt;a href="http://shannonreca.com/blog/a-wordpress-theme-with-next-js/"&gt;ShannonReca.com&lt;/a&gt;&lt;/p&gt;

</description>
      <category>wordpress</category>
      <category>nextjs</category>
      <category>javascript</category>
      <category>react</category>
    </item>
    <item>
      <title>Revolutionizing the CMS</title>
      <dc:creator>Shannon Reca</dc:creator>
      <pubDate>Tue, 25 Jun 2019 20:29:59 +0000</pubDate>
      <link>https://forem.com/shannonreca/revolutionizing-the-cms-377f</link>
      <guid>https://forem.com/shannonreca/revolutionizing-the-cms-377f</guid>
      <description>&lt;p&gt;When you look at the CMS today, most if not all, follow the traditional concept of theme and plugin development. There is no such thing as the perfect CMS, hence the reason for plugins to exist, providing a level of customizing ability to fulfill ones needs.&lt;/p&gt;

&lt;p&gt;So then what differentiates one CMS from another? Well, there are certain features that are usually highlighted, along with the type of CMS, such as database driven, flat file, static, and so on. However, I find myself coming back to the same question. Conceptionally, what is the difference?&lt;/p&gt;

&lt;p&gt;I concluded, there is no difference. Sure, functionality may be different. The process in which data/content is stored and delivered may be different. Whichever the case may be, it all falls back to theme and plugins.&lt;/p&gt;

&lt;p&gt;As a developer, I think of time spent “recreating the wheel.” It's easy when you yourself have a library of code that you can continuously copy with minor tweaks to complete a project. However, you will always cross a point where you simply don't have it and start searching online for free open source libraries in which you retro fit into your project. This is essentially every developer.&lt;/p&gt;

&lt;p&gt;This had me thinking since the days of me creating &lt;a href="http://sumcms.recamedia.com/"&gt;SumCMS&lt;/a&gt; and &lt;a href="https://recamedia.github.io/Backdoor/"&gt;BKDR&lt;/a&gt;, what would make a great CMS from a development and user perspective? Today I believe I have, &lt;strong&gt;not THE answer&lt;/strong&gt;, but &lt;strong&gt;an answer&lt;/strong&gt; that can solve a wish list of common ground interest from most web developers.&lt;/p&gt;

&lt;h3&gt;
  
  
  The Wish List
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;It does not use “themes” as what is known today.&lt;/li&gt;
&lt;li&gt;It does not use “plugins”.&lt;/li&gt;
&lt;li&gt;It should be modular and interchangeable with other sites.&lt;/li&gt;
&lt;li&gt;It should allow you to essentially create the features needed rather than waiting for the feature to be implemented.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Interested in what it is? Well... I'm about 60% completed with my MVP for public release, but I've been really excited to share what I have thus far. So instead of releasing a half baked project, I decided to create a subscription list so you can signup and get update-to-date info on features before the actual release.&lt;/p&gt;

&lt;p&gt;Introducing &lt;strong&gt;JayDMS&lt;/strong&gt;, a JSON based Development Management System. I look forward to creating a community behind this project, because I truly believe this is a fresh new look on web development. Thanks for your interest and taking the time to read this, and hopefully signup.&lt;/p&gt;

</description>
      <category>cms</category>
      <category>flat</category>
      <category>file</category>
      <category>static</category>
    </item>
    <item>
      <title>Why Use A Self-Hosted Code Editor</title>
      <dc:creator>Shannon Reca</dc:creator>
      <pubDate>Thu, 21 Dec 2017 17:21:45 +0000</pubDate>
      <link>https://forem.com/shannonreca/why-use-a-self-hosted-code-editor-154a</link>
      <guid>https://forem.com/shannonreca/why-use-a-self-hosted-code-editor-154a</guid>
      <description>&lt;p&gt;&lt;a href="http://shannonreca.com/blog/why-use-a-self-hosted-code-editor/"&gt;Original Post&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Full disclosure, this is a post specific to my code editor that I have launched, called &lt;a href="https://recamedia.github.io/Backdoor/"&gt;BKDR&lt;/a&gt;. It's completely free and available for &lt;a href="https://github.com/RecaMedia/Backdoor-Release"&gt;download&lt;/a&gt;. If you know of another, by all means use what you're comfortable with.&lt;/p&gt;




&lt;p&gt;So why use a self-hosted code editor. First, for those who may not have used one, or heard of services such as CodeAnywhere, Cloud9, Koding, etc., what is it exactly ?&lt;/p&gt;

&lt;p&gt;Basically, it's your code editor within a browser. What is interesting is that popular code editors such as VS Code or Atom are built with web technologies such as JavaScript and packaged as a native app. So the experience is not far off from what you're use to on your local environment. The difference is you're now opening your browser to code. &lt;/p&gt;

&lt;h2&gt;
  
  
  Self-Hosted vs Cloud Services
&lt;/h2&gt;

&lt;p&gt;Cloud services have revolutionized the online development industry, allowing developers and companies to speed up the development process, and taking most of the burden off their shoulders.&lt;/p&gt;

&lt;p&gt;However, cloud services aren't for everyone. Although they provide a great deal of value for developers, and are backed by funding or other corporate entities, there are a few use cases where you may prefer you own self-hosted code editor.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Privacy&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Look, lets be clear. For these cloud services to work with your other servers or client's servers, you need to store these credentials somewhere. Cloud services are usually big targets for data breaches. The more sensitive information you put on those servers, the more you're trusting your data is safe there.&lt;/p&gt;

&lt;p&gt;I'm not declaring my code editor to be the most top flight secured ever. What I am saying is decentralizing all your projects to their own server, whether a client or your own project, prevents further damage if there is a breach on one particular site. Having a light weight code editor on each site that's installed with a simple FTP upload and a config file is quick and easy.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Freelancers &amp;amp; Small Agencies&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;If you're a freelancer or a small agency just getting off the ground, you probably have several WordPress clients. How many times have you needed to do a few simple PHP edits to a plugin or theme? How many times have you been contacted while on the road for an urgent update? Having a code editor on that site may save you a lot of time and energy. It's similar to having access to the WP admin. You sign-in, make your changes, save, and you're done.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Extensions&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;BKDR is built with the ability to add extensions. Although the API docs are still in the works, I’m predicting this will be a huge game changer on your development process.&lt;/p&gt;

&lt;p&gt;Lets say you have a particular project that has a specific update workflow, or maybe you need a tailored made validation process. You can possibly make a custom extension just for that project. More so, you can share that extension with other developers for their own self-hosted sites. BKDR's extension API, when completed, will allow access to several built-in functionality that can further your development. Do any of the cloud services allow you to add on your own custom extension for their editor? Please share if they do.&lt;/p&gt;

&lt;h3&gt;
  
  
  Whatever Works Best
&lt;/h3&gt;

&lt;p&gt;In the end, I'm not saying ditch your cloud service account. I'm simply advocating the use of a self-hosted code editor for developers who thinks it makes sense for their situation, and if so, you may want to try &lt;a href="https://github.com/RecaMedia/Backdoor-Release"&gt;BKDR&lt;/a&gt;. It's very new, and I'm looking to continually releasing updates with new features. I welcome and greatly appreciate any feedback.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;UPDATE - 1/16/18&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I've decided to open source BKDR with hopes that it'll continue to grow into something bigger than what I had envisioned. Hopefully it's enough of a foundation to take it to the next level. You can download BKDR's &lt;a href="https://github.com/RecaMedia/Backdoor-Release"&gt;latest release&lt;/a&gt;, or check out the &lt;a href="https://github.com/RecaMedia/Backdoor"&gt;development repo&lt;/a&gt;. I'll be updating the repo with more information soon. Enjoy!&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>productivity</category>
      <category>beginners</category>
    </item>
    <item>
      <title>BKDR v2 - My Journey Into ReactJS</title>
      <dc:creator>Shannon Reca</dc:creator>
      <pubDate>Wed, 13 Dec 2017 03:42:16 +0000</pubDate>
      <link>https://forem.com/shannonreca/backdoor-code-editor-v2-in-react-ch7</link>
      <guid>https://forem.com/shannonreca/backdoor-code-editor-v2-in-react-ch7</guid>
      <description>&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--DuHx3IXG--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://thepracticaldev.s3.amazonaws.com/i/1i37ai080cygcw8agyug.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--DuHx3IXG--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://thepracticaldev.s3.amazonaws.com/i/1i37ai080cygcw8agyug.jpg" alt="alt text" title="BKDR Code Editor" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;When I originally created my in-&lt;a href="https://codecanyon.net/item/backdoor-browser-based-code-editor/13725356"&gt;browser code editor&lt;/a&gt;, I wrote it all in CoffeeScript. Worse, I wrote it in one big file. What started as a simple cool idea, kept getting bigger with every feature or new idea. Eventually, I knew I could not continue working this way. Request for new features were becoming more difficult to organize, and scaling became an issue.&lt;/p&gt;

&lt;p&gt;This was all due to not having a plan. It was a fun, cool idea that became something more, and when I realized it, it was too late in the process. So regardless of not wanting to, I knew I needed to start over.&lt;/p&gt;

&lt;h3&gt;
  
  
  What's Next?
&lt;/h3&gt;

&lt;p&gt;Around the time when I was contemplating on how and what to use to rebuild my code editor, React and Angular where trending. Angular 2 was in beta, and was different enough from Angular 1, that it made me hesitant on any attempt to learn it. Additionally, React was a lighter framework from my brief understanding. So I decided on React.&lt;/p&gt;

&lt;p&gt;One thing I didn't want to do was learn React WHILE remaking my web app. It just seemed like an unwise decision that would eventually come back to haunt me. I needed another project to really flex my sandbox adventures. Of course, knowing me, I created a &lt;a href="https://mocfolio.com"&gt;social network&lt;/a&gt; (like that was the easier option).&lt;/p&gt;

&lt;h3&gt;
  
  
  Class In Session
&lt;/h3&gt;

&lt;p&gt;In the end, I was able to take away so many valuable lessons. For example, jQuery sometimes becomes a reflex when you confront a situation. But in React, you need to change your mindset. We're so use to manipulating the DOM with JavaScript and jQuery. However, one of the greatest benefits of React is it's ability to update state changes within components.&lt;/p&gt;

&lt;p&gt;Within a component, HTML or other components can be returned within the render method. Every time the state is updated or replaced, it triggers the component to re-render. This is handled through the virtual DOM before being updated in the actual DOM. Redux also adds another great element to React with it's store. Basically it's ability to have a centralized source of data that can be updated via dispatch. This was a huge feature in creating my web app. For simpler projects, this may be overkill. It really all depends on your needs.&lt;/p&gt;

&lt;h3&gt;
  
  
  The Result
&lt;/h3&gt;

&lt;p&gt;After spending about eight months learning React, I started on version 2 of &lt;a href="http://bkdr.pro"&gt;Backdoor&lt;/a&gt; (which I rebranded as &lt;a href="http://bkdr.pro"&gt;BKDR&lt;/a&gt;), in March of 2017. Now, 10 months later, I'm about to release my beta within the next couple of days, fully built in React and handling the server side in PHP. I estimate I wrote over 30+ components, all nicely organized and optimal to scale properly.&lt;/p&gt;

&lt;p&gt;If you'll like to stay posted on my Backdoor progress, you can visit &lt;a href="http://bkdr.org"&gt;BKDR.org&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>react</category>
      <category>javascript</category>
      <category>php</category>
      <category>codeeditor</category>
    </item>
  </channel>
</rss>
