<?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: Bodhish Thomas</title>
    <description>The latest articles on DEV Community by Bodhish Thomas (@bodhish).</description>
    <link>https://dev.to/bodhish</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%2F314909%2Fb4d034f2-b2f6-4487-8f79-989c147b833f.jpeg</url>
      <title>DEV Community: Bodhish Thomas</title>
      <link>https://dev.to/bodhish</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/bodhish"/>
    <language>en</language>
    <item>
      <title>Automating Student Reviews with AI in Pupilfirst LMS</title>
      <dc:creator>Bodhish Thomas</dc:creator>
      <pubDate>Fri, 13 Oct 2023 04:57:45 +0000</pubDate>
      <link>https://dev.to/bodhish/automating-student-reviews-with-ai-in-pupilfirst-lms-4i6n</link>
      <guid>https://dev.to/bodhish/automating-student-reviews-with-ai-in-pupilfirst-lms-4i6n</guid>
      <description>&lt;p&gt;The integration of Artificial Intelligence (AI) into educational systems is a fascinating frontier. One area where AI can make a significant impact is in the review of student submissions. At Pupilfirst LMS, we've leveraged our existing Github Action integration to automate this process, making it more efficient and personalized.&lt;/p&gt;

&lt;p&gt;Pupilfirst LMS already had a robust Github Action integration in place. This system pushes each student's submission into a new branch of a dedicated repository. From there, Github CI actions can be triggered automatically, and we have actions to grade and report the status back to the LMS. This existing setup provided the flexibility needed to build and test a new system without altering the core functionalities.&lt;/p&gt;

&lt;p&gt;Grade Action: &lt;a href="https://github.com/pupilfirst/grade-action"&gt;https://github.com/pupilfirst/grade-action&lt;/a&gt;&lt;br&gt;
Report Action: &lt;a href="https://github.com/pupilfirst/report-action"&gt;https://github.com/pupilfirst/report-action&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The main challenge was to convert student submissions, which are in JSON format, into a format that the AI model could easily understand. After several attempts, we realized that the best approach was to pass the JSON submission as-is, but with an additional explanatory prompt.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="err"&gt;#&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;The&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;student's&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;submissions&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;will&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;be&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;an&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;array&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;of&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;objects&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;following&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;the&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;provided&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;schema:&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;"kind"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"The type of answer - can be shortText, longText, link, files, or multiChoice"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"title"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"The question that was asked of the student"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"result"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"The student's response"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"status"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Field for internal use; ignore this field during your review"&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;/div&gt;



&lt;p&gt;This allowed the OpenAI model to discern which fields to consider and which to ignore.&lt;/p&gt;

&lt;p&gt;The AI Auto Review Action was born out of this need. The logic is straightforward: we inform the AI about the context of the submission and prompt it to generate a grade and feedback. The AI model returns the data in a JSON format that is compatible with our existing grade action.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--gS_IAAQR--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/pjjrc6t3z5kcsb139s3s.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--gS_IAAQR--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/pjjrc6t3z5kcsb139s3s.png" alt="The data flow for review action" width="800" height="336"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;It took just a day to write the code, test the action, and deploy it. The system is now used across various courses for automated submission review. &lt;/p&gt;

&lt;p&gt;The integration of AI into our LMS has streamlined the review process, reducing the manual workload and enhancing the learning experience with personalised feedback.&lt;/p&gt;

&lt;p&gt;It's a testament to how Generative AI addition can revolutionize traditional educational systems.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;If you want to test the Action checkout &lt;a href="https://github.com/pupilfirst/ai-review-action"&gt;https://github.com/pupilfirst/ai-review-action&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

</description>
    </item>
    <item>
      <title>ChatGPT: Revolutionizing Medical Data Extraction from Images</title>
      <dc:creator>Bodhish Thomas</dc:creator>
      <pubDate>Thu, 05 Oct 2023 23:46:32 +0000</pubDate>
      <link>https://dev.to/bodhish/chatgpt-revolutionizing-medical-data-extraction-from-images-401c</link>
      <guid>https://dev.to/bodhish/chatgpt-revolutionizing-medical-data-extraction-from-images-401c</guid>
      <description>&lt;p&gt;At &lt;a href="https://github.com/coronasafe/care"&gt;Care&lt;/a&gt;, we've made strides in integrating medical devices into our system for seamless data capture. This integration considerably minimizes the manual data entry tasks for nurses.&lt;/p&gt;

&lt;p&gt;Our team has developed middleware to translate HL7 data from these devices into a format suitable for Care's requirements. As a result, we have pioneered the creation of digital central nursing stations. These stations can be accessed remotely and are equipped to trigger alerts and dispatch event-based notifications.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--_yWe1_8m--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/m0pz1s6mutyl541ledb5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--_yWe1_8m--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/m0pz1s6mutyl541ledb5.png" alt="Central Nursing Station" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;However, our journey has been fraught with challenges. The majority of device vendors utilize proprietary data formats, often coupled with outdated data ports. What's more, the lack of documentation for these proprietary data schemas has made the development of open-source adapters a formidable task.&lt;/p&gt;

&lt;p&gt;These challenges steered us towards exploring innovative solutions to capture data and further ease the nurses' workload. An idea we found promising involved utilizing the cameras integrated into our system. Given that these cameras have presets to capture clear views of patient monitors for remote assessments by doctors, we believed they might have another crucial application.&lt;/p&gt;

&lt;p&gt;Our initial experimentation involved developing a simple service that could remotely adjust the cameras in each patient's room to the monitor preset. It would then take a snapshot and forward it for processing. Our team delved deep into testing multiple open-source image sets of 5-para monitors, combined with various OCR models, to extract the necessary data from these images.&lt;/p&gt;

&lt;p&gt;Despite months of research and experimentation, our success was limited. But a breakthrough came unexpectedly when an intern in our team processed the OCR-generated JSON through ChatGPT. Remarkably, ChatGPT could easily identify and extract the required values from the OCR JSON.&lt;/p&gt;

&lt;p&gt;Following this discovery, we further explored ChatGPT's capabilities with direct image processing. The results? Astonishingly accurate and efficient. It became evident that we had invested months trying to devise the perfect OCR model and image processing strategies when, in reality, an API call to ChatGPT would suffice.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--WjP6G70Y--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/6k1dlk4gnk7edqj4y8ez.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--WjP6G70Y--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/6k1dlk4gnk7edqj4y8ez.jpeg" alt="Chat GPT Vison" width="800" height="1053"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Even in its experimental phase, Multimodal Generative AI models have showcased their potential to transform our data extraction methodologies. It offers a simplified approach to what were once intricate challenges, opening doors from accurately capturing hourly monitor readings to potentially turning lab report images into structured data. As we journey further into the domain of AI and eagerly await the advent of GPT-V, we remain excited about the forthcoming innovations that promise to elevate and redefine patient care.&lt;/p&gt;

</description>
      <category>chatgpt</category>
    </item>
    <item>
      <title>Building Digital Public Goods: Journey with the Open Healthcare Network</title>
      <dc:creator>Bodhish Thomas</dc:creator>
      <pubDate>Sun, 03 Sep 2023 18:49:53 +0000</pubDate>
      <link>https://dev.to/bodhish/building-digital-public-goods-2490</link>
      <guid>https://dev.to/bodhish/building-digital-public-goods-2490</guid>
      <description>&lt;p&gt;I am Bodhi, a full-stack developer and digital nomad hailing from Kerala, India. From a young age, I was captivated by the magic of the web. I fondly remember tinkering with my school website and feeling a sense of instant gratification from building on the web. This curiosity led me to take up part-time projects developing web apps, even as I pursued a degree in Electronics and Communications Engineering in college. Although I dabbled in electronics and built a few contraptions, I soon realized that my true passion lay in product development.&lt;/p&gt;

&lt;p&gt;My journey took a significant turn during college when I co-founded a student startup. Although we faced multiple failures, this experience was transformative. It instilled in me the confidence and drive to build and ship open products, and it taught me valuable lessons on refining and deploying ideas. Today, I am deeply involved in multiple open-source projects and open learning initiatives. I work full-time with &lt;a href="https://www.pupilfirst.org/"&gt;Pupilfirst&lt;/a&gt;, developing an open learning management system, and I contribute to programs that teach coding to students across the country.&lt;/p&gt;

&lt;p&gt;One project that holds a special place in my heart is the &lt;br&gt;
&lt;a href="https://ohc.network/"&gt;The Open Healthcare Network&lt;/a&gt; (previously CoronaSafe.Network), which aims to improve the availability of healthcare resources across multiple states in India. I have had the privilege of maintaining this project and witnessing its positive impact firsthand.&lt;/p&gt;
&lt;h2&gt;
  
  
  The Open Healthcare Network
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--RRLxNFtf--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/z6o4r8upj344c25ejz9m.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--RRLxNFtf--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/z6o4r8upj344c25ejz9m.png" alt="The Open Healthcare Network" width="800" height="413"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The journey of the Open Healthcare Network is a testament to the power of community collaboration and open-source development for public good. What began as a response to the COVID-19 pandemic has evolved into a comprehensive hospital management system operational across 11 Indian states, directly benefiting over 186.8 million people. The system, seamlessly integrated across 581 hospitals, has facilitated medical attention to 362,349 patients and enabled over half a million consultations via 1,884 dedicated health workers.&lt;/p&gt;

&lt;p&gt;Leading the charge was a global team of 300+ open-source enthusiasts worldwide. I had the honor of directing this talented team and mentoring interns.&lt;/p&gt;

&lt;p&gt;The efforts were recognized by the United Nations, which verified our product as a Digital Public Good (DPGA). This acknowledgment was not only a proud moment for our team but also a validation of our commitment to creating digital public goods that have a meaningful impact on society.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--emGJxt15--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/703zakr1am8sxwy63wob.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--emGJxt15--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/703zakr1am8sxwy63wob.jpg" alt="The Open Healthcare Network War Room" width="800" height="403"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;As we navigated the height of the pandemic, we focused on critical system scalability and charted a strategic roadmap for expansion into specialized remote critical care monitoring. Throughout this journey, we remained steadfast in promoting the ethos of open-source development tailored for the public good. &lt;/p&gt;

&lt;p&gt;Open Healthcare Network has now expanded its feature sets and is being utilized by multiple states to run teleICU for critical care. This innovation connects medical colleges with district hospitals around the area, enabling experts in the medical colleges to see the patients in each bed via high-resolution cameras. Additionally, they can look at device readings digitally as it's all connected into the system using open-source tooling.&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/Z69cNgOii6Y"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;This development represents a significant advancement in remote healthcare services, facilitating real-time monitoring and consultation for patients in critical care, even from a distance. By leveraging the power of open-source tools and digital connectivity, we are able to bridge the gap between urban medical colleges and district hospitals, thereby ensuring that expertise is shared, and patients receive the best possible care, regardless of their location.&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/vSu67-C8EnU"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;Reflecting on my journey, I have witnessed the transformative power of community firsthand. From the early days of tinkering with my school website, to working on large-scale projects like the Open Healthcare Network, the support and collaboration of the community have been instrumental in shaping my growth as a developer and in the success of the projects I have been a part of.&lt;/p&gt;

&lt;p&gt;I encourage you all to actively engage in and contribute to the communities you are a part of. Whether it is by sharing your knowledge, mentoring others, or contributing to open-source projects, every effort counts. Together, we can make a meaningful difference in the lives of millions.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/coronasafe"&gt;Github Repo&lt;/a&gt;&lt;/p&gt;

</description>
      <category>opensource</category>
      <category>development</category>
      <category>community</category>
    </item>
    <item>
      <title>Mytemplate.xyz | A no-code personal website builder for developers</title>
      <dc:creator>Bodhish Thomas</dc:creator>
      <pubDate>Sat, 21 Aug 2021 19:43:42 +0000</pubDate>
      <link>https://dev.to/bodhish/mytemplate-xyz-a-no-code-personal-website-builder-for-developers-52p7</link>
      <guid>https://dev.to/bodhish/mytemplate-xyz-a-no-code-personal-website-builder-for-developers-52p7</guid>
      <description>&lt;p&gt;A No-Code developer website builder side project created with ReScript.&lt;/p&gt;

&lt;h1&gt;
  
  
  Why the builder?
&lt;/h1&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fres.cloudinary.com%2Fbodhi%2Fimage%2Fupload%2Fv1629574460%2Fblogs%2F22-08-2021-mytemplate%2Fmytemplatemeta_cpisbm.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fres.cloudinary.com%2Fbodhi%2Fimage%2Fupload%2Fv1629574460%2Fblogs%2F22-08-2021-mytemplate%2Fmytemplatemeta_cpisbm.png" alt="mytemplate"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Its super hard to find time updating a personal website. I wanted a simple flow with which I could take out that pain. The editor tries to make the personal website management simple with features like display blogs from Dev.to and projects from Github&lt;/p&gt;

&lt;h2&gt;
  
  
  Hosting with Github
&lt;/h2&gt;

&lt;p&gt;Once you are done with editing click the download button. Commit the 'index.html' file that you downloaded to your github repository. Open Github setting and enable 'Github Pages'. Set source as your 'main' branch and folder as root. Commit the '_redirects' file to your repo. Your site will be live in few minutes. &lt;a href="https://github.com/bodhish/bodhish.github.io/blob/master/_redirects" rel="noopener noreferrer"&gt;_redirects file&lt;/a&gt;,  &lt;a href="https://vimeo.com/520421685" rel="noopener noreferrer"&gt;Watch Video&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Hosting with Netlify
&lt;/h2&gt;

&lt;p&gt;Once you are done with editing click the download button. Commit the &lt;code&gt;index.html&lt;/code&gt; file that you downloaded to your github repository. Open Netlify and click 'New site from Git' button. Choose your repository from Github and click 'deploy site'. Add &lt;code&gt;netlify.toml&lt;/code&gt; file to your repo if you have added a blog. &lt;a href="https://github.com/bodhish/bodhish.github.io/blob/master/netlify.toml" rel="noopener noreferrer"&gt;netlify.toml&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  How to use import?
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fres.cloudinary.com%2Fbodhi%2Fimage%2Fupload%2Fv1629574460%2Fblogs%2F22-08-2021-mytemplate%2Fimport_xzalqe.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fres.cloudinary.com%2Fbodhi%2Fimage%2Fupload%2Fv1629574460%2Fblogs%2F22-08-2021-mytemplate%2Fimport_xzalqe.png" alt="import"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You can easly import the index file exported from mytemplate. Click the import button on the top right corner of this page. Enter your Github repositor in the required format and press the check icon on the import tab. This will import the file from Github, once the import is complete you can click the 'Open in Editor' button to complete import. &lt;a href="https://vimeo.com/520424952" rel="noopener noreferrer"&gt;Watch Video&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Tech Stack?
&lt;/h2&gt;

&lt;p&gt;The editor is created with ReasonReact(Rescript) and TailwindCSS.&lt;/p&gt;

&lt;h2&gt;
  
  
  Where to report Bugs?
&lt;/h2&gt;

&lt;p&gt;Create a issue with details of the bug in &lt;a href="https://github.com/bodhish/mytemplate.xyz/" rel="noopener noreferrer"&gt;mytemplate repo&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Examples&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="//bodhish.in"&gt;bodhish.in&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fres.cloudinary.com%2Fbodhi%2Fimage%2Fupload%2Fv1629574461%2Fblogs%2F22-08-2021-mytemplate%2Fq_nbiiwy.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fres.cloudinary.com%2Fbodhi%2Fimage%2Fupload%2Fv1629574461%2Fblogs%2F22-08-2021-mytemplate%2Fq_nbiiwy.png" alt="bodhish.in"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="//gigin.dev"&gt;gigin.dev&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>opensource</category>
      <category>tailwindcss</category>
      <category>react</category>
      <category>nocode</category>
    </item>
    <item>
      <title>Adding TailwindCSS to your Rails 6 Project</title>
      <dc:creator>Bodhish Thomas</dc:creator>
      <pubDate>Sat, 12 Sep 2020 11:54:41 +0000</pubDate>
      <link>https://dev.to/bodhish/adding-tailwindcss-to-your-rails-6-project-2nk</link>
      <guid>https://dev.to/bodhish/adding-tailwindcss-to-your-rails-6-project-2nk</guid>
      <description>&lt;h1&gt;
  
  
  Tailwind + Rails 6
&lt;/h1&gt;

&lt;p&gt;Steps to configure tailwindCSS in you rails 6 application&lt;/p&gt;

&lt;h3&gt;
  
  
  Install Tailwind CSS
&lt;/h3&gt;

&lt;p&gt;Run the following command to add tailwind to the &lt;code&gt;package.json&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt; yarn add tailwindcss
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Create Tailwind Configuration
&lt;/h3&gt;

&lt;p&gt;The following command will create a &lt;code&gt;tailwind.config.js&lt;/code&gt; file where you could setup the default configuration for &lt;code&gt;TailwindCSS&lt;/code&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 tailwindcss init
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The taildwind config file will be empty and should look like&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nx"&gt;module&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;exports&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="na"&gt;purge&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[],&lt;/span&gt;
  &lt;span class="na"&gt;theme&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="na"&gt;extend&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{},&lt;/span&gt;
  &lt;span class="p"&gt;},&lt;/span&gt;
  &lt;span class="na"&gt;variants&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{},&lt;/span&gt;
  &lt;span class="na"&gt;plugins&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[],&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Here is an example of my &lt;code&gt;tailwind.config.js&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nx"&gt;module&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;exports&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="na"&gt;theme&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="na"&gt;extend&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
      &lt;span class="na"&gt;colors&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="na"&gt;primary&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
          &lt;span class="mi"&gt;100&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;#fef6eb&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
          &lt;span class="mi"&gt;200&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;#f7c686&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
          &lt;span class="mi"&gt;300&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;#f4b35d&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
          &lt;span class="mi"&gt;400&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;#f2aa49&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
          &lt;span class="mi"&gt;500&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;#f1a035&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
          &lt;span class="mi"&gt;600&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;#d99030&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
          &lt;span class="mi"&gt;700&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;#c1802a&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
          &lt;span class="mi"&gt;800&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;#a97025&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
          &lt;span class="mi"&gt;900&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;#916020&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="p"&gt;},&lt;/span&gt;
      &lt;span class="p"&gt;},&lt;/span&gt;
    &lt;span class="p"&gt;},&lt;/span&gt;
  &lt;span class="p"&gt;},&lt;/span&gt;
  &lt;span class="na"&gt;purge&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="na"&gt;content&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;./app/**/*.html.erb&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;};&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Adding tailwind to PostCSS config
&lt;/h3&gt;

&lt;p&gt;You will need to add the following line to the &lt;code&gt;postcss.config.js&lt;/code&gt; file.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;require("tailwindcss"),
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;here is an example of my &lt;code&gt;postcss.config.js&lt;/code&gt; file&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nx"&gt;module&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;exports&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="na"&gt;plugins&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
    &lt;span class="nx"&gt;require&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;postcss-import&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
    &lt;span class="nx"&gt;require&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;postcss-flexbugs-fixes&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
    &lt;span class="nx"&gt;require&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;tailwindcss&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
    &lt;span class="nx"&gt;require&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;postcss-preset-env&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)({&lt;/span&gt;
      &lt;span class="na"&gt;autoprefixer&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="na"&gt;flexbox&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;no-2009&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;
      &lt;span class="p"&gt;},&lt;/span&gt;
      &lt;span class="na"&gt;stage&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt;
    &lt;span class="p"&gt;})&lt;/span&gt;
  &lt;span class="p"&gt;]&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Import tailwind to your Javascript Pack
&lt;/h3&gt;

&lt;p&gt;You will need to import tailwind via javascript. &lt;/p&gt;

&lt;p&gt;create an &lt;code&gt;application.css&lt;/code&gt; file in &lt;code&gt;app/javascript/layouts/&lt;/code&gt; &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;I usually keep this in a folder called &lt;code&gt;layouts&lt;/code&gt;, you could choose any other folder that's convenient for you inside the &lt;code&gt;app/javascript&lt;/code&gt; directory&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;add the following to your &lt;code&gt;application.css&lt;/code&gt; file that you have created now&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;/* tailwind */
@import "tailwindcss/base";

@import "tailwindcss/components";

@import "tailwindcss/utilities";
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Import &lt;code&gt;application.css&lt;/code&gt; in your &lt;code&gt;app/javascript/packs/application.js&lt;/code&gt; file. &lt;br&gt;
(add the following line)&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import  "../layouts/application.css";
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Import Tailwind to your layout
&lt;/h3&gt;

&lt;p&gt;Now that you have added &lt;code&gt;TailwindCSS&lt;/code&gt; to your application pack, you will have to import it in &lt;code&gt;application.html.erb&lt;/code&gt; to use tailwind globally in your application. &lt;/p&gt;

&lt;p&gt;Add the following line to &lt;code&gt;app/views/layouts/application.html.erb&lt;/code&gt; in &lt;code&gt;&amp;lt;head&amp;gt;&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="sx"&gt;%=  stylesheet_pack_tag  'application',  media: 'all',  'data-turbolinks-track': 'reload'  %&amp;gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



</description>
      <category>rails</category>
      <category>tailwindcss</category>
    </item>
    <item>
      <title>Auto Deploy reason-react projects on Netlify</title>
      <dc:creator>Bodhish Thomas</dc:creator>
      <pubDate>Sat, 09 May 2020 14:57:52 +0000</pubDate>
      <link>https://dev.to/bodhish/auto-deploy-reason-react-projects-on-netlify-3oli</link>
      <guid>https://dev.to/bodhish/auto-deploy-reason-react-projects-on-netlify-3oli</guid>
      <description>&lt;p&gt;Auto deploy your Reason React project from Github to Netlify. When you push to Git, Netlify will auto deploy your project.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--kHplFRI---/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://res.cloudinary.com/bodhi/image/upload/v1589035939/blogs/09-05-Auto%2520Deploy%2520reason-react%2520projects%2520on%2520Netlify/1_CBtMXuN2P2uIM-d5FOWadw_aujucf.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--kHplFRI---/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://res.cloudinary.com/bodhi/image/upload/v1589035939/blogs/09-05-Auto%2520Deploy%2520reason-react%2520projects%2520on%2520Netlify/1_CBtMXuN2P2uIM-d5FOWadw_aujucf.png" alt="Reason with Netlify"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you don’t have a project, you can get the basic setup instruction in  &lt;a href="https://reasonml.github.io/reason-react/docs/en/installation"&gt;reason react official documentation&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Steps:&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Login/sign-up to  &lt;a href="https://www.netlify.com/"&gt;https://netlify.com&lt;/a&gt;
&lt;/h3&gt;

&lt;h3&gt;
  
  
  2. Click on “New site from Git” button
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--_0tA-rHH--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://res.cloudinary.com/bodhi/image/upload/v1589035939/blogs/09-05-Auto%2520Deploy%2520reason-react%2520projects%2520on%2520Netlify/1_0YshPY2e97MkJBwWX2V7ig_tvzzqq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--_0tA-rHH--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://res.cloudinary.com/bodhi/image/upload/v1589035939/blogs/09-05-Auto%2520Deploy%2520reason-react%2520projects%2520on%2520Netlify/1_0YshPY2e97MkJBwWX2V7ig_tvzzqq.png" alt="Netlify Dashboard"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Choose the Git provider where your site’s source code is hosted
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--ooncAFDO--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://res.cloudinary.com/bodhi/image/upload/v1589035941/blogs/09-05-Auto%2520Deploy%2520reason-react%2520projects%2520on%2520Netlify/1_V8aW25KGIpkDcUUxZbGIsA_erbiqp.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ooncAFDO--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://res.cloudinary.com/bodhi/image/upload/v1589035941/blogs/09-05-Auto%2520Deploy%2520reason-react%2520projects%2520on%2520Netlify/1_V8aW25KGIpkDcUUxZbGIsA_erbiqp.png" alt="Create Site"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  4. Choose the repository you want to link to your site on Netlify.
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--f1LrFm0R--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://res.cloudinary.com/bodhi/image/upload/v1589035942/blogs/09-05-Auto%2520Deploy%2520reason-react%2520projects%2520on%2520Netlify/1_6MTGBq1plsZ_KCFvhl7-SA_wahj9c.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--f1LrFm0R--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://res.cloudinary.com/bodhi/image/upload/v1589035942/blogs/09-05-Auto%2520Deploy%2520reason-react%2520projects%2520on%2520Netlify/1_6MTGBq1plsZ_KCFvhl7-SA_wahj9c.png" alt="Create a netlify site"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  5. Choose the branch to deploy and give the build commands and publish directory.
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--33dQS35a--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://res.cloudinary.com/bodhi/image/upload/v1589035944/blogs/09-05-Auto%2520Deploy%2520reason-react%2520projects%2520on%2520Netlify/1_fr4mgLRwiW95OA91uiNqfw_mtrbfd.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--33dQS35a--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://res.cloudinary.com/bodhi/image/upload/v1589035944/blogs/09-05-Auto%2520Deploy%2520reason-react%2520projects%2520on%2520Netlify/1_fr4mgLRwiW95OA91uiNqfw_mtrbfd.png" alt="Deploy"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Build command
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;npm run clean &amp;amp;&amp;amp; npm run build &amp;amp;&amp;amp; npm run webpack:production
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



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



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;build
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Fill-in the details and click “Deploy Site” button.&lt;/p&gt;

&lt;p&gt;Your site will get deployed in 5 mins, All other commits you make to the branch you select will get auto deployed to Netlify :D&lt;/p&gt;

</description>
      <category>reason</category>
      <category>react</category>
      <category>netlify</category>
    </item>
    <item>
      <title>Reason React + Tailwind starter with Create Reason React APP (CRRA)</title>
      <dc:creator>Bodhish Thomas</dc:creator>
      <pubDate>Wed, 04 Mar 2020 10:42:56 +0000</pubDate>
      <link>https://dev.to/bodhish/reason-react-tailwind-starter-with-create-reason-react-app-crra-2527</link>
      <guid>https://dev.to/bodhish/reason-react-tailwind-starter-with-create-reason-react-app-crra-2527</guid>
      <description>&lt;h1&gt;
  
  
  &lt;strong&gt;Quick Start&lt;/strong&gt;
&lt;/h1&gt;

&lt;p&gt;&lt;code&gt;create-reason-react-tailwind&lt;/code&gt;  is an easy way to get started with boilerplate reason react templates.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Install&lt;/strong&gt; &lt;code&gt;**crra**&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;npx create-reason-react-tailwind
&lt;/code&gt;&lt;/pre&gt;

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

&lt;p&gt;&lt;strong&gt;2. Choose a template&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;You can choose the template from the template selector&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--U452QKxN--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://res.cloudinary.com/bodhi/image/upload/v1583317801/blogs/05-03-2020-dev-reason-react-tailwind/Screenshot_from_2020-03-04_13-37-55_gd1aql.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--U452QKxN--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://res.cloudinary.com/bodhi/image/upload/v1583317801/blogs/05-03-2020-dev-reason-react-tailwind/Screenshot_from_2020-03-04_13-37-55_gd1aql.png" alt="https://res.cloudinary.com/bodhi/image/upload/v1583317801/blogs/05-03-2020-dev-reason-react-tailwind/Screenshot_from_2020-03-04_13-37-55_gd1aql.png"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;3. Add a project name&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;after selecting the template, you will be asked to add a project name&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--WbJi0qnw--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://res.cloudinary.com/bodhi/image/upload/v1583317801/blogs/05-03-2020-dev-reason-react-tailwind/Screenshot_from_2020-03-04_13-38-30_v8yaif.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--WbJi0qnw--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://res.cloudinary.com/bodhi/image/upload/v1583317801/blogs/05-03-2020-dev-reason-react-tailwind/Screenshot_from_2020-03-04_13-38-30_v8yaif.png" alt=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;add your project name and hit enter &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. Your create reason react app is ready 😃&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;cd my-app
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;You will get a pre-configured reason react template with parcel, postcss and tailwind. The bare minimum for creating a reason react project.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Z2FN_VZk--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://res.cloudinary.com/bodhi/image/upload/v1583339157/blogs/05-03-2020-dev-reason-react-tailwind/tree_id5ane.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Z2FN_VZk--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://res.cloudinary.com/bodhi/image/upload/v1583339157/blogs/05-03-2020-dev-reason-react-tailwind/tree_id5ane.png" alt="Folder structure"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/bodhish/create-reason-react-tailwind/tree/master/templates/tailwind-starter"&gt;Github Repo&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;5. Install dependencies&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;npm install
npm run dev
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;You will be able to see the project running at  &lt;code&gt;localhost:1234&lt;/code&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  expected output
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--vEgOPOMT--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://res.cloudinary.com/bodhi/image/upload/v1583332668/blogs/05-03-2020-dev-reason-react-tailwind/out_nejhzu.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--vEgOPOMT--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://res.cloudinary.com/bodhi/image/upload/v1583332668/blogs/05-03-2020-dev-reason-react-tailwind/out_nejhzu.png" alt="https://res.cloudinary.com/bodhi/image/upload/v1583332668/blogs/05-03-2020-dev-reason-react-tailwind/out_nejhzu.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;You may have to change the package-name if you plan to publish the repositoy (optional)&lt;/p&gt;
&lt;/blockquote&gt;


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--i3JOwpme--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/github-logo-ba8488d21cd8ee1fee097b8410db9deaa41d0ca30b004c0c63de0a479114156f.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/bodhish"&gt;
        bodhish
      &lt;/a&gt; / &lt;a href="https://github.com/bodhish/create-reason-react-tailwind"&gt;
        create-reason-react-tailwind
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      Create Reason React App - A simple boilerplate generator for tailwind styled reason react project
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;
&lt;p&gt;&lt;a href="https://badge.fury.io/js/create-reason-react-tailwind" rel="nofollow"&gt;&lt;img src="https://camo.githubusercontent.com/929a9657ea7a5e4bcc3e14f9d13a245b11e96b8eaaea46d75e2d0089baf3355f/68747470733a2f2f62616467652e667572792e696f2f6a732f6372656174652d726561736f6e2d72656163742d7461696c77696e642e737667" alt="npm version"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h1&gt;
Create Rescript / Reason React App&lt;/h1&gt;
&lt;p&gt;Rescript &amp;amp; Reason react boilerplate generator&lt;/p&gt;
&lt;h2&gt;
Quick Start&lt;/h2&gt;
&lt;div class="highlight highlight-source-shell position-relative js-code-highlight"&gt;
&lt;pre&gt;npx create-reason-react-tailwind&lt;/pre&gt;

&lt;/div&gt;
&lt;h4&gt;
What project template would you like to generate? (choose the template)&lt;/h4&gt;
&lt;div class="highlight highlight-source-shell position-relative js-code-highlight"&gt;
&lt;pre&gt;webpack-tailwind&lt;/pre&gt;

&lt;/div&gt;
&lt;h4&gt;
Project Name - Add the project name&lt;/h4&gt;
&lt;div class="highlight highlight-source-shell position-relative js-code-highlight"&gt;
&lt;pre&gt;my-app&lt;/pre&gt;

&lt;/div&gt;
&lt;p&gt;| &lt;code&gt;crra&lt;/code&gt; will create a new folder with the template project.&lt;/p&gt;
&lt;div class="highlight highlight-source-shell position-relative js-code-highlight"&gt;
&lt;pre&gt;&lt;span class="pl-c1"&gt;cd&lt;/span&gt; my-app&lt;/pre&gt;

&lt;/div&gt;
&lt;p&gt;Follow the instructions in &lt;code&gt;README.md&lt;/code&gt;&lt;/p&gt;
&lt;h3&gt;
CRRA&lt;/h3&gt;
&lt;p&gt;Add create reason react app globally&lt;/p&gt;
&lt;div class="highlight highlight-source-shell position-relative js-code-highlight"&gt;
&lt;pre&gt;npm i -g create-reason-react-tailwind
crra&lt;/pre&gt;

&lt;/div&gt;
&lt;/div&gt;

  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/bodhish/create-reason-react-tailwind"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;



&lt;h2&gt;
  
  
  Deploy your CRR
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://medium.com/@bodhish/auto-deploy-reason-react-sites-on-netlify-fe7e16a2fbc5"&gt;Auto Deploy reason-react projects on Netlify&lt;/a&gt;&lt;/p&gt;

</description>
      <category>reason</category>
      <category>tailwindcss</category>
      <category>reasonreact</category>
    </item>
  </channel>
</rss>
