# Introduction

What Nimbly is, what a project looks like and where to read next.

Nimbly is a full-stack atomic design system. Routing, templates, data, an admin and a REST API are parts of one system, so a custom product is assembled from small pieces that fit together instead of being wired up from separate tools.

## What you build with

- **Routes are folders.** A folder under `ext/uri/` is an address. Its `index.tpl` is the page.
- **Templates are small.** A template is HTML with shortcodes such as `[#get record.title#]`. A reusable template in `ext/tpl/` becomes a shortcode of its own.
- **Data is a resource.** A resource is a folder with a `.meta` file that describes its fields, and one JSON file per record. There is no database to set up.
- **The admin follows the data.** Every resource gets list, edit and create screens, permissions and an API endpoint from its `.meta` file.
- **Logic lives in libraries.** PHP in `ext/lib/` prepares data and talks to other systems. Markup stays in templates.

## A page in three blocks

A page that lists articles is a resource, a route and a component:

```text
ext/data/articles/.meta          the resource: the fields of an article
ext/uri/articles/index.tpl       the route: the page settings
ext/uri/articles/main.tpl        the route: the content of the page
ext/tpl/card-article/index.tpl   the component: one article in the list
```

```html
<!-- ext/uri/articles/index.tpl -->
[#set page-title="Articles"#]
[#html#]
```

```html
<!-- ext/uri/articles/main.tpl -->
[#data articles filter=published:1#]
<ul>
    [#repeat data.articles tpl=card-article#]
</ul>
```

```html
<!-- ext/tpl/card-article/index.tpl -->
<li>[#get item.title#]</li>
```

The page is on `/articles/`. The same resource is editable in the admin and readable over the API without further code.

## Two repositories

A project is two Git repositories in one folder. `core/` is the framework and is the same for every project. `ext/` is your application: its routes, templates, data, libraries and theme. You update core without touching your application, and your application never patches core.

## Where to go next

- [Installation](/en/docs/learn/installation/) gets a site running on your machine.
- [Core and ext](/en/docs/concepts/core-and-ext/) explains the two repositories and the folder layout.
- [Templates and shortcodes](/en/docs/concepts/templates/) explains how pages are written.
- [Resources](/en/docs/concepts/resources/) explains the data layer.
- [Routing](/en/docs/concepts/routing/) explains how addresses map to folders.

## For AI agents

These docs are written for agents as much as for people. [For AI agents](/en/docs/learn/for-ai-agents/) explains how to work in a Nimbly project and where the plain-text versions of these pages are.
