> ## Documentation Index
> Fetch the complete documentation index at: https://shivamgoyal.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Project Creation

> Learn how to create and set up a new project in CodeNull

# Project Creation

Creating a new project in CodeNull is the first step in your journey to building modern, AI-powered web applications. This guide will walk you through the process of setting up a new project and configuring its initial settings.

## Getting Started

<Frame>
  <img src="https://mintlify.s3.us-west-1.amazonaws.com/shivamgoyal/images/project-creation-screen.png" alt="Project Creation Screen" />
</Frame>

<Steps>
  <Step title="Access the Project Creation Screen">
    There are multiple ways to access the project creation screen:

    * From the dashboard, click the **New Project** button
    * From the main navigation, click **+** in the project selector
    * From any screen, use the keyboard shortcut `Ctrl+N` (Windows/Linux) or `⌘+N` (macOS)
  </Step>

  <Step title="Choose a Project Template">
    Select a template that matches your project needs:

    <CardGroup cols={3}>
      <Card title="Blank Project" icon="file">
        Start with a clean slate and build from scratch
      </Card>

      <Card title="E-commerce" icon="shopping-cart">
        Pre-configured for online stores
      </Card>

      <Card title="Blog" icon="blog">
        Content-focused site with publishing features
      </Card>

      <Card title="Portfolio" icon="user">
        Showcase your work or services
      </Card>

      <Card title="Dashboard" icon="gauge">
        Data visualization and analytics
      </Card>

      <Card title="Landing Page" icon="rocket">
        Conversion-focused single page
      </Card>
    </CardGroup>

    You can also choose from your previously saved templates or browse the template marketplace for community and premium options.
  </Step>

  <Step title="Enter Basic Information">
    Fill in the essential details for your project:

    <ParamField path="projectName" type="string" required>
      A descriptive name for your project
    </ParamField>

    <ParamField path="description" type="string">
      Optional brief description of the project purpose
    </ParamField>

    <ParamField path="tags" type="string[]">
      Optional keywords to categorize your project
    </ParamField>

    <ParamField path="visibility" type="enum" default="private">
      * `private`: Only accessible to you and invited collaborators
      * `team`: Available to all members of your organization
      * `public`: Visible to all CodeNull users (code not publicly accessible)
    </ParamField>
  </Step>

  <Step title="Configure Technology Stack">
    Select the technologies you want to use in your project:

    <Tabs>
      <Tab title="Frontend">
        <ParamField path="frontendFramework" type="enum" default="react">
          * `react`: React.js (with Next.js)
          * `vue`: Vue.js (with Nuxt.js)
          * `angular`: Angular
          * `svelte`: Svelte/SvelteKit
          * `static`: Static HTML/CSS/JS
        </ParamField>

        <ParamField path="cssFramework" type="enum" default="tailwind">
          * `tailwind`: Tailwind CSS
          * `mui`: Material UI
          * `bootstrap`: Bootstrap
          * `chakra`: Chakra UI
          * `vanilla`: Plain CSS
          * `none`: No CSS framework
        </ParamField>

        <ParamField path="componentLibrary" type="enum" default="shadcn">
          * `shadcn`: shadcn/ui
          * `radix`: Radix UI
          * `mantine`: Mantine
          * `none`: No component library
        </ParamField>
      </Tab>

      <Tab title="Backend">
        <ParamField path="backendLanguage" type="enum" default="node">
          * `node`: Node.js
          * `python`: Python
          * `java`: Java
          * `dotnet`: .NET
          * `go`: Go
          * `php`: PHP
          * `ruby`: Ruby
          * `none`: No backend (static site)
        </ParamField>

        <ParamField path="backendFramework" type="enum" default="express">
          * `express`: Express.js
          * `fastapi`: FastAPI
          * `spring`: Spring Boot
          * `aspnet`: ASP.NET Core
          * `laravel`: Laravel
          * `rails`: Ruby on Rails
          * `none`: No framework
        </ParamField>
      </Tab>

      <Tab title="Database">
        <ParamField path="databaseType" type="enum" default="mongodb">
          * `mongodb`: MongoDB
          * `postgresql`: PostgreSQL
          * `mysql`: MySQL
          * `sqlite`: SQLite
          * `firebase`: Firebase
          * `none`: No database
        </ParamField>
      </Tab>

      <Tab title="AI">
        <ParamField path="enableAI" type="boolean" default={true}>
          Enable AI features in your project
        </ParamField>

        <ParamField path="aiProvider" type="enum" default="openai">
          * `openai`: OpenAI
          * `azure`: Azure OpenAI
          * `anthropic`: Anthropic
          * `mistral`: Mistral AI
          * `local`: Local Models
          * `custom`: Custom API
        </ParamField>
      </Tab>
    </Tabs>

    <Warning>
      Changing the technology stack after project creation may require migration effort. Choose carefully based on your project requirements.
    </Warning>
  </Step>

  <Step title="Create Project">
    Click the **Create Project** button to initialize your project. CodeNull will:

    1. Set up the project structure based on your selected template and technologies
    2. Initialize the necessary configuration files
    3. Create a Git repository for version control
    4. Install default dependencies

    <Frame>
      <img src="https://mintlify.s3.us-west-1.amazonaws.com/shivamgoyal/images/project-initialization.png" alt="Project Initialization" />
    </Frame>

    This process typically takes 30-60 seconds depending on the selected options and your connection speed.
  </Step>
</Steps>

## Project Structure

After creation, your project will have a standardized structure:

```
my-project/
├── .codenull/                  # CodeNull configuration
├── frontend/                   # Frontend code
│   ├── public/                 # Static assets
│   ├── src/                    # Source code
│   ├── components/             # UI components
│   └── pages/                  # Page components
├── backend/                    # Backend code
│   ├── src/                    # Source code
│   ├── api/                    # API endpoints
│   ├── models/                 # Data models
│   └── services/               # Business logic
├── database/                   # Database scripts and migrations
├── ai/                         # AI models and prompts
└── README.md                   # Project documentation
```

## Initial Configuration

Once your project is created, you'll be guided through some initial configuration steps:

<AccordionGroup>
  <Accordion title="Project Settings">
    <Frame>
      <img src="https://mintlify.s3.us-west-1.amazonaws.com/shivamgoyal/images/project-settings.png" alt="Project Settings" />
    </Frame>

    Review and adjust general project settings:

    * Update project name, description, or tags
    * Configure version control settings
    * Set up collaboration permissions
    * Define environment variables
  </Accordion>

  <Accordion title="API Keys">
    <Frame>
      <img src="https://mintlify.s3.us-west-1.amazonaws.com/shivamgoyal/images/api-key-configuration.png" alt="API Key Configuration" />
    </Frame>

    If your project uses external services, you'll need to configure API keys:

    <CardGroup cols={2}>
      <Card title="AI Services" icon="robot">
        Configure keys for OpenAI, Azure OpenAI, or other AI providers
      </Card>

      <Card title="Database" icon="database">
        Set up connection strings for your database
      </Card>

      <Card title="Authentication" icon="lock">
        Configure auth providers (Google, GitHub, etc.)
      </Card>

      <Card title="Analytics" icon="chart-line">
        Set up services like Google Analytics or Mixpanel
      </Card>
    </CardGroup>

    <Info>
      All API keys are securely encrypted and stored according to industry best practices. They're never exposed in your source code.
    </Info>
  </Accordion>

  <Accordion title="Deployment Settings">
    <Frame>
      <img src="https://mintlify.s3.us-west-1.amazonaws.com/shivamgoyal/images/deployment-settings.png" alt="Deployment Settings" />
    </Frame>

    Configure how your project will be deployed:

    <CardGroup cols={3}>
      <Card title="CodeNull Cloud" icon="cloud">
        One-click deployment to CodeNull's managed infrastructure
      </Card>

      <Card title="Custom Hosting" icon="server">
        Configure deployment to your own servers or cloud provider
      </Card>

      <Card title="Export Code" icon="file-export">
        Export your project to deploy manually
      </Card>
    </CardGroup>
  </Accordion>
</AccordionGroup>

## Creating from an Existing Project

If you already have an existing project, you can import it into CodeNull:

<Steps>
  <Step title="Access Import Screen">
    From the project creation screen, select the **Import Existing Project** tab.
  </Step>

  <Step title="Connect Repository">
    <Frame>
      <img src="https://mintlify.s3.us-west-1.amazonaws.com/shivamgoyal/images/import-project.png" alt="Import Project" />
    </Frame>

    Connect to your existing repository:

    <CardGroup cols={3}>
      <Card title="GitHub" icon="github">
        Import from a GitHub repository
      </Card>

      <Card title="GitLab" icon="gitlab">
        Import from a GitLab repository
      </Card>

      <Card title="Bitbucket" icon="bitbucket">
        Import from a Bitbucket repository
      </Card>

      <Card title="Local Files" icon="folder-open">
        Upload files from your local machine
      </Card>
    </CardGroup>
  </Step>

  <Step title="Project Analysis">
    CodeNull will analyze your project structure to detect:

    * Front-end and back-end frameworks
    * Component libraries
    * Database connections
    * Dependencies

    <Frame>
      <img src="https://mintlify.s3.us-west-1.amazonaws.com/shivamgoyal/images/project-analysis.png" alt="Project Analysis" />
    </Frame>

    You can confirm or adjust these detected settings.
  </Step>

  <Step title="Import Configuration">
    Configure additional settings:

    <ParamField path="preserveStructure" type="boolean" default={true}>
      Keep your existing project structure (recommended)
    </ParamField>

    <ParamField path="importHistory" type="boolean" default={false}>
      Import full git history (larger projects may take longer)
    </ParamField>
  </Step>

  <Step title="Complete Import">
    Click **Import Project** to complete the process. CodeNull will:

    1. Clone your repository
    2. Set up the CodeNull configuration
    3. Prepare the project for editing in the CodeNull interface
  </Step>
</Steps>

## Project Templates

You can save your project configuration as a template for future use:

<Frame>
  <img src="https://mintlify.s3.us-west-1.amazonaws.com/shivamgoyal/images/save-template.png" alt="Save as Template" />
</Frame>

<CardGroup cols={2}>
  <Card title="Save Current Project as Template" icon="save">
    From your project settings, select **Save as Template** to create a reusable template from your current project.
  </Card>

  <Card title="Manage Templates" icon="folder-tree">
    Review, edit, and share your saved templates from the **Templates** section of your account.
  </Card>
</CardGroup>

## Next Steps

Now that you've created your project, you're ready to start building:

<CardGroup cols={3}>
  <Card title="Explore the Interface" icon="compass" href="/guide/navigation-overview">
    Learn how to navigate the CodeNull interface
  </Card>

  <Card title="Frontend Development" icon="palette" href="/frontend-dashboard/overview">
    Start building your user interface
  </Card>

  <Card title="Backend Development" icon="server" href="/api-dashboard/overview">
    Set up your API and backend logic
  </Card>

  <Card title="Database Configuration" icon="database" href="/database-dashboard/overview">
    Configure your database models and queries
  </Card>

  <Card title="AI Integration" icon="robot" href="/product/ai-features">
    Explore AI capabilities in your project
  </Card>
</CardGroup>
