> For the complete documentation index, see [llms.txt](https://docs.frame.tools/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.frame.tools/overview.md).

# Overview

Frame is an open source framework for publishing [web pages](https://www.frame.tools/frame/eth/1/0x612208653e00de208d4e4eab3c865ff781b84c64) to EVM-based block space.&#x20;

It consists of two components:

* A set of immutable smart contracts [deployed](/reference/deployed-contracts.md) to popular EVM-based networks, which are used for storing, retrieving, and rendering a cohesive web page.
* [FrameDataStore](/reference/technical-reference/framedatastore.md) contracts that hold reusable browser code already on-chain, such as [three.js](https://threejs.org/) and [p5.js](https://p5js.org/). Once data is added to these contracts it cannot be edited or removed.

The GitHub repo can be found [here](https://github.com/cncrde/frame-tools).&#x20;

### How it Works

Web pages are rendered from on-chain by iteratively calling the `renderPage` method on a [Frame](/reference/technical-reference/frame.md) contract and viewing the result in any modern web browser.&#x20;

Each Frame contract will usually reference two types of [FrameDataStore ](/reference/technical-reference/framedatastore.md)contracts for its data:

* Dependency data stores, such as [FrameTools](https://etherscan.io/address/0xddba0fe2a9d15e7885d1a944679280ac40420ce0), which contain already-on-chain code to be run in the web page on page load
* A newly-deployed data store containing any new browser code that will be run in the web page, after imported code is run

Frames can reference code that is already on-chain (and thus paid for), greatly reducing a creator's cost to create something reliant on powerful open source libraries. For example, the [FrameTools](https://etherscan.io/address/0xddba0fe2a9d15e7885d1a944679280ac40420ce0) contract provides access to [p5.js](https://p5js.org/) or [three.js](https://threejs.org/) for tiny percentage of their original on-chain storage cost.

### Use-Case

Web pages are really just containers for media. Frame was built to help creatives publish dynamic, high-fidelity media that lives entirely on-chain for as low of a cost as possible.&#x20;

A creator can also do more with code in the browser than in the EVM. For example, libraries in the Frame Tools data store are stored in a compressed format (gzip), and are decompressed on page load using code from the [fflate](https://github.com/101arrowz/fflate) js library.
