> For the complete documentation index, see [llms.txt](https://nghiaxchis.gitbook.io/ncmaz-nextjs-headless-cms-wordpres-blog-magazine/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://nghiaxchis.gitbook.io/ncmaz-nextjs-headless-cms-wordpres-blog-magazine/for-developers/project-initiation.md).

# Project initiation

Project initiation: How was the project started, and what foundational steps were taken to establish the environment?

#### 1 - Initial goal:&#x20;

Build a NextJs headless WordPress CMS theme - **Ncmaz** blog, news, magazine.

#### 2 - Overall structure

Imagine the overall structure of this topic includes two main parts:

1. &#x20;The Nextjs **Ncmaz-faust** project is essentially a Faustjs project - <https://faustjs.org/> \
   So everything in this project follows the guidance of Faustjs. Just carefully read the Faustjs documentation, and you'll fully understand the project's structure<br>
2. &#x20;The **Ncmaz-faust-core** plugin is a WordPress plugin. This plugin will be responsible for building WordPress features to fit the website: for example, creating Ncmaz Gutenberg blocks, building Favorite and Save features, initializing ACF custom fields, creating GraphQL mutations, etc.

#### 3 - Framework selection: [Faustjs](https://faustjs.org/)

[Faustjs](https://faustjs.org/) - A JavaScript framework that makes building headless WordPress simple and easy.

#### 4 - Getting started

Instead of starting with the first lines of code, I chose to build **ncmaz-faust** based on a starter repo created by the founders of Faustjs. This will help me save time and have a quality starting framework readily available.

👉 Here it is - <https://github.com/wpengine/faust-scaffold-ts>

My next task is to build components for the Ncmaz-faust project. At the same time, I will develop the Ncmaz-faust-core plugin to implement the necessary features...
