# open hoagie 🥖

> It's all open source. Source code for a sandwich.
> Fork this repository. Then carry it carefully to a picnic.

[!WARNING] This repository is NOT a metaphor. You can actually build this
sandwich. It is fully reproducible from these sources, on a table, with
a knife, and it is delicious.

## What is this?

`big-hoagie` is a small, ergonomic, zero-dependency, fully open-source
sandwich. This monorepo contains the complete source for one deli-quality
hoagie. Bread included -- and it's the good bread.

There is no runtime, no container, and no cloud. The production
environment is a plate.

## Features

- 🍞 hand-baked `src/bread.py` -- the foundation, don't skip
- 🥩 hand-carved `src/roast_beef.c` at a guaranteed 1.5 mm
- 🧀 `src/swiss_cheese.rs` -- safe, slightly holey
- 🥬 `src/crisp_lettuce.js` -- async but crunchy
- 🍅 `src/vine_ripen_tomato.go`, in season or it doesn't ship
- 🌶️ `src/sriracha_mayo.cpp` -- the binding layer (an emulsion)
- 🥒 `src/dill_pickles.rb` -- optional, flag-controlled

## Quick start

```sh
$ git clone https://openhoagie.cybercult.biz/big-hoagie.git
$ cd big-hoagie
$ make lunch
#  output: one open hoagie (calories undisclosed)
```

## Installation

**Requirements:** bread, a sharp knife, a table, one human willing to
share their chips.

```sh
# from source, the only supported way:
$ make lunch
```

## Building from source

See `Makefile`. Supported targets are `lunch`, `double-meat`,
`no-tomato`, and the forgiving `you-do-you`. Breaking changes to the
layer order are tracked in `CHANGELOG.md` and the git history.

## Contributing

See [CONTRIBUTING.md](CONTRIBUTING.md). Bring your own plate, label your
layers, and do **not** commit the onions without a review. The onion
loophole is real and it is watching you.

## License

Distributed under the [Hoagie General Public License v1.0](LICENSE)
(`HGPL-1.0-only`), which is exactly like the GPL except you additionally
agree to share your chips. Then it's open source for real.