- Before you get started with the project, you must be familiar with the prerequisites.To get started we are going to go through project setup and installation.
Project Setup
Before you setup grimoire locally on your computer. Make sure you have the follwing installed.
-
Node js 18 > (opens in a new tab) - javascript runtime
-
Vscode (opens in a new tab) - preferred IDE
-
pnpm (opens in a new tab) - preferred package manager
-
Clone the repository. (make sure you have been granted access to the repo before cloning it)
git clone https://github.com/kolynzb/Grimoire.git
# Move into project directory(root)
cd Grimoire
Install Packages
- Install all dependencies for the project to work
pnpm i
- Install the different dependencies in the independent apps (find these in the apps folder) or the app you prefer to contribute to.To find the apps that intrest you check the contribute section of the docs.
VSCode Extension Recommendations
This repository makes use of Visual Studio Code's recommended extensions feature (opens in a new tab). This means: If you use VS Code and open the repository for the first time, VS Code will tell you that the repository recommends to install a handful of extensions. These extensions are recommended if you work with Grimoire and will make contributing much easier. The recommendations are specified in the file .vscode/extensions.json
.
If you choose not to install all of the recommended extensions at once (which we recommend), VS Code will show you the recommendations in the extensions sidebar so you can first decide which of the ones you'd like to install and then manually install those you'd like to have.
Using the same extensions as the core developer team will make the code generally more consistent since you will have the same visual feedback.
To Run Project
- Start the monorepo. (this is powered by turborepo (opens in a new tab))
pnpm dev
Overall Directory Structure
.
├── .github # Github specific settings
├── .vscode # Vscode settings, extentions and launch recommendations
├── library # Custom .cspell extention dictionaries
├── apps # Contains applications or sub-repositories
│ ├── docs # Contains grimoire project and technical documentation
│ ├── site # Contains grimoire landing page
│ └── design # Contains design related info (design systems, user-interface, user-experience, brand guidelines, )
├── assets # Contains assets (like images)
└── packages # shared packages across projects
Prerequisities: What Should I Know To Contribute Code?
In order to provide code, you should have basic familiarity with the following topics and/or manuals (ordered by descending importance):
- JavaScript (opens in a new tab) (especially asynchronous code) and TypeScript (opens in a new tab)
- Node.js (opens in a new tab)
- React js (opens in a new tab) and Next js (opens in a new tab)
- Nest js (opens in a new tab)
- ESLint (opens in a new tab)
- Tauri (opens in a new tab)
- Rust
- Markdown and Nextra (opens in a new tab)