<?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: SWIRL </title>
    <description>The latest articles on DEV Community by SWIRL  (@swirl).</description>
    <link>https://dev.to/swirl</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%2Forganization%2Fprofile_image%2F7463%2F0b752367-361d-4d4b-b1a0-47928f7843e0.png</url>
      <title>DEV Community: SWIRL </title>
      <link>https://dev.to/swirl</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/swirl"/>
    <language>en</language>
    <item>
      <title>How These Free Open Source Projects Can Jumpstart Your Career (No Experience? No Problem!)</title>
      <dc:creator>𝚂𝚊𝚞𝚛𝚊𝚋𝚑 𝚁𝚊𝚒</dc:creator>
      <pubDate>Fri, 13 Dec 2024 11:17:11 +0000</pubDate>
      <link>https://dev.to/swirl/how-these-free-open-source-projects-can-jumpstart-your-career-no-experience-no-problem-4e44</link>
      <guid>https://dev.to/swirl/how-these-free-open-source-projects-can-jumpstart-your-career-no-experience-no-problem-4e44</guid>
      <description>&lt;p&gt;Open source is like a training ground for real-world skills. By contributing to projects, you gain hands-on experience working with codebases, collaborating with teams, and solving practical problems. It’s a chance to learn, experiment, and build a portfolio that showcases your skills to potential employers—all without needing prior experience.&lt;/p&gt;

&lt;h2&gt;
  
  
  How does open-source helps in career building?
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fc0suq69ckdl7cb4ytuuu.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fc0suq69ckdl7cb4ytuuu.gif" alt=" " width="498" height="480"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Open source helps people by providing an open and collaborative environment to learn and grow. You can pick up skills like version control, debugging, and project management by working on actual problems instead of hypothetical ones. It also connects you with a global community of developers who share feedback, mentor newcomers, and help you refine your craft. Plus, the visibility of your contributions builds credibility, showing employers you can deliver results in real-world scenarios.&lt;/p&gt;

&lt;h2&gt;
  
  
  How to select open-source projects?
&lt;/h2&gt;

&lt;p&gt;Getting started with open source might seem overwhelming, but it’s easier than you think. There are countless projects out there across all domains—web development, data science, machine learning, design, and more—waiting for contributors.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2m67gmnkain56g3vtwjo.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2m67gmnkain56g3vtwjo.gif" alt=" " width="640" height="354"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;These communities aren’t just about code; they’re also about learning. You’ll discover how large projects are structured, how to collaborate effectively, and even get mentored by experienced contributors. It’s a chance to not only improve your skills but also gain insight into teamwork, problem-solving, and industry practices.&lt;/p&gt;

&lt;h2&gt;
  
  
  Open-source projects to learn from &amp;amp; start contributing to
&lt;/h2&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://github.com/swirlai/swirl-search" rel="noopener noreferrer"&gt;&lt;strong&gt;SWIRL: AI Search&lt;/strong&gt;&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsen88qndc1eubs2ytc59.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsen88qndc1eubs2ytc59.jpeg" alt="SWIRL AI Search" width="800" height="640"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;SWIRL is an open-source platform that enables AI-powered search and Retrieval Augmented Generation (RAG) across your company's data without moving it. Think of it as Perplexity but tailored for your internal data, offering high configurability and security. With SWIRL, you can instantly access information from over 100 apps, ensuring data remains secure and deployments are swift.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fuyd0wo59hn2pmqxhfdkk.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fuyd0wo59hn2pmqxhfdkk.gif" alt="SWIRL Demo" width="764" height="480"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Mastering SWIRL's AI search features can enhance your expertise in:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Enterprise-level AI search solutions&lt;/li&gt;
&lt;li&gt;Data security and compliance&lt;/li&gt;
&lt;li&gt;Integration of multiple data sources&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These skills are highly sought after in today's tech landscape.&lt;/p&gt;

&lt;p&gt;Give SWIRL a try: &lt;a href="https://github.com/swirlai/swirl-search" rel="noopener noreferrer"&gt;https://github.com/swirlai/swirl-search&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/swirlai/swirl-search" class="ltag_cta ltag_cta--branded" rel="noopener noreferrer"&gt;🌟 SWIRL on GitHub&lt;/a&gt;
&lt;/p&gt;




&lt;h3&gt;
  
  
  &lt;strong&gt;Postiz: The Ultimate AI-Powered Social Media Scheduler&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0yg3lrmq2kx2mdujs6yi.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0yg3lrmq2kx2mdujs6yi.jpeg" alt="Postiz" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Postiz is an open-source tool that simplifies social media scheduling with AI capabilities. It allows you to plan and automate your social media posts efficiently, integrating AI to optimize your content strategy. &lt;/p&gt;

&lt;p&gt;By engaging with Postiz, you'll develo&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Social media automation&lt;/li&gt;
&lt;li&gt;AI-driven content optimization&lt;/li&gt;
&lt;li&gt;Cross-platform content management&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These competencies are invaluable for roles in digital marketing and content strategy.&lt;/p&gt;

&lt;p&gt;Explore Postiz here: &lt;a href="https://github.com/gitroomhq/postiz-app" rel="noopener noreferrer"&gt;https://github.com/gitroomhq/postiz-app&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/gitroomhq/postiz-app" class="ltag_cta ltag_cta--branded" rel="noopener noreferrer"&gt;🌟 Postiz on GitHub&lt;/a&gt;
&lt;/p&gt;




&lt;h3&gt;
  
  
  &lt;strong&gt;Taipy: Transform Data and AI Algorithms into Web Applications&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fh6wvdh568w85755gn6ah.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fh6wvdh568w85755gn6ah.jpeg" alt="Taipy" width="800" height="533"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Taipy is an open-source framework that enables you to turn data and AI algorithms into production-ready web applications swiftly. It provides tools to build interactive GUIs and manage data pipelines, making it easier to deploy AI solutions. &lt;/p&gt;

&lt;p&gt;Working with Taipy enhances your abili&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Developing AI-driven web applications&lt;/li&gt;
&lt;li&gt;Data pipeline management&lt;/li&gt;
&lt;li&gt;User interface design for data-centric applications&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These skills are crucial for careers in data science and AI development.&lt;/p&gt;

&lt;p&gt;Check out Taipy: &lt;a href="https://github.com/Avaiga/taipy" rel="noopener noreferrer"&gt;https://github.com/Avaiga/taipy&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/Avaiga/taipy" class="ltag_cta ltag_cta--branded" rel="noopener noreferrer"&gt;🌟 Taipy on GitHub&lt;/a&gt;
&lt;/p&gt;




&lt;h3&gt;
  
  
  &lt;strong&gt;Resume Matcher: Align Your Resume with Job Descriptions&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnc7aucfx378vq5q2pzty.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnc7aucfx378vq5q2pzty.jpeg" alt="Resume Matcher" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Resume Matcher is an open-source tool that uses language models to compare and rank resumes against job descriptions, helping you tailor your applications effectively. &lt;/p&gt;

&lt;p&gt;Utilizing Resume Matcher will help you&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Optimize your resume for applicant tracking systems&lt;/li&gt;
&lt;li&gt;Understand key terms and skills employers seek&lt;/li&gt;
&lt;li&gt;Enhance your chances of landing interviews&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These insights are vital for job seekers aiming to stand out.&lt;/p&gt;

&lt;p&gt;Try Resume Matcher: &lt;a href="https://github.com/srbhr/Resume-Matcher" rel="noopener noreferrer"&gt;https://github.com/srbhr/Resume-Matcher&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/srbhr/Resume-Matcher" class="ltag_cta ltag_cta--branded" rel="noopener noreferrer"&gt;🌟 Resume Matcher on GitHub&lt;/a&gt;
&lt;/p&gt;




&lt;h3&gt;
  
  
  &lt;strong&gt;DeepEval: The LLM Evaluation Framework&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8ea9dm8ybun058eaaiwn.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8ea9dm8ybun058eaaiwn.jpeg" alt="DeepEval" width="800" height="266"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;DeepEval is an open-source framework designed for evaluating and testing large language model systems, similar to Pytest but specialized for unit testing LLM outputs. &lt;/p&gt;

&lt;p&gt;Engaging with DeepEval allows you to:Assess the performance of language models&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Implement robust testing protocols&lt;/li&gt;
&lt;li&gt;Ensure the reliability of AI applications&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These capabilities are essential for professionals working with AI and machine learning models.&lt;/p&gt;

&lt;p&gt;Discover DeepEval: &lt;a href="https://github.com/confident-ai/deepeval" rel="noopener noreferrer"&gt;https://github.com/confident-ai/deepeval&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/confident-ai/deepeval" class="ltag_cta ltag_cta--branded" rel="noopener noreferrer"&gt;🌟 DeepEval on GitHub&lt;/a&gt;
&lt;/p&gt;




&lt;h3&gt;
  
  
  &lt;strong&gt;Cyclops: Developer-Friendly Kubernetes&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ficw8cd9axt5feinxh5oc.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ficw8cd9axt5feinxh5oc.jpeg" alt="Cyclops" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Cyclops is an open-source tool that simplifies Kubernetes with an intuitive UI, making it accessible for developers. It streamlines the process of configuring and deploying applications without the complexity of YAML files. &lt;/p&gt;

&lt;p&gt;By working with Cyclops, you can:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;es management&lt;/li&gt;
&lt;li&gt;Enhance deployment efficiency&lt;/li&gt;
&lt;li&gt;Improve your DevOps skills&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These proficiencies are highly valued in modern software development environments.&lt;/p&gt;

&lt;p&gt;Explore Cyclops: &lt;a href="https://github.com/cyclops-ui/cyclops" rel="noopener noreferrer"&gt;https://github.com/cyclops-ui/cyclops&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/cyclops-ui/cyclops" class="ltag_cta ltag_cta--branded" rel="noopener noreferrer"&gt;🌟 Cyclops on GitHub&lt;/a&gt;
&lt;/p&gt;

&lt;h2&gt;
  
  
  Ready to start? Pick a project, contribute, and let your work shine!
&lt;/h2&gt;

&lt;p&gt;Now is the perfect time to dive into open source. With so many AI tools available, understanding complex codebases has never been easier. Tools like GitHub Copilot, Cursor, Claude, IDX and ChatGPT can help you quickly grasp project structures, run the code locally, and explore its internals to gain a deeper understanding.&lt;br&gt;
Once you’re familiar, you can start contributing—whether it’s fixing bugs, improving documentation, or adding new features. Open source is your gateway to real-world experience. &lt;br&gt;
The timing is right, so start learning by doing and let your skills shine! 🚀&lt;/p&gt;

&lt;p&gt;Do give SWIRL a 🌟 on GitHub. It would mean a lot to us! And thanks a lot for reading!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/swirlai/swirl-search" class="ltag_cta ltag_cta--branded" rel="noopener noreferrer"&gt;🌟 SWIRL on GitHub&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;Remember, those who put in the work. Greatness is coming!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frs4ggdnxvi86x96b6bev.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frs4ggdnxvi86x96b6bev.gif" alt=" " width="498" height="280"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>opensource</category>
      <category>beginners</category>
      <category>webdev</category>
      <category>ai</category>
    </item>
    <item>
      <title>Top AI Search Engines for Business &amp; Startups in 2025</title>
      <dc:creator>𝚂𝚊𝚞𝚛𝚊𝚋𝚑 𝚁𝚊𝚒</dc:creator>
      <pubDate>Wed, 04 Dec 2024 14:05:35 +0000</pubDate>
      <link>https://dev.to/swirl/top-ai-search-engines-for-business-startups-in-2025-49jo</link>
      <guid>https://dev.to/swirl/top-ai-search-engines-for-business-startups-in-2025-49jo</guid>
      <description>&lt;p&gt;Imagine having a brilliant personal assistant who understands precisely what you’re looking for and anticipates your needs before expressing them. This is the promise of AI-powered search engines, changing how businesses and individuals access and process information.&lt;/p&gt;

&lt;h2&gt;
  
  
  How does AI Search work?
&lt;/h2&gt;

&lt;p&gt;AI search uses artificial intelligence technologies, particularly natural language processing (NLP), to understand the context and intent behind user queries. It goes beyond simple keyword matching. The system employs machine learning algorithms to learn from large amounts of data, identifying patterns and improving search relevance over time.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fg5iv1jl1y2ppqir7375v.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fg5iv1jl1y2ppqir7375v.png" alt="How does AI Search work" width="800" height="1145"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  How AI Search Benefits Business
&lt;/h2&gt;

&lt;p&gt;For businesses, AI search offers transformative efficiency. It minimizes employees’ time searching for information, delivering precise results that speed up decision-making and streamline operations.&lt;/p&gt;

&lt;h3&gt;
  
  
  Benefits of AI Search for Business:
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Enhanced Productivity&lt;/strong&gt;: Reduces data retrieval time, allowing employees to focus on critical tasks.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Improved Customer Experiences&lt;/strong&gt;: Delivers personalized recommendations and support, increasing satisfaction and loyalty.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Data-Driven Decisions&lt;/strong&gt;: Provides predictive insights to guide strategic planning and navigate complex scenarios.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Scalability for Startups&lt;/strong&gt;: Tools like Perplexity AI adapt to specific needs, enabling smarter growth and resource management.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Competitive Advantage&lt;/strong&gt;: AI search empowers businesses to stay ahead in fast-evolving markets.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  What Businesses Want from AI Search Engines
&lt;/h3&gt;

&lt;p&gt;Businesses look for AI search solutions that align with their operational needs and strategic goals:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Data Security&lt;/strong&gt;: Ensuring sensitive information is protected with robust measures.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Easy Connectivity&lt;/strong&gt;: Seamless integration with existing tools and platforms.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Multiple Application Access&lt;/strong&gt;: Support for diverse use cases, from customer service to analytics.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;No Vendor Lock-In&lt;/strong&gt;: Flexibility to switch providers without being tied to one vendor.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Multiple AI Providers&lt;/strong&gt;: Ability to leverage various AI models for enhanced functionality.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Top AI Search Engines for Business
&lt;/h2&gt;

&lt;h3&gt;
  
  
  SWIRL - Open Source AI Search
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftvgx1hcc64vycccdq26e.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftvgx1hcc64vycccdq26e.png" alt="SWIRL - Open Source AI Search" width="800" height="543"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;SWIRL is a cutting-edge, &lt;strong&gt;open-source AI-powered search&lt;/strong&gt; platform that streamlines information retrieval. It enables querying across multiple data sources and delivers AI-ranked results without data movement or re-indexing.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Seamless Integration&lt;/strong&gt;: Connects with databases, cloud services, and enterprise applications.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Enhanced Relevance&lt;/strong&gt;: Uses Large Language Models (LLMs) to re-rank and provide context-aware results.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Data Security&lt;/strong&gt;: Operates within organizational firewalls to protect sensitive information.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Customizable&lt;/strong&gt;: Open-source architecture allows businesses to tailor the solution to their needs.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;No vendor lock-in&lt;/strong&gt;: Supports 20+ AI apps from open source to Open AI. And has built-in connectors for 100+ apps.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;SWIRL offers a secure, flexible, and efficient AI search experience for your workplace.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/swirlai/swirl-search" class="ltag_cta ltag_cta--branded" rel="noopener noreferrer"&gt;SWIRL is on GitHub&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;Website: &lt;a href="https://swirlaiconnect.com" rel="noopener noreferrer"&gt;https://swirlaiconnect.com&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Getting Started with SWIRL:
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# No need for:&lt;/span&gt;
&lt;span class="nv"&gt;$ &lt;/span&gt;setup-vector-db
&lt;span class="nv"&gt;$ &lt;/span&gt;migrate-data
&lt;span class="nv"&gt;$ &lt;/span&gt;configure-indexes

&lt;span class="c"&gt;# Just this:&lt;/span&gt;
&lt;span class="nv"&gt;$ &lt;/span&gt;curl https://raw.githubusercontent.com/swirlai/swirl-search/main/docker-compose.yaml &lt;span class="nt"&gt;-o&lt;/span&gt; docker-compose.yaml
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;strong&gt;❌ Without SWIRL&lt;/strong&gt;&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;✅ With SWIRL&lt;/strong&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Set up vector databases&lt;/td&gt;
&lt;td&gt;One docker command&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Move data around&lt;/td&gt;
&lt;td&gt;Data stays in place&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Complex ETL pipelines&lt;/td&gt;
&lt;td&gt;No vector DB needed&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Weeks of infrastructure work&lt;/td&gt;
&lt;td&gt;2-minute setup&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Security headaches&lt;/td&gt;
&lt;td&gt;Enterprise-grade security&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;a href="https://github.com/swirlai/swirl-search" class="ltag_cta ltag_cta--branded" rel="noopener noreferrer"&gt;Get started with SWIRL&lt;/a&gt;
&lt;/p&gt;

&lt;h3&gt;
  
  
  What Can You Build With SWIRL?
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fuyd0wo59hn2pmqxhfdkk.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fuyd0wo59hn2pmqxhfdkk.gif" alt="SWIRL Demo" width="764" height="480"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Actual examples of what teams build with SWIRL:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;🔍 Knowledge Base Search:&lt;/strong&gt; Connect SharePoint, Confluence, &amp;amp; Drive. Get instant answers with source links.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;🤖 Customer Support Assistant:&lt;/strong&gt; Search across support docs &amp;amp; tickets and draft responses using your content. Maintain consistent answers&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;👩‍💻 Developer Assistant:&lt;/strong&gt; Search GitHub, Jira, &amp;amp; documentation, and find code examples &amp;amp; solutions. Speed up development workflow&lt;/p&gt;

&lt;p&gt;&lt;a href="https://join.slack.com/t/swirlmetasearch/shared_invite/zt-2sfwvhwwg-mMn9tcKhAbqXbrV~9~Y1eA" class="ltag_cta ltag_cta--branded" rel="noopener noreferrer"&gt;Join SWIRL AI Search Community on Slack&lt;/a&gt;
&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Perplexity AI&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Perplexity AI is a conversational search engine that utilizes large language models to provide direct answers with inline citations, enhancing the search experience with real-time, accurate information.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Industries Served&lt;/strong&gt;: General public, with applications in education, research, and general information retrieval.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Open Source&lt;/strong&gt;: No&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;You.com&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;You.com is an AI-powered search engine offering a customizable, privacy-focused experience. It integrates various AI tools, including YouChat for conversational search and YouWrite for AI-assisted writing, catering to diverse user needs.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Industries Served&lt;/strong&gt;: General public, developers, and content creators.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Open Source&lt;/strong&gt;: No&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Algolia&lt;/strong&gt; &lt;/p&gt;

&lt;p&gt;Algolia provides a search-as-a-service platform, enabling businesses to implement fast, relevant search experiences on their websites and applications.It offers robust APIs for seamless integration and scalability.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Industries Served&lt;/strong&gt;: E-commerce, media, SaaS, and enterprise sectors.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Open Source&lt;/strong&gt;: No&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Meilisearch&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Meilisearch is an open-source, lightning-fast search engine designed for effortless integration. It provides users with an intuitive search experience, making it ideal for applications requiring quick and relevant search results.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Industries Served&lt;/strong&gt;: Developers, startups, and businesses seeking customizable search solutions.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Open Source&lt;/strong&gt;:Yes&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Trieve AI Search&lt;/strong&gt; &lt;/p&gt;

&lt;p&gt;Trieve offers an all-in-one, source-available infrastructure for building search, recommendations, and Retrieval-Augmented Generation (RAG) experiences.It combines search language models with tools for fine-tuning ranking and relevance, facilitating the development of AI-native search solutions.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Industries Served&lt;/strong&gt;: Developers, enterprises, and search teams across various sectors.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Open Source&lt;/strong&gt;: Source-available&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  &lt;strong&gt;Combining Elastic, Solr, and OpenSearch with SWIRL for an Enhanced AI Search Experience&lt;/strong&gt;
&lt;/h3&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Elastic&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Elastic is a powerful distributed search engine known for its scalability and full-text search capabilities, widely used across industries for analytics and operational data retrieval.&lt;/p&gt;

&lt;p&gt;Elastic can be combined with SWIRL to add AI-driven features like re-ranking, context-aware results, and natural language processing, transforming traditional search into an advanced AI experience.&lt;/p&gt;

&lt;p&gt; 🌐 &lt;a href="https://www.elastic.co/" rel="noopener noreferrer"&gt;Learn more about Elastic&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Solr&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Solr, an enterprise-grade search platform from Apache, excels in indexing and searching large volumes of structured and unstructured data.&lt;br&gt;
Solr can be combined with SWIRL to integrate machine learning models for smarter search ranking, AI-powered insights, and personalized user experiences. &lt;/p&gt;

&lt;p&gt;🌐 &lt;a href="https://solr.apache.org/" rel="noopener noreferrer"&gt;Learn more about Solr&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;
  
  
  &lt;strong&gt;OpenSearch&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;OpenSearch is an open-source search and analytics suite that strongly focuses on flexibility and security and supports real-time monitoring and data analysis.&lt;/p&gt;

&lt;p&gt;OpenSearch can be combined with SWIRL to deliver an AI-enhanced search experience, adding capabilities like natural language understanding and advanced ranking while maintaining secure and scalable operations. &lt;br&gt;
🌐 &lt;a href="https://opensearch.org/" rel="noopener noreferrer"&gt;Learn more about OpenSearch&lt;/a&gt;&lt;/p&gt;


&lt;h2&gt;
  
  
  AI Search for business
&lt;/h2&gt;

&lt;p&gt;SWIRL offers a secure, AI-driven search solution that integrates with your data sources without moving or re-indexing. Its open-source platform is customizable to your needs, enabling faster decisions and better customer experiences.&lt;/p&gt;

&lt;p&gt;Ready to start? Check out SWIRL on GitHub and join our Slack community to learn more.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://join.slack.com/t/swirlmetasearch/shared_invite/zt-2sfwvhwwg-mMn9tcKhAbqXbrV~9~Y1eA" class="ltag_cta ltag_cta--branded" rel="noopener noreferrer"&gt;Join SWIRL AI Search Community&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/swirlai/swirl-search" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fj6kzawk1n5snecyi51sd.jpg" alt="SWIRL GitHub" width="800" height="336"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/swirlai/swirl-search" class="ltag_cta ltag_cta--branded" rel="noopener noreferrer"&gt;🌟 SWIRL on GitHub&lt;/a&gt;
&lt;/p&gt;




&lt;p&gt;Thanks for reading if you liked this please follow me, &lt;a href="https://dev.to/srbhr"&gt;Saurabh&lt;/a&gt;&lt;/p&gt;

</description>
      <category>programming</category>
      <category>opensource</category>
      <category>ai</category>
      <category>machinelearning</category>
    </item>
    <item>
      <title>From Zero to Hero: Learning Through 📖 Open Source AI Projects 💻</title>
      <dc:creator>𝚂𝚊𝚞𝚛𝚊𝚋𝚑 𝚁𝚊𝚒</dc:creator>
      <pubDate>Tue, 26 Nov 2024 17:41:02 +0000</pubDate>
      <link>https://dev.to/swirl/from-zero-to-app-learning-through-open-source-ai-projects-3dkn</link>
      <guid>https://dev.to/swirl/from-zero-to-app-learning-through-open-source-ai-projects-3dkn</guid>
      <description>&lt;p&gt;Have you ever wanted to learn about AI but felt lost about where to start? Don't worry - you're not alone! Many people want to learn about AI tools but aren't sure how to begin. This guide will help you understand five useful AI tools that can help you learn while you use them.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fr429vvtv30jtba0xra04.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fr429vvtv30jtba0xra04.gif" alt="Learning" width="220" height="124"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Learn Through Open Source Apps?
&lt;/h2&gt;

&lt;p&gt;Think about learning to ride a bike. You didn't start by reading a book about bikes - you got on one and started pedaling! Learning AI works the same way. Instead of just reading about AI, you can learn better by using and building AI tools. &lt;/p&gt;

&lt;p&gt;What makes open source apps special is that you can look under the hood - just like having a transparent bike where you can see all the gears working together. You can read the code, make changes, and learn from real developers who've built successful projects. &lt;br&gt;
Plus, you're not alone - open source communities are full of people ready to help you learn and improve.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0k8xrojcu8gc1w48kivd.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0k8xrojcu8gc1w48kivd.png" alt="Learning Loop" width="670" height="1174"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Learning loop source: 3 looped learning&lt;/em&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  What are some open source that I can learn from?
&lt;/h2&gt;

&lt;p&gt;Learning by observing how others approach their work can be incredibly effective. Often, we may not have access to mentors or experienced guides, yet our drive to achieve something meaningful keeps us moving forward. In such cases, exploring and studying open-source projects offers a fantastic opportunity to learn and grow. It’s one of the best ways to develop skills and gain insights.&lt;/p&gt;

&lt;p&gt;Let’s explore some open source projects. &lt;/p&gt;
&lt;h2&gt;
  
  
  &lt;a href="https://github.com/swirlai/swirl-search" rel="noopener noreferrer"&gt;SWIRL&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://github.com/swirlai/swirl-search" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmyt23wjsr6f9xlgdixhe.png" alt="SWIRL" width="800" height="449"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;SWIRL is an open-source AI Search and RAG system that integrates advanced AI technologies into business operations. It offers features like Retrieval-Augmented Generation (RAG), AI Search, analytics, and a Co-Pilot assistant, enabling enhanced decision-making without the need to move data into vector databases or undergo ETL processes.&lt;/p&gt;
&lt;h3&gt;
  
  
  What can I learn from it?
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;AI Integration in Business:&lt;/strong&gt; Understand how to incorporate AI capabilities into existing business systems to improve decision-making and efficiency.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Retrieval-Augmented Generation (RAG):&lt;/strong&gt; Learn about RAG techniques that combine information retrieval with generative AI to provide contextually relevant responses.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Data Security Practices:&lt;/strong&gt; Explore methods to implement AI solutions that operate directly on local data, enhancing security by eliminating the need for data movement.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Open-Source Deployment:&lt;/strong&gt; Gain experience in deploying and managing open-source AI infrastructure within private cloud environments.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://github.com/swirlai/swirl-search" class="ltag_cta ltag_cta--branded" rel="noopener noreferrer"&gt;SWIRL on GitHub&lt;/a&gt;
&lt;/p&gt;




&lt;h2&gt;
  
  
  &lt;a href="https://github.com/gitroomhq/postiz-app" rel="noopener noreferrer"&gt;Postiz&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://github.com/gitroomhq/postiz-app" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7rkzj94ffh9678d3aanl.png" alt="Postiz" width="800" height="336"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Postiz is an open-source social media scheduling tool that leverages AI to optimize content posting across various platforms. It simplifies the process of managing multiple social media accounts and scheduling posts effectively.&lt;/p&gt;

&lt;h3&gt;
  
  
  What can I learn from it?
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;AI-powered scheduling:&lt;/strong&gt; Learn how artificial intelligence can determine the best times to post on social media.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Multi-platform support:&lt;/strong&gt; Understand the challenges and solutions for scheduling posts across various social media platforms.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;User-friendly design:&lt;/strong&gt; Explore intuitive UI design principles for easy navigation and account management.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Analytics integration:&lt;/strong&gt; Discover how analytics can provide insights into post performance and audience engagement.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://github.com/gitroomhq/postiz-app" class="ltag_cta ltag_cta--branded" rel="noopener noreferrer"&gt;Postiz on GitHub&lt;/a&gt;
&lt;/p&gt;




&lt;h2&gt;
  
  
  &lt;a href="https://github.com/OpenBB-finance/OpenBB" rel="noopener noreferrer"&gt;OpenBB&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://github.com/OpenBB-finance/OpenBB" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwbl098lid9i2m0yxufp2.png" alt="OpenBB" width="800" height="326"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;OpenBB is a free, open-source financial platform offering access to a wide range of investment research tools. It provides functionalities for analyzing equities, options, cryptocurrencies, forex, macroeconomic data, and fixed income, among others. The platform is designed to be extensible, allowing users to enhance their experience according to their needs.&lt;/p&gt;

&lt;h3&gt;
  
  
  What can I learn from it?
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Comprehensive Financial Analysis:&lt;/strong&gt; Explore various financial instruments and markets, gaining insights into equities, options, cryptocurrencies, and more.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Data Integration Techniques:&lt;/strong&gt; Learn how to integrate multiple data sources into a cohesive platform, facilitating comprehensive investment research.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Open-Source Development Practices:&lt;/strong&gt; Understand the collaborative processes involved in maintaining and enhancing a large-scale open-source project.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Extensibility and Customization:&lt;/strong&gt; Discover how to customize and extend the platform to suit specific research needs, enhancing its functionality.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://github.com/OpenBB-finance/OpenBB" class="ltag_cta ltag_cta--branded" rel="noopener noreferrer"&gt;OpenBB on GitHub&lt;/a&gt;
&lt;/p&gt;




&lt;h2&gt;
  
  
  &lt;a href="https://github.com/open-webui/open-webui" rel="noopener noreferrer"&gt;Open WebUI&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://github.com/open-webui/open-webui" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Facc01hstw1p813fqwfj8.png" alt="Open WebUI" width="800" height="314"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Open WebUI is an open-source, user-friendly interface designed to facilitate interactions with large language models (LLMs). It supports various LLM runners, including Ollama and OpenAI-compatible APIs, and offers features like role-based access control, multilingual support, and integration with image generation tools. The platform is designed to operate entirely offline, ensuring data privacy and security.&lt;/p&gt;

&lt;h3&gt;
  
  
  What can I learn from it?
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;AI Model Integration:&lt;/strong&gt; Understand how to connect and manage different AI models within a unified interface.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;User Management:&lt;/strong&gt; Learn about implementing role-based access control to manage user permissions effectively.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Multilingual Support:&lt;/strong&gt; Explore techniques for providing a user interface that supports multiple languages.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Offline Operation:&lt;/strong&gt; Gain insights into designing applications that function without internet connectivity, enhancing data privacy.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://github.com/open-webui/open-webui" class="ltag_cta ltag_cta--branded" rel="noopener noreferrer"&gt;Open WebUI on GitHub&lt;/a&gt;
&lt;/p&gt;




&lt;h2&gt;
  
  
  &lt;a href="https://github.com/AIHawk-FOSS/Auto_Jobs_Applier_AI_Agent" rel="noopener noreferrer"&gt;Auto Jobs Applier AI Agent&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://github.com/AIHawk-FOSS/Auto_Jobs_Applier_AI_Agent" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flna8kfzwk4qnz8mixgco.png" alt="Auto Jobs Applier AI Agent" width="800" height="350"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Auto Jobs Applier AI Agent is an open-source tool that automates the job application process. Leveraging artificial intelligence, it enables users to apply for multiple jobs efficiently and with personalized content. The agent scans job listings, filters relevant positions, and submits applications on behalf of the user, streamlining the job search experience.&lt;/p&gt;

&lt;h3&gt;
  
  
  What can I learn from it?
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Automation Techniques:&lt;/strong&gt; Understand how to automate repetitive tasks, such as job applications, using AI-driven methods.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;AI-Powered Personalization:&lt;/strong&gt; Learn how AI can tailor application materials to match specific job requirements, enhancing the chances of success.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Data Handling and Security:&lt;/strong&gt; Explore best practices for managing sensitive user information securely within an application.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Open-Source Collaboration:&lt;/strong&gt; Gain experience in contributing to and maintaining a community-driven project, including code reviews and issue tracking.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://github.com/AIHawk-FOSS/Auto_Jobs_Applier_AI_Agent" class="ltag_cta ltag_cta--branded" rel="noopener noreferrer"&gt;Auto Jobs Applier on GitHub&lt;/a&gt;
&lt;/p&gt;




&lt;h1&gt;
  
  
  Why Learning By Doing Works Best
&lt;/h1&gt;

&lt;p&gt;When you actively engage with something, your brain processes it in a way that sticks. Reading and watching videos can give you knowledge, but actually trying out concepts and solving problems makes that knowledge practical and memorable.&lt;/p&gt;

&lt;p&gt;Building and experimenting with open-source projects is like practice sessions where you’re not just observing but doing the actual work. This method helps you tackle real-world problems and makes your learning experience much richer.&lt;/p&gt;

&lt;p&gt;I hope this helps you in your learning journey. I’ve gained a lot of experience by contributing and learning from open source. And I wish that you, reader have the same success as me. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6e5fnidmebbidhaujql3.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6e5fnidmebbidhaujql3.gif" alt="Greatness is coming" width="323" height="360"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Thank you for reading. Greatness is coming!&lt;/p&gt;

</description>
      <category>programming</category>
      <category>beginners</category>
      <category>ai</category>
      <category>opensource</category>
    </item>
    <item>
      <title>AI Co-Pilots Uncovered with 4 Powerful 🔥 Open Source Repos 💻</title>
      <dc:creator>𝚂𝚊𝚞𝚛𝚊𝚋𝚑 𝚁𝚊𝚒</dc:creator>
      <pubDate>Tue, 05 Nov 2024 13:45:11 +0000</pubDate>
      <link>https://dev.to/swirl/ai-co-pilots-uncovered-with-4-powerful-open-source-repos-4345</link>
      <guid>https://dev.to/swirl/ai-co-pilots-uncovered-with-4-powerful-open-source-repos-4345</guid>
      <description>&lt;h2&gt;
  
  
  What are AI Co-Pilots?
&lt;/h2&gt;

&lt;p&gt;AI Copilots are advanced AI systems designed to work alongside users, offering real-time guidance and personalized assistance across various tasks. &lt;br&gt;
They learn from user behaviors, adapt to their needs, and offer suggestions throughout the task.&lt;/p&gt;
&lt;h2&gt;
  
  
  How do AI Co-Pilots Work?
&lt;/h2&gt;

&lt;p&gt;AI Copilots leverage large language models (LLMs), machine learning, natural language processing, and context awareness technology to understand work context. To predict user needs and guide users through a task or complete it on their behalf.&lt;br&gt;
AI Co-Pilots can integrate with various software applications, databases, and collaboration tools, streamlining workflows and automating tasks such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Context-aware assistance&lt;/li&gt;
&lt;li&gt;Task automation&lt;/li&gt;
&lt;li&gt;Data analysis&lt;/li&gt;
&lt;li&gt;Continuous service improvements &amp;amp; more.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;
  
  
  Working Diagram
&lt;/h3&gt;

&lt;p&gt;This diagram gives you an overall working of Co-Pilots.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fr6wv5bpdmzvig6l6t9rm.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fr6wv5bpdmzvig6l6t9rm.jpg" alt="AI Co-Pilot Working Diagram" width="800" height="844"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;A lot is going on here. If you want to make a working co-pilot, we don’t need to do everything ourselves. The open-source packages that we’ll be exploring solve each part.&lt;/p&gt;
&lt;h3&gt;
  
  
  What are the benefits of using AI Co-Pilots?
&lt;/h3&gt;

&lt;p&gt;Usually, AI co-pilots are targeted at automating repetitive and mundane tasks. They enhance productivity by giving you insights and suggestions and performing actions on your behalf. &lt;br&gt;
Such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Analyzing financial data, automating financial calculations, and generating reports and forecasts.&lt;/li&gt;
&lt;li&gt;Predicting code snippets based on context.&lt;/li&gt;
&lt;li&gt;Monitoring tech stacks, alerting to pending incidents or problems, and providing predictive maintenance.&lt;/li&gt;
&lt;li&gt;Automating tasks like ticketing, code completion, and knowledge-base article generation.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;
  
  
  Open Source Repositories that’ll help you build AI Co-Pilots
&lt;/h2&gt;

&lt;p&gt;Let’s explore the parts of the diagram and tackle each problem using an existing library to speed up your work in building an AI Co-Pilot.&lt;/p&gt;

&lt;p&gt;1.&lt;strong&gt;SWIRL&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/swirlai/swirl-search" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fc9gm572pqpbppyvr3wme.jpg" alt="SWIRL" width="800" height="266"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;GitHub Link: &lt;a href="https://github.com/swirlai/swirl-search" rel="noopener noreferrer"&gt;https://github.com/swirlai/swirl-search&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;SWIRL is an AI-powered search framework that provides seamless, real-time access to multiple data sources without requiring data transfers (ETL). SWIRL Serves as the data part, fulfilling action requests and bringing in data from external systems. Along with re-ranking, chat and source intent detection.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Unified Data Access&lt;/strong&gt;: SWIRL connects multiple data sources in real-time, bypassing ETL and enabling seamless, secure access to critical data on demand.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Enterprise-Level Security&lt;/strong&gt;: Its architecture prioritizes secure data handling, making it ideal for sensitive environments where data permissions and access control are essential.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Insight Generation&lt;/strong&gt;: With its AI-powered querying and summarization, SWIRL provides actionable insights directly within workflows, enhancing co-pilot frameworks with data-driven decision support.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://github.com/swirlai/swirl-search" class="ltag_cta ltag_cta--branded" rel="noopener noreferrer"&gt;⭐️ SWIRL on GitHub.&lt;/a&gt;
&lt;/p&gt;

&lt;h3&gt;
  
  
  2.  &lt;strong&gt;CopilotKit&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzayxcb2b3bjhbhjn99sd.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzayxcb2b3bjhbhjn99sd.jpg" alt="CopilotKit" width="800" height="266"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;GitHub Link: &lt;a href="https://github.com/CopilotKit/CopilotKit" rel="noopener noreferrer"&gt;https://github.com/CopilotKit/CopilotKit&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;CopilotKit is a toolkit that provides building blocks for integrating core AI functions like summarization and extraction into applications. Copilot kit can do context-aware actions and interactions.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Core AI Functions&lt;/strong&gt;: CopilotKit offers essential AI tools for implementing co-pilot capabilities like summarization, extraction, and context-based recommendations.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Modular Workflow Integration&lt;/strong&gt;: Designed for flexibility, developers can create custom workflows that make co-pilots more responsive to individual user needs.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Scalable Co-Pilot Features&lt;/strong&gt;: By adding task automation and personalization, CopilotKit fits seamlessly into co-pilot frameworks, allowing quicker deployment of adaptable AI assistants.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://github.com/CopilotKit/CopilotKit" class="ltag_cta ltag_cta--branded" rel="noopener noreferrer"&gt;⭐️ CoPilotkit on GitHub.&lt;/a&gt;
&lt;/p&gt;

&lt;h3&gt;
  
  
  3.&lt;strong&gt;GPT Pilot&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flkgem6fpj2zfu8ffdrcl.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flkgem6fpj2zfu8ffdrcl.jpg" alt="GPT Pilot" width="800" height="266"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;GitHub Link &lt;a href="https://github.com/Pythagora-io/gpt-pilot" rel="noopener noreferrer"&gt;https://github.com/Pythagora-io/gpt-pilot&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;GPT Pilot is a conversational AI framework that enables the rapid deployment of autonomous, interactive agents powered by large language models (LLMs).&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Conversational AI&lt;/strong&gt;: GPT Pilot excels in building autonomous, task-oriented conversational agents that provide real-time assistance.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Rapid Deployment of AI Models&lt;/strong&gt;: With pre-trained and customizable models, it’s tailored for dynamic co-pilot frameworks that need interactive, user-friendly AI.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Contextual Adaptability&lt;/strong&gt;: Its ability to refine responses based on interactions enhances its capacity to engage and support users intelligently.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://github.com/Pythagora-io/gpt-pilot" class="ltag_cta ltag_cta--branded" rel="noopener noreferrer"&gt;⭐️ GPT Pilot on GitHub.&lt;/a&gt;
&lt;/p&gt;

&lt;h3&gt;
  
  
  4.&lt;strong&gt;OpenHands&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fv5ibxbeab3xa4zlw3jqp.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fv5ibxbeab3xa4zlw3jqp.jpg" alt="OpenHands" width="800" height="266"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;GitHub Link: &lt;a href="https://github.com/All-Hands-AI/OpenHands" rel="noopener noreferrer"&gt;https://github.com/All-Hands-AI/OpenHands&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;OpenHands is a collaborative AI platform that supports team projects with interactive, real-time environments for coding and automation. This tool can help drive the coding parts when you fetch data from external systems with SWIRL&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Real-Time Collaborative AI&lt;/strong&gt;: OpenHands supports teamwork with shared AI-driven environments, enhancing co-pilot frameworks for projects requiring collaboration.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Collaborative Coding and Automation&lt;/strong&gt;: It enables co-pilots to assist with joint development efforts, automating repetitive coding tasks and facilitating real-time feedback.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Scalable to Various Needs&lt;/strong&gt;: Its adaptable infrastructure allows OpenHands to serve multiple team settings, making it a versatile addition to any co-pilot architecture.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://github.com/All-Hands-AI/OpenHands" class="ltag_cta ltag_cta--branded" rel="noopener noreferrer"&gt;⭐️ Open Hands on GitHub.&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;By combining these solutions, you can create a robust AI co-pilot framework that adapts to user needs, enhances productivity, and transforms how we interact with technology. &lt;/p&gt;

&lt;p&gt;As the AI ecosystem evolves, embracing such modular, open-source approaches will be vital to staying agile and responsive in a fast-paced digital landscape.&lt;/p&gt;

&lt;p&gt;So, take these tools for a spin, experiment with configurations, and let your AI co-pilot project take flight!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fuaxshd5h98js5osidhr0.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fuaxshd5h98js5osidhr0.gif" alt="AI Co-Pilot GIF" width="240" height="350"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you’re interested in &lt;a href="https://swirlaiconnect.com/" rel="noopener noreferrer"&gt;SWIRL&lt;/a&gt;, join our &lt;a href="https://join.slack.com/t/swirlmetasearch/shared_invite/zt-2sfwvhwwg-mMn9tcKhAbqXbrV~9~Y1eA" rel="noopener noreferrer"&gt;Slack Community&lt;/a&gt; and star our GitHub Repository. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/swirlai/swirl-search" class="ltag_cta ltag_cta--branded" rel="noopener noreferrer"&gt;⭐️ SWIRL on GitHub.&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;We’ll be happy to assist you in helping you adopt SWIRL for your workplace. Thank you for reading :) &lt;/p&gt;

</description>
      <category>python</category>
      <category>programming</category>
      <category>ai</category>
      <category>opensource</category>
    </item>
    <item>
      <title>Building a Perplexity-like Open Source AI Search with SWIRL</title>
      <dc:creator>𝚂𝚊𝚞𝚛𝚊𝚋𝚑 𝚁𝚊𝚒</dc:creator>
      <pubDate>Thu, 24 Oct 2024 13:26:23 +0000</pubDate>
      <link>https://dev.to/swirl/building-a-perplexity-like-open-source-ai-search-with-swirl-57cl</link>
      <guid>https://dev.to/swirl/building-a-perplexity-like-open-source-ai-search-with-swirl-57cl</guid>
      <description>&lt;p&gt;Perplexity AI is an AI-powered search engine that has gained traction for its ability to deliver answers to search queries by combining search engines and AI models.&lt;/p&gt;

&lt;p&gt;Unlike traditional search engines like bing, google, yahoo. Perplexity uses large language models to interpret and respond to queries, providing results that are not just keyword-based but contextually relevant.&lt;/p&gt;

&lt;h2&gt;
  
  
  Building Perplexity
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzzu4lijo0z9kbqtkez9o.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzzu4lijo0z9kbqtkez9o.jpg" alt="Searching for answers" width="800" height="336"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;There are three important factors that we can interpret form the above paragraphs.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Understanding user queries as they’re natural language like, owning to LLMs and some prompt engineering.&lt;/li&gt;
&lt;li&gt;The searching capability to search and fetch answers from different sources.&lt;/li&gt;
&lt;li&gt;Bringing all the results together and generating an AI answer from it while citing the sources.

&lt;ul&gt;
&lt;li&gt;(&lt;strong&gt;Optional&lt;/strong&gt;) Re-ranking the results so results are more relevant to what user has asked for.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;So, in order to have a working perplexity for your own data and data sources, we’ll have to have a solution that connectors to datasources, apps and databases to fetch data. Needs to have a search infrastructure in place and then an integration with an AI model for summaries, re-ranking etc. &lt;/p&gt;

&lt;p&gt;For this part we’ll be using &lt;a href="https://swirlaiconnect.com/" rel="noopener noreferrer"&gt;&lt;strong&gt;SWIRL&lt;/strong&gt;&lt;/a&gt; for the integration with apps and AI models. And for the search part, we’ll be using the default Google PSE which comes built in with SWIRL’s docker container. You can add more apps to search from, but that’s a tutorial for some other time. 😁&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/swirlai/swirl-search" class="ltag_cta ltag_cta--branded" rel="noopener noreferrer"&gt;SWIRL on GitHub.&lt;/a&gt;
&lt;/p&gt;

&lt;h2&gt;
  
  
  Setting up SWIRL
&lt;/h2&gt;

&lt;p&gt;To try &lt;strong&gt;SWIRL in Docker&lt;/strong&gt; using the &lt;a href="https://github.com/swirlai/swirl-search" rel="noopener noreferrer"&gt;GitHub guide&lt;/a&gt;, follow these steps:&lt;br&gt;
&lt;em&gt;There’s also a short youtube tutorial that I made which you can watch.&lt;/em&gt;&lt;/p&gt;

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

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

&lt;ol&gt;
&lt;li&gt;Ensure that you have Docker installed and running on your system (MacOS, Linux, or Windows). &lt;/li&gt;
&lt;li&gt;Windows users may need to install and configure either &lt;strong&gt;WSL 2&lt;/strong&gt; or &lt;strong&gt;Hyper-V&lt;/strong&gt;.&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Steps to Set Up SWIRL in Docker 🐋
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Download the Docker YAML File&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Open a terminal and run:
&lt;/li&gt;
&lt;/ul&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt; curl https://raw.githubusercontent.com/swirlai/swirl-search/main/docker-compose.yaml &lt;span class="nt"&gt;-o&lt;/span&gt; docker-compose.yaml
&lt;/code&gt;&lt;/pre&gt;

&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Start SWIRL with Docker&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;For &lt;strong&gt;MacOS or Linux&lt;/strong&gt;, run:
&lt;/li&gt;
&lt;/ul&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt; docker-compose pull &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; docker-compose up
&lt;/code&gt;&lt;/pre&gt;

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

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;For &lt;strong&gt;Windows&lt;/strong&gt;, run from PowerShell:&lt;br&gt;
&lt;/p&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt; docker compose up
&lt;/code&gt;&lt;/pre&gt;

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

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Enable Real-Time RAG (Retrieval-Augmented Generation)&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Set environment variables:
&lt;/li&gt;
&lt;/ul&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt; &lt;span class="nb"&gt;export &lt;/span&gt;&lt;span class="nv"&gt;MSAL_CB_PORT&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;8000
 &lt;span class="nb"&gt;export &lt;/span&gt;&lt;span class="nv"&gt;MSAL_HOST&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;localhost
 &lt;span class="nb"&gt;export &lt;/span&gt;&lt;span class="nv"&gt;OPENAI_API_KEY&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;'your-OpenAI-API-key'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

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

&lt;ul&gt;
&lt;li&gt;Restart Docker to activate RAG features.&lt;/li&gt;
&lt;/ul&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Access SWIRL&lt;/strong&gt;:

&lt;ul&gt;
&lt;li&gt;Open your browser and go to &lt;code&gt;http://localhost:8000&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Log in using the admin credentials (&lt;code&gt;admin&lt;/code&gt; as username and &lt;code&gt;password&lt;/code&gt; as the default password).&lt;/li&gt;
&lt;li&gt;Enter a search query and click 'Search' to see results.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;If you need more help refer to the full guide &lt;a href="https://github.com/swirlai/swirl-search" rel="noopener noreferrer"&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Start Searching and Generate AI Summaries 🔍
&lt;/h2&gt;

&lt;p&gt;Once we have SWIRL up and running we can get started with searching for different queries and generating AI summaries on top of it. The best part is that SWIRL provides re-ranking of search results.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Searching for “Best open source search engines”&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fj35w0vx0hy3mi27bz81o.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fj35w0vx0hy3mi27bz81o.jpg" alt="Searching for top open source search engines" width="800" height="532"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Searching for “Attention is all you need”&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fl0evn0incxss7ymuod6g.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fl0evn0incxss7ymuod6g.jpg" alt="Searching for Attention is all you need" width="800" height="537"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;AI Summary of “Attention is all you need”&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdhp1dypzcijimj75va7k.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdhp1dypzcijimj75va7k.jpg" alt="AI Summary Attention is all you need" width="800" height="519"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;So, far it works pretty well with Google PSE, but you can also search specific websites as well. As seen in the left pane. Also, adding a connector is pretty easy and just a PR away.&lt;/p&gt;

&lt;h2&gt;
  
  
  Adding more apps and personalizing your Search Experience
&lt;/h2&gt;

&lt;p&gt;Using Google search results for search and RAG is a great start, but the real advantage comes when SWIRL is connected to various apps. This enables more comprehensive searches and AI-generated summaries directly from your workplace data, making information discovery faster and more effective.&lt;/p&gt;

&lt;p&gt;To get started, simply visit the admin panel and enter the bearer token for the apps you want to connect. There’s a &lt;a href="https://www.youtube.com/watch?v=WCYqx0mOXeI" rel="noopener noreferrer"&gt;detailed video guide&lt;/a&gt; available that walks you through integrating with OpenSearch, along with &lt;a href="https://docs.swirlaiconnect.com/" rel="noopener noreferrer"&gt;documentation&lt;/a&gt; on &lt;a href="https://swirlaiconnect.com/connectors" rel="noopener noreferrer"&gt;supported connectors&lt;/a&gt;. This makes it easy to configure SWIRL and maximize its search capabilities across your connected data sources.&lt;/p&gt;

&lt;h3&gt;
  
  
  Join our SWIRL Community
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8f0ydzcmfic8hhalogwm.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8f0ydzcmfic8hhalogwm.png" alt="Join our SWIRL Community" width="800" height="323"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;SWIRL is open-source and licensed under Apache 2.0. We’d love for you to check it out on GitHub and give it a Star—it’s a great way to support us and keep us motivated to roll out new features! &lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/swirlai/swirl-search" class="ltag_cta ltag_cta--branded" rel="noopener noreferrer"&gt;Give us a 🌟 on GitHub.&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;If you’re interested in adding a new website or app as a searchable connector, we welcome your contributions.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://join.slack.com/t/swirlmetasearch/shared_invite/zt-2sfwvhwwg-mMn9tcKhAbqXbrV~9~Y1eA" class="ltag_cta ltag_cta--branded" rel="noopener noreferrer"&gt;Join our Slack.&lt;/a&gt;
&lt;/p&gt;

</description>
      <category>ai</category>
      <category>rag</category>
      <category>opensource</category>
      <category>programming</category>
    </item>
    <item>
      <title>Top AI Search Engines to Boost Productivity</title>
      <dc:creator>𝚂𝚊𝚞𝚛𝚊𝚋𝚑 𝚁𝚊𝚒</dc:creator>
      <pubDate>Thu, 17 Oct 2024 11:03:13 +0000</pubDate>
      <link>https://dev.to/swirl/top-ai-search-engines-to-boost-productivity-26f9</link>
      <guid>https://dev.to/swirl/top-ai-search-engines-to-boost-productivity-26f9</guid>
      <description>&lt;p&gt;From searching multiple apps at once without any ETL to a fully functioning SAAS. Let's explore some Search Engines and Platforms this time!&lt;/p&gt;

&lt;h2&gt;
  
  
  Why does cross-platform search matter?
&lt;/h2&gt;

&lt;p&gt;Because finding information in the enterprise is challenging: data is scattered across technologies, applications, and platforms. Studies have shown that the average user spends more time gathering and searching for information than actually analyzing it.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2mr8mlz4sn226tzb4czd.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2mr8mlz4sn226tzb4czd.jpg" alt="cross-platform search" width="800" height="266"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This fragmentation makes it difficult to retrieve necessary information quickly and forces users to deal with multiple different interfaces.&lt;/p&gt;

&lt;p&gt;That’s why unified data access is essential — it provides users with one interface to all their data, reducing the time spent learning new technologies and simplifying the retrieval process.&lt;/p&gt;

&lt;h2&gt;
  
  
  Search will be the future of AI
&lt;/h2&gt;

&lt;p&gt;Addressing data fragmentation is why search is poised to become the future of AI. (And AI is most useful when it embraces search!)&lt;/p&gt;

&lt;p&gt;AI search engines boost productivity by finding information and presenting it in an easily understandable and actionable format. They utilize advanced natural language processing to interpret queries more effectively, allowing users to interact with the search engine in a context-aware, conversational style. This results in a more effective and intuitive search experience, significantly enhancing productivity beyond what traditional search engines can offer.&lt;/p&gt;

&lt;p&gt;Traditional search finds lots of information but forces the user to wade through it to find the best information. AI Search picks up much of the information load by summarizing documents and helping you interactively refine your search.&lt;/p&gt;

&lt;h3&gt;
  
  
  How AI Search Improves Insights and Actions
&lt;/h3&gt;

&lt;p&gt;Even after finding data, generating meaningful insights from it is difficult. This slows down decision-making and impedes timely actions.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6e5il7uze5vxb2ssbhnk.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6e5il7uze5vxb2ssbhnk.jpg" alt="AI-powered search" width="800" height="266"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;AI-powered solutions can help overcome these challenges.&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Unifying Data Access:&lt;/strong&gt; AI search tools combine data from diverse sources and intelligently remove duplicates, rank results, and provide summaries, making it easier to find the information you need.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Providing Valuable Insights:&lt;/strong&gt; These tools assist in decision-making by answering questions, summarizing data, performing comparisons and more — helping do the things that slow down analysts and prevent them from being productive.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Enhancing Productivity and Outcomes:&lt;/strong&gt; Reading a 50 page PDF to answer a single question is wasteful. Changing that is exactly the productivity game-changer AI represents. Now imagine that you have to answer 50 questions, from 50 PDFs.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Top AI Search Engines to Boost Productivity
&lt;/h2&gt;

&lt;p&gt;&lt;em&gt;AI Search sounds good, but how can I take advantage of it?&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://swirlaiconnect.com/" rel="noopener noreferrer"&gt;SWIRL&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxrhafc5hcw207zb9bg5e.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxrhafc5hcw207zb9bg5e.jpg" alt="SWIRL" width="800" height="310"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/swirlai/swirl-search" rel="noopener noreferrer"&gt;SWIRL&lt;/a&gt; is a powerful open-source AI infrastructure platform designed to run securely on-premises. &lt;/p&gt;

&lt;p&gt;It’s intuitive chat and search capabilities enable users to perform natural language queries across multiple data sources without moving or copying data to the cloud or into yet another specialized database. SWIRL can handle arbitrarily large amounts of data.&lt;/p&gt;

&lt;p&gt;SWIRL provides over 100 data connectors, including those for popular enterprise apps like Microsoft 365, Slack, and SQL/NoSQL databases, along with support for numerous AI providers such as ChatGPT, Claude, and more.&lt;/p&gt;

&lt;p&gt;Users can search only the data they are authorized to access, ensuring maximum privacy. Enterprise users who need more advanced capabilities can take advantage of SWIRL’s enhanced security measures for even greater control.&lt;/p&gt;

&lt;p&gt;Swirl doesn’t require you to shift your data into a database or a central repository. Regulated industries like banking and financial services can utilize Swirl for real-time data.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;GitHub Repo Link:&lt;/strong&gt; &lt;a href="https://github.com/swirlai/swirl-search" rel="noopener noreferrer"&gt;Swirl on GitHub&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/swirlai/swirl-search" class="ltag_cta ltag_cta--branded" rel="noopener noreferrer"&gt;🌟 Swirl on GitHub&lt;/a&gt;
&lt;/p&gt;




&lt;h3&gt;
  
  
  Sinequa
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flt8mtq6mblikxdzplc6y.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flt8mtq6mblikxdzplc6y.jpg" alt="Sinequa" width="800" height="257"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Sinequa offers an AI-powered search and analytics platform focused on enterprises with vast data sets. It is designed to index and make searchable a wide range of data types from various sources.&lt;/p&gt;

&lt;p&gt;Sinequa is not open-source. It comes with a proprietary license. It also functions primarily as a cloud-based or hybrid solution, integrating with numerous enterprise systems for secure data retrieval.&lt;/p&gt;

&lt;p&gt;Sinequa centralizes your data into a single repository before enabling you to search or generate insights. This might concern some industries where moving data into a vendor’s cloud can result in security risk, and in places where real-time data is important because data upload and ETL take time.&lt;/p&gt;




&lt;h3&gt;
  
  
  Glean
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5c1qau3w3yhnju2oachh.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5c1qau3w3yhnju2oachh.jpg" alt="Glean" width="800" height="331"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Glean is an enterprise AI search platform designed to integrate with various apps and services. It provides access to over 100 pre-built connectors and a robust enterprise knowledge graph to help users find relevant information across scattered data sources.&lt;/p&gt;

&lt;p&gt;Glean also supports AI functionalities like vector search, personalized results, and integration with popular large language models (LLMs) such as OpenAI GPT.&lt;/p&gt;

&lt;p&gt;Glean is not open-source but primarily a SaaS solution that relies on cloud services.&lt;/p&gt;




&lt;h3&gt;
  
  
  &lt;a href="https://www.perplexity.ai/discover" rel="noopener noreferrer"&gt;Perplexity&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F03p9fxn3t8yxzbyx6ddb.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F03p9fxn3t8yxzbyx6ddb.jpg" alt="Perplexity" width="800" height="379"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Unlike the other three, Perplexity AI focuses more on being a conversational search assistant. It leverages AI to provide immediate answers to user queries by retrieving information from the web and other public datasets.&lt;/p&gt;

&lt;p&gt;It is not as specialized for enterprise environments as SWIRL, Glean, or Sinequa and does not offer the extensive enterprise data connectors or deep integrations typical in business environments.&lt;/p&gt;

&lt;p&gt;Perplexity AI is also not open-source and is primarily designed for real-time web-based question-answering rather than enterprise-specific search needs.&lt;/p&gt;

&lt;p&gt;Perplexity has an enterprise version though it doesn’t have the provision to search siloed data or any apps.&lt;/p&gt;




&lt;h2&gt;
  
  
  So in tl;dr, this is what the comparison looks like:
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fewxg225imn5kugqx3fhl.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fewxg225imn5kugqx3fhl.png" alt="comparison of ai search engines" width="800" height="221"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;AI is making search useful again. And as I stated in the previous post search will be the future of AI. Read about it below.&lt;/p&gt;


&lt;div class="ltag__link"&gt;
  &lt;a href="/srbhr" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__pic"&gt;
      &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F236396%2F1767c256-4b76-4f40-b668-ccda42509f03.png" alt="srbhr"&gt;
    &lt;/div&gt;
  &lt;/a&gt;
  &lt;a href="https://dev.to/srbhr/search-will-be-the-future-of-llm-and-ai-applications-26fl" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__content"&gt;
      &lt;h2&gt;Search will be the future of LLM and AI Applications.&lt;/h2&gt;
      &lt;h3&gt;𝚂𝚊𝚞𝚛𝚊𝚋𝚑 𝚁𝚊𝚒 ・ May 21 '24&lt;/h3&gt;
      &lt;div class="ltag__link__taglist"&gt;
        &lt;span class="ltag__link__tag"&gt;#ai&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#python&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#programming&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#beginners&lt;/span&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/a&gt;
&lt;/div&gt;


&lt;h2&gt;
  
  
  Join our SWIRL Community
&lt;/h2&gt;

&lt;p&gt;SWIRL is open-source and built in Python. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://join.slack.com/t/swirlmetasearch/shared_invite/zt-2sfwvhwwg-mMn9tcKhAbqXbrV~9~Y1eA" class="ltag_cta ltag_cta--branded" rel="noopener noreferrer"&gt;Join our Slack.&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;Watch this &lt;a href="https://www.youtube.com/watch?v=OogRYkfSki8" rel="noopener noreferrer"&gt;video on how to set up SWIRL&lt;/a&gt;. Then, join our &lt;a href="https://join.slack.com/t/swirlmetasearch/shared_invite/zt-1qk7q02eo-kpqFAbiZJGOdqgYVvR1sfw" rel="noopener noreferrer"&gt;Slack community&lt;/a&gt; and ping me. Let’s build an amazing open-source AI platform together.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/swirlai/swirl-search" class="ltag_cta ltag_cta--branded" rel="noopener noreferrer"&gt;Give us a 🌟 on GitHub.&lt;/a&gt;
&lt;/p&gt;

</description>
      <category>productivity</category>
      <category>ai</category>
      <category>opensource</category>
      <category>programming</category>
    </item>
    <item>
      <title>Adding AI ✨ To Your Enterprise with Swirl: Search Smarter, Better, and Faster ⚡️</title>
      <dc:creator>𝚂𝚊𝚞𝚛𝚊𝚋𝚑 𝚁𝚊𝚒</dc:creator>
      <pubDate>Sat, 09 Dec 2023 14:44:48 +0000</pubDate>
      <link>https://dev.to/swirl/adding-ai-to-your-enterprise-with-swirl-search-smarter-better-and-faster-4f9b</link>
      <guid>https://dev.to/swirl/adding-ai-to-your-enterprise-with-swirl-search-smarter-better-and-faster-4f9b</guid>
      <description>&lt;h1&gt;
  
  
  The Problem with Traditional Search
&lt;/h1&gt;

&lt;p&gt;The traditional approach is the lift and shift of data from one container to another. It is a big problem in many cases. Creating inverted indexes is widely used in traditional search engines to enable quick information retrieval. However, this method can be computationally expensive, particularly when identifying and integrating new data into these indexes. As businesses grow and their data becomes more complex and voluminous, these traditional systems often struggle to keep up.&lt;/p&gt;

&lt;p&gt;Additionally, enterprises are now generating new data types at an unprecedented rate—the shift towards distributed, cloud-based pools of information compounds these difficulties.&lt;/p&gt;

&lt;p&gt;Traditional enterprise information access systems rely on periodically updated inverted indexes and are not well-suited for such dynamic and heterogeneous data environments. They cannot easily accommodate the continuous influx of new data types or the decentralized nature of cloud-based information systems.&lt;/p&gt;

&lt;p&gt;This results in inefficiencies and delays in data retrieval, which can hinder decision-making and operational workflows within an organization.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0wwek4j7ubmh07b367zf.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0wwek4j7ubmh07b367zf.png" alt="Traditional Search in the Enterprise" width="600" height="600"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Swirl 3.0 provides a simple and elegant solution to this problem by connecting to various data sources and searching them simultaneously.&lt;/em&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Swirl 3.0 Features
&lt;/h1&gt;

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

&lt;p&gt;Swirl is built on the Python Django stack and provides a user-friendly interface called Galaxy UI. It can be run in Docker or as a managed service in Microsoft Azure. Swirl enables users to leverage AI-powered re-ranking capabilities while maintaining data security and privacy.&lt;/p&gt;

&lt;p&gt;Swirl’s search technology transforms how businesses access information across their applications and data stores. By utilizing advanced Large Language Models, Swirl quickly sifts through data from multiple sources, such as Salesforce and Microsoft365, providing users with the most relevant results and insights.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://camo.githubusercontent.com/c2d20d9f469ed27110309dc8e4cd7d05c9f6019cd3f7622c8676563428a1c043/68747470733a2f2f646f63732e737769726c2e746f6461792f696d616765732f416e696d6174696f6e5f322e676966" class="article-body-image-wrapper"&gt;&lt;img src="https://camo.githubusercontent.com/c2d20d9f469ed27110309dc8e4cd7d05c9f6019cd3f7622c8676563428a1c043/68747470733a2f2f646f63732e737769726c2e746f6461792f696d616765732f416e696d6174696f6e5f322e676966" alt="How Swirl Search Works" width="" height=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  The benefits of Swirl’s approach are clear:
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Users receive finely-tuned search results tailored to their specific needs.&lt;/li&gt;
&lt;li&gt;Without the hassle of moving data or reindexing content.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Key Points:
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://camo.githubusercontent.com/2e8a3a2d0345b29d2163569905a9d9a832e64bf0543f63e7691a7a3a2db01a99/68747470733a2f2f646f63732e737769726c2e746f6461792f696d616765732f416e696d6174696f6e5f312e676966" class="article-body-image-wrapper"&gt;&lt;img src="https://camo.githubusercontent.com/2e8a3a2d0345b29d2163569905a9d9a832e64bf0543f63e7691a7a3a2db01a99/68747470733a2f2f646f63732e737769726c2e746f6461792f696d616765732f416e696d6174696f6e5f312e676966" alt="Swirl with ChatGPT" width="" height=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Swirl uses LLM technology for analyzing and ranking search results from diverse sources like data silos, Salesforce, Microsoft, etc.&lt;/li&gt;
&lt;li&gt;The Swirl search enhances relevance ranking in near-real time and contextualizes results for targeted queries.&lt;/li&gt;
&lt;li&gt;The system allows customization of the LLM for specific subject areas, and user feedback confirms the effectiveness of Swirl’s relevance ranking.&lt;/li&gt;
&lt;li&gt;Swirl minimizes the need for reindexing, eliminates content movement to search infrastructure, and efficiently manages relevance ranking and deduplication.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Connectors:
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fres.cloudinary.com%2Fpracticaldev%2Fimage%2Ffetch%2Fs--jEv8D0Ca--%2Fc_limit%252Cf_auto%252Cfl_progressive%252Cq_auto%252Cw_800%2Fhttps%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fuy1qfukybrdbuogn8yh2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fres.cloudinary.com%2Fpracticaldev%2Fimage%2Ffetch%2Fs--jEv8D0Ca--%2Fc_limit%252Cf_auto%252Cfl_progressive%252Cq_auto%252Cw_800%2Fhttps%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fuy1qfukybrdbuogn8yh2.png" alt="List of available and growing connectors" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;A broad and general overview of the list of available connectors can be found on our GitHub Page. If you wish to have any created on demand and priority, please contact the Swirl support team at &lt;code&gt;support@swirl.today&lt;/code&gt;.&lt;/p&gt;

&lt;h1&gt;
  
  
  Internal Working and Use Cases
&lt;/h1&gt;

&lt;p&gt;Swirl integrates advanced content processing and analytics. It uses APIs (application programming interfaces) to locate and rank content from multiple sources, with controls to boost certain content.&lt;/p&gt;

&lt;p&gt;Swirl’s framework allows fast finding and streaming information into a data pipeline for various search-based applications, such as Retrieval Augmented Generation (RAG) and fine-tuning Large Language Models.&lt;/p&gt;

&lt;p&gt;It provides access to information within an organization’s data silos, solving traditional cost, complexity, and development problems associated with enterprise search solutions. Swirl embraces standards-based authentication mechanisms like OAuth2 to eliminate permission and security issues.&lt;/p&gt;

&lt;p&gt;Tools like Swirl become indispensable as organizations grow and diversify their digital assets. Stay tuned as we explore how AI-driven solutions are shaping the future of information access and management.&lt;/p&gt;

&lt;h1&gt;
  
  
  Swirl is Open Source
&lt;/h1&gt;

&lt;p&gt;Swirl is an open-source search platform. What this means for you:&lt;/p&gt;


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fassets.dev.to%2Fassets%2Fgithub-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/swirlai" rel="noopener noreferrer"&gt;
        swirlai
      &lt;/a&gt; / &lt;a href="https://github.com/swirlai/swirl-search" rel="noopener noreferrer"&gt;
        swirl-search
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      AI Search &amp;amp; RAG Without Moving Your Data. Get instant answers from your company's knowledge across 100+ apps while keeping data secure. Deploy in minutes, not months.
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;
&lt;div&gt;
&lt;p&gt;&lt;a href="https://www.swirlaiconnect.com" rel="nofollow noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fgithub.com%2Fswirlai%2Fswirl-search%2Fdocs%2Fimages%2Flarge_header.png" alt="SWIRL"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;div class="markdown-heading"&gt;
&lt;h1 class="heading-element"&gt;SWIRL&lt;/h1&gt;
&lt;/div&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Give your team ChatGPT-level search without moving data to the cloud&lt;/h2&gt;
&lt;/div&gt;
&lt;div class="markdown-heading"&gt;
&lt;h3 class="heading-element"&gt;RAG with One Drive &amp;amp; Microsoft 365 in 60 seconds&lt;/h3&gt;
&lt;/div&gt;
&lt;p&gt;Ask question → Get answer with sources → Click through to source&lt;/p&gt;
&lt;p&gt;&lt;a rel="noopener noreferrer" href="https://github.com/swirlai/swirl-search/docs/images/SWIRL_4_AI_Search.gif"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fgithub.com%2Fswirlai%2Fswirl-search%2Fdocs%2Fimages%2FSWIRL_4_AI_Search.gif" alt="SWIRL One Drive RAG"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Watch it on &lt;a href="https://youtu.be/6cT25SD4cV4" rel="nofollow noopener noreferrer"&gt;Youtube&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Teams using SWIRL saves an average 7.5 hours of productive time per week.&lt;/strong&gt;&lt;/p&gt;
&lt;div&gt;
&lt;p&gt;&lt;a href="https://github.com/swirlai/swirl-search#-try-swirl-now-in-docker" rel="noopener noreferrer"&gt;⚡ Quick Start&lt;/a&gt; ·
&lt;a href="https://github.com/swirlai/swirl-search/swirlaiconnect.com/connectors" rel="noopener noreferrer"&gt;🔌 Connectors&lt;/a&gt; ·
&lt;a href="https://github.com/swirlai/swirl-search#contributing" rel="noopener noreferrer"&gt;🤝 Contribute&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://opensource.org/license/apache-2-0/" rel="nofollow noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/d7776312ab48c291bd5780429ce6062e1d40349ec95a10e367f361f2c5c4b04b/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4c6963656e73652d4170616368655f322e302d626c75652e7376673f636f6c6f723d303838333935266c6f676f436f6c6f723d626c7565267374796c653d666c61742d737175617265" alt="License: Apache 2.0"&gt;&lt;/a&gt;
&lt;a href="https://github.com/swirlai/swirl-search/releases" rel="noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/0b0c943da12d0e3987f421a199f5b292230a3071d208521b9cfa4b0c75b04069/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f762f72656c656173652f737769726c61692f737769726c2d7365617263683f7374796c653d666c61742d73717561726526636f6c6f723d384444464342266c6162656c3d52656c65617365" alt="GitHub Release"&gt;&lt;/a&gt;
&lt;a href="https://www.swirlaiconnect.com" rel="nofollow noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/6a010303e489cca0e3b1db813f7f68c8c20d8e1e6ab58e1a543ed9c4efd52b52/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f576562736974652d737769726c6169636f6e6e6563742e636f6d2d3030323135453f7374796c653d666c61742d737175617265" alt="Website"&gt;&lt;/a&gt;
&lt;a href="https://github.com/swirlai/swirl-search/" rel="noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/20affe69f4e259f9fb41e817aae5b349cab77220549e8f0436f92fead8a7fdea/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f486f75727325323053617665642d31304b2532422d627269676874677265656e" alt="Time Saved"&gt;&lt;/a&gt;
&lt;a href="https://github.com/swirlai/swirl-search/stargazers" rel="noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/f82ca1e4ad7661af63059d0cf0628b80697d22db7f9c7fa343c1f78ca1e00015/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f73746172732f737769726c61692f737769726c2d7365617263683f7374796c653d736f6369616c" alt="GitHub Stars"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://github.com/swirlai/swirl-search/actions/workflows/test-build-pipeline.yml" rel="noopener noreferrer"&gt;&lt;img src="https://github.com/swirlai/swirl-search/actions/workflows/test-build-pipeline.yml/badge.svg?style=flat-square&amp;amp;branch=main" alt="Test and Build Pipeline"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;&lt;a href="https://www.linkedin.com/newsletters/7201909550860427264/" rel="nofollow noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fgithub.com%2Fswirlai%2Fswirl-search%2Fdocs%2Fimages%2FNewsletter_CTA.png" alt="Bringing AI to the Data Newsletter"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;🤔 Why SWIRL?&lt;/h2&gt;

&lt;/div&gt;
&lt;div class="markdown-heading"&gt;
&lt;h3 class="heading-element"&gt;Skip the Complexity, Keep the Power&lt;/h3&gt;

&lt;/div&gt;
&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;div class="markdown-heading"&gt;
&lt;h3 class="heading-element"&gt;❌ Without SWIRL&lt;/h3&gt;

&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;Set up vector databases&lt;/li&gt;
&lt;li&gt;Move data around&lt;/li&gt;
&lt;li&gt;Complex ETL pipelines&lt;/li&gt;
&lt;li&gt;Weeks of infrastructure work&lt;/li&gt;
&lt;li&gt;Security headaches&lt;/li&gt;
&lt;/ul&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;div class="markdown-heading"&gt;
&lt;h3 class="heading-element"&gt;✅ With SWIRL&lt;/h3&gt;

&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;One docker command&lt;/li&gt;
&lt;li&gt;Data stays in place&lt;/li&gt;
&lt;li&gt;No vector DB needed&lt;/li&gt;
&lt;li&gt;2-minute setup&lt;/li&gt;
&lt;li&gt;Enterprise-grade security&lt;/li&gt;
&lt;/ul&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;🚀 Built Different&lt;/h2&gt;

&lt;/div&gt;
&lt;div class="markdown-heading"&gt;
&lt;h3 class="heading-element"&gt;No Vector DB Drama&lt;/h3&gt;

&lt;/div&gt;
&lt;div class="highlight highlight-source-shell notranslate position-relative overflow-auto js-code-highlight"&gt;
&lt;pre&gt;&lt;span class="pl-c"&gt;&lt;span class="pl-c"&gt;#&lt;/span&gt; No need for:&lt;/span&gt;
$ setup-vector-db
$ migrate-data
$ configure-indexes

&lt;span class="pl-c"&gt;&lt;span class="pl-c"&gt;#&lt;/span&gt; Just this:&lt;/span&gt;
$ curl https://raw.githubusercontent.com/swirlai/swirl-search/main/docker-compose.yaml -o docker-compose.yaml&lt;/pre&gt;

&lt;/div&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;💡 What Can You Build With SWIRL?&lt;/h2&gt;

&lt;/div&gt;
&lt;p&gt;Real examples of what teams build with SWIRL:&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h3 class="heading-element"&gt;🔍 Knowledge Base Search&lt;/h3&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/swirlai/swirl-search" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;


&lt;ul&gt;
&lt;li&gt;It’s a self-hosted, non-restrictive software with a permissive Apache 2.0 license.&lt;/li&gt;
&lt;li&gt;Software Developers can contribute to the project’s development, understanding the search ecosystem deeply while learning about Swirl in depth.&lt;/li&gt;
&lt;li&gt;If you want to learn more about Swirl, please join our Slack Community to talk more about it.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://join.slack.com/t/swirlmetasearch/shared_invite/zt-1qk7q02eo-kpqFAbiZJGOdqgYVvR1sfw" class="ltag_cta ltag_cta--branded" rel="noopener noreferrer"&gt;Join Slack&lt;/a&gt;
&lt;/p&gt;

</description>
      <category>programming</category>
      <category>python</category>
      <category>opensource</category>
      <category>ai</category>
    </item>
    <item>
      <title>Securely deploying Swirl in Azure.</title>
      <dc:creator>𝚂𝚊𝚞𝚛𝚊𝚋𝚑 𝚁𝚊𝚒</dc:creator>
      <pubDate>Sun, 26 Nov 2023 16:54:44 +0000</pubDate>
      <link>https://dev.to/swirl/securely-deploying-swirl-in-azure-48bn</link>
      <guid>https://dev.to/swirl/securely-deploying-swirl-in-azure-48bn</guid>
      <description>&lt;p&gt;This is the third blog in the series where we will be checking in with the best practices to deploy Swirl.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/swirlai/swirl-search" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftug7au7zrdnhv91wwrw2.gif" alt="Swirl v3 Demo" width="600" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/swirlai/swirl-search" class="ltag_cta ltag_cta--branded" rel="noopener noreferrer"&gt;Give ⭐ to Swirl on GitHub&lt;/a&gt;
&lt;/p&gt;

&lt;h1&gt;
  
  
  Swirl’s Azure-hosted Architecture and Security Commitment
&lt;/h1&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhewemgvypzbwz5voqdu5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhewemgvypzbwz5voqdu5.png" alt="Swirl's Azure Hosted Architechture" width="800" height="505"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The diagram above showcases the standard layout for Swirl when hosted in Azure. All offerings hosted by Swirl strictly adhere to the following:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The practices are recommended in the subsequent section.&lt;/li&gt;
&lt;li&gt;Swirl’s design highlights its commitment to security.&lt;/li&gt;
&lt;li&gt;Comprehensive measures to safeguard user data.&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;
  
  
  Delving Deeper into Swirl’s Security Framework
&lt;/h1&gt;

&lt;p&gt;As we progress through this article, we aim to shed light on:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The complexities of Swirl’s security framework.&lt;/li&gt;
&lt;li&gt;Its methods for securely storing credentials.&lt;/li&gt;
&lt;li&gt;Protocols established for user provisioning.&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;
  
  
  As we dive deep into the deployment best practices, I suggest you check the previous two articles in the series.
&lt;/h1&gt;

&lt;p&gt;The first blog in this series.&lt;/p&gt;


&lt;div class="ltag__link"&gt;
  &lt;a href="/swirl" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__org__pic"&gt;
      &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Forganization%2Fprofile_image%2F7463%2F0b752367-361d-4d4b-b1a0-47928f7843e0.png" alt="SWIRL " width="750" height="750"&gt;
      &lt;div class="ltag__link__user__pic"&gt;
        &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F236396%2F1767c256-4b76-4f40-b668-ccda42509f03.png" alt="" width="800" height="800"&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/a&gt;
  &lt;a href="https://dev.to/swirl/swirl-search-open-source-enterprise-search-to-securely-search-your-data-2pcp" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__content"&gt;
      &lt;h2&gt;Swirl Search: Open Source Enterprise Search 🔍 to Securely 🔐 Search your Data.&lt;/h2&gt;
      &lt;h3&gt;𝚂𝚊𝚞𝚛𝚊𝚋𝚑 𝚁𝚊𝚒 for SWIRL  ・ Nov 22 '23&lt;/h3&gt;
      &lt;div class="ltag__link__taglist"&gt;
        &lt;span class="ltag__link__tag"&gt;#opensource&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#python&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#productivity&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#programming&lt;/span&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/a&gt;
&lt;/div&gt;


&lt;p&gt;The second blog in this series.&lt;/p&gt;


&lt;div class="ltag__link"&gt;
  &lt;a href="/swirl" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__org__pic"&gt;
      &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Forganization%2Fprofile_image%2F7463%2F0b752367-361d-4d4b-b1a0-47928f7843e0.png" alt="SWIRL " width="750" height="750"&gt;
      &lt;div class="ltag__link__user__pic"&gt;
        &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F236396%2F1767c256-4b76-4f40-b668-ccda42509f03.png" alt="" width="800" height="800"&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/a&gt;
  &lt;a href="https://dev.to/swirl/swirl-security-overview-3iok" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__content"&gt;
      &lt;h2&gt;Swirl Security Overview&lt;/h2&gt;
      &lt;h3&gt;𝚂𝚊𝚞𝚛𝚊𝚋𝚑 𝚁𝚊𝚒 for SWIRL  ・ Nov 24 '23&lt;/h3&gt;
      &lt;div class="ltag__link__taglist"&gt;
        &lt;span class="ltag__link__tag"&gt;#webdev&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#python&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#opensource&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#programming&lt;/span&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/a&gt;
&lt;/div&gt;


&lt;h1&gt;
  
  
  Delving Deeper into Swirl’s Security Framework
&lt;/h1&gt;

&lt;h2&gt;
  
  
  1. Basic Configuration for Production Use:
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Ensure you’re using HTTPS for secure communication.&lt;/li&gt;
&lt;li&gt;Redirect all HTTP traffic to HTTPS for added security.&lt;/li&gt;
&lt;li&gt;Choose PostgreSQL as your database.&lt;/li&gt;
&lt;li&gt;Secure your connection to the API, Web UI (including Galaxy), and database using TLS v1.3 certificates.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  2. Enhancing Performance with a Reverse Proxy:
&lt;/h2&gt;

&lt;p&gt;Swirl suggests using a reverse proxy. Why? It:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Handles cryptographic tasks, reducing the load on your application server.&lt;/li&gt;
&lt;li&gt;It can be set up to distribute traffic among multiple application servers. This boosts your system’s capacity and ensures it remains running even if one server faces issues.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  3. Optional Configuration for Advanced Users:
&lt;/h2&gt;

&lt;p&gt;If you want to customize further, you can configure the reverse proxy to redirect incoming traffic from the standard port 443 to Swirl’s internal application server on port 8000.&lt;/p&gt;

&lt;h1&gt;
  
  
  Guide to Logging for Compliance &amp;amp; KYC with Swirl
&lt;/h1&gt;

&lt;ol&gt;
&lt;li&gt;Why Log User Activity?&lt;/li&gt;
&lt;/ol&gt;

&lt;ul&gt;
&lt;li&gt;Maintaining a record of user actions is essential for compliance and Know Your Customer (KYC) processes.&lt;/li&gt;
&lt;/ul&gt;

&lt;ol&gt;
&lt;li&gt;How to Log User Activity?&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;You have two main options:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Customize Your Logging Format:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Do you want a specific format for your logs? No problem!&lt;/li&gt;
&lt;li&gt;Reach out to Swirl support for help in setting this up.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Analyse the Swirl Database Directly:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;This is a great option unless you use the Search Expiration Service.&lt;/li&gt;
&lt;li&gt;Swirl’s top recommendation for this is Metabase, and it’s included with all Swirl-hosted installations.&lt;/li&gt;
&lt;li&gt;However, if you have a favorite tool, go for it! Just ensure it's compatible with PostgreSQL. This means most business intelligence, reporting, or Analytical tools should work just fine.&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;Thank you for exploring Swirl’s Security Overview with us!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/swirlai/swirl-search" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftug7au7zrdnhv91wwrw2.gif" alt="Swirl v3 Demo" width="600" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/swirlai/swirl-search" class="ltag_cta ltag_cta--branded" rel="noopener noreferrer"&gt;Give ⭐ to Swirl on GitHub&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;Now, after this guide, you can:&lt;/p&gt;

&lt;p&gt;Dive deeper: Visit our &lt;a href="https://github.com/swirlai/swirl-search" rel="noopener noreferrer"&gt;GitHub repository&lt;/a&gt;.&lt;br&gt;
Check the Swirl &lt;a href="https://docs.swirl.today/" rel="noopener noreferrer"&gt;docs&lt;/a&gt; to get started.&lt;br&gt;
Questions? We’re here to help every step of the way. &lt;a href="https://join.slack.com/t/swirlmetasearch/shared_invite/zt-1qk7q02eo-kpqFAbiZJGOdqgYVvR1sfw" rel="noopener noreferrer"&gt;Join our Slack&lt;/a&gt; and drop in a message or email us at &lt;a href="mailto:hello@swirl.today"&gt;hello@swirl.today&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>programming</category>
      <category>python</category>
      <category>opensource</category>
      <category>devops</category>
    </item>
    <item>
      <title>Swirl Security Overview</title>
      <dc:creator>𝚂𝚊𝚞𝚛𝚊𝚋𝚑 𝚁𝚊𝚒</dc:creator>
      <pubDate>Fri, 24 Nov 2023 22:00:27 +0000</pubDate>
      <link>https://dev.to/swirl/swirl-security-overview-3iok</link>
      <guid>https://dev.to/swirl/swirl-security-overview-3iok</guid>
      <description>&lt;h1&gt;
  
  
  Understanding an Open Source Search Platform: &lt;a href="https://github.com/swirlai/swirl-search" rel="noopener noreferrer"&gt;Swirl&lt;/a&gt;
&lt;/h1&gt;

&lt;p&gt;The team behind Swirl created a platform capable of connecting to multiple databases and searching through a single unified source. &lt;/p&gt;

&lt;p&gt;That's Swirl Search for you. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzet1f8aej2vnuzwyn1hc.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzet1f8aej2vnuzwyn1hc.jpg" alt="Swirl Search Open Source Enterprise AI" width="800" height="336"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/swirlai/swirl-search" class="ltag_cta ltag_cta--branded" rel="noopener noreferrer"&gt;⭐️ Swirl on GitHub&lt;/a&gt;
&lt;/p&gt;




&lt;p&gt;This blog covers the second part of Swirl Security Overview (User Data, Metadata, and Credentials). This is a three-part series that guides you about Swirl’s security.&lt;/p&gt;

&lt;p&gt;This blog is the second part of the Swirl Security overview. We have the first part, which discusses and explains Swirl in general. Read the first part here. 👇&lt;/p&gt;


&lt;div class="ltag__link"&gt;
  &lt;a href="/swirl" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__org__pic"&gt;
      &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Forganization%2Fprofile_image%2F7463%2F0b752367-361d-4d4b-b1a0-47928f7843e0.png" alt="SWIRL " width="750" height="750"&gt;
      &lt;div class="ltag__link__user__pic"&gt;
        &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F236396%2F1767c256-4b76-4f40-b668-ccda42509f03.png" alt="" width="800" height="800"&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/a&gt;
  &lt;a href="https://dev.to/swirl/swirl-search-open-source-enterprise-search-to-securely-search-your-data-2pcp" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__content"&gt;
      &lt;h2&gt;Swirl Search: Open Source Enterprise Search 🔍 to Securely 🔐 Search your Data.&lt;/h2&gt;
      &lt;h3&gt;𝚂𝚊𝚞𝚛𝚊𝚋𝚑 𝚁𝚊𝚒 for SWIRL  ・ Nov 22 '23&lt;/h3&gt;
      &lt;div class="ltag__link__taglist"&gt;
        &lt;span class="ltag__link__tag"&gt;#opensource&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#python&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#productivity&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#programming&lt;/span&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/a&gt;
&lt;/div&gt;


&lt;h1&gt;
  
  
  Credential Storage
&lt;/h1&gt;

&lt;p&gt;Swirl securely stores user credentials in its database to enhance the metasearch experience. This storage includes credentials for SearchProviders and OAUTH2 client details. Swirl also logs user activities in the same database and can save these logs to a file if configured.&lt;br&gt;
Built on the Python/Django platform, Swirl ensures all portal URLs and APIs are accessed via HTTPS authentication.&lt;/p&gt;

&lt;p&gt;To set up Swirl:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Begin by creating an administrator account. Instructions can be found in the &lt;a href="https://github.com/swirlai/swirl-search/wiki/3.-Admin-Guide#creating-a-swirl-super-user" rel="noopener noreferrer"&gt;Swirl Super User Creation Guide&lt;/a&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;You can add and manage more users through the Django admin console. For a comprehensive guide, visit &lt;a href="https://docs.djangoproject.com/en/4.2/ref/contrib/admin/" rel="noopener noreferrer"&gt;Django Admin Documentation&lt;/a&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;h1&gt;
  
  
  Object Ownership
&lt;/h1&gt;

&lt;p&gt;In Swirl, every object, such as SearchProviders, Search, and Results, is owned by a specific user. Typically, users, even those in the admin group, can only see their own Search and Result objects. However, there’s an exception: if a SearchProvider object owned by an admin has its ‘shared’ property set to ‘True,’ all users can view it. Rest assured, Swirl ensures any static credentials from such providers are automatically hidden.&lt;/p&gt;

&lt;p&gt;If you want detailed insights on object ownership, visit the &lt;a href="https://github.com/swirlai/swirl-search/wiki/3.-Admin-Guide#object-ownership" rel="noopener noreferrer"&gt;Swirl Admin Guide on Object Ownership&lt;/a&gt;.&lt;/p&gt;
&lt;h1&gt;
  
  
  Credential Sharing
&lt;/h1&gt;

&lt;p&gt;Swirl supports the sharing of static credentials such as bearer tokens. These credentials can be shared by the admin user, as noted above. OAUTH2 credentials cannot be shared between users.&lt;/p&gt;

&lt;p&gt;Securing the Swirl database so that the admin cannot access any data directly gives additional protection; please contact Swirl support for help.&lt;/p&gt;
&lt;h1&gt;
  
  
  Logging
&lt;/h1&gt;

&lt;p&gt;In production mode, with logging level INFO, no search or result information is present in the logs. The  output associated with a user running a search will be similar to:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;2023-08-24 14:45:30,360 INFO     admin search 545 FULL_RESULTS_READY 20 16.4

2023-08-24 14:45:30,366 INFO     admin results 545 RelevancyMixer 20
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Should an error occur, there will be diagnostic information; however, it may be limited unless Swirl is run in debug mode.&lt;/p&gt;

&lt;h1&gt;
  
  
  User Provisioning
&lt;/h1&gt;

&lt;p&gt;For scenarios involving multiple users, Swirl offers the following provisions:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;User Permissions: Swirl equips users with the necessary permissions.&lt;/li&gt;
&lt;li&gt;Sharing SearchProviders: Users can access SearchProviders owned by the admin account.&lt;/li&gt;
&lt;li&gt;Access Methods: These tasks can be achieved either through the Django admin portal or the provided built-in APIs.&lt;/li&gt;
&lt;li&gt;Permission Requirement: To utilize Swirl’s features, users must possess the relevant permissions mentioned below.&lt;/li&gt;
&lt;li&gt;Support for OIDC: Swirl Metapipe and Swirl Enterprise support user provisioning via Open ID Connect (OIDC). This is facilitated through Microsoft SSO, leveraging the same APIs and processes.&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;
  
  
  User Permissions
&lt;/h1&gt;

&lt;p&gt;The following Django permissions are required to use Swirl:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnhvgovd194d4d06wj5do.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnhvgovd194d4d06wj5do.png" alt="Following Django Permissions are required to use Swirl" width="800" height="676"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  User Permissions Table
&lt;/h3&gt;

&lt;p&gt;Swirl recommends granting these permissions to a group and then adding new users to that group. Additional permissions (like add and change querytransform and searchprovider) can be granted to a power user or developer group.&lt;/p&gt;

&lt;p&gt;For more information on Swirl permissions, see &lt;a href="https://github.com/swirlai/swirl-search/wiki/3.-Admin-Guide#permissioning-normal-users" rel="noopener noreferrer"&gt;Permissioning Normal Users&lt;/a&gt;.&lt;/p&gt;

&lt;h1&gt;
  
  
  Metasearch Authentication
&lt;/h1&gt;

&lt;h2&gt;
  
  
  SearchProviders
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;SearchProvider Configuration:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A SearchProvider is essentially a configuration of a Connector.&lt;/p&gt;

&lt;p&gt;While administrators typically create and share these configurations with standard users, those with the right permissions can also create their own.&lt;/p&gt;

&lt;p&gt;If you would like detailed insights, you can visit &lt;a href="https://github.com/swirlai/swirl-search/wiki/6.-Developer-Reference#searchprovider-object" rel="noopener noreferrer"&gt;SearchProvider Object Reference&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Executing a Search:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Once logged in, users can initiate a search using one of the following methods:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;A GET request with either the ?q= or ?qs= parameter.&lt;/li&gt;
&lt;li&gt;A POST request with JSON data.&lt;/li&gt;
&lt;li&gt;The integrated Galaxy UI.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Initiating a search generates a ‘Search’ object within the Swirl database. This object:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Keeps track of the search’s progress, including any status messages from the configured SearchProviders.&lt;/li&gt;
&lt;li&gt;Is owned by the user who initiated the search.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For a deeper dive, refer to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/swirlai/swirl-search/wiki/6.-Developer-Reference#search-object" rel="noopener noreferrer"&gt;Search Object Reference&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/swirlai/swirl-search/wiki/6.-Developer-Reference#result-objects" rel="noopener noreferrer"&gt;Result Objects Reference.&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Supported Authentication Schemes&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;When Swirl sends a query to a configured source, the following schemes are supported:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Plain-text credentials, such as incorporating them in a URL&lt;/li&gt;
&lt;li&gt;HTTP Basic, Digest, and Proxy authentication&lt;/li&gt;
&lt;li&gt;Bearer tokens&lt;/li&gt;
&lt;li&gt;API tokens&lt;/li&gt;
&lt;li&gt;OAuth2&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Where Swirl Stores Credentials&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Swirl saves credentials, including plain text, API, and bearer tokens, within SearchProviders. These SearchProviders are specific records in the Swirl database. When non-admin users view shared SearchProviders owned by an administrator, the credential details are concealed for security.&lt;/p&gt;

&lt;p&gt;For more details, please refer to &lt;a href="https://github.com/swirlai/swirl-search/wiki/3.-Admin-Guide#shared-searchproviders-and-query-tranformations" rel="noopener noreferrer"&gt;Shared SearchProviders and Query Transformations.&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Where Swirl Stores OAuth2 Data&lt;br&gt;
In Swirl, when OAuth2 SearchProviders are set up:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;The user’s email address is saved in the Django User database.&lt;/li&gt;
&lt;li&gt;This email and a unique session key are used to obtain an OAuth2 token.&lt;/li&gt;
&lt;li&gt;This token is stored in the Swirl database if the “subscribe” feature is activated.&lt;/li&gt;
&lt;li&gt;If the “subscribe” feature isn’t needed, the token is temporarily kept in the session cache and isn’t saved elsewhere.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Search Expiration Service&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;For applications that handle sensitive data:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The “Retention” property on Search objects can be adjusted to a value above 1.&lt;/li&gt;
&lt;li&gt;Setting this value ensures that the Search and its associated Result objects will be permanently removed after a specified duration, such as an hour, day, week, month, or even longer.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;
  
  
  For detailed insights, visit &lt;a href="https://github.com/swirlai/swirl-search/wiki/3.-Admin-Guide#search-expiration-service" rel="noopener noreferrer"&gt;The search Expiration Service Guide&lt;/a&gt;.
&lt;/h2&gt;
&lt;h2&gt;
  
  
  Dive Deeper into Swirl’s Security
&lt;/h2&gt;

&lt;p&gt;If you haven’t already or need a refresher, read the previous blog in our series for a comprehensive understanding of Swirl’s security measures.&lt;/p&gt;

&lt;p&gt;Support &amp;amp; Explore Swirl on GitHub: Visit Swirl’s GitHub page and consider giving us a 🌟.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzet1f8aej2vnuzwyn1hc.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzet1f8aej2vnuzwyn1hc.jpg" alt="Swirl Search Open Source Enterprise AI" width="800" height="336"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/swirlai/swirl-search" class="ltag_cta ltag_cta--branded" rel="noopener noreferrer"&gt;⭐️ Swirl on GitHub&lt;/a&gt;
&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>python</category>
      <category>opensource</category>
      <category>programming</category>
    </item>
    <item>
      <title>Swirl Search: Open Source Enterprise Search 🔍 to Securely 🔐 Search your Data.</title>
      <dc:creator>𝚂𝚊𝚞𝚛𝚊𝚋𝚑 𝚁𝚊𝚒</dc:creator>
      <pubDate>Wed, 22 Nov 2023 18:18:08 +0000</pubDate>
      <link>https://dev.to/swirl/swirl-search-open-source-enterprise-search-to-securely-search-your-data-2pcp</link>
      <guid>https://dev.to/swirl/swirl-search-open-source-enterprise-search-to-securely-search-your-data-2pcp</guid>
      <description>&lt;h2&gt;
  
  
  What is &lt;a href="https://github.com/swirlai/swirl-search" rel="noopener noreferrer"&gt;Swirl Search&lt;/a&gt;?
&lt;/h2&gt;

&lt;p&gt;Swirl is an open-source search platform software that simultaneously searches multiple content sources and returns AI-ranked results. You can also use Generative AI Models to get answers based on your data. It’s written in Python.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/swirlai/swirl-search" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftug7au7zrdnhv91wwrw2.gif" alt="Swirl v3 Demo" width="600" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/swirlai/swirl-search" class="ltag_cta ltag_cta--branded" rel="noopener noreferrer"&gt;Give ⭐ to Swirl on GitHub&lt;/a&gt;
&lt;/p&gt;

&lt;h3&gt;
  
  
  Swirl can connect to various data sources like:
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Databases (SQL &amp;amp; NoSQL, Google BigQuery)&lt;/li&gt;
&lt;li&gt;Public data services (Google Programmable Search, Arxiv.org, etc.)&lt;/li&gt;
&lt;li&gt;Enterprise sources (Microsoft 365, Jira, Miro, etc.)&lt;/li&gt;
&lt;li&gt;And generate insights with AI and LLMs like ChatGPT. Start discovering and developing the answers you need based on your data.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwci08iuxt0puydpfea1o.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwci08iuxt0puydpfea1o.png" alt="List of Available Connectors" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Swirl is a powerful search tool comprising two main parts: a metasearch engine and a content transformation process.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Metasearch Engine:&lt;/strong&gt; This is like a super-search tool. Instead of searching just one place, it sends user search requests to multiple sources simultaneously. These sources can be search engines, databases, or cloud services.&lt;/p&gt;

&lt;p&gt;It communicates with these sources using their built-in methods (APIs) and follows standard security practices, such as OAUTH2. Once Swirl gets the search results from all these places, it uses advanced language models to organize and prioritize them, ensuring the most relevant results are shown first.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Content Transformation Process:&lt;/strong&gt; This is an enhancement to the metasearch engine. This process can fetch the actual documents or content from the search results when a search is done. &lt;/p&gt;

&lt;p&gt;It can also add extra information or modify the content to make it more useful for specific purposes. &lt;/p&gt;

&lt;p&gt;Some of the things it can be used for include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Sending notifications or pushing information to users.&lt;/li&gt;
&lt;li&gt;Assisting in machine learning projects.&lt;/li&gt;
&lt;li&gt;Improving the performance of AI that generates content (known as Retrieval Augmented Generation or RAG).&lt;/li&gt;
&lt;li&gt;Refining the way generative AI models work.&lt;/li&gt;
&lt;li&gt;In essence, Swirl helps you quickly find information from multiple sources and can fetch and enhance that information for various advanced applications.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  What does Swirl do?
&lt;/h2&gt;

&lt;p&gt;As shown below, Swirl:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Adapts the query for each pre-configured SearchProvider&lt;/li&gt;
&lt;li&gt;Asynchronously sends the adapted query to each, waits for the response, and normalizes the responses.&lt;/li&gt;
&lt;li&gt;Stores the results in the configured database&lt;/li&gt;
&lt;li&gt;Uses the included LLM (Large Language Model) to re-rank the results&lt;/li&gt;
&lt;li&gt;Returns the best results from all sources&lt;/li&gt;
&lt;li&gt;Not shown: Any search can be put into subscribe mode, causing Swirl to re-run the search, looking for new results on a configured schedule.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The following is an overview of Swirl’s work:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpnys9vj1sc3d74mj7noy.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpnys9vj1sc3d74mj7noy.png" alt="Overview of Swirl" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;Thank you for reading. We are also on YouTube, where our focus is to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Educate about Open Source Enterprise Search and AI&lt;/li&gt;
&lt;li&gt;Inform you about Swirl Open Source&lt;/li&gt;
&lt;li&gt;Share Search &amp;amp; AI Examples in the Enterprise&lt;/li&gt;
&lt;li&gt;Grow the Swirl Community&lt;/li&gt;
&lt;/ul&gt;

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

</description>
      <category>opensource</category>
      <category>python</category>
      <category>productivity</category>
      <category>programming</category>
    </item>
    <item>
      <title>[Python 🐍 Mastery] Overview of Linked List in Python &amp; Essential Linked List Operations 🛠️</title>
      <dc:creator>𝚂𝚊𝚞𝚛𝚊𝚋𝚑 𝚁𝚊𝚒</dc:creator>
      <pubDate>Fri, 10 Nov 2023 17:07:32 +0000</pubDate>
      <link>https://dev.to/swirl/python-mastery-overview-of-linked-list-in-python-essential-linked-list-operations-hn3</link>
      <guid>https://dev.to/swirl/python-mastery-overview-of-linked-list-in-python-essential-linked-list-operations-hn3</guid>
      <description>&lt;p&gt;In the last article, we learned about Object Oriented Programming and had a mountain overview of Python's Magic/Dunder methods. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Object-Oriented Programming (OOP) in Python&lt;/strong&gt;: This paradigm in Python revolves around creating reusable code. It involves using classes as blueprints for objects. These objects can have attributes (data) and methods (functions) that define their behavior and interactions.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Python's Magic/Dunder Methods&lt;/strong&gt;: Magic or Dunder (double underscore) methods in Python are special methods with names that start and end with double underscores (e.g., &lt;code&gt;__init__&lt;/code&gt;, &lt;code&gt;__str__&lt;/code&gt;, &lt;code&gt;__repr__&lt;/code&gt;). &lt;/p&gt;

&lt;p&gt;You'll be able to read about it here. 👇&lt;/p&gt;


&lt;div class="ltag__link"&gt;
  &lt;a href="/swirl" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__org__pic"&gt;
      &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Forganization%2Fprofile_image%2F7463%2F0b752367-361d-4d4b-b1a0-47928f7843e0.png" alt="SWIRL " width="750" height="750"&gt;
      &lt;div class="ltag__link__user__pic"&gt;
        &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F236396%2F1767c256-4b76-4f40-b668-ccda42509f03.png" alt="" width="800" height="800"&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/a&gt;
  &lt;a href="https://dev.to/swirl/python-mastery-pythons-object-oriented-programming-overview-and-fundamentals-22m1" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__content"&gt;
      &lt;h2&gt;[Python 🐍 Mastery] Python's Object-Oriented Programming Overview and Fundamentals ⭐️&lt;/h2&gt;
      &lt;h3&gt;𝚂𝚊𝚞𝚛𝚊𝚋𝚑 𝚁𝚊𝚒 for SWIRL  ・ Oct 27 '23&lt;/h3&gt;
      &lt;div class="ltag__link__taglist"&gt;
        &lt;span class="ltag__link__tag"&gt;#beginners&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#python&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#programming&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#tutorial&lt;/span&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/a&gt;
&lt;/div&gt;


&lt;p&gt;Today, we will expand upon it and use the knowledge of Object Oriented Programming to understand and create Linked Lists in Python. And will perform some operation on it.&lt;/p&gt;

&lt;h2&gt;
  
  
  Open Source Python Project: &lt;a href="https://github.com/swirlai/swirl-search" rel="noopener noreferrer"&gt;Swirl&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://github.com/swirlai/swirl-search" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9icq3q8vmtzrse1cbqcj.gif" alt="Swirl Search" width="760" height="319"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you're interested in Python, you will 💖 &lt;a href="https://github.com/swirlai/swirl-search" rel="noopener noreferrer"&gt;&lt;strong&gt;Swirl&lt;/strong&gt;&lt;/a&gt;. Swirl is an open-source search platform which will give you knowledge of the following:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Python &lt;/li&gt;
&lt;li&gt;Artificial Intelligence&lt;/li&gt;
&lt;li&gt;Integrating Large Language Models in any product&lt;/li&gt;
&lt;li&gt;Learn how to develop a search platform. &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Check our GitHub Repository: &lt;br&gt;
&lt;a href="https://github.com/swirlai/swirl-search" class="ltag_cta ltag_cta--branded" rel="noopener noreferrer"&gt;Swirl on GitHub&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;We'll be delighted if you could:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/swirlai/swirl-search" class="ltag_cta ltag_cta--branded" rel="noopener noreferrer"&gt;Give ⭐ to Swirl&lt;/a&gt;
&lt;/p&gt;

&lt;h2&gt;
  
  
  Linked List
&lt;/h2&gt;

&lt;p&gt;Linked lists are an ordered collection of objects. It's a data structure designed to hold data in a non-contiguous memory block. &lt;/p&gt;

&lt;p&gt;Unlike arrays or traditional lists that use contiguous memory blocks, linked lists are stored in non-contiguous memory locations. This design allows for efficient insertions and deletions without rearranging the entire data structure.&lt;/p&gt;

&lt;p&gt;This design allows for efficient insertions and deletions without the need to rearrange the entire data structure.&lt;/p&gt;

&lt;h3&gt;
  
  
  Basic Linked List
&lt;/h3&gt;

&lt;p&gt;A basic linked list is a linear data structure where each element, known as a node, contains two parts: data and a reference to the next node in the list. This structure allows for efficient insertion and deletion of elements, as it does not require shifting elements, unlike in an array.&lt;/p&gt;

&lt;p&gt;A typical node design:&lt;br&gt;
&lt;strong&gt;Data&lt;/strong&gt;: This contains the data, which can be numeric, address, text, etc.&lt;br&gt;
&lt;strong&gt;Next&lt;/strong&gt;: This points to the next data node or holds the address for the next data node. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcus930t03hko9x0xeac2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcus930t03hko9x0xeac2.png" alt="Node of a Linked List in Python" width="620" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The first node is called the head of the list, and the last node, which points to None (in Python) (or Null in other Languages), is known as the tail.&lt;/p&gt;

&lt;p&gt;When you collect a lot of nodes together, it becomes a linked list.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fndkxz3274ylfqva4y2kh.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fndkxz3274ylfqva4y2kh.png" alt="A Linked List in Python" width="800" height="435"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;
  
  
  Benefits of Linked Lists &amp;amp; Time Complexity of Operations
&lt;/h3&gt;

&lt;p&gt;Linked lists offer several benefits, particularly in dynamic data manipulation scenarios. Here are some key advantages:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Dynamic Size&lt;/strong&gt;: Unlike arrays, linked lists can grow or shrink in size dynamically, which is efficient for memory usage.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Ease of Insertion/Deletion&lt;/strong&gt;: Inserting or deleting nodes is relatively simple, as it generally only involves changing a few references without shifting elements as in an array.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Flexibility&lt;/strong&gt;: They can implement other data structures like stacks, queues, and graph adjacency lists.&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Operation&lt;/th&gt;
&lt;th&gt;Time Complexity&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Access&lt;/td&gt;
&lt;td&gt;O(n)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Search&lt;/td&gt;
&lt;td&gt;O(n)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Insertion&lt;/td&gt;
&lt;td&gt;O(1)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Deletion&lt;/td&gt;
&lt;td&gt;O(1)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;em&gt;Note&lt;/em&gt;: We're taking into account a singly linked list.&lt;/p&gt;
&lt;h2&gt;
  
  
  Implementing a Linked List in Python.
&lt;/h2&gt;

&lt;p&gt;This is the code that will create a Node in Python. Please note, if you are confused about the &lt;code&gt;__repr__&lt;/code&gt; method. Please check the &lt;a href="https://dev.to/swirl/python-mastery-pythons-object-oriented-programming-overview-and-fundamentals-22m1"&gt;previous article&lt;/a&gt; in this series.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;Node&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;__init__&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;data&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
        &lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;data&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;data&lt;/span&gt;
        &lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nb"&gt;next&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="bp"&gt;None&lt;/span&gt;

    &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;__repr__&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
        &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Node(&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;data&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s"&gt;)&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Code for the Linked List Class. This utilizes the Node class cleared about to create data and link the all together.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;LinkedList&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;__init__&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
        &lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;head&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="bp"&gt;None&lt;/span&gt;

    &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;append&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;data&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
        &lt;span class="n"&gt;new_node&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;Node&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;data&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;head&lt;/span&gt; &lt;span class="ow"&gt;is&lt;/span&gt; &lt;span class="bp"&gt;None&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
            &lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;head&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;new_node&lt;/span&gt;
            &lt;span class="k"&gt;return&lt;/span&gt;
        &lt;span class="n"&gt;last_node&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;head&lt;/span&gt;
        &lt;span class="k"&gt;while&lt;/span&gt; &lt;span class="n"&gt;last_node&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nb"&gt;next&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
            &lt;span class="n"&gt;last_node&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;last_node&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nb"&gt;next&lt;/span&gt;
        &lt;span class="n"&gt;last_node&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nb"&gt;next&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;new_node&lt;/span&gt;

    &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;__repr__&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
        &lt;span class="n"&gt;nodes&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[]&lt;/span&gt;
        &lt;span class="n"&gt;current&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;head&lt;/span&gt;
        &lt;span class="k"&gt;while&lt;/span&gt; &lt;span class="n"&gt;current&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
            &lt;span class="n"&gt;nodes&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;append&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;repr&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;current&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
            &lt;span class="n"&gt;current&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;current&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nb"&gt;next&lt;/span&gt;
        &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;join&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;nodes&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This code does two things:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Append&lt;/strong&gt;: Append a node at the end of the linked list. &lt;/li&gt;
&lt;li&gt;
&lt;code&gt;__repr__&lt;/code&gt; : This method traverses the linked list and prints it in a Pythonic Way.

&lt;ol&gt;
&lt;li&gt;This can also be done using a method called traverse. &lt;/li&gt;
&lt;/ol&gt;


&lt;/li&gt;

&lt;/ol&gt;

&lt;p&gt;&lt;em&gt;This is the output of &lt;code&gt;print(llist)&lt;/code&gt; which called `&lt;/em&gt;&lt;em&gt;repr&lt;/em&gt;_` method:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8krtl50nkifa5nhvsh4j.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8krtl50nkifa5nhvsh4j.png" alt="Printing a Linked List in Python" width="800" height="417"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Traversing a Linked List.
&lt;/h3&gt;

&lt;p&gt;Traversing a linked list is the process of going through each node and printing it.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;traverse&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;linked_list&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="n"&gt;current&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;linked_list&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;head&lt;/span&gt;
    &lt;span class="k"&gt;while&lt;/span&gt; &lt;span class="n"&gt;current&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
        &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;current&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;data&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="n"&gt;current&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;current&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nb"&gt;next&lt;/span&gt;


&lt;span class="n"&gt;llist&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;LinkedList&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;span class="n"&gt;llist&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;append&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;llist&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;append&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;llist&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;append&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="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Traversing the linked list:&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="nf"&gt;traverse&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;llist&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmzzy5pwzixnwpgmfqynw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmzzy5pwzixnwpgmfqynw.png" alt="Traversing the linked list in Python" width="800" height="416"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Reversing a Linked List
&lt;/h2&gt;

&lt;p&gt;The idea is to iterate through the linked list and, for each node, switch its &lt;code&gt;next&lt;/code&gt; pointer to point to the previous node instead of the next one. This will help us reverse the linked list.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;reverse_linked_list&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;head&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="n"&gt;previous&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="bp"&gt;None&lt;/span&gt;
    &lt;span class="n"&gt;current&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;head&lt;/span&gt;
    &lt;span class="k"&gt;while&lt;/span&gt; &lt;span class="n"&gt;current&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
        &lt;span class="n"&gt;next_node&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;current&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nb"&gt;next&lt;/span&gt;
        &lt;span class="n"&gt;current&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nb"&gt;next&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;previous&lt;/span&gt;
        &lt;span class="n"&gt;previous&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;current&lt;/span&gt;
        &lt;span class="n"&gt;current&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;next_node&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;previous&lt;/span&gt;

&lt;span class="n"&gt;llist&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;LinkedList&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;span class="n"&gt;llist&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;append&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;llist&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;append&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;llist&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;append&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="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Original List:&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;llist&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;new_head&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;reverse_linked_list&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;llist&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;head&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;llist&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;head&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;new_head&lt;/span&gt;
&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Reversed List:&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;llist&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fs05ouz9eegzukkkuofw8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fs05ouz9eegzukkkuofw8.png" alt="Reversing a Linked List" width="800" height="411"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Inserting Values in a Linked List
&lt;/h2&gt;

&lt;p&gt;We already have an append function that adds a value to the end of the linked list. But what if we want to have a method that adds at a specific location, and if that location is not present then append the value at the end.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;LinkedList&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;

    &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;insert_after_value&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;data_after&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;data_to_insert&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
        &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;head&lt;/span&gt; &lt;span class="ow"&gt;is&lt;/span&gt; &lt;span class="bp"&gt;None&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
            &lt;span class="k"&gt;return&lt;/span&gt;

        &lt;span class="n"&gt;current&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;head&lt;/span&gt;
        &lt;span class="k"&gt;while&lt;/span&gt; &lt;span class="n"&gt;current&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
            &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;current&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;data&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="n"&gt;data_after&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
                &lt;span class="n"&gt;new_node&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;Node&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;data_to_insert&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
                &lt;span class="n"&gt;new_node&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nb"&gt;next&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;current&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nb"&gt;next&lt;/span&gt;
                &lt;span class="n"&gt;current&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nb"&gt;next&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;new_node&lt;/span&gt;
                &lt;span class="k"&gt;return&lt;/span&gt;
            &lt;span class="n"&gt;current&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;current&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nb"&gt;next&lt;/span&gt;

        &lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;append&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;data_to_insert&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Deleting a Node in a Linked List
&lt;/h2&gt;

&lt;p&gt;To delete a node from a linked list, create a function that takes the head of the list and the node's data to be deleted as arguments. And traverse the list till the data is found, and then delete it.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;LinkedList&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;

    &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;delete_node&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;data&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
        &lt;span class="n"&gt;current&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;head&lt;/span&gt;

        &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;current&lt;/span&gt; &lt;span class="ow"&gt;is&lt;/span&gt; &lt;span class="bp"&gt;None&lt;/span&gt; &lt;span class="ow"&gt;or&lt;/span&gt; &lt;span class="n"&gt;current&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;data&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="n"&gt;data&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
            &lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;head&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;current&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nb"&gt;next&lt;/span&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;current&lt;/span&gt; &lt;span class="k"&gt;else&lt;/span&gt; &lt;span class="bp"&gt;None&lt;/span&gt;
            &lt;span class="k"&gt;return&lt;/span&gt;

        &lt;span class="k"&gt;while&lt;/span&gt; &lt;span class="n"&gt;current&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nb"&gt;next&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
            &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;current&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nb"&gt;next&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;data&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="n"&gt;data&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
                &lt;span class="n"&gt;current&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nb"&gt;next&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;current&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nb"&gt;next&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nb"&gt;next&lt;/span&gt;
                &lt;span class="k"&gt;return&lt;/span&gt;
            &lt;span class="n"&gt;current&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;current&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nb"&gt;next&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F12hjdfchdy0ofrjyyt10.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F12hjdfchdy0ofrjyyt10.png" alt="Deleting a node in Linked List" width="800" height="418"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Thank you for reading this far. In future articles in this series, we'll discuss the more intricate details of Python and Python data structures. &lt;/p&gt;

&lt;h2&gt;
  
  
  Contribute to &lt;a href="https://github.com/swirlai/swirl-search" rel="noopener noreferrer"&gt;Swirl&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://github.com/swirlai/swirl-search" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fitecirhtu5lghtlr6m2a.jpg" alt="Contribute to Swirl" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/swirlai/swirl-search" rel="noopener noreferrer"&gt;Swirl&lt;/a&gt; is an open-source Python project. Contributing to Swirl can help you gain production-level knowledge of Python and improve your skills.&lt;/p&gt;

&lt;p&gt;Check our GitHub Repository: &lt;br&gt;
&lt;a href="https://github.com/swirlai/swirl-search" class="ltag_cta ltag_cta--branded" rel="noopener noreferrer"&gt;Swirl on GitHub&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;We'll be delighted if you could:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/swirlai/swirl-search" class="ltag_cta ltag_cta--branded" rel="noopener noreferrer"&gt;Give ⭐ to Swirl&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;Thanks for reading,&lt;br&gt;
You all are breathtaking.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkqhf5vqr2lj4z5kq4gdr.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkqhf5vqr2lj4z5kq4gdr.gif" alt="You are breathtaking" width="640" height="356"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>python</category>
      <category>tutorial</category>
      <category>beginners</category>
      <category>programming</category>
    </item>
    <item>
      <title>24 Best Resources 🎨 For Web Developers 💻 [HTML + CSS + JavaScript] 😱</title>
      <dc:creator>𝚂𝚊𝚞𝚛𝚊𝚋𝚑 𝚁𝚊𝚒</dc:creator>
      <pubDate>Wed, 01 Nov 2023 12:18:43 +0000</pubDate>
      <link>https://dev.to/swirl/24-best-resources-for-web-developers-html-css-javascript--2hog</link>
      <guid>https://dev.to/swirl/24-best-resources-for-web-developers-html-css-javascript--2hog</guid>
      <description>&lt;h2&gt;
  
  
  TL;DR
&lt;/h2&gt;

&lt;p&gt;The world of web development can be overwhelming with so many tools and resources available. To simplify this journey, I've curated a list of the 24 best resources specifically tailored for web developers. &lt;/p&gt;

&lt;p&gt;Covering the core technologies of HTML, CSS, and JavaScript, this guide aims to provide beginners and experts with valuable tools and insights to enhance their web development skills. Please explore these handpicked resources to help you excel in web development.&lt;/p&gt;




&lt;h2&gt;
  
  
  &lt;a href="https://github.com/swirlai/swirl-search" rel="noopener noreferrer"&gt;Swirl&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://github.com/swirlai/swirl-search" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftug7au7zrdnhv91wwrw2.gif" alt="Swirl v3 Demo" width="600" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Searching through multiple sources is challenging. Swirl combines all your databases, notes, PDFs, Jira, GitHub, Vector Databases, Discord, Slack, Teams Chat, etc., and allows you to search through them. &lt;/p&gt;

&lt;p&gt;Allowing you to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Generate AI Summaries of the answers. 🤖&lt;/li&gt;
&lt;li&gt;Manage your data and create a knowledge base.  📚&lt;/li&gt;
&lt;li&gt;Save time and be more productive. ⏳&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Please give Swirl Search a ⭐️ on GitHub. 💖 &lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/swirlai/swirl-search" class="ltag_cta ltag_cta--branded" rel="noopener noreferrer"&gt;Give ⭐ to Swirl on GitHub&lt;/a&gt;
&lt;/p&gt;




&lt;h2&gt;
  
  
  CSS Tools
&lt;/h2&gt;

&lt;h4&gt;
  
  
  1. &lt;a href="https://cssgradient.io/" rel="noopener noreferrer"&gt;CSS Gradient&lt;/a&gt;
&lt;/h4&gt;

&lt;p&gt;CSS Gradient is a project that lets you create free gradient backgrounds for your website.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fy3pz3pttdz3mw73hfgd6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fy3pz3pttdz3mw73hfgd6.png" alt="CSS Gradient" width="800" height="600"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  2. &lt;a href="https://colorhunt.co/" rel="noopener noreferrer"&gt;Colorhunt&lt;/a&gt;
&lt;/h4&gt;

&lt;p&gt;Colorhunt provides awesome colour palettes for designers and artists.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F36tgjp6atk0gbqvyrkof.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F36tgjp6atk0gbqvyrkof.png" alt="Colorhunt" width="800" height="600"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  3. &lt;a href="https://css-tricks.com/" rel="noopener noreferrer"&gt;CSS Tricks&lt;/a&gt;
&lt;/h4&gt;

&lt;p&gt;CSS Tricks hosts some of the best advice, tips, tricks and code snippets on Cascading Style Sheets.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9cpyxw7dh1st3u2t2lpd.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9cpyxw7dh1st3u2t2lpd.png" alt="CSS Tricks" width="800" height="600"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  4. &lt;a href="https://haikei.app/generators/" rel="noopener noreferrer"&gt;Generators by Haikei&lt;/a&gt;
&lt;/h4&gt;

&lt;p&gt;Haikei is a web app that generate stunning visual content – ready to use with your design tools and workflow.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fu1iodm4kouyeo1fqaapi.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fu1iodm4kouyeo1fqaapi.png" alt="Generators by Haikei" width="800" height="600"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  5. &lt;a href="https://fffuel.co/gggrain/" rel="noopener noreferrer"&gt;FFFuel&lt;/a&gt;
&lt;/h4&gt;

&lt;p&gt;Fffuel is a collection of color tools and free SVG generators for gradients, patterns, textures, shapes &amp;amp; backgrounds.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frtuapj8v11oy90wu63vl.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frtuapj8v11oy90wu63vl.png" alt="FFFuel" width="800" height="600"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  6. &lt;a href="https://www.svgbackgrounds.com/" rel="noopener noreferrer"&gt;SVG Backgrounds&lt;/a&gt;
&lt;/h4&gt;

&lt;p&gt;SVG Backgrounds hosts a collection of SVG Backgrounds ready to be used on your website.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsnvajtzhfcdeij595okb.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsnvajtzhfcdeij595okb.png" alt="SVG Backgrounds" width="800" height="600"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  7. &lt;a href="https://animatedbackgrounds.me/" rel="noopener noreferrer"&gt;Animated Backgrounds&lt;/a&gt;
&lt;/h4&gt;

&lt;p&gt;Animated Backgrounds hosts code snippets of various animated backgrounds that can be used as a background in your website.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fihajx942sr0a1hdjhpc9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fihajx942sr0a1hdjhpc9.png" alt="Animated Backgrounds" width="800" height="600"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  8. &lt;a href="https://flowbite.com/blocks/publisher/blog-templates/" rel="noopener noreferrer"&gt;Flowbite&lt;/a&gt;
&lt;/h4&gt;

&lt;p&gt;Flowbite provides a robust set of design tokens and components based on the popular Tailwind CSS framework.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fk5vm5gt1eq8xp3v2sfeb.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fk5vm5gt1eq8xp3v2sfeb.png" alt="Flowbite" width="800" height="600"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  9. &lt;a href="https://daisyui.com/" rel="noopener noreferrer"&gt;DaisyUI&lt;/a&gt;
&lt;/h4&gt;

&lt;p&gt;DaisyUI adds a set of customisable colour names to Tailwind CSS, and these new colours use CSS variables for the values.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fftt8w6hb86u053ou1jjr.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fftt8w6hb86u053ou1jjr.png" alt="DaisyUI" width="800" height="600"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  HTML
&lt;/h2&gt;

&lt;h4&gt;
  
  
  10. &lt;a href="https://www.quackit.com/html/templates/" rel="noopener noreferrer"&gt;HTML Templates by Quackit&lt;/a&gt;
&lt;/h4&gt;

&lt;p&gt;Quackit provides a large selection of free website templates. Depending on your choice, you can choose from a list of simple or more advanced templates.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frpck2niq9956wgdiknmq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frpck2niq9956wgdiknmq.png" alt="HTML Templates by Quackit" width="800" height="600"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Icons
&lt;/h2&gt;

&lt;h4&gt;
  
  
  11. &lt;a href="https://devicon.dev/" rel="noopener noreferrer"&gt;Devicon&lt;/a&gt;
&lt;/h4&gt;

&lt;p&gt;Devicon is a set of icons representing programming languages, designing, and development tools. You can use it as a font or copy/paste the SVG code into your project.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnuwk7f14xmmahc3l5368.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnuwk7f14xmmahc3l5368.png" alt="Devicon" width="800" height="600"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  12. &lt;a href="https://www.flaticon.com/" rel="noopener noreferrer"&gt;Flaticon&lt;/a&gt;
&lt;/h4&gt;

&lt;p&gt;Download Free Icons and Stickers for your projects—images made by and for designers in PNG, SVG, etc. Formats.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F694zggooyig7digfrje6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F694zggooyig7digfrje6.png" alt="Flaticon" width="800" height="600"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Low Code Tools
&lt;/h2&gt;

&lt;h4&gt;
  
  
  13. &lt;a href="https://www.framer.com/" rel="noopener noreferrer"&gt;Framer&lt;/a&gt;
&lt;/h4&gt;

&lt;p&gt;Framer is a low-code, drag-and-drop AI-based website builder.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fm0nb98taxppb2lq2j5ud.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fm0nb98taxppb2lq2j5ud.png" alt="Framer" width="800" height="600"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  14. &lt;a href="https://bubble.io/" rel="noopener noreferrer"&gt;Bubble&lt;/a&gt;
&lt;/h4&gt;

&lt;p&gt;Bubble calls itself the world's only full-stack, no-code platform. Bubble is a tool that will allow you to build apps without writing a single line of code.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftx9t207djk1rk3acimor.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftx9t207djk1rk3acimor.png" alt="Bubble" width="800" height="600"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  15. &lt;a href="https://www.adalo.com/" rel="noopener noreferrer"&gt;Adalo&lt;/a&gt;
&lt;/h4&gt;

&lt;p&gt;Adalo is a low-code responsive web app design tool. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fp9eyoci23wjrwfkbayhd.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fp9eyoci23wjrwfkbayhd.png" alt="Adalo" width="800" height="600"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Misc
&lt;/h2&gt;

&lt;h4&gt;
  
  
  16. &lt;a href="https://cdnjs.com/" rel="noopener noreferrer"&gt;CDN JS&lt;/a&gt;
&lt;/h4&gt;

&lt;p&gt;CDN JS is a free and open-source Content Delivery Network. It allows web developers to search and load npm packages right into the head of the HTML of their static pages without worrying about npm installation. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F33zhw7i6suw2fvd5uxfr.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F33zhw7i6suw2fvd5uxfr.png" alt="CDN JS" width="800" height="600"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Free Images
&lt;/h2&gt;

&lt;h4&gt;
  
  
  17. &lt;a href="https://unsplash.com/" rel="noopener noreferrer"&gt;Unsplash&lt;/a&gt;
&lt;/h4&gt;

&lt;p&gt;While we have image generator tools, nothing can be the surrealism brought to us by Unsplash. You can use many images on your websites (remember to donate to the photographer &amp;amp; mention them if you're using their images). &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fslj7w9m4t3g1d8ovcgvp.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fslj7w9m4t3g1d8ovcgvp.png" alt="Unsplash" width="800" height="600"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  18. &lt;a href="https://openai.com/dall-e-3" rel="noopener noreferrer"&gt;DALLE-3&lt;/a&gt;
&lt;/h4&gt;

&lt;p&gt;The third iteration of the image generation tool by Open AI. You can use this tool for free using the Bing AI Image Generator tool. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fagayg9j66sxts85t9or5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fagayg9j66sxts85t9or5.png" alt="DALLE-3" width="800" height="600"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Mockups
&lt;/h2&gt;

&lt;h4&gt;
  
  
  19. &lt;a href="https://www.mockupworld.co/" rel="noopener noreferrer"&gt;Mockup World&lt;/a&gt;
&lt;/h4&gt;

&lt;p&gt;Tons of free and legal, fully layered, easily customizable photo realistic PSD mockups: Ready to use in your projects, app showcases and presentations! ~ Mentioned on their website!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4uujz7r6rqwpeiimzy2o.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4uujz7r6rqwpeiimzy2o.png" alt="Mockup World" width="800" height="600"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  20. &lt;a href="https://www.freemockupworld.com/" rel="noopener noreferrer"&gt;Free Mockup World&lt;/a&gt;
&lt;/h4&gt;

&lt;p&gt;Free Mockup World is a collaboration of high-quality best free mockups, including Apple Devices, Branding, Logos, Print, Digital Art, Fashion, Apparel and more. ~ Mentioned on their website. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdwa2ss6ueyra2w553yka.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdwa2ss6ueyra2w553yka.png" alt="Free Mockup World" width="800" height="600"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  21. &lt;a href="https://uidesigndaily.com/" rel="noopener noreferrer"&gt;UI Design Daily&lt;/a&gt;
&lt;/h4&gt;

&lt;p&gt;Free, open-source UI design resources for your website. (Contains Figma mocks-ups for login pages, etc.)&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyj9rxpndn5n82jv2tgij.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyj9rxpndn5n82jv2tgij.png" alt="UI Design Daily" width="800" height="600"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Other Useful Open Source Libraries
&lt;/h2&gt;

&lt;h4&gt;
  
  
  22. &lt;a href="https://ui.shadcn.com/" rel="noopener noreferrer"&gt;ShadCN&lt;/a&gt;
&lt;/h4&gt;

&lt;p&gt;Beautifully designed components built with Radix UI and Tailwind CSS.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fepbhf6clfcprk88hiem0.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fepbhf6clfcprk88hiem0.png" alt=" " width="800" height="600"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  23. &lt;a href="https://clickvote.dev/" rel="noopener noreferrer"&gt;Clickvote&lt;/a&gt;
&lt;/h4&gt;

&lt;p&gt;Clickvote is an open-source library that takes the hassle of building your reaction components around your content. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fq811a8q07g72taiib87e.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fq811a8q07g72taiib87e.png" alt="Clickvote" width="800" height="600"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  24. &lt;a href="https://www.spartan.ng/" rel="noopener noreferrer"&gt;Spartan NG&lt;/a&gt;
&lt;/h4&gt;

&lt;p&gt;ShadCN for Angular. Open-source, community built. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fodg6ubryxangvs7skvzp.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fodg6ubryxangvs7skvzp.png" alt="Spartan UI" width="800" height="600"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  For Searching Through Your Data - Swirl
&lt;/h2&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://github.com/swirlai/swirl-search" rel="noopener noreferrer"&gt;Swirl&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Swirl is an open source search platform that changes how you interact with your data.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/swirlai/swirl-search" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftug7au7zrdnhv91wwrw2.gif" alt="Swirl v3 Demo" width="600" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Think of it as ChatGPT explicitly tailored for your unique datasets. Whether it's notes, code snippets, PDF files, or emails, Swirl is your go-to platform for instant, AI-driven insights.&lt;/p&gt;

&lt;p&gt;Features that set Swirl apart:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Universal Search&lt;/strong&gt;: Seamlessly search through notes, codes, docs, databases, emails, chats, logs, and more. 🔍&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Personal AI-Powered Knowledge Assistant&lt;/strong&gt;: You can build a secure, searchable knowledge base for your company, startup or personal data. 🤖&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;One Click Retrieval Augmented Generation&lt;/strong&gt;: With Swirl, you can instantly perform AI summaries and analytics. You can get answers with sources to the data that generated them. 🛠️&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Please give Swirl Search a ⭐️ on GitHub. 💖&lt;/strong&gt; &lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/swirlai/swirl-search" class="ltag_cta ltag_cta--branded" rel="noopener noreferrer"&gt;Give ⭐ to Swirl on GitHub&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;And join our &lt;a href="https://join.slack.com/t/swirlmetasearch/shared_invite/zt-1qk7q02eo-kpqFAbiZJGOdqgYVvR1sfw" rel="noopener noreferrer"&gt;Open Source Slack Community 🌸&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;Once again, thank you for reading!&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>javascript</category>
      <category>beginners</category>
      <category>opensource</category>
    </item>
  </channel>
</rss>
