<?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: Tushar Agrawal</title>
    <description>The latest articles on DEV Community by Tushar Agrawal (@tusharyaar).</description>
    <link>https://dev.to/tusharyaar</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%2F467161%2F3e49f56e-5bc1-4ad8-bd62-668f948e2fc6.png</url>
      <title>DEV Community: Tushar Agrawal</title>
      <link>https://dev.to/tusharyaar</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/tusharyaar"/>
    <language>en</language>
    <item>
      <title>Intro to React Native: Develop mobile apps</title>
      <dc:creator>Tushar Agrawal</dc:creator>
      <pubDate>Sat, 04 Feb 2023 11:38:27 +0000</pubDate>
      <link>https://dev.to/tusharyaar/intro-to-react-native-develop-mobile-apps-3eon</link>
      <guid>https://dev.to/tusharyaar/intro-to-react-native-develop-mobile-apps-3eon</guid>
      <description>&lt;p&gt;So you want to develop a mobile application, but don't want to learn the the platforms' native language (swift for iOS or Java/Kotlin for Android), or you just stumbled upon this post and wondered what react native is; well, this post if for you. Note, I won't go into actual coding but rather into a glimpse of react native world.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is React Native?
&lt;/h2&gt;

&lt;p&gt;Simply put, &lt;a href="//reactnative.dev/"&gt;react native&lt;/a&gt; or RN is a JavaScript framework which allows you to write &lt;em&gt;native apps&lt;/em&gt; using JavaScript. Note I said &lt;em&gt;native apps&lt;/em&gt; instead of &lt;em&gt;mobile apps&lt;/em&gt;. Reason? I will go in-depth later, but using react native you can write mobile apps (iOS and Android), desktop apps (Windows and MacOS) and heck, even VR. Though in this post, I will mainly focus on mobile apps. It is maintained by Meta (formally Facebook) and was released in 2015. As of writing (February, 2023), 0.71 is the latest release.&lt;/p&gt;

&lt;h2&gt;
  
  
  Do companies use React Native?
&lt;/h2&gt;

&lt;p&gt;Short answer, Yes. Many companies use react native for their mobile apps like Tesla, Microsoft, and many companies are migrating to react native, like Shopify. You can read their migration blog &lt;a href="https://shopify.engineering/migrating-our-largest-mobile-app-to-react-native" rel="noopener noreferrer"&gt;here&lt;/a&gt;. &lt;br&gt;
You can also look into the entire &lt;a href="https://reactnative.dev/showcase" rel="noopener noreferrer"&gt;React Native Showcase&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  What are some benefits of using React Native?
&lt;/h2&gt;

&lt;h4&gt;
  
  
  1. Single code base
&lt;/h4&gt;

&lt;p&gt;You only need to learn 1 language and you can code apps for both Android and iOS. Also you get other benefits of maintaining a single code base like less time to market, faster MVP, etc. &lt;/p&gt;

&lt;h4&gt;
  
  
  2. Easy Development Environment
&lt;/h4&gt;

&lt;p&gt;It doesn't forces you to work with XCode or Android Studio, heck it doesn't even require you to have them installed (if you use expo, more on that later). You can work with any IDE of your choice, even notepad.&lt;/p&gt;

&lt;h4&gt;
  
  
  3. Share Code with web
&lt;/h4&gt;

&lt;p&gt;Since it uses Javascript, and if you have a website as well, you could share some of the logic, thus saving your time and sanity. &lt;/p&gt;

&lt;h4&gt;
  
  
  4. Community
&lt;/h4&gt;

&lt;p&gt;React Native, as with any Javascript framework, benefits from its MASSIVE community. Also most of the packages that work for react, work for react native as well, and for those that doesn't, there are packages for that as well. &lt;/p&gt;

&lt;h4&gt;
  
  
  5. Other Benefits
&lt;/h4&gt;

&lt;p&gt;These benefits aren't exactly exclusive to RN but it enjoys those features such as OTA (over-the-air) Updates, Hot Reload in development and Component Libraries.&lt;/p&gt;

&lt;h2&gt;
  
  
  So are there any Prerequisites?
&lt;/h2&gt;

&lt;p&gt;As with any framework, yes there are some Prerequisites, and some things that are good to know.&lt;/p&gt;

&lt;h3&gt;
  
  
  Prerequisites
&lt;/h3&gt;

&lt;p&gt;These are the things that are more or less required before you get started with React Native.&lt;/p&gt;

&lt;h4&gt;
  
  
  1. Javascript
&lt;/h4&gt;

&lt;p&gt;Javascript is a programming language of the web. Though it is used to write anything and its about time you learn Javascript if you haven't already. &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“Any application that can be written in JavaScript, will eventually be written in JavaScript.” - Atwood's Law&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h4&gt;
  
  
  2. React
&lt;/h4&gt;

&lt;p&gt;According to me learning react is a must before you get into React Native, though some might disagree. Why you ask? In a way, you can put react native as a separate framework which builds upon react, so if you are learning react-native you indirectly are learning react. It would be like learning to ride a motorcycle without learning to ride a bicycle.&lt;/p&gt;

&lt;h3&gt;
  
  
  Good To Know:
&lt;/h3&gt;

&lt;h4&gt;
  
  
  1. Typescript
&lt;/h4&gt;

&lt;p&gt;Typescript is basically Javascript, but more strict. It add types to Javascript, which leads us to writing less error prone code. It also enables auto complete on VSCode, which is nice to have. &lt;/p&gt;

&lt;h4&gt;
  
  
  2. Android Studio or XCode
&lt;/h4&gt;

&lt;p&gt;This is more of a good to have software. I know that I mentioned that you can work without it, but then you will have to plug your phone every time you develop, which is cumbersome. Also these software provide emulators, which you can use which is much easier, and also provide some other tools for performance measurement and enhancement.&lt;/p&gt;

&lt;h2&gt;
  
  
  Are there any Caveats?
&lt;/h2&gt;

&lt;p&gt;Well, yes.&lt;/p&gt;

&lt;h4&gt;
  
  
  1. Performance
&lt;/h4&gt;

&lt;p&gt;Compared to Native App, it still lags in performance. Though its not like it is extremely slow. Practically speaking, you will not even see the difference, its only when you compare side by side, you might see react native app lag behind by a few micro seconds.&lt;/p&gt;

&lt;h4&gt;
  
  
  2. Middle of Migration
&lt;/h4&gt;

&lt;p&gt;So currently, react native is in the middle of migrating to a new architecture. This is not something you need to worry about but the library developers, so you might face some incompatibility when upgrading dependencies, so be sure to check the docs. &lt;/p&gt;

&lt;h4&gt;
  
  
  3. Custom Modules
&lt;/h4&gt;

&lt;p&gt;This mainly concerns the hardcore developers with extremely niche scenario, but you might not find some components and will have to write your own in native language.&lt;/p&gt;

&lt;h2&gt;
  
  
  Getting Started
&lt;/h2&gt;

&lt;p&gt;So now you are all pumped up to get started, we can start. However, as mentioned earlier I am not going to be teaching how to write RN apps, for that there are plenty of tutorials out there on YouTube and Udemy. What i will provide though is a guide to how to proceed.&lt;/p&gt;

&lt;p&gt;The best way to get into RN development without getting overwhelmed is &lt;a href="https://docs.expo.dev/" rel="noopener noreferrer"&gt;expo&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  What is Expo?
&lt;/h3&gt;

&lt;p&gt;Expo is a managed framework on react native. For my React friends, consider Next.js for React. For my non-react friends, consider Automatic transmission car for a Manual Transmission Car. It reduces complexity, add features and makes its a pleasant drive. &lt;br&gt;
One cannot praise expo enough for how much its makes developing in react native easier. Simplicity, high quality documentation and libraries are not just the only features to use expo. Its services, like Expo Application Service (EAS) lets you build for iOS even without owning a MAC. It also makes OTA updates super easy. And the best part, you won't even have to leave expo until you are one of those niche developers with specific use case that expo doesn't have. So remember I said RN is in the middle of an architecture migration, expo handles that as well, so you don't have to worry about incompatibility.  &lt;/p&gt;

&lt;p&gt;So yes, head to &lt;a href="https://docs.expo.dev/" rel="noopener noreferrer"&gt;Expo Docs&lt;/a&gt; to get started. What I would suggest is do as many projects as you can to get good at it, and make sure to learn something new in every project you make. &lt;/p&gt;

&lt;h3&gt;
  
  
  What are Other &lt;em&gt;good to know&lt;/em&gt; things about React Native?
&lt;/h3&gt;

&lt;h4&gt;
  
  
  Develop for any Platform
&lt;/h4&gt;

&lt;p&gt;As I said earlier, using react native you can develop for any platform and not limited to mobile. But its not as easy as it sounds like. &lt;br&gt;
For desktop apps, &lt;a href="https://microsoft.github.io/react-native-windows/" rel="noopener noreferrer"&gt;React native Windows&lt;/a&gt; is used which is maintained by folks at Microsoft, and still in active development, so a lot of things might change. &lt;br&gt;
For VR app, &lt;a href="https://github.com/ViroCommunity/viro" rel="noopener noreferrer"&gt;ViroReact&lt;/a&gt; is used, which is again is in active development. So its development is not as convenient as expo, and for someone new to react native, i won't suggest going that route. But once you are experienced, not one is stopping you and these are great technologies to develop native apps. &lt;/p&gt;

&lt;h4&gt;
  
  
  Update apps Over the Air
&lt;/h4&gt;

&lt;p&gt;Over the Air (OTA) updates allow you to push minor updates to apps without having to wait for an approval. The process for publishing apps to play store and app store is, after you publish and update your app requires an approval before it is pushed to your users. This is a great policy but its becomes unnecessary when you might just need to update some spelling mistakes. This is when you can use OTA updates to instantly update the app, without going through the whole approval process. And yes it is allowed, as long as you don't change the functionality drastically. &lt;/p&gt;

&lt;h4&gt;
  
  
  You can use native code as well
&lt;/h4&gt;

&lt;p&gt;Yes RN mainly is about writing Javascript for making you apps, but you can also write components and functions in native language, and use it. And that's actually how meta uses RN in their apps. They have not, and probably will not migrate their native app to react native, but only some screens use react native. &lt;/p&gt;

&lt;h4&gt;
  
  
  Can You make games?
&lt;/h4&gt;

&lt;p&gt;Can you use an aircraft to travel 1km ? Yes you can, whether or not you should, depends on your use case. Though if you really want to, you can look into &lt;a href="https://github.com/bberak/react-native-game-engine" rel="noopener noreferrer"&gt; react-native-game-engine&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  How can join the community?
&lt;/h2&gt;

&lt;p&gt;React Native Community is extremely welcoming, and it would be great to have you. Have a look at the following resources, and join them if you like:&lt;/p&gt;

&lt;h5&gt;
  
  
  Subreddits
&lt;/h5&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.reddit.com/r/reactnative/" rel="noopener noreferrer"&gt;r/reactnative&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.reddit.com/r/expo/" rel="noopener noreferrer"&gt;r/expo&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h5&gt;
  
  
  Twitter Accounts
&lt;/h5&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://twitter.com/reactnative" rel="noopener noreferrer"&gt;React Native&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://twitter.com/expo" rel="noopener noreferrer"&gt;Expo&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://twitter.com/callstackio" rel="noopener noreferrer"&gt;Callstack Engineers&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://twitter.com/infinite_red" rel="noopener noreferrer"&gt;Infinite Red&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

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

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://reactnative.dev/blog" rel="noopener noreferrer"&gt;React Native Blogs&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://blog.expo.dev/" rel="noopener noreferrer"&gt;Expo Blogs&lt;/a&gt; &lt;/li&gt;
&lt;/ul&gt;

&lt;h5&gt;
  
  
  Podcast
&lt;/h5&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://reactnativeradio.com/" rel="noopener noreferrer"&gt;React Native Radio&lt;/a&gt; by Infinite Red&lt;/li&gt;
&lt;/ul&gt;

&lt;h5&gt;
  
  
  Conferences
&lt;/h5&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="http://chainreactconf.com" rel="noopener noreferrer"&gt;Chain React&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://appjs.co/" rel="noopener noreferrer"&gt;App.js Conf&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.react-native.eu/" rel="noopener noreferrer"&gt;React Native EU&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;React Native is a great framework, and I have been working with it for a year now. It is a great time to learn react native when many companies are considering react native for their new apps.&lt;br&gt;
If you do decide to learn react native let me know, it would be an incredible and exciting journey. &lt;/p&gt;

&lt;p&gt;If you made this far, thanks for reading. It was my first post in a way and hope you liked it. If you have any suggestions or if I missed something, let me know. &lt;/p&gt;

</description>
      <category>announcement</category>
      <category>devto</category>
      <category>community</category>
    </item>
    <item>
      <title>Series Open CSS Loaders ["4. Final Submission"]</title>
      <dc:creator>Tushar Agrawal</dc:creator>
      <pubDate>Thu, 17 Dec 2020 10:24:53 +0000</pubDate>
      <link>https://dev.to/tusharyaar/series-open-css-loaders-4-final-submission-15ij</link>
      <guid>https://dev.to/tusharyaar/series-open-css-loaders-4-final-submission-15ij</guid>
      <description>&lt;h2&gt;
  
  
  What I built
&lt;/h2&gt;

&lt;p&gt;For DigitalOcean's hackathon, I built an app called Open CSS Loaders. It is exactly what it sounds, a collection of CSS loaders, which are open to all and anyone can use. The main difference however is that anyone can also add a loader. Just like on DEV anyone can submit a post, even if he is a beginner, in the same way if someone has a great idea for a loader and want to share it, he can add it here. There is a live editor that shows you how the loader will look on the site.&lt;br&gt;
One can also edit the pre-existing code on the site so that he can customize the loader according to his liking.&lt;br&gt;
The best part though is still the dark mode.😍 &lt;/p&gt;

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

&lt;p&gt;I am submitting the app to &lt;strong&gt;Built for Business&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  App Link
&lt;/h3&gt;

&lt;p&gt;The app can be found here:&lt;br&gt;
&lt;a href="//open-css-loaders-pwtuz.ondigitalocean.app/"&gt;open-css-loaders-pwtuz.ondigitalocean.app/&lt;/a&gt;&lt;br&gt;
Thank You DigitalOcean for that sweet $50 so I can host my site on the platform for some time.&lt;/p&gt;

&lt;h3&gt;
  
  
  Screenshots
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--oFP_C1eF--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/enscwbgp5d667tmdst1u.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--oFP_C1eF--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/enscwbgp5d667tmdst1u.png" alt="Alt Text" width="880" height="454"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--nmpHBmUl--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/bzb8yfwunxfzskp6daoa.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--nmpHBmUl--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/bzb8yfwunxfzskp6daoa.png" alt="Alt Text" width="880" height="457"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--KxP4rCEd--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/4ttz46ixt6iiaw3vx722.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--KxP4rCEd--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/4ttz46ixt6iiaw3vx722.png" alt="Alt Text" width="880" height="453"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--mUNwBK09--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/qcgc3evp990bif0c3s8x.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--mUNwBK09--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/qcgc3evp990bif0c3s8x.png" alt="Alt Text" width="880" height="448"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--lApiMhzB--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/97xwa7zsk7qkjc4utsdv.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--lApiMhzB--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/97xwa7zsk7qkjc4utsdv.png" alt="Alt Text" width="880" height="456"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Description
&lt;/h3&gt;

&lt;p&gt;The app is built to provide a collection of CSS loaders which can be used by anyone, ranging from beginner to professionals. Of course, the highlight being anyone can add a loader if he follows the id and the keyframe rule. &lt;br&gt;
There is also a maintainer page on which one can edit the existing code and save it, in case it hinders the site, or completely delete the code. Though these things require a password.&lt;br&gt;
The nifty features of the app are&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;quote on page load from &lt;a href="https://api.adviceslip.com"&gt;adviceslip&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;dark mode&lt;/li&gt;
&lt;li&gt;likes being a random image&lt;/li&gt;
&lt;li&gt;Seperate themes for the editor&lt;/li&gt;
&lt;/ul&gt;

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

&lt;p&gt;The Source Code is hosted on GitHub:&lt;br&gt;
&lt;a href="https://github.com/TusharYaar/Open-CSS-Loaders"&gt;https://github.com/TusharYaar/Open-CSS-Loaders&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Permissive License
&lt;/h3&gt;

&lt;p&gt;The license provided is MIT&lt;/p&gt;

&lt;h2&gt;
  
  
  Background
&lt;/h2&gt;

&lt;p&gt;While making a project from my college, I was looking for a CSS loader. While there are many great sites, usually they belong to an individual or a very small number of people. Thus the loaders on those sites are limited and are not updated frequently. The solution to this is making a site where anyone can add a loader, thus, in theory, it will be updated more frequently. So I made that site and it does not require login so that there is no pulling back users who don't want to login on random sites. And yes obviously you can copy any of the code and use it on your site.&lt;/p&gt;

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

&lt;p&gt;When I got this idea, I visualized what I wanted to make. I was sure I wanted it to be a single-page app. I wanted it to be simple not very wacky and that what I went with. &lt;br&gt;
The first thing was to get the backend running, it was simple since not many routes are there, then it was the front end that took most of my time. &lt;br&gt;
I got the database connection and working in a day, and then it was finding bugs or design flaws, and fix that. &lt;br&gt;
The technologies used are:&lt;br&gt;
Front-end: HTML, CSS, Javascript&lt;br&gt;
Front-end Libraries: Jquery, ace.js&lt;br&gt;
Backend: Node.js and Express&lt;br&gt;
Database: MySQL&lt;br&gt;
The digital Ocean platform provides a platform to serve this. The deployment process is very easy. I was able to get the app running in under 2 minutes. While making the app the biggest thing I learned was &lt;em&gt;asynchronous requests&lt;/em&gt;. This was my first single-page web app, and I am pretty happy with how it turned out. The second thing I learned was &lt;em&gt;how to use colors&lt;/em&gt; in dark-mode. That drastically improves how the site looks and feels.&lt;/p&gt;

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

&lt;p&gt;I wanted the app to be light-weight as much as I could because I already am using jQuery and ace so I didn't go with a CSS library and wrote all the CSS on my own, and I think it turned out better compared to if I would have used a library.&lt;br&gt;
I am a 2nd-year college student and this was my first app so I don't have much experience in making apps or improving them. Any feedback or improvements are really appreciated. &lt;/p&gt;

</description>
      <category>dohackathon</category>
    </item>
    <item>
      <title>Series Open CSS Loaders ["3. Deploying to the DO"]</title>
      <dc:creator>Tushar Agrawal</dc:creator>
      <pubDate>Mon, 14 Dec 2020 20:16:05 +0000</pubDate>
      <link>https://dev.to/tusharyaar/series-open-css-loaders-deploying-to-the-do-32d8</link>
      <guid>https://dev.to/tusharyaar/series-open-css-loaders-deploying-to-the-do-32d8</guid>
      <description>&lt;p&gt;This is &lt;strong&gt;PART-3&lt;/strong&gt; of the series for my entry in the hackathon.&lt;/p&gt;

&lt;h2&gt;
  
  
  Idea
&lt;/h2&gt;

&lt;p&gt;Here I wanted to Deploy the app on the Digital Ocean Platform. The Docs are great. Super easy. I deployed the app. Simple.&lt;br&gt;
But since I was using MongoDB Atlas the whole time, I had to switch to one of their databases. They have 3 option &lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;PostgreSQL&lt;/li&gt;
&lt;li&gt;MySQL&lt;/li&gt;
&lt;li&gt;Redis&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;It would have been best if I would have gone with Redis, since it stores the data in key-value pairs, similar to mongoDb, but I have my collage finals in 2 weeks, and I am having MySQL in the syllabus, so I went with the same. Then it was lots of docs referring and changing the node.&lt;br&gt;
Uninstalling Mongoose &lt;br&gt;
&lt;code&gt;npm uninstall mongoose&lt;/code&gt;&lt;br&gt;
And then installing mySQL&lt;br&gt;
&lt;code&gt;npm i mysql --save&lt;/code&gt;&lt;br&gt;
Yeah, that's it, I have A basic App running. But I have to do a lot of testing and of course, adding the &lt;em&gt;Loaders&lt;/em&gt; to the site.&lt;br&gt;
Also I wanted to the the "Deploy to DO button".&lt;br&gt;
 &lt;a href="https://cloud.digitalocean.com/apps/new?repo=https://github.com/%7Brepo-owner%7D/%7Brepo-name%7D/tree/%7Bbranch-name%7D"&gt;&lt;br&gt;
 &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--CNMgVEM---/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://mp-assets1.sfo2.digitaloceanspaces.com/deploy-to-do/do-btn-blue.svg" alt="Deploy to DO" width="252" height="40"&gt;&lt;br&gt;
&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Work
&lt;/h2&gt;

&lt;p&gt;Setting app on the digital ocean is very easy. I say the easiest amongst the services I have tried. Host the repository on GitHub, link your account, choose the repository, give environment variables if necessary, hit deploy. Voila, your app is up in under 2 minutes.&lt;br&gt;
And Every time you update your repo on GitHub, the app is also updated. &lt;br&gt;
Link the database, Simple. &lt;br&gt;
And Now i have an app Running.&lt;br&gt;
Check it out &lt;a href="https://open-css-loaders-pwtuz.ondigitalocean.app/"&gt;here&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now for the button the docs have everything. You have to add a file &lt;code&gt;.do/deploy.template.ymal&lt;/code&gt; and add details to it. Then add the button itself and it works.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Series Open CSS Loaders ["2. The Front End"]</title>
      <dc:creator>Tushar Agrawal</dc:creator>
      <pubDate>Mon, 14 Dec 2020 19:09:36 +0000</pubDate>
      <link>https://dev.to/tusharyaar/series-open-css-loaders-the-front-end-6db</link>
      <guid>https://dev.to/tusharyaar/series-open-css-loaders-the-front-end-6db</guid>
      <description>&lt;p&gt;This is &lt;strong&gt;Part-2&lt;/strong&gt; of the series for my entry in the hackathon.&lt;br&gt;
Read the &lt;a href="https://dev.to/tusharyaar/series-open-css-loaders-setting-up-backend-3f6k"&gt;Part-1 here&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  WORK
&lt;/h2&gt;

&lt;p&gt;Nothing much to document here. I had a basic design in my mind, I have to just get that working. Simple right. &lt;br&gt;
The first thing was to get the html, CSS and basic Javascript running. Then I added all the ajax requests using jquery.&lt;br&gt;
These I recycled from the first attempt at making the app.&lt;br&gt;
The other thing did in the first attempt was using a syntax highlighter for all the textboxes. It was working fine, but then I came across &lt;a href="https://ace.c9.io/"&gt;ace.js&lt;/a&gt;, which is a full fledged IDE on the browser, so I started to implement that.&lt;br&gt;
The docs are great and was easy to setup. But then I had to refactor a lot html and CSS so it took a lot of time.&lt;br&gt;
The other thing I added was a function to like a loader. And in that it shows different icons when liked which I like personally.&lt;br&gt;
Then there were some minor updates like a page theme toggle, an editor window toggle and some bug fixes.&lt;br&gt;
Yeah that was it. Now had to deploy to the platform.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Series Open CSS Loaders ["1. Setting up backend"]</title>
      <dc:creator>Tushar Agrawal</dc:creator>
      <pubDate>Sun, 13 Dec 2020 19:49:35 +0000</pubDate>
      <link>https://dev.to/tusharyaar/series-open-css-loaders-setting-up-backend-3f6k</link>
      <guid>https://dev.to/tusharyaar/series-open-css-loaders-setting-up-backend-3f6k</guid>
      <description>&lt;p&gt;This is &lt;strong&gt;PART-1&lt;/strong&gt; of the series for my entry in the hackathon.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Idea
&lt;/h2&gt;

&lt;p&gt;For the hackathon, I decided to complete my Open CSS Loaders and host it on the Digital Ocean platform.&lt;br&gt;
So I began the work. The cover image you see is the design I had in mind. The top Being the Header "Open CSS Loaders", then a hr, the links to my social media accounts, followed by a quote, and the two buttons, one for adding a code and the other to set editor theme.&lt;/p&gt;
&lt;h2&gt;
  
  
  The work
&lt;/h2&gt;

&lt;p&gt;But this was the front end. First I started with the backend on Node.js and Express.&lt;br&gt;
Install the basic packages.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;npm i express request mongoose dotenv body-parser --save
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now, it was just defining the routes and testing them which was pretty straightforward. So as of now I have the following routes:-&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;code&gt;/&lt;/code&gt; =&amp;gt; the home page&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;/getquote&lt;/code&gt; =&amp;gt; to get a quote&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;/api/serveranypopup&lt;/code&gt; =&amp;gt; to check if there is any popup message to show on the page &lt;/li&gt;
&lt;li&gt;
&lt;code&gt;/api/setpopup&lt;/code&gt; =&amp;gt; to set a popup message&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;/api/getloader&lt;/code&gt; =&amp;gt; to get all the loaders&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;/api/addthiscode&lt;/code&gt; =&amp;gt; to add a code&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;/api/like/:loaderid&lt;/code&gt; =&amp;gt; to like a loader&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;There are other routes for managing the page&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;code&gt;/iamadmin&lt;/code&gt; =&amp;gt; to go to the admin page&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;/api/updatecode&lt;/code&gt; =&amp;gt; it requires a password to update any code&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;/api/iamgoingtodeletethispost&lt;/code&gt; =&amp;gt; it deletes any of the loader but requires password&lt;/li&gt;
&lt;/ol&gt;

</description>
      <category>javascript</category>
    </item>
    <item>
      <title>Open CSS Loader</title>
      <dc:creator>Tushar Agrawal</dc:creator>
      <pubDate>Tue, 01 Dec 2020 16:12:34 +0000</pubDate>
      <link>https://dev.to/tusharyaar/open-css-loader-4nnk</link>
      <guid>https://dev.to/tusharyaar/open-css-loader-4nnk</guid>
      <description>&lt;p&gt;Site link:- &lt;a href="https://wb26iz.deta.dev"&gt;https://wb26iz.deta.dev&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;So this is my first post🤞 so don't expect much. So a little backstory here. While searching for a pure CSS loader for my college project, I stumbled across a few sites which did get my work done, but every site was maintained by only a few individuals. Also, some sites haven't been updated for a long time. So here I present to you an open CSS loader that allows everyone to contribute to the site. Thus, hopefully, it is updated.&lt;/p&gt;

&lt;h2&gt;
  
  
  About
&lt;/h2&gt;

&lt;p&gt;So I decided to work on one and host it on DETA since it is free and is new so I decided to give it a try. &lt;br&gt;
I aim this site at someone who is searching for a loader and can find a variety of loaders. He can take any of the code directly or can edit them on the site and see the output above the code. &lt;/p&gt;

&lt;p&gt;The main feature though is adding the code. It is simple. Make a parent div and give the specific id specified and you can submit the code. So a beginner or even an experienced developer can submit a code. A point to be remembered is that if the code submitted hinders the working of other loaders or does not work at all, it will be deleted. Else you are free to use any code from the site without any acknowledgment. Also, the complete backend of the site will be available on GitHub once I complete it. &lt;/p&gt;

&lt;h2&gt;
  
  
  Problems
&lt;/h2&gt;

&lt;p&gt;The first is people targeting other loaders or other components of the page by mistake. I did use regex to check if only the id specified is used and not anything else to prevent style altering of other loaders, but I have to do something about the common div elements.&lt;br&gt;
The second is I am using prism.js for syntax highlighting which I think is not good since it has to style the complete text box when there is a change in the textbox.&lt;br&gt;
&lt;strong&gt;Edit&lt;/strong&gt; I found that there is a library called &lt;a href="https://ace.c9.io/"&gt;ace.js&lt;/a&gt; which provides an online IDE. I will be switching to it.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>css</category>
    </item>
  </channel>
</rss>
