An open API service indexing awesome lists of open source software.

https://github.com/amilajack/alfred

A Modular Toolchain for JavaScript
https://github.com/amilajack/alfred

js modular toolchain

Last synced: about 1 year ago
JSON representation

A Modular Toolchain for JavaScript

Awesome Lists containing this project

README

          

Alfred
======
![Github Actions](https://github.com/amilajack/alfred/workflows/Test/badge.svg?branch=master)
[![Join the community on Spectrum](https://withspectrum.github.io/badge/badge.svg)](https://spectrum.chat/alfred)
[![Twitter Follow](https://img.shields.io/twitter/follow/alfredpkg.svg?style=social)](https://twitter.com/alfredpkg)

![Alfred](website/static/img/alfred-banner.jpg)

> ## 🛠 Status: In Development
> Alfred is currently in development. It's on the fast track to a 1.0 release, so we encourage you to use it and give us your feedback, but there are things that haven't been finalized yet and you can expect some changes.

## What is Alfred?

- An alternative to boilerplates / starter kits
- Better tooling, out of the box
- A solution to brittle and complex JS infrastructure

## Getting Started

```bash
# Create a new project
npx alfred new my-project
cd my-project

# Build your project
npx alfred run build
```

## Docs

- **[docs](https://alfred.js.org/docs/getting-started)**
- **[website](https://alfred.js.org)**
- **[API](https://alfred.js.org/docs/api)**

## Examples

See our [examples directory](https://github.com/amilajack/alfred/tree/master/examples)

| Icon | Status |
| --- | --- |
| ✅ | Basic implementation finish |
| 🔨 | Implementation in progress |
| ❌ | To be implemented, Help wanted! |

| | Example | Descrption |
|-----|-----------------------------------------|-----------------------------------------|
| 1. | [hello world node][hello-world-example] | A simple hello world app in node |
| 2. | [react library][react-lib-example] | A small button library built with React |
| 3. | typescript react app | ❌ |

[hello-world-example]: https://github.com/amilajack/alfred/tree/master/examples/hello-world
[react-lib-example]: https://github.com/amilajack/alfred/tree/master/examples/react-lib

## Implemented Skills

| Infrastructure | Skills | Implemented |
| --- | --- | --- |
| Bundlers | Webpack, Rollup, Parcel | ✅ ✅ ✅ |
| Transpilers | Babel | ✅ |
| Test Frameworks | Jest, Mocha, Jasmine, Ava | ✅ ✅ ❌ ❌ |
| Formatters | Prettier | ✅ |
| Libraries | Lodash, Moment | ✅ ❌ |
| Linters | ESLint | ✅ |
| Front End | React, Vue, Angular | ✅ ❌ ❌ |
| State Managment | Redux, Mobx | ✅ ❌ |
| Routing | react-router | ❌ |
| Query Languages | graphql, apollo | ❌ ❌ |
| Documentation | ESDoc, Typedoc | ❌ ❌ |
| Migration | Lebab | ❌ |
| Type Checkers | Flow, TypeScript | ❌ ❌ |
| End to End Testing | TestCafe, Cypress | ❌ ❌ |

## Implemented Targets

| Target | Implemented |
| --- | --- |
| Browser | ✅ |
| Node | ✅ |
| Electron | ❌ |
| React Native | ❌ |

## Prior Art

- [Cargo](https://github.com/rust-lang/cargo)
- [NPM](https://npmjs.org), [Yarn](https://yarnpkg.com)
- [Yeoman](http://yeoman.io)
- [create-react-app](https://github.com/facebook/create-react-app)
- [react-boilerplate](https://www.github.com/react-boilerplate/react-boilerplate), [electron-react-boilerplate](https://www.github.com/electron-react-boilerplate/electron-react-boilerplate), and [many many other boilerplates](https://github.com/search?q=boilerplate)

## Inspiration

- [parcel](http://parceljs.org)
- [elm](https://elm-lang.org)
- [Cargo](https://github.com/rust-lang/cargo)
- [Yarn](https://yarnpkg.com)
- [webpack-merge](https://github.com/survivejs/webpack-merge)

## Contributing

See [CONTRIBUTING.md](./CONTRIBUTING.md)

## Donations

If this project is saving you (or your team) time, please consider supporting it on Patreon 👍 thank you!

**Donations will ensure the following:**

- 🔨 Long term maintenance of the project
- 🛣 Progress on the [roadmap](https://electron-react-boilerplate.js.org/docs/roadmap)
- 🐛 Quick responses to bug reports and help requests





Please [donate to our Patreon](https://www.patreon.com/join/2181265/checkout) or [PayPal](https://paypal.me/amilajack)

## Community

All feedback and suggestions are welcome!

- 💬 Join the community on [Spectrum](https://spectrum.chat/alfred)
- 📣 Stay up to date on new features and announcements on [@alfredpkg](https://twitter.com/alfredpkg).

## Goals

- Standardize and simplify JS infrastructure and conventions
- Encourage extensible and reusable infrastructure configuration
- Provide opinionated configuration out of the box that meets the needs of most users