Jets New Modes
Important: These docs are for the outdated Jets 5 versions and below. For the latest Jets docs: docs.rubyonjets.com
The jets new
command has 3 different modes: html, api, and job. Use the --mode
option to specify one of them. The modes allow you to generate different starter Jets projects for different needs.
Examples
jets new demo --mode html # default
jets new api --mode api
jets new cron --mode job
Mode Summary
Here’s a table that describes the different modes. It briefly covers when it may make sense to use one over the other.
Mode | Description |
---|---|
html | The html mode generates a starter app useful for html web applications. This mode includes webpacker and assets. This article may be of use Jets CRUD Introduction if you’re looking at this mode. |
api | The api mode is useful for building APIs. This mode does not include webpacker or assets. You may be interested in this article: Build an API with the Jets if you’re looking at this mode. |
job | The job mode creates a very lightweight project. It is useful when you only need to run just a few Lambda function. It’s a perfect mode if you want something like a Serverless Cron Job with Jets |
Structure
With HTML mode, the fullest structure is generated.
.
├── app
│ ├── controllers
│ ├── helpers
│ ├── javascript
│ ├── jobs
│ ├── models
│ └── views
├── bin
├── config
├── db
├── public
└── spec
With API mode, a lighter structure is generated.
.
├── app
│ ├── controllers
│ ├── helpers
│ ├── jobs
│ └── models
├── config
├── db
├── public
└── spec
With Job mode, a super lightweight structure is generated. Job mode also defaults to no database.
.
├── app
│ └── jobs
└── config
No Database Option
A notable option is the --no-database
option. If you have an app that does not require a database, it is useful to have jets new
generate a skeleton app without a database configured. Here’s an example with api mode and no database:
jets new api --mode api --no-database
Refer to the CLI reference jets new for more info.