<?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: Learn dev tools</title>
    <description>The latest articles on DEV Community by Learn dev tools (@learndevts).</description>
    <link>https://dev.to/learndevts</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1031209%2F48958096-c558-4805-b3c8-450dc68002e8.jpg</url>
      <title>DEV Community: Learn dev tools</title>
      <link>https://dev.to/learndevts</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/learndevts"/>
    <language>en</language>
    <item>
      <title>Best Linux Developer Tools for a Lean and Productive Setup</title>
      <dc:creator>Learn dev tools</dc:creator>
      <pubDate>Mon, 29 Dec 2025 17:02:44 +0000</pubDate>
      <link>https://dev.to/learndevts/best-linux-developer-tools-for-a-lean-and-productive-setup-2p69</link>
      <guid>https://dev.to/learndevts/best-linux-developer-tools-for-a-lean-and-productive-setup-2p69</guid>
      <description>&lt;p&gt;When I started cleaning up my Linux workflow, I realized something obvious that I had ignored for years. Productivity didn’t come from installing more tools. It came from choosing a small set that worked together without friction. Before diving into the details, here is the toolkit that shaped my daily development routine and actually stayed installed on my machine.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. Code editors / IDEs
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;VS Code / VSCodium&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;JetBrains IDEs&lt;/strong&gt; (IntelliJ, PyCharm, WebStorm)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Neovim&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  2. Version control &amp;amp; repositories
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Git&lt;/strong&gt; (CLI first)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;GitHub / GitLab&lt;/strong&gt; (for collaboration)&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  3. Shell, terminal, productivity
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Fish or Zsh&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Kitty, Tilix, or Terminator&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;tmux&lt;/strong&gt; (session management and panes)&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  4. Automated testing &amp;amp; CI
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;pytest, Jest, PHPUnit&lt;/strong&gt; (depending on language)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;GitHub Actions or GitLab CI&lt;/strong&gt; (basic pipelines)&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  5. Containers &amp;amp; environments
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Docker or Podman&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;docker-compose&lt;/strong&gt; for multi-service setups&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  6. Debugging, profiling, databases
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;gdb / lldb&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Valgrind&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;DBeaver or DataGrip&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  7. Design and architecture thinking
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Excalidraw&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;PlantUML&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;draw.io&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  8. AI helpers (used carefully)
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;GitHub Copilot&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Codeium&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Cursor or similar AI coding assistants&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  9. Two practical stacks
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Free stack:&lt;/strong&gt; VS Code or Neovim, Git, tmux, Docker, CI, DBeaver, Excalidraw
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Paid-plus stack:&lt;/strong&gt; JetBrains IDEs, Copilot, DataGrip, managed CI minutes&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If any of these tools catch your attention, I break them down in &lt;a href="https://www.learn-dev-tools.blog/best-linux-developer-tools/" rel="noopener noreferrer"&gt;more detail in the full guide&lt;/a&gt;, with examples of how they fit into real projects.&lt;/p&gt;

</description>
      <category>productivity</category>
      <category>ai</category>
      <category>tooling</category>
      <category>programming</category>
    </item>
    <item>
      <title>Best Production Management Software for Small Manufacturers in 20256</title>
      <dc:creator>Learn dev tools</dc:creator>
      <pubDate>Wed, 26 Nov 2025 20:50:06 +0000</pubDate>
      <link>https://dev.to/learndevts/best-production-management-software-for-small-manufacturers-in-2025-540d</link>
      <guid>https://dev.to/learndevts/best-production-management-software-for-small-manufacturers-in-2025-540d</guid>
      <description>&lt;p&gt;Small manufacturers often rely on spreadsheets or disconnected tools, which leads to delays, stock errors, and low visibility. The original article explains why modern production-management software helps reduce mistakes, sync inventory, and provide real-time visibility on the shop floor.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Production Software Matters
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Real-time production tracking
&lt;/li&gt;
&lt;li&gt;Automatic inventory and warehouse syncing
&lt;/li&gt;
&lt;li&gt;BOM (Bill of Materials) management with version control
&lt;/li&gt;
&lt;li&gt;Easier planning and fewer human errors
&lt;/li&gt;
&lt;li&gt;Integrations with ecommerce, accounting, and shipping
&lt;/li&gt;
&lt;li&gt;Simple onboarding for small teams
&lt;/li&gt;
&lt;li&gt;Scalable without needing a full ERP&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  What to Look For in a Good Tool
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Real-time dashboards
&lt;/li&gt;
&lt;li&gt;Inventory automation
&lt;/li&gt;
&lt;li&gt;BOM versioning
&lt;/li&gt;
&lt;li&gt;Easy training
&lt;/li&gt;
&lt;li&gt;Strong integrations (Shopify, QuickBooks, scanners, etc.)
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Top Recommended Tools (2025)
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Software&lt;/th&gt;
&lt;th&gt;Best For&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Katana&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Ecommerce-driven and DTC manufacturers&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;MRPeasy&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Small workshops replacing spreadsheets&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Odoo&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Growing teams that need modular ERP flexibility&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Fishbowl Manufacturing&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Inventory-heavy and regulated products&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Prodsmart&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Real-time shop-floor digitization&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;JobBOSS²&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Custom make-to-order job shops&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;ERPNext&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Open-source ERP built for scalability&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  Which Tool Should You Choose?
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;For ecommerce-first workflows → &lt;strong&gt;Katana&lt;/strong&gt;, &lt;strong&gt;MRPeasy&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;For scalable ERP features → &lt;strong&gt;Odoo&lt;/strong&gt;, &lt;strong&gt;ERPNext&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;For strong warehouse controls → &lt;strong&gt;Fishbowl&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;For digitizing paper processes → &lt;strong&gt;Prodsmart&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;For custom one-off production → &lt;strong&gt;JobBOSS²&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Final Note
&lt;/h2&gt;

&lt;p&gt;The right tool depends on your workflow. Start by identifying your pain points (inventory errors, scheduling, visibility), then test the tools that match your needs.&lt;/p&gt;

&lt;p&gt;👉 &lt;strong&gt;Read the full article here:&lt;/strong&gt; &lt;a href="https://www.learn-dev-tools.blog/best-production-management-software-for-small-manufacturers/" rel="noopener noreferrer"&gt;https://www.learn-dev-tools.blog/best-production-management-software-for-small-manufacturers/&lt;/a&gt;&lt;/p&gt;

</description>
      <category>productivity</category>
      <category>management</category>
      <category>software</category>
      <category>cloud</category>
    </item>
    <item>
      <title>Top LLMOps Tools to Manage Your AI Stack in 2025</title>
      <dc:creator>Learn dev tools</dc:creator>
      <pubDate>Mon, 21 Apr 2025 22:00:04 +0000</pubDate>
      <link>https://dev.to/learndevts/top-llmops-tools-to-manage-your-ai-stack-in-2025-3joi</link>
      <guid>https://dev.to/learndevts/top-llmops-tools-to-manage-your-ai-stack-in-2025-3joi</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;🚀 LLMOps is no longer a luxury — it's the backbone of modern AI workflows.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;If you're building anything with GPT, Claude, or LLaMA in 2025, you need tooling that scales. From prompt orchestration to observability and deployment, this space is growing fast — and messy.&lt;/p&gt;

&lt;p&gt;In this post, you'll get a curated shortlist of the &lt;strong&gt;top LLMOps platforms&lt;/strong&gt;, based on real-world use cases and practical criteria.&lt;/p&gt;




&lt;h2&gt;
  
  
  ✅ What to Look for in an LLMOps Platform
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Prompt versioning and testing support
&lt;/li&gt;
&lt;li&gt;Observability (latency, drift, hallucinations, cost tracking)
&lt;/li&gt;
&lt;li&gt;Seamless deployment workflows (GPU support, serverless, containerization)
&lt;/li&gt;
&lt;li&gt;Integration with OpenAI, Hugging Face, Anthropic
&lt;/li&gt;
&lt;li&gt;Enterprise readiness (compliance, auditing, scalability)&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  🧰 Top LLMOps Tools (Shortlist)
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;LangChain&lt;/strong&gt; — Best for chaining workflows and agent logic&lt;br&gt;&lt;br&gt;
&lt;strong&gt;W&amp;amp;B&lt;/strong&gt; — Best for experiment tracking and observability&lt;br&gt;&lt;br&gt;
&lt;strong&gt;LlamaIndex&lt;/strong&gt; — Ideal for RAG and external data integration&lt;br&gt;&lt;br&gt;
&lt;strong&gt;Arize AI&lt;/strong&gt; — LLM observability with hallucination detection&lt;br&gt;&lt;br&gt;
&lt;strong&gt;Fiddler AI&lt;/strong&gt; — Focused on fairness, bias, and explainability&lt;br&gt;&lt;br&gt;
&lt;strong&gt;PromptLayer&lt;/strong&gt; — GitHub-style versioning and A/B testing for prompts&lt;br&gt;&lt;br&gt;
&lt;strong&gt;BentoML&lt;/strong&gt; — Production-ready model deployment (GPU + API support)&lt;/p&gt;




&lt;h2&gt;
  
  
  📊 Bonus: Download the LLMOps Toolkit (PDF)
&lt;/h2&gt;




&lt;h2&gt;
  
  
  🧠 Final Thoughts
&lt;/h2&gt;

&lt;p&gt;The best LLMs still need great infrastructure. Whether you’re documenting internal copilots or launching a production-grade chatbot, the tools you use will make or break scalability and performance.&lt;/p&gt;

&lt;p&gt;Need help documenting or selecting your stack?&lt;br&gt;&lt;br&gt;
👉 &lt;a href="https://https://www.learn-dev-tools.blog/contact-us/" rel="noopener noreferrer"&gt;Let’s work together&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Originally published on &lt;a href="https://www.learn-dev-tools.blog/best-llmops-platforms/" rel="noopener noreferrer"&gt;learn-dev-tools.blog&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>aitools</category>
      <category>langchain</category>
      <category>beginners</category>
      <category>llmops</category>
    </item>
    <item>
      <title>How to Add a File Service Plugin to Your Medusa Store?</title>
      <dc:creator>Learn dev tools</dc:creator>
      <pubDate>Wed, 26 Apr 2023 21:31:00 +0000</pubDate>
      <link>https://dev.to/learndevts/how-to-add-a-file-service-plugin-to-your-medusa-store-22n</link>
      <guid>https://dev.to/learndevts/how-to-add-a-file-service-plugin-to-your-medusa-store-22n</guid>
      <description>&lt;p&gt;Headless commerce has been out there for a long while with Medusa being one of the best alternatives to &lt;a href="https://www.shopify.com" rel="noreferrer noopener"&gt;Shopify&lt;/a&gt;. Medusa’s composable architecture allows you to build a store with any framework or language of your choice hence providing a full customization ability. Medusa equally allows you to build a unique ecommerce experience by providing a set of tools and essential building blocks developers can add up to create a powerful ecommerce website. It offers out-of-the-box features like customer, product, shipping, tax and region management, and RMA Flow. In today’s tutorial, you will learn how to add a file service plugin in order to be able to add products to your Medusa store via the &lt;a href="https://docs.medusajs.com/admin/quickstart" rel="noreferrer noopener"&gt;admin dashboard&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;What is Medusa&lt;/h2&gt;

&lt;p&gt;Medusa is an &lt;a href="https://www.learn-dev-tools.blog/what-does-open-source-software-mean-a-beginners-guide/"&gt;open-source&lt;/a&gt; set of tools that allow you to build amazing and reliable ecommerce websites. With more than &lt;a href="https://github.com/medusajs/medusa" rel="noreferrer noopener"&gt;17.8k stars and 1.3k forks on GitHub&lt;/a&gt;, this headless commerce solution comes with a handful of commerce modules from basic to advanced and is freely available. Its &lt;a href="https://docs.medusajs.com/" rel="noreferrer noopener"&gt;well-written documentation&lt;/a&gt; also contributes to its success as there are step-by-step guidelines on how to add a module or plugins. Some popular plugins among others are payments, notifications, search and file service plugins.&lt;/p&gt;

&lt;h2&gt;What is a File Service Plugin&lt;/h2&gt;

&lt;p&gt;A file service plugin allows you to host files like images used in Medusa. You may face issues if you don’t use or set up a file service for your Medusa store properly. Medusa offers three different ways to manage file storage; S3, &lt;a href="https://docs.medusajs.com/plugins/file-service/minio" rel="noreferrer noopener"&gt;MinIo&lt;/a&gt; and &lt;a href="https://docs.medusajs.com/plugins/file-service/spaces" rel="noreferrer noopener"&gt;Spaces&lt;/a&gt;. This tutorial solely focuses on S3 file storage to store images and files uploaded in Medusa.&lt;/p&gt;

&lt;p&gt;S3 or Simple Storage Service is an object storage used to store and retrieve any amount of data from anyway and at any time. We will use Amazon S3 for this demonstration. &lt;/p&gt;

&lt;h2&gt;How to upload files into your Medusa store&lt;/h2&gt;

&lt;p&gt;Amazon keeps data as objects within a bucket. An object consists of a file and optional data that describes it. To store a file, you need to upload it in a bucket(Buckets are the containers for objects), once uploaded, you can &lt;a href="https://docs.aws.amazon.com/config/latest/developerguide/s3-bucket-policy.html" rel="noreferrer noopener"&gt;set permissions on the object&lt;/a&gt;. &lt;/p&gt;

&lt;p&gt;Now let’s get you to upload files in your Medusa projects quickly.&lt;/p&gt;

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

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://www.learn-dev-tools.blog/how-to-build-a-medusa-webshop-with-one-command/"&gt;A Medusa store&lt;/a&gt;. A Medusa project is basically divided into three components; a storefront, an admin dashboard and a &lt;a href="https://docs.medusajs.com/development/backend/install" rel="noreferrer noopener"&gt;Medusa &lt;/a&gt;&lt;a href="https://docs.medusajs.com/development/backend/install"&gt;Backend&lt;/a&gt;
&lt;/li&gt;



&lt;li&gt;An &lt;a href="https://console.aws.amazon.com/console/home?nc2=h_ct&amp;amp;src=header-signin" rel="noreferrer noopener"&gt;AWS account&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you have everything set up then follow the steps below to add a File Service Plugin to Your Medusa Store.&lt;/p&gt;

&lt;h3&gt;Step 1: Create an S3 Bucket&lt;/h3&gt;

&lt;p&gt;Login into your AWS account, search and&lt;strong&gt; select S3&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s---0h9G8gj--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://www.learn-dev-tools.blog/wp-content/uploads/2023/04/select-s3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s---0h9G8gj--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://www.learn-dev-tools.blog/wp-content/uploads/2023/04/select-s3.png" alt="How to Add a File Service Plugin to Your Medusa Store?" width="800" height="443"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In the next page, Click on &lt;strong&gt;Create bucket&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--baXqedwt--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://www.learn-dev-tools.blog/wp-content/uploads/2023/04/image-1-1024x138.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--baXqedwt--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://www.learn-dev-tools.blog/wp-content/uploads/2023/04/image-1-1024x138.png" alt="How to Add a File Service Plugin to Your Medusa Store?" width="800" height="108"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In the window that opens, provide the information necessary to create your bucket.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;General Configuration&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Provide a name to your bucket and leave the default region or choose another one per your requirements.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Lo1W3r-6--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://www.learn-dev-tools.blog/wp-content/uploads/2023/04/image-2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Lo1W3r-6--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://www.learn-dev-tools.blog/wp-content/uploads/2023/04/image-2.png" alt="How to Add a File Service Plugin to Your Medusa Store?" width="800" height="343"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Object Ownership&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;For ownership, allow objects in the bucket to be owned by your account.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--FcWO8oJu--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://www.learn-dev-tools.blog/wp-content/uploads/2023/04/object-owner.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--FcWO8oJu--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://www.learn-dev-tools.blog/wp-content/uploads/2023/04/object-owner.png" alt="How to Add a File Service Plugin to Your Medusa Store?" width="800" height="273"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In the Block Public Access settings, uncheck &lt;strong&gt;Block&lt;/strong&gt; all public Access. Doing this will show a warning message check the box in the message as in the image.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--w62MtFaS--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://www.learn-dev-tools.blog/wp-content/uploads/2023/04/allows.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--w62MtFaS--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://www.learn-dev-tools.blog/wp-content/uploads/2023/04/allows.png" alt="How to Add a File Service Plugin to Your Medusa Store?" width="800" height="663"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;As for the Bucket versioning, tags, default encryption and advanced settings, leave the default settings or change them per your project requirements and click on &lt;strong&gt;Create bucket&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--XR881Qe5--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://www.learn-dev-tools.blog/wp-content/uploads/2023/04/other-settings.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--XR881Qe5--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://www.learn-dev-tools.blog/wp-content/uploads/2023/04/other-settings.png" alt="How to Add a File Service Plugin to Your Medusa Store?" width="800" height="816"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;Step 2: Manage Policies&lt;/h3&gt;

&lt;p&gt;The next step consists of managing your created bucket policies.&lt;strong&gt; &lt;/strong&gt;Head to the page of your bucket and open the &lt;strong&gt;permission tab. &lt;/strong&gt;Then scroll down to the bucket policy section, click on edit, add the code below and&lt;strong&gt; Save.&lt;/strong&gt;&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;{
 "Version": "2012-10-17",
 "Id": "Policy1397632521960",
 "Statement": [
   {
     "Sid": "Stmt1397633323327",
     "Effect": "Allow",
     "Principal": {
       "AWS": "*"
     },
     "Action": "s3:GetObject",
     "Resource": "arn:aws:s3:::&amp;lt;YOUR_BUCKET_NAME&amp;gt;/*"
   }
 ]
}&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--9N8ljzux--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://www.learn-dev-tools.blog/wp-content/uploads/2023/04/bucket-poly-1024x459.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--9N8ljzux--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://www.learn-dev-tools.blog/wp-content/uploads/2023/04/bucket-poly-1024x459.png" alt="How to Add a File Service Plugin to Your Medusa Store?" width="800" height="359"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Replace &lt;code&gt;&amp;lt;YOUR_BUCKET_NAME&amp;gt;&lt;/code&gt; with the name of your bucket. Here it is &lt;strong&gt;&lt;code&gt;medusastorebucket&lt;/code&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;Step 3: Attach a Policy&lt;/h3&gt;

&lt;p&gt;In your account navigate to &lt;a href="https://us-east-1.console.aws.amazon.com/iamv2/home?region=us-east-1#/home" rel="noreferrer noopener"&gt;IAM&lt;/a&gt;&lt;strong&gt; and select Access Management-&amp;gt;Policies in the left menu.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--ftoompwz--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://www.learn-dev-tools.blog/wp-content/uploads/2023/04/policies.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ftoompwz--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://www.learn-dev-tools.blog/wp-content/uploads/2023/04/policies.png" alt="How to Add a File Service Plugin to Your Medusa Store" width="267" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If this is your first time choosing a policy, then you will see a Welcome to Manage Policies Page and select get started else choose&lt;strong&gt; Create policy. &lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--sGBm26_E--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://www.learn-dev-tools.blog/wp-content/uploads/2023/04/create-poly-1024x126.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--sGBm26_E--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://www.learn-dev-tools.blog/wp-content/uploads/2023/04/create-poly-1024x126.png" alt="How to Add a File Service Plugin to Your Medusa Store?" width="800" height="98"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Then select the JSON tab and add the following code:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;{
  "Version": "2012-10-17",
  "Statement" : [
    {
      "Effect" : "Allow",
      "Action" : [
        "action-statement"
      ],
      "Resource" : [
        "resource-statement"
      ]
    },
    {
      "Effect" : "Allow",
      "Action" : [
        "action-statement"
      ],
      "Resource" : [
        "resource-statement"
      ]
    }
  ]
}&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--PnGdU7UJ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://www.learn-dev-tools.blog/wp-content/uploads/2023/04/jsontab-1024x477.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--PnGdU7UJ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://www.learn-dev-tools.blog/wp-content/uploads/2023/04/jsontab-1024x477.png" alt="How to Add a File Service Plugin to Your Medusa Store?" width="800" height="373"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Substitute the &lt;code&gt;action-statement&lt;/code&gt; and &lt;code&gt;resource-statement&lt;/code&gt; per your requirement and click on &lt;code&gt;Next:tag&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Learn more about &lt;a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html" rel="noreferrer noopener"&gt;Policies and permissions&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Tags are optional so you can skip this step and click on the review button to review your policy.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--5hzoHl2q--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://www.learn-dev-tools.blog/wp-content/uploads/2023/04/namepolicy-1024x511.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--5hzoHl2q--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://www.learn-dev-tools.blog/wp-content/uploads/2023/04/namepolicy-1024x511.png" alt="How to Add a File Service Plugin to Your Medusa Store?" width="800" height="399"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Next, provide a name and description for your policy then click on &lt;strong&gt;Create policy&lt;/strong&gt;&lt;/p&gt;



&lt;p&gt;Now that you have created your policy, you need to attach it to a user group, navigate to&lt;strong&gt; &lt;/strong&gt;&lt;a href="https://console.aws.amazon.com/iam/" rel="noreferrer noopener"&gt;&lt;strong&gt;Amazon console&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt; &lt;/strong&gt;and choose&lt;strong&gt; User Groups&lt;/strong&gt;. Select the name of the group then open the &lt;strong&gt;Permission tab&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--vLHD-1Tz--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://www.learn-dev-tools.blog/wp-content/uploads/2023/04/permission-1024x313.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--vLHD-1Tz--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://www.learn-dev-tools.blog/wp-content/uploads/2023/04/permission-1024x313.png" alt="How to Add a File Service Plugin to Your Medusa Store?" width="800" height="245"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Choose &lt;strong&gt;Add permission &lt;/strong&gt;and then&lt;strong&gt; attach policies&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--7vWp6sFf--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://www.learn-dev-tools.blog/wp-content/uploads/2023/04/attach.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--7vWp6sFf--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://www.learn-dev-tools.blog/wp-content/uploads/2023/04/attach.png" alt="How to Add a File Service Plugin to Your Medusa Store" width="222" height="163"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In the window that opens, select the policy you want to attach and click on add permission at the bottom of the page&lt;strong&gt;.&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;Step 4: Get Your Access Key&lt;/h2&gt;

&lt;p&gt;You need to obtain your access key in order to integrate the S3 Plugin into your project. You will need two elements; &lt;code&gt;Access Key ID&lt;/code&gt; and &lt;code&gt;Secret Access Key&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;To get your AWS Access Key ID and Secret Access Key, head to your &lt;a href="https://console.aws.amazon.com/iam/" rel="noreferrer noopener"&gt;Amazon console&lt;/a&gt; on the left navigation, and choose &lt;strong&gt;Users. &lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Choose your&lt;strong&gt; IAM user name &lt;/strong&gt;and open the&lt;strong&gt; Security credentials tab&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--ERwvJrYb--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://www.learn-dev-tools.blog/wp-content/uploads/2023/04/secur-1024x184.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ERwvJrYb--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://www.learn-dev-tools.blog/wp-content/uploads/2023/04/secur-1024x184.png" alt="How to Add a File Service Plugin to Your Medusa Store?" width="800" height="144"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Scroll down to Access Keys and click on &lt;strong&gt;Create Access Key&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="" class="article-body-image-wrapper"&gt;&lt;img alt="How to Add a File Service Plugin to Your Medusa Store?"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In the next window, you will be asked to choose where you want to use the access key. Check&lt;strong&gt; Local code &lt;/strong&gt;if you are working in a local dev environment.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--xt0yqBGX--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://www.learn-dev-tools.blog/wp-content/uploads/2023/04/local.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--xt0yqBGX--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://www.learn-dev-tools.blog/wp-content/uploads/2023/04/local.png" alt="How to Add a File Service Plugin to Your Medusa Store?" width="800" height="580"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;By choosing local a warning message will appear asking you if you understand the recommendation. Check the box and click on the next button.&lt;/p&gt;

&lt;p&gt;Finally, add a tag description if you like to add one and click on &lt;strong&gt;Create access key&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--ylzjZWcx--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://www.learn-dev-tools.blog/wp-content/uploads/2023/04/createk.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ylzjZWcx--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://www.learn-dev-tools.blog/wp-content/uploads/2023/04/createk.png" alt="How to Add a File Service Plugin to Your Medusa Store?" width="800" height="225"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In the next window, you will see your Access and Secret Access key. Kindly copy and paste it somewhere on your PC since you will use it in the next step or download the CSV file. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--lKoDq6M7--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://www.learn-dev-tools.blog/wp-content/uploads/2023/04/keys.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--lKoDq6M7--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://www.learn-dev-tools.blog/wp-content/uploads/2023/04/keys.png" alt="How to Add a File Service Plugin to Your Medusa Store?" width="800" height="436"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;Step 5: Install the S3 Plugin&lt;/h3&gt;

&lt;p&gt;Now that you have set up your bucket and created your access keys, it’s time to install the S3 plugin. To do so head to your Medusa backend folder and install it with the following command:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;yarn add medusa-file-s3&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Or&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;npm install medusa-file-s3&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Then open your &lt;code&gt;.env&lt;/code&gt; file and add the following&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;S3_URL=&amp;lt;YOUR_BUCKET_URL&amp;gt;
S3_BUCKET=&amp;lt;YOUR_BUCKET_NAME&amp;gt;
S3_REGION=&amp;lt;YOUR_BUCKET_REGION&amp;gt;
S3_ACCESS_KEY_ID=&amp;lt;YOUR_ACCESS_KEY_ID&amp;gt;
S3_SECRET_ACCESS_KEY=&amp;lt;YOUR_SECRET_ACCESS_KEY&amp;gt;&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Where&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;&amp;lt;YOUR_BUCKET_URL&amp;gt;&lt;/code&gt; is the URL of your bucket. It is in the form &lt;code&gt;https://&amp;lt;BUCKET_NAME&amp;gt;.s3.&amp;lt;REGION&amp;gt;.amazonaws.com&lt;/code&gt;. Where &lt;code&gt;&amp;lt;BUCKET_NAME&amp;gt;&lt;/code&gt; is the name of your bucket, &lt;code&gt;&amp;lt;REGION&amp;gt;&lt;/code&gt; the region.&lt;/li&gt;



&lt;li&gt;
&lt;code&gt;&amp;lt;YOUR_BUCKET_NAME&amp;gt;&lt;/code&gt; is the name of the bucket created&lt;/li&gt;



&lt;li&gt;
&lt;code&gt;&amp;lt;YOUR_BUCKET_REGION&amp;gt;&lt;/code&gt; the region of your bucket&lt;/li&gt;



&lt;li&gt;&amp;lt;YOUR_ACCESS_KEY_ID&amp;gt; is your Access Key&lt;/li&gt;



&lt;li&gt;
&lt;code&gt;&amp;lt;YOUR_SECRET_ACCESS_KEY&amp;gt;&lt;/code&gt; is your Secret Key&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Finally in your &lt;code&gt;medusa-config.js&lt;/code&gt; add the following code:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;const plugins = [
  // ...
  {
    resolve: `medusa-file-s3`,
    options: {
        s3_url: process.env.S3_URL,
        bucket: process.env.S3_BUCKET,
        region: process.env.S3_REGION,
        access_key_id: process.env.S3_ACCESS_KEY_ID,
        secret_access_key: process.env.S3_SECRET_ACCESS_KEY,
    },
  },
]&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Note that if you have many storage plugins configured, then the last plugin declared will be used. So if you want S3 to be used make sure it's the last storage plugin added.&lt;/p&gt;

&lt;h3&gt;Step 6: Testing the Plugin&lt;/h3&gt;

&lt;p&gt;Now that you have successfully added your plugin. It's time to test to make sure that everything is in the right place. You can use &lt;a href="https://docs.medusajs.com/api/store" rel="noreferrer noopener"&gt;REST APIs&lt;/a&gt; or the Medusa Admin to test.&lt;/p&gt;

&lt;p&gt;Navigate to your admin and backend folders respectively and run the following command:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;// admin 
yarn run start

// backend
yarn run start&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;The default admin email and password are &lt;code&gt;admin@medusa-test.com&lt;/code&gt; and &lt;code&gt;supersecret&lt;/code&gt; respectively. Open your admin panel with &lt;code&gt;http://localhost:7000/&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;In the menu click on &lt;strong&gt;Products&lt;/strong&gt; then &lt;strong&gt;Add Product&lt;/strong&gt;. Provide details for your product and publish it.&lt;/p&gt;

&lt;p&gt;Lastly, you need to add a configuration in your storefront that adds the S3 bucket domain name into the configured images’ domain names if you are using &lt;a href="https://docs.medusajs.com/starters/nextjs-medusa-starter" rel="noreferrer noopener"&gt;NextJS storefront&lt;/a&gt;. If you don't do it you will receive the following error &lt;a href="https://nextjs.org/docs/messages/next-image-unconfigured-host" rel="noreferrer noopener"&gt;next/image Un-configured Host&lt;/a&gt;. &lt;/p&gt;

&lt;p&gt;So in your &lt;code&gt;next.config.js&lt;/code&gt; add the following:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;const { withStoreConfig } = require("./store-config")

// ...

module.exports = withStoreConfig({
  // ...
  images: {
    domains: [
      // ...
      "&amp;lt;BUCKET_NAME&amp;gt;.s3.amazonaws.com",
    ],
  },
})&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&lt;code&gt;&amp;lt;BUCKET_NAME&amp;gt;&lt;/code&gt; represents the name of your bucket. &lt;/p&gt;

&lt;p&gt;Run your storefront with &lt;code&gt;yarn run dev&lt;/code&gt; to check if the new products you added are there and proceed to the next phase of your project.&lt;/p&gt;



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

&lt;p&gt;This marks the end of this tutorial, hopefully, you were able to add a file service plugin to your Medusa store. To get the best of Medusa, consider adding payment services, search and notifications services.&lt;/p&gt;

</description>
      <category>medusajs</category>
      <category>opensource</category>
      <category>ecommerce</category>
      <category>plugin</category>
    </item>
    <item>
      <title>How to build a Medusa Webshop with one command?</title>
      <dc:creator>Learn dev tools</dc:creator>
      <pubDate>Tue, 18 Apr 2023 21:29:01 +0000</pubDate>
      <link>https://dev.to/learndevts/how-to-build-a-medusa-webshop-with-one-command-2fi1</link>
      <guid>https://dev.to/learndevts/how-to-build-a-medusa-webshop-with-one-command-2fi1</guid>
      <description>&lt;h2&gt;Introduction&lt;/h2&gt;

&lt;p&gt;With the growth of the internet and the evolution of technologies, there is a need for businesses dealing in the ecommerce sector to remain competitive by keeping up with the latest trends in the area. Medusa is a popular open source headless ecommerce solution developed recently, scalable, and flexible making it one of the best choices for building an ecommerce website. It comes with two storefronts NextJs and Gatsby from which you can choose one or use a different stack for your storefront since Medusa has a composable architecture allowing you to use different technologies for your front and backend hence giving the possibility to fully customize your store and creating a store that will fit your needs. &lt;/p&gt;

&lt;p&gt;In this article, you will get started with Medusa by building your first headless store with a single command. &lt;/p&gt;

&lt;h2&gt;Why Medusa?&lt;/h2&gt;

&lt;p&gt;Medusa is an &lt;a href="https://www.learn-dev-tools.blog/what-does-open-source-software-mean-a-beginners-guide/"&gt;open source&lt;/a&gt; user and developer-friendly platform for building incredible webshops. With over &lt;a href="https://github.com/medusajs/medusa" rel="noreferrer noopener"&gt;17.8k stars on GitHub&lt;/a&gt;, its architecture allows you to build your online commerce shop with any framework of your choice that is developers have full control over their tech stack and the logic behind the commerce features. Besides that, it offers multi-regional support, advanced features for promotion and RMA flows, a user-friendly admin interface, and a community to support users.&lt;/p&gt;

&lt;h2&gt;How to Build a Medusa Webshop?&lt;/h2&gt;

&lt;p&gt;You will learn how to build your first webshop with just a single Medusa command. However make sure you have the following elements installed and working properly:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://nodejs.org/" rel="noreferrer noopener"&gt;Node.js&lt;/a&gt; version 16 or latest. To check your Node.js version open your terminal or command line and run &lt;strong&gt;node -v. &lt;/strong&gt;If you don’t have Node installed, then head to the &lt;a href="https://nodejs.org/en/"&gt;official website&lt;/a&gt;, and follow the instructions to get it running on your OS &lt;/li&gt;



&lt;li&gt;&lt;a href="https://git-scm.com/" rel="noreferrer noopener"&gt;Git&lt;/a&gt;&lt;/li&gt;



&lt;li&gt;A package Manager(&lt;a href="https://yarnpkg.com/" rel="noreferrer noopener"&gt;Yarn&lt;/a&gt; or &lt;a href="https://www.npmjs.com/" rel="noreferrer noopener"&gt;Npm&lt;/a&gt;)&lt;/li&gt;



&lt;li&gt;Medusa CLI&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Now let’s get started. The first step will be to install the &lt;code&gt;Medusa CLI&lt;/code&gt;. You can’t use Medusa without installing its command line. Run the following command to get it set up:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;yarn global add @medusajs/medusa-cli&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Or&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;npm install @medusajs/medusa-cli -g&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Upon installing the CLI, check the version by running the following command in your terminal&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;medusa -v &lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;If you ever encounter errors installing the CLI then visit this Medusa &lt;a href="https://docs.medusajs.com/troubleshooting/cli-installation-errors" rel="noreferrer noopener"&gt;troubleshooting guide&lt;/a&gt; to get everything up.&lt;/p&gt;

&lt;h3&gt;Creating your Webshop with create-medusa-app&lt;/h3&gt;

&lt;p&gt;Medusa is divided into three main parts:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Backend  - It’s the commerce engine&lt;/li&gt;



&lt;li&gt;Storefront - The actual webshop&lt;/li&gt;



&lt;li&gt;Admin Dashboard - An application to manage your store(add/remove products, collections, payment methods, manage customers…)
&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;Step 1: Install your Webshop with create-medusa-app&lt;/h4&gt;

&lt;p&gt;Open a terminal in your desired directory and run the following command:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;npx create-medusa-app&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;NB: When you install your project with this command, it comes with &lt;a href="https://tailwindcss.com" rel="noreferrer noopener"&gt;Tailwind CSS&lt;/a&gt; &lt;/p&gt;

&lt;h4&gt;Step 2: Specify the project name&lt;/h4&gt;

&lt;p&gt;You need to specify the name of your webshop or leave the default value &lt;code&gt;my-medusa-store&lt;/code&gt;. Here we will name the store &lt;code&gt;my-headless-store&lt;/code&gt;.&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;? Where should you project be installed? . my-headless-store&lt;/code&gt;&lt;/pre&gt;

&lt;h4&gt;Step 3: Choose a Backend starter&lt;/h4&gt;

&lt;p&gt;Once you have named your store, the next step is to choose a &lt;a href="https://docs.medusajs.com/development/backend/install" rel="noreferrer noopener"&gt;Medusa starter&lt;/a&gt;. Here we will be using &lt;code&gt;medusa-starter-default&lt;/code&gt;&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;? Which Medusa starter would you like to install? …
❯ medusa-starter-default&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;This Medusa starter contains admin plugins, which will allow you to later access the admin dashboard. All the resources for the backend will be installed in the backend directory&lt;/p&gt;

&lt;h4&gt;Step 4: Choose a Storefront starter&lt;/h4&gt;

&lt;p&gt;The next consists of choosing the Medusa starter for your storefront. Here we will be using the NextJS starter &lt;/p&gt;

&lt;pre&gt;&lt;code&gt;? Which storefront starter would you like to install?
❯ Next.js Starter&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Your &lt;a href="https://docs.medusajs.com/starters/nextjs-medusa-starter"&gt;storefront&lt;/a&gt; will be installed in the storefront directory.&lt;/p&gt;

&lt;p&gt;Now you need to wait until your project sets up completely before testing your store. &lt;/p&gt;

&lt;h4&gt;Step 5: Test your store&lt;/h4&gt;

&lt;p&gt;Upon installing all components of your project, you will see find three folders in your project directory.&lt;/p&gt;

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



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



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

&lt;p&gt;To start each component of your project navigate to each component root and run the commands as follows:&lt;/p&gt;

&lt;p&gt;Your project is ready. The available commands are:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;// Medusa API
cd my-headless-store/backend
yarn start

// Medusa Admin
cd my-headless-store/admin
yarn start

// Storefront
cd my-headless/storefront
yarn dev&lt;/code&gt;&lt;/pre&gt;



&lt;p&gt;To view your store and &lt;a href="https://docs.medusajs.com/admin/quickstart" rel="noreferrer noopener"&gt;admin dashboard&lt;/a&gt;, open your favourite browser and type &lt;code&gt;localhost:7000&lt;/code&gt; and &lt;code&gt;localhoat:8000&lt;/code&gt; in the address bar respectively&lt;/p&gt;

&lt;p&gt;Your store should look like the image below:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--jZs_ZnN3--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://www.learn-dev-tools.blog/wp-content/uploads/2023/04/storefrontmedusa-jpg.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--jZs_ZnN3--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://www.learn-dev-tools.blog/wp-content/uploads/2023/04/storefrontmedusa-jpg.webp" alt="Medusa Storefront" width="800" height="437"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;And your dashboard:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--58Z2QZir--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://www.learn-dev-tools.blog/wp-content/uploads/2023/04/adminmedusa-1024x552.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--58Z2QZir--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://www.learn-dev-tools.blog/wp-content/uploads/2023/04/adminmedusa-1024x552.webp" alt="How to build a Medusa Webshop with one command? - Medusa dashbaord" width="800" height="431"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;To access the dashboard, use&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;admin@medusa-test.com&lt;/code&gt; as email&lt;/li&gt;



&lt;li&gt;
&lt;code&gt;supersecret&lt;/code&gt; as password&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Well, if you have reached this stage that means you have successfully set up a basic webshop with Medusa however if you run into any trouble reach out on this website or reach out to the &lt;a href="https://discord.gg/F87eGuwkTp" rel="noreferrer noopener"&gt;Medusa Discord channel&lt;/a&gt; for further assistance.&lt;/p&gt;

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

&lt;p&gt;Hopefully, you have learnt how to build a basic store with Medusa, now you need to customize your store and add plugins and services like:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Payment methods with &lt;a href="https://docs.medusajs.com/plugins/payment/klarna" rel="noreferrer noopener"&gt;Klarna&lt;/a&gt;, &lt;a href="https://docs.medusajs.com/plugins/payment/paypal" rel="noreferrer noopener"&gt;Paypal&lt;/a&gt;,  or &lt;a href="https://docs.medusajs.com/plugins/payment/stripe" rel="noreferrer noopener"&gt;Stripe&lt;/a&gt;
&lt;/li&gt;



&lt;li&gt;Notification services with &lt;a href="https://docs.medusajs.com/plugins/notifications/sendgrid" rel="noreferrer noopener"&gt;SendGrid&lt;/a&gt;, &lt;a href="https://docs.medusajs.com/plugins/notifications/mailchimp" rel="noreferrer noopener"&gt;Mailchimp&lt;/a&gt; or Twilio SMS&lt;/li&gt;



&lt;li&gt;Search functionality with Algolia or MeiliSearch&lt;/li&gt;



&lt;li&gt;File upload Services with S3, Space or MinIO&lt;/li&gt;



&lt;li&gt;Shipping method.&lt;/li&gt;



&lt;li&gt;Gift cards&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Just head to the full &lt;a href="https://docs.medusajs.com" rel="noreferrer noopener"&gt;Medusa Documentation&lt;/a&gt; to get the necessaire instructions to fulfil each task.  Equally, feel free to sign up for our newsletter in order to get the latest ecommerce related content. &lt;/p&gt;





</description>
      <category>medusa</category>
      <category>opensource</category>
      <category>beginners</category>
      <category>ecommerce</category>
    </item>
    <item>
      <title>What is Open Source Software? A Beginner's Guide</title>
      <dc:creator>Learn dev tools</dc:creator>
      <pubDate>Tue, 18 Apr 2023 21:25:42 +0000</pubDate>
      <link>https://dev.to/learndevts/what-is-open-source-software-a-beginners-guide-259o</link>
      <guid>https://dev.to/learndevts/what-is-open-source-software-a-beginners-guide-259o</guid>
      <description>&lt;h2&gt;Introduction&lt;/h2&gt;

&lt;p&gt;If you have been in the tech industry for a while you may have heard about open source or open source software. When we talk about open source, you should think of open collaboration, open exchange, participation transparency and community-oriented development.&lt;/p&gt;

&lt;p&gt;In this article, you will learn more about open source software including the difference between open source and other forms of software, key features of OSS, pros and cons of open source, how to start contributing to open source and some examples of OSS.&lt;/p&gt;

&lt;h2&gt;What is Open Source?&lt;/h2&gt;

&lt;p&gt;Open source designed any program whose source code can be modified and shared by anyone because it’s openly accessible. &lt;/p&gt;

&lt;h2&gt;What is Source Code?&lt;/h2&gt;

&lt;p&gt;A source code is a set of instructions written in the form of functions, descriptions, methods, calls or any other operational statement by a programmer using a computer programming language. A source code can be open that is available to anyone to edit and redistribute or closed. Source code is the part that most software or computer users cannot see.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--VaqkOwD9--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://www.learn-dev-tools.blog/wp-content/uploads/2023/03/source-code-medusa-js-github-1024x567.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--VaqkOwD9--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://www.learn-dev-tools.blog/wp-content/uploads/2023/03/source-code-medusa-js-github-1024x567.png" alt="Example of a Source code taken from Medusa's GitHub Repository " width="800" height="443"&gt;&lt;/a&gt;Example of a Source code taken from Medusa's GitHub Repository &lt;/p&gt;



&lt;h2&gt;What Does Open Source Software(OSS) Mean?&lt;/h2&gt;

&lt;p&gt;The term Open source software is a non-proprietary software in which code is publicly available to anyone to inspect, comment on, modify, improve and redistribute it. Open source software is created and maintained by a group of developers so if you are new to computer programming, you can begin your journey as an open source contributor.&lt;/p&gt;

&lt;p&gt;I have known open source since 2017 and started with my first contribution in 2020. I made my first contributions to the &lt;a href="https://github.com/apache" rel="noreferrer noopener"&gt;Apache Software Foundation&lt;/a&gt; Gihhub and &lt;a href="https://github.com/mozilla-mobile" rel="noreferrer noopener"&gt;Mozilla mobile Github&lt;/a&gt;. &lt;/p&gt;

&lt;h2&gt;What is the Difference between Open source Software and other Types of Software?&lt;/h2&gt;

&lt;p&gt;Do not get confused with open source, free, closed software and freeware. This section highlights the differences between these types of Software.&lt;/p&gt;

&lt;h3&gt;Open Source vs Free Software&lt;/h3&gt;

&lt;p&gt;Open source software is software available for anyone to edit, improve and redistribute. The source code is accessible to anyone. Open source promotes collaboration and sharing of source code. It’s an effective way for organizations, developers and individuals to collaborate. Freedom to use the software is not absolute or imposed but it’s allowed. Every open source software is not free. However, some open source licenses are restrictive. &lt;strong&gt;WordPress&lt;/strong&gt; is an example of open source software&lt;/p&gt;

&lt;p&gt;Free Software describes software in which source code is free to use, edit and redistribute without any restrictions. With free software, Freedom is a value that is more important than any other thing. All free software is open source software. &lt;strong&gt;Ares is an example&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Open source and free software have distinguished features. Some open source software is restrictive and all free software are open source software but not all open source software is free software. &lt;/p&gt;

&lt;h3&gt;Open Source Software vs Freeware&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://www.learn-dev-tools.blog/what-is-a-free-tool-all-you-should-know/"&gt;Freeware&lt;/a&gt;&lt;/strong&gt; is any software that is free to use and available to the general public. If you are a, it can be frustrating to use freeware because its source code is not open or rather, it’s closed so you can edit the software to fit your needs. You can only use the features it offers even if it it is limited. Google Chrome is an example of freeware&lt;/p&gt;

&lt;p&gt;While with open source software, you have the possibility to edit, improve, and add different features to fit your needs. An example is Chromium.&lt;/p&gt;

&lt;p&gt;Freeware source code is closed, only the developer or organization who created the software can view its source code while open source one can edit and redistribute. Freeware is copyrighted while Open source is not.&lt;/p&gt;

&lt;h3&gt;Open Source vs Proprietary Software&lt;/h3&gt;

&lt;p&gt;You do not need an authenticated license to use open source software. They function with GNU Public License. They can be installed freely on any computer system. Open source software is developed and maintained through open collaboration.&lt;/p&gt;

&lt;p&gt;Proprietary Software is software with protected source code(closed). They cannot be installed on a computer without a valid license. So users need a valid and authenticated license to use it. They are also copyrighted like freeware but the difference is that you do not need to pay to use freeware. An example is Windows&lt;/p&gt;

&lt;h2&gt;Key features of Open Source Software&lt;/h2&gt;

&lt;p&gt;In this section, I will elaborate on the various key features and values that cover Open source Software.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Transparency: &lt;/strong&gt;Open source allows you to track and understand any changes made to software without relying on the software manufacturer. &lt;/li&gt;



&lt;li&gt;
&lt;strong&gt;Collaboration&lt;/strong&gt;: The main goal of the open source initiative is to allow anyone to freely participate and improve the software. By working together, we can easily identify and solve problems&lt;/li&gt;



&lt;li&gt;
&lt;strong&gt;Meritocracy&lt;/strong&gt;: Including diverse perspectives from different brains can help identify the best ideas by decision-makers and could equally determine the success of a project.&lt;/li&gt;



&lt;li&gt;
&lt;strong&gt;Community&lt;/strong&gt;: When many people gather to help and share ideas, it creates a community where each other can get support.&lt;/li&gt;



&lt;li&gt;
&lt;strong&gt;Review&lt;/strong&gt;: Since source code is freely available to the public, different experimented community members can check, propose ideas and improve the software.&lt;/li&gt;



&lt;li&gt;
&lt;strong&gt;Reliability&lt;/strong&gt;: Many collaborators can update and test the code to check if there is any bug and fix it. Open sources do not depend on one, two or three people to maintain but rather have a large community that supports them.&lt;/li&gt;



&lt;li&gt;
&lt;strong&gt;Flexibility&lt;/strong&gt;: Flexibility refers to the fact that you can use open source code to address problems that are unique to your business. Plus you can rely on community help to improve an existing solution or implement a new one.&lt;/li&gt;



&lt;li&gt;
&lt;strong&gt;Lower cost:&lt;/strong&gt; Most of the time, open source is free to use and download. Sometimes you may need to pay for only reinforcing security and interoperability.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;What are the Benefits of Open Source?&lt;/h2&gt;

&lt;p&gt;Choosing to use or contribute to open source software offers many benefits. Some of them include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Open source is free&lt;/li&gt;



&lt;li&gt;You have more control over the software. Compare to Closed software you can edit open source software to fit your needs.&lt;/li&gt;



&lt;li&gt;It's good for anyone beginning computer programming. As a beginner, you can become a better programmer by sharing your work and contributing to other works&lt;/li&gt;



&lt;li&gt;Open source is good because it can help to enhance software security as anyone can spot and fix a security issue quickly that the original programmer may have missed&lt;/li&gt;



&lt;li&gt;Open source projects tend to be more stable than other types of software since there is a great community behind ready-to-deploy means to improve it.&lt;/li&gt;



&lt;li&gt;It promotes collaboration through the creation of communities.&lt;/li&gt;



&lt;li&gt;Open source is flexible&lt;/li&gt;



&lt;li&gt;They have Good &lt;strong&gt;Documentation&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;What are the Disadvantages of Open Source Software?&lt;/h2&gt;

&lt;p&gt;Not everyone embraces the open source philosophy. Some organizations still debate the fact that open source software is more vulnerable since their source code is open to anyone.&lt;/p&gt;

&lt;p&gt;I have been in the software community for 3 to 4 years now and I have noticed that they tend to be more secure since issues linked to security or not can easily be identified and fixed by community members. However, I equally notice some drawbacks of open source.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Open source software can be difficult to set up, especially for beginners. Some of them may lack user-friendly interfaces imposing you to use a &lt;strong&gt;Terminal&lt;/strong&gt;
&lt;/li&gt;



&lt;li&gt;Liability problems. Open source rarely contains warrant or liability protections&lt;/li&gt;



&lt;li&gt;Compatibility issues. &lt;/li&gt;



&lt;li&gt;Initially, there is no cost but it can be costly in the long term especially if you need immediate support. There is also training cost in case you incorporate the software into your team.&lt;/li&gt;



&lt;li&gt;Not all open source possesses a user manual although you can seek help from the community it won't always be available immediately like commercial software where support is available 24h/7&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;How can you Start Contributing to Open Source?&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--fS29OGUQ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://www.learn-dev-tools.blog/wp-content/uploads/2023/03/HOW-TO-CONTRIBUTE-TO-OSS-1024x576.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--fS29OGUQ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://www.learn-dev-tools.blog/wp-content/uploads/2023/03/HOW-TO-CONTRIBUTE-TO-OSS-1024x576.webp" alt="how to contribute to OSS" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;



&lt;p&gt;It’s quite simple to contribute to open source software. You could do that by identifying and fixing bugs, adding features, improving documentation and &lt;strong&gt;&lt;a href="https://www.learn-dev-tools.blog/what-is-content-writing-an-easy-beginners-guide/"&gt;writing content&lt;/a&gt;&lt;/strong&gt; in the form of blog posts, technical tutorials or creating Videos. You also create your own open source project to promote open source.&lt;/p&gt;

&lt;p&gt;To contribute to existing open source software, you should head to &lt;strong&gt;&lt;a href="http://github.com" rel="noreferrer noopener"&gt;GitHub&lt;/a&gt;:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Find a project and Fork&lt;/li&gt;



&lt;li&gt;Clone the Project to your Local machine&lt;/li&gt;



&lt;li&gt;Create a new branch&lt;/li&gt;



&lt;li&gt;Make changes&lt;/li&gt;



&lt;li&gt;Commit your changes&lt;/li&gt;



&lt;li&gt;Push your changes to your remote repository&lt;/li&gt;



&lt;li&gt;Finally, Create a pull request&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you don’t have any project ideas, then open source projects to contribute to include&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/medusajs/medusa" rel="noreferrer noopener"&gt;Medusa&lt;/a&gt; &lt;/li&gt;



&lt;li&gt;&lt;a href="https://github.com/ToolJet/ToolJet" rel="noreferrer noopener"&gt;Tooljet&lt;/a&gt;&lt;/li&gt;



&lt;li&gt;&lt;a href="https://github.com/doczjs/docz" rel="noreferrer noopener"&gt;Docz&lt;/a&gt;&lt;/li&gt;



&lt;li&gt;&lt;a href="https://github.com/boxyhq/jackson" rel="noreferrer noopener"&gt;SAML Jackson&lt;/a&gt;&lt;/li&gt;



&lt;li&gt;&lt;a href="https://github.com/chatwoot/chatwoot" rel="noreferrer noopener"&gt;Chatwoot&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;Open Source License&lt;/h2&gt;

&lt;p&gt;An Open source License governs how other individuals besides the initial developer can use, modify and redistribute the software. It allows the software to be transparent and changed by members of a community or third party. According to the &lt;a href="https://opensource.org/licenses/" rel="noreferrer noopener"&gt;Open Source Initiative&lt;/a&gt; include&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://opensource.org/license/apache-2-0/" rel="noreferrer noopener"&gt;Apache License, Version 2.0&lt;/a&gt;&lt;/li&gt;



&lt;li&gt;&lt;a href="https://opensource.org/license/epl-2-0/" rel="noreferrer noopener"&gt;Eclipse Public License version 2.0&lt;/a&gt;&lt;/li&gt;



&lt;li&gt;&lt;a href="https://opensource.org/license/cddl-1-0/" rel="noreferrer noopener"&gt;Common Development and Distribution License 1.0&lt;/a&gt;&lt;/li&gt;



&lt;li&gt;&lt;a href="https://opensource.org/license/lgpl-2-0/" rel="noreferrer noopener"&gt;GNU Library General Public License version 2&lt;/a&gt;&lt;/li&gt;



&lt;li&gt;&lt;a href="https://opensource.org/license/mpl-2-0/" rel="noreferrer noopener"&gt;Mozilla Public License 2.0 (MPL-2.0)&lt;/a&gt;&lt;/li&gt;



&lt;li&gt;&lt;a href="https://opensource.org/license/bsd-2-clause/" rel="noreferrer noopener"&gt;The 2-Clause BSD License&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;Example of Open Source Software&lt;/h2&gt;

&lt;p&gt;You might have used an open source software without realising. There are many of them out there. Some popular and most-used open source software is&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;WordPress, an open source CMS for Content Management&lt;/li&gt;



&lt;li&gt;
&lt;strong&gt;&lt;a href="https://www.learn-dev-tools.blog/what-is-the-flutter-framework-a-beginners-introduction-to-flutter/"&gt;Flutter&lt;/a&gt;&lt;/strong&gt; for web, desktop and mobile development&lt;/li&gt;



&lt;li&gt;
&lt;strong&gt;&lt;a href="https://www.learn-dev-tools.blog/what-is-a-css-framework-all-you-need-to-know/"&gt;CSS Frameworks&lt;/a&gt;&lt;/strong&gt; Like Bootstrap for website layout&lt;/li&gt;



&lt;li&gt;VLC Media Player for video and sound player&lt;/li&gt;



&lt;li&gt;Libre Office for word processing&lt;/li&gt;



&lt;li&gt;Open source Linux Operating System&lt;/li&gt;



&lt;li&gt;
&lt;strong&gt;Python&lt;/strong&gt; is open source too.&lt;/li&gt;



&lt;li&gt;Open source reporting tools include Metabase, BIRT&lt;/li&gt;



&lt;li&gt;Open source PDF viewer include Qoppa PDF Studio, pdfFiller, and Soda PDF&lt;/li&gt;



&lt;li&gt;Some Java open source projects are Arduino, Mindustry, and Signal Android&lt;/li&gt;



&lt;li&gt;We equally have open source development tools like Eclipse IDE, and Apache Cordova&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;FAQ&lt;/h2&gt;

&lt;h3&gt;Is Open Source Software Free?&lt;/h3&gt;

&lt;p&gt;Most open source software is free but there are some exceptions. Some open source licenses are restrictive and do not allow the creation of a modified version. An example is Open Source Watcom&lt;/p&gt;

&lt;h3&gt;Where can I find OSS?&lt;/h3&gt;

&lt;p&gt;You can find and download open source projects on SourceForge, OSDN, FossHub, GitHub, and F-Droid&lt;/p&gt;

&lt;h3&gt;Why Should you Contribute to OSS?&lt;/h3&gt;

&lt;p&gt;The most important advantage of contributing to open source is that you can find and collaborate with other developers hence improving your developer network.&lt;/p&gt;

&lt;h3&gt;Why is Open Source Important?&lt;/h3&gt;

&lt;p&gt;Open source improves innovations through collaboration with other organizations and developer&lt;/p&gt;

&lt;h3&gt;What are Some Open Source Competitions?&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Open Source Competitions&lt;/strong&gt; are contests where you can learn to participate in open source projects, demonstrate your coding skills, and get feedback. Examples of Open source competitions include Open Source Contest, &lt;a href="https://summerofcode.withgoogle.com/" rel="noreferrer noopener"&gt;Google Summer of Code (GSoC)&lt;/a&gt;, &lt;a href="https://www.outreachy.org/" rel="noreferrer noopener"&gt;Outreachy&lt;/a&gt;, &lt;a href="https://osoc.be/" rel="noreferrer noopener"&gt;Open Summer of Code&lt;/a&gt;, &lt;a href="https://www.fsf.org/volunteer/internships" rel="noreferrer noopener"&gt;Free Software Foundation (FSF) Internship Program&lt;/a&gt;, &lt;a href="https://gssoc.girlscript.tech/" rel="noreferrer noopener"&gt;GirlScript Summer of Code (GSSoC)&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;What is Closed Source Software?&lt;/h3&gt;

&lt;p&gt;Closed Software is software whose source code is only available to the author. So only the author can modify and copy it.&lt;/p&gt;

&lt;h3&gt;What is the Open Source Initiative?&lt;/h3&gt;

&lt;p&gt;The Open Source Initiative is a non-profit organisation with the main aim to educate about, form, and inform the benefit of open source&lt;/p&gt;

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

&lt;p&gt;Open source is available for anyone to edit, use and redistribute. Some key features of open source include transparency, reliability, available community and flexibility. However, OSS can be costly in a long run. So if you are planning to incorporate OSS into your business you need to include additional or urgent costs in your project plan including the cost of training staff members to use the software. Some popular Open source projects include Apache, WordPress, and Mozilla Firefox.&lt;/p&gt;

&lt;p&gt;If you like this kind of content, feel free to share or subscribe to our newsletter below to get fresh content like this periodically. But if you have any questions, you can reach me via &lt;a href="https://twitter.com/KevinegunNzapdi" rel="noreferrer noopener"&gt;my Twitter account&lt;/a&gt;. I will be glad to hear from you.&lt;/p&gt;



</description>
      <category>opensource</category>
      <category>beginners</category>
      <category>software</category>
      <category>codenewbie</category>
    </item>
  </channel>
</rss>
