# CircomJS

CircomJS is a javascript framework for automating and easing workflow around developing in the [Circom](https://docs.circom.io) DSL.

A Circom project can be divided into the following phases:

* Writing circuits.
* Building the circuits.
* Consuming the builds.

The below diagram captures the workflow of a basic Circom project.

<figure><img src="https://2197554927-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F9Aip7tCnENWgfV4SAnlA%2Fuploads%2Fq4SEA6Rxcnmx5524SOyG%2Fimage.png?alt=media&#x26;token=f83a5ad3-683e-4614-8dfb-46413790ac0d" alt=""><figcaption><p>Circom-worflow</p></figcaption></figure>

Circom JS aims to ease the process around `Building` your circuits and `Consuming` the builds.&#x20;

You can think of it as [hardhat](https://hardhat.org/docs) + [ethers](https://docs.ethers.org/v5/) for Circom.
