---
# System prepended metadata

title: Writing a Yarn Start Command

---

# Writing a Yarn Start Command 

## Proposal

As part of the re-architecture of the Node.js metabuildpack outlined [here](https://github.com/paketo-buildpacks/nodejs/blob/main/rfcs/0001-buildpacks-architecture.md), there is need for a `yarn-start` buildpack with the single responsibility of setting a start command with `tini` and `yarn`.
 

## Motivation

Moving toward this single-responsibility architecture has a few advantages: 

* It enables greater modularity within the Node.js language family.
* It sets the foundation for interoperability between buildpacks across language families.
* Using `tini` allows for more optimal process management within the container.

    `tini` is a process manager for containers which manages zombie processes and performs signal forwarding. Using an app start command with `tini` ensures that containers may be stopped gracefully once started.

## Integration 

The buildpack will provide no dependencies and will require `node`,  `tini`, `yarn` and `node_modules` at launch.

## Implementation (Optional)

Detection will pass once a `yarn.lock` file is present in the app's source code, assuming all other buildplan requirements have been met.

If detection is passed, the buildpack will set a start command using `tini` and `yarn`. An example of a start command could be: `tini -g yarn start`
