## Base documentation - Getting started: - https://docs.twenty.com/developers/extend/apps/getting-started/quick-start.md - https://docs.twenty.com/developers/extend/apps/getting-started/concepts.md - https://docs.twenty.com/developers/extend/apps/getting-started/project-structure.md - https://docs.twenty.com/developers/extend/apps/getting-started/local-server.md - https://docs.twenty.com/developers/extend/apps/getting-started/scaffolding.md - https://docs.twenty.com/developers/extend/apps/getting-started/troubleshooting.md - Config: - https://docs.twenty.com/developers/extend/apps/config/overview.md - https://docs.twenty.com/developers/extend/apps/config/application.md - https://docs.twenty.com/developers/extend/apps/config/roles.md - https://docs.twenty.com/developers/extend/apps/config/install-hooks.md - https://docs.twenty.com/developers/extend/apps/config/public-assets.md - Data: - https://docs.twenty.com/developers/extend/apps/data/overview.md - https://docs.twenty.com/developers/extend/apps/data/objects.md - https://docs.twenty.com/developers/extend/apps/data/extending-objects.md - https://docs.twenty.com/developers/extend/apps/data/relations.md - Logic: - https://docs.twenty.com/developers/extend/apps/logic/overview.md - https://docs.twenty.com/developers/extend/apps/logic/logic-functions.md - https://docs.twenty.com/developers/extend/apps/logic/skills-and-agents.md - https://docs.twenty.com/developers/extend/apps/logic/connections.md - Layout: - https://docs.twenty.com/developers/extend/apps/layout/overview.md - https://docs.twenty.com/developers/extend/apps/layout/views.md - https://docs.twenty.com/developers/extend/apps/layout/navigation-menu-items.md - https://docs.twenty.com/developers/extend/apps/layout/page-layouts.md - https://docs.twenty.com/developers/extend/apps/layout/front-components.md - https://docs.twenty.com/developers/extend/apps/layout/command-menu-items.md - Operations: - https://docs.twenty.com/developers/extend/apps/operations/overview.md - https://docs.twenty.com/developers/extend/apps/operations/cli.md - https://docs.twenty.com/developers/extend/apps/operations/testing.md - https://docs.twenty.com/developers/extend/apps/operations/publishing.md - Rich app example: https://github.com/twentyhq/twenty/tree/main/packages/twenty-apps/examples/postcard ## UUID requirement - All generated UUIDs must be valid UUID v4. ## Common Pitfalls - Creating a view without a navigationMenuItem associated. This will make the view available on the left sidebar. - Creating a front-end component that has a scroll instead of being responsive to its fixed widget height and width, unless it is specifically meant to be used in a canvas tab. ## Best practice It's highly recommended to create new app entities using `yarn twenty dev:add`. These are the options: | Entity type | Command | Generated file | | -------------------- | ---------------------------------------- | ------------------------------------- | | Object | `yarn twenty dev:add object` | `src/objects/.ts` | | Field | `yarn twenty dev:add field` | `src/fields/.ts` | | Logic function | `yarn twenty dev:add logicFunction` | `src/logic-functions/.ts` | | Front component | `yarn twenty dev:add frontComponent` | `src/front-components/.tsx` | | Role | `yarn twenty dev:add role` | `src/roles/.ts` | | Skill | `yarn twenty dev:add skill` | `src/skills/.ts` | | Agent | `yarn twenty dev:add agent` | `src/agents/.ts` | | View | `yarn twenty dev:add view` | `src/views/.ts` | | Navigation menu item | `yarn twenty dev:add navigationMenuItem` | `src/navigation-menu-items/.ts` | | Page layout | `yarn twenty dev:add pageLayout` | `src/page-layouts/.ts` | | Page layout tab | `yarn twenty dev:add pageLayoutTab` | `src/page-layout-tabs/.ts` | | Command menu item | `yarn twenty dev:add commandMenuItem` | `src/command-menu-items/.ts` | | View field | `yarn twenty dev:add viewField` | `src/view-fields/.ts` | | Connection provider | `yarn twenty dev:add connectionProvider` | `src/connection-providers/.ts` | This helps automatically generate required IDs etc.