---
slug: /f44rm/how-it-works
displayed_sidebar: "0.2"
id: how-it-works
pagination_next: v0.2/core-concepts/action
---

import Link from "@docusaurus/Link";
import Button from "@site/src/components/atoms/button.js";
import LinkCTA from "@site/src/components/atoms/linkCTA.js";
import styles from "@site/src/css/how-it-works.module.scss";

# How It works

Understanding how Dagger works is key for understanding the tool. If you understand Dagger, you can develop complex pipelines and experiment in ways that are not even documented yet with your preferred CI/CD tools.

## 💎 Core Concepts

In this section you can easily find the main concepts inside Dagger and navigate trough them.

<CardGrid data={data.concepts} />

## 🌎 References

The technical reference is a great resource to have at hand while using Dagger.

<LinkCTA
  label="Core Actions Reference"
  url="/1222/core-actions-reference"
  textDecoration="false"
/>
<LinkCTA
  label="Dagger Types Reference"
  url="/1234/dagger-types-reference"
  textDecoration="false"
/>

## 🎤 Case studies

Want to know more about how Dagger can solve real-life problems? Check clients testimonies and go through how we helped them.

<LinkCTA
  label="Particubes: Go on Docker Swarm"
  url="/1211/go-docker-swarm"
  textDecoration="false"
/>

## 🚀 Time to use Dagger

If you haven't installed Dagger yet, we recommend you do it in order to consolidate the main concepts. After seeing the tool in action by yourself, you'll understand the concepts easily.

<Button label="Get Started" docPath="install" />

export const CardGrid = ({ data }) => {
  return (
    <div className={styles.cardGrid}>
      {data.map((x, index) => (
        <Link
          href={x.url}
          style={{ textDecoration: "none" }}
          className={styles.link}
          key={index}
        >
          <div
            className={`${styles.card} ${x.fullWidth ? styles.fullWidth : ""}`}
          >
            <img className="not-zoom" src={`/img/${x.imgFilename}`} />
            <div className={styles.description}>
              <h4>{x.label}</h4>
              <p>{x.description}</p>
            </div>
          </div>
        </Link>
      ))}
    </div>
  );
};

export const data = {
  concepts: [
    {
      label: "Plan",
      description:
        "A config declared in Dagger starts with a plan. Learn more about how they work.",
      imgFilename: "dagger-plan.webp",
      url: "/1202/plan",
    },
    {
      label: "Actions",
      description:
        "Actions are the basic building block of the Dagger platform. Learn more here. ",
      imgFilename: "dagger-actions.webp",
      url: "/1221/action",
    },
    {
      label: "Clients",
      description:
        "Learn how to use the client field to interact with the local machine. ",
      imgFilename: "dagger-clients.webp",
      url: "/1203/client",
    },
    {
      label: "Secrets",
      description:
        "Learn how to use secrets with Dagger to utilize confidential information.",
      imgFilename: "dagger-secrets.webp",
      url: "/1204/secrets",
    },
    {
      label: "What is CUE",
      description: "Learn more about CUE and how Dagger integrates with it.",
      imgFilename: "dagger-what_is_cue.webp",
      url: "/1215/what-is-cue",
    },
  ],
};
