> ## Documentation Index
> Fetch the complete documentation index at: https://docs.replit.com/llms.txt
> Use this file to discover all available pages before exploring further.

# What's a Project?

> Learn what projects are on Replit — the container for everything you build, from web apps and mobile apps to slide decks and animated videos.

export const ArtifactGrid = () => {
  if (typeof document !== "undefined" && !document.getElementById("artifact-grid-styles")) {
    const style = document.createElement("style");
    style.id = "artifact-grid-styles";
    style.textContent = `
      .artifact-grid-wrap {
        --ag-bg: var(--replit-docs-bg, #F6F6F4);
        --ag-icon-bg: var(--replit-docs-bg-elevated, #F1F1EE);
        --ag-icon-border: var(--replit-docs-border, #DEDAD5);
        --ag-text: var(--replit-docs-text-muted, #5C5C5C);
        --ag-icon-color: var(--replit-docs-text-muted, #5C5C5C);
      }
      .dark .artifact-grid-wrap,
      html.dark .artifact-grid-wrap,
      [data-theme="dark"] .artifact-grid-wrap {
        --ag-bg: var(--replit-docs-bg, #1E1E1F);
        --ag-icon-bg: var(--replit-docs-bg-elevated, #222223);
        --ag-icon-border: var(--replit-docs-border, #39393D);
        --ag-text: var(--replit-docs-text-muted, #B8B8BE);
        --ag-icon-color: var(--replit-docs-text-muted, #B8B8BE);
      }
      @keyframes ag-fade-in {
        from { transform: translateY(8px); opacity: 0; }
        to { transform: translateY(0); opacity: 1; }
      }
      @media (hover: hover) {
        .artifact-grid-wrap .ag-icon-btn:hover {
          background: var(--ag-icon-border) !important;
        }
      }
    `;
    document.head.appendChild(style);
  }
  const types = [{
    name: "Web",
    icon: <svg width="16" height="16" viewBox="0 0 24 24" fill="currentColor">
          <path fillRule="evenodd" d="M12 1.25c5.937 0 10.75 4.813 10.75 10.75S17.937 22.75 12 22.75 1.25 17.937 1.25 12 6.063 1.25 12 1.25Zm-9.217 11.5a9.25 9.25 0 0 0 7.468 8.333 15.25 15.25 0 0 1-2.982-8.333H2.783Zm13.948 0a15.249 15.249 0 0 1-2.983 8.333 9.25 9.25 0 0 0 7.469-8.333H16.73Zm-7.958 0A13.748 13.748 0 0 0 12 20.876a13.748 13.748 0 0 0 3.227-8.126H8.773Zm1.478-9.834a9.251 9.251 0 0 0-7.468 8.334H7.27a15.251 15.251 0 0 1 2.982-8.334ZM12 3.123a13.747 13.747 0 0 0-3.227 8.127h6.454A13.748 13.748 0 0 0 12 3.123Zm1.748-.207a15.25 15.25 0 0 1 2.983 8.334h4.486a9.251 9.251 0 0 0-7.469-8.334Z" clipRule="evenodd" />
        </svg>
  }, {
    name: "Mobile",
    icon: <svg width="16" height="16" viewBox="0 0 24 24" fill="currentColor">
          <path fillRule="evenodd" d="M7 2.75c-.69 0-1.25.56-1.25 1.25v16c0 .69.56 1.25 1.25 1.25h10c.69 0 1.25-.56 1.25-1.25V4c0-.69-.56-1.25-1.25-1.25H7ZM4.25 4A2.75 2.75 0 0 1 7 1.25h10A2.75 2.75 0 0 1 19.75 4v16A2.75 2.75 0 0 1 17 22.75H7A2.75 2.75 0 0 1 4.25 20V4Zm7 14a.75.75 0 0 1 .75-.75h.01a.75.75 0 0 1 0 1.5H12a.75.75 0 0 1-.75-.75Z" clipRule="evenodd" />
        </svg>
  }, {
    name: "Slides",
    icon: <svg width="16" height="16" viewBox="0 0 24 24" fill="currentColor">
          <path fillRule="evenodd" d="M20 2.25A2.75 2.75 0 0 1 22.75 5v14A2.75 2.75 0 0 1 20 21.75h-8A2.75 2.75 0 0 1 9.25 19V5A2.75 2.75 0 0 1 12 2.25h8Zm-8 1.5c-.69 0-1.25.56-1.25 1.25v14c0 .69.56 1.25 1.25 1.25h8c.69 0 1.25-.56 1.25-1.25V5c0-.69-.56-1.25-1.25-1.25h-8Z" clipRule="evenodd" />
          <path d="M6 4.25a.75.75 0 0 1 .75.75v14a.75.75 0 0 1-1.5 0V5A.75.75 0 0 1 6 4.25ZM2 6.25a.75.75 0 0 1 .75.75v10a.75.75 0 0 1-1.5 0V7A.75.75 0 0 1 2 6.25Z" />
        </svg>
  }, {
    name: "Design",
    icon: <svg width="16" height="16" viewBox="0 0 24 24" fill="currentColor">
          <path d="M6.5 11.25a1.25 1.25 0 1 1 0 2.5 1.25 1.25 0 0 1 0-2.5ZM17.5 9.25a1.25 1.25 0 1 1 0 2.5 1.25 1.25 0 0 1 0-2.5ZM8.5 6.25a1.25 1.25 0 1 1 0 2.5 1.25 1.25 0 0 1 0-2.5ZM13.5 5.25a1.25 1.25 0 1 1 0 2.5 1.25 1.25 0 0 1 0-2.5Z" />
          <path fillRule="evenodd" d="M12 1.25c2.827 0 5.553 1.01 7.573 2.828C21.596 5.9 22.75 8.388 22.75 11A5.749 5.749 0 0 1 17 16.75h-2.25a1 1 0 0 0-.8 1.6l.3.4.1.143a2.5 2.5 0 0 1-2.1 3.857H12a10.75 10.75 0 1 1 0-21.5Zm0 1.5a9.25 9.25 0 1 0 0 18.5h.25a1 1 0 0 0 .8-1.6l-.3-.4a2.5 2.5 0 0 1 2-4H17l.21-.005A4.25 4.25 0 0 0 21.25 11c0-2.161-.953-4.252-2.68-5.807C16.84 3.636 14.476 2.75 12 2.75Z" clipRule="evenodd" />
        </svg>
  }, {
    name: "Animation",
    icon: <svg width="16" height="16" viewBox="0 0 24 24" fill="currentColor">
          <path fillRule="evenodd" d="M10.024 7.25c.31.004.613.091.878.251l4.996 2.996a1.752 1.752 0 0 1 .625 2.367 1.75 1.75 0 0 1-.625.639v-.001l-4.995 2.995.001.001a1.75 1.75 0 0 1-2.654-1.505v-5.99a1.75 1.75 0 0 1 1.774-1.753Zm-.02 1.5a.252.252 0 0 0-.22.124.253.253 0 0 0-.034.127v5.998a.252.252 0 0 0 .127.219.253.253 0 0 0 .252-.004l.002-.001 4.997-2.997.002-.001a.252.252 0 0 0 .122-.215.25.25 0 0 0-.122-.215h-.002L10.13 8.786h-.002a.25.25 0 0 0-.125-.037Z" clipRule="evenodd" />
          <path fillRule="evenodd" d="M12 1.25c5.937 0 10.75 4.813 10.75 10.75S17.937 22.75 12 22.75 1.25 17.937 1.25 12 6.063 1.25 12 1.25Zm0 1.5a9.25 9.25 0 1 0 0 18.5 9.25 9.25 0 0 0 0-18.5Z" clipRule="evenodd" />
        </svg>
  }, {
    name: "Data Viz",
    icon: <svg width="16" height="16" viewBox="0 0 24 24" fill="currentColor">
          <path d="M5 14.25a.75.75 0 0 1 .75.75v6a.75.75 0 0 1-1.5 0v-6a.75.75 0 0 1 .75-.75ZM12 8.25a.75.75 0 0 1 .75.75v12a.75.75 0 0 1-1.5 0V9a.75.75 0 0 1 .75-.75ZM19 2.25a.75.75 0 0 1 .75.75v18a.75.75 0 0 1-1.5 0V3a.75.75 0 0 1 .75-.75Z" />
        </svg>
  }, {
    name: "3D Game",
    icon: <svg width="16" height="16" viewBox="0 0 24 24" fill="currentColor">
          <path fillRule="evenodd" d="M11.25 9.675A3.751 3.751 0 0 1 12 2.25a3.75 3.75 0 0 1 .75 7.425v4.575H19A2.75 2.75 0 0 1 21.75 17v2A2.75 2.75 0 0 1 19 21.75H5A2.75 2.75 0 0 1 2.25 19v-2A2.75 2.75 0 0 1 5 14.25h.25V13a.75.75 0 0 1 1.5 0v1.25h4.5V9.675ZM9.75 6a2.25 2.25 0 1 0 4.5 0 2.25 2.25 0 0 0-4.5 0ZM4.116 16.116A1.25 1.25 0 0 1 5 15.75h14A1.25 1.25 0 0 1 20.25 17v2A1.25 1.25 0 0 1 19 20.25H5a1.25 1.25 0 0 1-1.244-1.126L3.75 19v-2c0-.331.132-.65.366-.884Z" clipRule="evenodd" />
        </svg>
  }];
  const rows = [types.slice(0, 4), types.slice(4, 7)];
  const iconBtnStyle = {
    display: "flex",
    alignItems: "center",
    justifyContent: "center",
    width: "48px",
    height: "48px",
    border: "1px solid var(--ag-icon-border)",
    borderRadius: "12px",
    background: "var(--ag-icon-bg)",
    cursor: "default",
    color: "var(--ag-icon-color)",
    padding: 0,
    transition: "background 120ms ease-out",
    flexShrink: 0
  };
  return <div className="artifact-grid-wrap" style={{
    fontFamily: "'IBM Plex Sans', sans-serif",
    display: "flex",
    flexDirection: "column",
    alignItems: "center",
    gap: "12px",
    padding: "32px",
    background: "var(--ag-bg)",
    borderRadius: "16px",
    width: "100%",
    maxWidth: "460px",
    margin: "32px auto",
    opacity: 0,
    animation: "ag-fade-in 300ms ease-out forwards"
  }}>
      {rows.map((row, ri) => <div key={ri} style={{
    display: "flex",
    gap: "12px",
    justifyContent: "center"
  }}>
          {row.map(type => <div key={type.name} style={{
    display: "flex",
    flexDirection: "column",
    alignItems: "center",
    gap: "6px"
  }}>
              <div className="ag-icon-btn" style={iconBtnStyle}>
                {type.icon}
              </div>
              <span style={{
    fontSize: "11px",
    color: "var(--ag-text)",
    textAlign: "center",
    lineHeight: "1.2"
  }}>
                {type.name}
              </span>
            </div>)}
        </div>)}
    </div>;
};

## What is a project?

A project is the container for everything you build on Replit. It holds your code, data, and all the artifacts you create — web apps, mobile apps, slide decks, data dashboards, and videos. When you tell Agent what you want, it sets up a project and builds the artifacts inside it.

Think of a project like a workspace on your desk. Everything lives in one place and can share the same information, but each piece serves a different purpose.

For example, if you ask Agent to build a fitness tracking app, it creates a project with a mobile app artifact along with the backend, database, and storage it needs to work.

<ArtifactGrid />

Key concepts:

* **Project**: The container that holds everything — your code, data, and all your artifacts
* **Artifact**: A publishable output within a project (a web app, slide deck, video, etc.)
* **Resources**: Every artifact gets automatic access to a backend, database, and file storage — no setup required

<Note>
  Publishing deploys your entire project at once. All artifacts go live together, so they always stay in sync.
</Note>

## What you can build

| Type                                             | What it is                                                     | Example                                                        |
| ------------------------------------------------ | -------------------------------------------------------------- | -------------------------------------------------------------- |
| **[Web app](/replitai/web-apps)**                | A website or web application people visit in their browser     | An online store, a booking tool, a portfolio site              |
| **[Mobile app](/replitai/building-mobile-apps)** | A native app people install on their phone                     | A fitness tracker, a restaurant ordering app                   |
| **[Data Visualization](/replitai/data-apps)**    | An interactive dashboard with charts, filters, and live data   | A sales report, a metrics tracker, an analytics view           |
| **[Slide deck](/replitai/slide-decks)**          | A presentation you can present or export                       | A pitch deck, a team update, a product overview                |
| **[Animation](/replitai/animated-videos)**       | A motion graphics video you can export as MP4                  | A product launch video, an explainer, social media content     |
| **3D game**                                      | A 3D game, simulation, or interactive experience               | A puzzle game, a physics simulation, an interactive experience |
| **[Design](/replitai/canvas)**                   | Visual directions and prototypes explored on the design canvas | Mood boards, mockups, design exploration                       |

A single project can hold multiple artifacts. For example, you could build a web app for your customers, a mobile app for your team, and a slide deck for investors — all in the same project. When artifacts live in the same project, they automatically share the same data and backend logic. To learn more, see [Artifacts](/replitai/artifacts#multiple-artifacts-in-one-project).

## Managing your projects

Your Projects page lists every project you've created or been invited to. It's the fastest way to jump back into recent work and find the right project in a busy workspace.

### See at a glance what's inside each project

Every project card shows small icons for the artifacts it contains for each web app, mobile app, slide deck, data visualization, or animation in the project. Hover any icon to preview that artifact's screenshot directly on the card, so you can tell projects apart without opening them.

<Frame>
  <img src="https://mintcdn.com/replit/IDyPuGH-IuCET9Hi/images/replitai/projects-page-artifacts.png?fit=max&auto=format&n=IDyPuGH-IuCET9Hi&q=85&s=c6a8bbd53ed0fb847c7e94a96f446962" alt="Project card on the Projects page with artifact icons and a dropdown listing every artifact inside the project" width="721" height="1022" data-path="images/replitai/projects-page-artifacts.png" />
</Frame>

### Filter by artifact

Use the **Build type** dropdown at the top of the Projects page to filter your list by artifact. Pick one to see only the projects that contain that kind of artifact:

* **Web** — projects that contain a web app
* **Mobile** — projects that contain a mobile app
* **Data** — projects that contain a data visualization
* **Slides** — projects that contain a slide deck
* **Design** — projects in Design mode
* **3D Game**, **Agent & Automation**, and more

Select **Any build type** to clear the filter.

<Frame>
  <img src="https://mintcdn.com/replit/IDyPuGH-IuCET9Hi/images/replitai/projects-page-build-type-filter.png?fit=max&auto=format&n=IDyPuGH-IuCET9Hi&q=85&s=0b328400d8b1f1edde4575cc2184eec7" alt="Build type dropdown on the Projects page filtering by artifact, with Design, Web, Data, Mobile, 3D Game, and Slides options" width="472" height="622" data-path="images/replitai/projects-page-build-type-filter.png" />
</Frame>

### Sort by last opened

The Projects page is sorted by **last opened by you** by default — the projects you've spent time in most recently appear at the top. This is especially useful in team workspaces, where other members' recent edits would otherwise bury your current work.

You can switch the sort by selecting a different column header (for example, **Last updated** or **Name**).

### Pin the projects you use most

Pin a project to keep it at the top of your list. Pins are **private to you** — pinning a project in a team workspace doesn't change what other members see.

To pin a project, open the overflow menu (three dots) on the project card and select **Pin**. Select **Unpin** from the same menu to remove the pin.

## Next steps

<CardGroup cols={3}>
  <Card title="Artifacts" href="/replitai/artifacts" icon="layer-group">
    Learn how to create, switch between, and manage artifacts
  </Card>

  <Card title="Web Apps" href="/replitai/web-apps" icon="globe">
    Build full-stack web applications
  </Card>

  <Card title="Mobile Apps" href="/replitai/building-mobile-apps" icon="mobile">
    Create native iOS and Android apps
  </Card>

  <Card title="Data Visualization" href="/replitai/data-apps" icon="chart-bar">
    Build interactive dashboards and data exploration tools
  </Card>

  <Card title="Slide Decks" href="/replitai/slide-decks" icon="presentation-screen">
    Create presentations through conversation
  </Card>
</CardGroup>
