Skip to content

Project Settings Reference

The deeep.json file in your repository root stores the link between your local project and deeepSpace, plus the settings used to discover and sync your components.

The file is created and updated automatically by deeep init and deeep sync. You can also edit it manually, but invalid JSON or unsafe paths will cause the CLI to fail.

Configuration structure

{
"project": {
"name": "My Awesome Project",
"uuid": "550e8400-e29b-41d4-a716-446655440000",
"projectSettings": {
"framework": "react",
"language": "tsx",
"styling": "tailwind",
"styleMode": "external",
"remBaseFontSize": 16,
"customInstructions": ""
},
"gitRepoName": "my-org/my-awesome-project",
"gitRepoUrl": "https://github.com/my-org/my-awesome-project",
"version": 1
},
"discovery": {
"type": "CLI",
"componentIndexJsonPath": ".deeep.index.json",
"components": [
"src/components/**/*.{js,jsx,mjs,ts,tsx,vue}",
"packages/*/src/components/**/*.{js,jsx,mjs,ts,tsx,vue}"
],
"exclude": [
"**/*.test.*",
"**/*.spec.*",
"**/*.stories.*",
"**/node_modules/**",
"**/dist/**",
"**/build/**",
"**/coverage/**"
]
}
}

Project fields

FieldTypeDescription
project.namestringName of the linked deeepSpace project
project.uuidstringUnique identifier of the deeepSpace project
project.projectSettingsobjectTech stack and code-generation preferences
project.gitRepoNamestringConnected Git repository name, for example owner/repo
project.gitRepoUrlstringURL of the connected Git repository
project.versionnumberCurrent project version

Project settings fields

FieldTypeDescription
projectSettings.frameworkstringFrontend framework
projectSettings.languagestringProgramming language / JSX flavor
projectSettings.stylingstringStyling technology
projectSettings.styleModestringHow styles are organized
projectSettings.remBaseFontSizenumberBase font size used for rem conversions
projectSettings.customInstructionsstringFree-text instructions for code generation

Supported values

Frameworks

ValueDescription
reactReact
reactNativeReact Native
vueVue
angularAngular
svelteSvelte
noneNo framework detected

Languages

ValueDescription
jsJavaScript
tsTypeScript
jsxJavaScript with JSX
tsxTypeScript with JSX
noneNo language detected

Styling

ValueDescription
cssPlain CSS
scssSCSS / Sass
lessLess
tailwindTailwind CSS
styledJsCSS-in-JS (for example styled-components or Emotion)
noneNo styling detected

Style modes

ValueDescription
externalStyles in separate files
inlineStyles inline in the component
scopedScoped styles (for example CSS modules or Vue scoped styles)
dynamicDynamic CSS-in-JS
noneNo style mode detected

Discovery configuration

The discovery object tells the CLI how to find your components.

CLI discovery

Use this method when you want the CLI to scan your source files directly.

{
"discovery": {
"type": "CLI",
"componentIndexJsonPath": ".deeep.index.json",
"components": [
"src/components/**/*.{js,jsx,mjs,ts,tsx,vue}"
],
"exclude": [
"**/*.test.*",
"**/*.spec.*",
"**/*.stories.*",
"**/node_modules/**",
"**/dist/**",
"**/build/**",
"**/coverage/**"
]
}
}
FieldDescription
typeMust be CLI
componentIndexJsonPathPath where the generated component index is written
componentsGlob patterns for component source files
excludeGlob patterns to ignore

Storybook discovery

Use this method when your components are documented with Storybook.

{
"discovery": {
"type": "STORYBOOK",
"storybookConfigDirectory": ".storybook",
"storybookIndexJsonPath": "storybook-static/index.json",
"componentIndexJsonPath": ".deeep.index.json",
"stories": [
"src/**/*.stories.@(js|jsx|mjs|ts|tsx)"
],
"exclude": [
"**/node_modules/**",
"**/dist/**"
]
}
}
FieldDescription
typeMust be STORYBOOK
storybookConfigDirectoryPath to your .storybook config directory
storybookIndexJsonPathPath to the generated Storybook index.json
componentIndexJsonPathPath where the generated deeep component index is written
storiesGlob patterns that match your story files
excludeGlob patterns to ignore

Best practices

  1. Keep deeep.json in version control so the whole team uses the same project link and discovery rules.
  2. Do not edit uuid or gitRepoUrl manually unless you know the values are correct.
  3. Use deeep init --force to safely change discovery settings or relink the project.
  4. Verify discovery with deeep sync --dry-run before syncing to deeepSpace.