- Migrated developer docs to Twenty website - Modified User Guide and Docs layout to include sections and subsections **Section Example:** <img width="549" alt="Screenshot 2024-05-30 at 15 44 42" src="https://github.com/twentyhq/twenty/assets/102751374/41bd4037-4b76-48e6-bc79-48d3d6be9ab8"> **Subsection Example:** <img width="557" alt="Screenshot 2024-05-30 at 15 44 55" src="https://github.com/twentyhq/twenty/assets/102751374/f14c65a9-ab0c-4530-b624-5b20fc00511a"> - Created different components (Tabs, Tables, Editors etc.) for the mdx files **Tabs & Editor** <img width="665" alt="Screenshot 2024-05-30 at 15 47 39" src="https://github.com/twentyhq/twenty/assets/102751374/5166b5c7-b6cf-417d-9f29-b1f674c1c531"> **Tables** <img width="698" alt="Screenshot 2024-05-30 at 15 57 39" src="https://github.com/twentyhq/twenty/assets/102751374/2bbfe937-ec19-4004-ab00-f7a56e96db4a"> <img width="661" alt="Screenshot 2024-05-30 at 16 03 32" src="https://github.com/twentyhq/twenty/assets/102751374/ae95b47c-dd92-44f9-b535-ccdc953f71ff"> - Created a crawler for Twenty Developers (now that it will be on the twenty website). Once this PR is merged and the website is re-deployed, we need to start crawling and make sure the index name is ‘twenty-developer’ - Added a dropdown menu in the header to access User Guide and Developers + added Developers to footer https://github.com/twentyhq/twenty/assets/102751374/1bd1fbbd-1e65-4461-b18b-84d4ddbb8ea1 - Made new layout responsive Please fill in the information for each mdx file so that it can appear on its card, as well as in the ‘In this article’ section. Example with ‘Getting Started’ in the User Guide: <img width="786" alt="Screenshot 2024-05-30 at 16 29 39" src="https://github.com/twentyhq/twenty/assets/102751374/2714b01d-a664-4ddc-9291-528632ee12ea"> Example with info and sectionInfo filled in for 'Getting Started': <img width="620" alt="Screenshot 2024-05-30 at 16 33 57" src="https://github.com/twentyhq/twenty/assets/102751374/bc69e880-da6a-4b7e-bace-1effea866c11"> Please keep in mind that the images that are being used for Developers are the same as those found in User Guide and may not match the article. --------- Co-authored-by: Félix Malfait <felix.malfait@gmail.com>
80 lines
1.9 KiB
Plaintext
80 lines
1.9 KiB
Plaintext
---
|
|
title: Frontend Commands
|
|
icon: TbTerminal2
|
|
image: /images/user-guide/create-workspace/workspace-cover.png
|
|
---
|
|
|
|
## Useful commands
|
|
|
|
### Starting the app
|
|
|
|
```bash
|
|
nx start twenty-front
|
|
```
|
|
|
|
### Regenerate graphql schema based on API graphql schema
|
|
|
|
```bash
|
|
nx graphql:generate twenty-front
|
|
```
|
|
|
|
### Lint
|
|
|
|
```bash
|
|
nx lint twenty-front
|
|
```
|
|
|
|
### Test
|
|
|
|
```bash
|
|
nx test twenty-front# run jest tests
|
|
nx storybook:dev twenty-front# run storybook
|
|
nx storybook:test twenty-front# run tests # (needs yarn storybook:dev to be running)
|
|
nx storybook:coverage twenty-front # (needs yarn storybook:dev to be running)
|
|
```
|
|
|
|
## Tech Stack
|
|
|
|
The project has a clean and simple stack, with minimal boilerplate code.
|
|
|
|
**App**
|
|
|
|
- [React](https://react.dev/)
|
|
- [Apollo](https://www.apollographql.com/docs/)
|
|
- [GraphQL Codegen](https://the-guild.dev/graphql/codegen)
|
|
- [Recoil](https://recoiljs.org/docs/introduction/core-concepts)
|
|
- [TypeScript](https://www.typescriptlang.org/)
|
|
|
|
**Testing**
|
|
|
|
- [Jest](https://jestjs.io/)
|
|
- [Storybook](https://storybook.js.org/)
|
|
|
|
**Tooling**
|
|
|
|
- [Yarn](https://yarnpkg.com/)
|
|
- [Craco](https://craco.js.org/docs/)
|
|
- [ESLint](https://eslint.org/)
|
|
|
|
## Architecture
|
|
|
|
### Routing
|
|
|
|
[React Router](https://reactrouter.com/) handles the routing.
|
|
|
|
To avoid unnecessary [re-renders](/contributor/frontend/best-practices#managing-re-renders) all the routing logic is in a `useEffect` in `PageChangeEffect`.
|
|
|
|
### State Management
|
|
|
|
[Recoil](https://recoiljs.org/docs/introduction/core-concepts) handles state management.
|
|
|
|
See [best practices](/contributor/frontend/best-practices#state-management) for more information on state management.
|
|
|
|
## Testing
|
|
|
|
[Jest](https://jestjs.io/) serves as the tool for unit testing while [Storybook](https://storybook.js.org/) is for component testing.
|
|
|
|
Jest is mainly for testing utility functions, and not components themselves.
|
|
|
|
Storybook is for testing the behavior of isolated components, as well as displaying the design system.
|