# Public files

Maintain repository images and other files in your Content Space’s public directory.

**Public** manages the files in a Content Space’s configured public directory. These files belong to the repository. It is separate from the organization’s [Media library](/docs/media/), which provides hosted media URLs.

## Find the files

Open **Public** below Collections in the Content Space sidebar. Use **Images**, **Text**, and **Other** to browse file types, or **Changes** to see pending drafts together. The list includes nested files, and search matches their complete relative paths.

The directory label shows the configured Public root. This is often `public` for Astro and `static` for Hugo. Check that directory before adding a file; Public does not edit files outside its configured scope.

## Add or update images

Drop images onto the list or choose **Upload images**. PNG, JPEG, WebP, and GIF files can be uploaded or replaced, with a 25 MiB limit per file. Uploads become drafts in the preferred image directory; they do not immediately appear in Git.

The upload destination links to Source settings, where the preferred image directory is configured relative to Public. Existing filenames receive a suffix rather than being overwritten. Use a file’s replacement action when you intend to update an existing image.

In an article’s image picker, choose a Public image to keep a repository reference such as `/images/cover.png`. Choose Media when you want a hosted media URL instead. Review the alt text and caption in the article.

## Edit text files

Open a supported text file, edit its source, and save the draft. You can also create a new text file. Files must be UTF-8 and no larger than 250 KB. JSON and Markdown have syntax highlighting; other supported text formats can be edited as plain text.

Public is for repository files such as site assets and supporting configuration. Markdown and MDX entries already managed by a Collection continue to use their Collection editor.

## Rename, move, or delete

Rename or move keeps the file within Public and preserves its extension. Moving a published file creates linked removal and addition drafts that must be reviewed together. Existing article references are not updated automatically, so update those references yourself before publishing the move.

Deleting a published file creates a deletion draft. Deleting an unpublished file discards its draft. Saving, replacing, moving, and deleting leave Git unchanged until publication.

## Review and publish

Select pending files in **Changes** and open review. Check additions, text diffs, image previews, removals, and the target branch. The Content Space’s publication mode determines whether these files are published as a commit or pull request.

An article that references a new, unpublished Public image includes that image as a required dependency in review. The article and image are published together. You can add other Public drafts to the same batch; all files must belong to the same Content Space.

This dependency check recognizes supported static image references. Dynamic MDX expressions are not evaluated, and JSON/YAML Resource strings do not automatically include image drafts. Publish those images through Public before publishing content that uses them.

After a pull request is created, use Publish history to follow its result. Your website’s existing build controls when the published files become visible on the site.
