Skip to content

Scaffolding for highly optimized applications built with Ember.js

License

Notifications You must be signed in to change notification settings

warp-drive-engineering/engage

Repository files navigation

WarpDrive Engineering WarpDrive Engineering

@warp-drive/engage

GitHub Sponsors lerna version pnpm version Generate Release Candidate

Scaffolding for highly optimized applications built with Ember.js

About

engage is a tool for scaffolding Monorepo projects using pnpm Workspaces, Lerna, Release It, and Typescript.

It's built for the future of Ember, focusing on configuring your project to maximize your success.

Monorepos solve problems almost every ember project hits with testing, modularization, and code re-use.

You don't need to put all of your code into one mono-repo, but often you'll find that more things make sense when maintained together.

Even projects with just one app or addon will find value in this structure as they scale.

example cli usage

⛰ Features

In addition to a new project structure, engage provides an enhanced "out-of-the-box" experience for app development, helping to ensure you ship the most powerful but lightweight and performant application possible, to whatever platforms you target.

Some of the defaults it provides:

  • Typescript
  • Optimized builds with embroider
  • SSR via fastboot
  • ServiceWorker by default ember-service-worker is not compatible with embroider, we are working on a new service-worker solution for ember apps.
  • Advanced terser configuration
  • Optimizations for SVGs, Templates, Translations
  • Automated Releases for both Public and Private Packages

👷🏽‍♀️ Installation

Installing the package globally will add the command engage to your terminal.

pnpm add -g @warp-drive/engage

Once installed, run engage --help to see detailed usage information.

example help usage

🚀 Usage

1. Create a new Project

engage project <projectName> --githubUrl git@github.com:<orgName>/<repoName>.git

Why --githubUrl?

This allows engage to configure the project labels, packages, and various scripts correctly. In the future, we'll add a way to skip this for folks not using github or who are scaffolding while offline.

example project usage

Then switch into the new directory and start working!

cd <directory-name>

2. Add Applications, Addons and More to your project

From inside your project, run any of the following commands to scaffold a package in the project monorepo.

engage app <appName> -d <directoryName>
engage addon <addonName> -d <directoryName>
engage v1-addon <addonName> -d <directoryName>
engage engine <engineName> -d <directoryName>

For the full list of things that can be scaffolded, run engage --help.

⚓️ Suggested Additional Setup

Using these scaffolds requires a global ember-cli install.

We recommend installing and managing node and ember-cli via volta.

These scaffolds configure node usage in each package via volta.

Install volta if required, then use volta to install ember-cli.

volta install ember-cli

♥️ Credits

Brought to you with ♥️ love by WarpDrive Engineering





. <style type="text/css"> img.project-logo { padding: 0 5em 1em 5em; width: 100px; border-bottom: 2px solid #0969da; margin: 0 auto; display: block; } details > summary { font-size: 1.1rem; line-height: 1rem; margin-bottom: 1rem; } details { font-size: 1rem; } details > summary strong { display: inline-block; padding: .2rem 0; color: #000; border-bottom: 3px solid #0969da; } details > details { margin-left: 2rem; } details > details > summary { font-size: 1rem; line-height: 1rem; margin-bottom: 1rem; } details > details > summary strong { display: inline-block; padding: .2rem 0; color: #555; border-bottom: 2px solid #555; } details > details { font-size: .85rem; } @media (prefers-color-scheme: dark) { details > summary strong { color: #fff; } } @media (prefers-color-scheme: dark) { details > details > summary strong { color: #afaba0; border-bottom: 2px solid #afaba0; } } </style>

About

Scaffolding for highly optimized applications built with Ember.js

Resources

License

Stars

Watchers

Forks

Packages

No packages published