When using the 8base CLI to create a new project with all default options, it will create a directory structure that resembles the following:
Building a new project called ExampleProject 🚀 ExampleProject ├── .workspace.json ├── 8base.yml ├── package.json └── src ├── resolvers │ └── resolver │ ├── handler.ts │ ├── mocks │ │ └── request.json │ └── schema.graphql ├── tasks │ └── task │ ├── handler.ts │ └── mocks │ └── request.json ├── triggers │ └── trigger │ ├── handler.ts │ └── mocks │ └── request.json └── webhooks └── webhook ├── handler.ts └── mocks └── request.json 🎉 Project ExampleProject was successfully created 🎉
All the dependencies can be installed using
Following this project structure is valuable for staying organized and getting the most out of 8base's CLI. For example, the CLI's generator commands offer great convenience for scaffolding new resources and will add generated files using pattern seen above (
Server vs. Client
It's very common that developers wish to commit their server-side and client-side code to the same git repository. In such situations, we suggest cleanly seperating the two directories at the project's root level. This will prevent a number of errors that would otherwise occure when installing dependencies and deploying code.
Try using the following directory structure when committing server-side and client-side code to the same git repository:
ExampleProject ├── README.md ├── client/ └── server/