---
title: Projects
feature: true
featureGroup: core
featureState: ga
---

## Overview

Projects are the primary organizational unit in the smallstack Business Platform. Each project represents a separate workspace with its own data, settings, and team members.

## Creating a Project

### First-Time Users

New users who have no existing projects are automatically redirected to the project creation page (`/projects/new`) immediately after logging in and verifying their email address. This streamlines the onboarding experience so you can get started without any extra navigation.

> **Note:** This automatic redirect applies only when the `projectCreationDisabled` flag is not set on your user account. If your account has project creation disabled, you will be directed to the main dashboard instead.

### Returning Users

If you already have projects, you can create an additional project by navigating directly to `/projects/new`.

### Project Templates

When creating a project, you will be prompted to select a template. Templates pre-configure your project with a relevant data model and initial settings. Available templates include:

- **Empty** — A blank project with no preconfigured structure.
- **CRM** — A customer relationship management setup.
- **Real Estate** — A property management configuration.
- Additional templates may be available depending on your platform version.

To create a project:

1. Navigate to `/projects/new` (or log in as a new user to be redirected there automatically).
2. Select a template that matches your use case.
3. Provide a project name and any required details.
4. Confirm to finalize project creation.

After the project is created, you will be redirected to the new project's dashboard.

## Managing Projects

### Permissions

Access to a project is controlled through role-based permissions. Users must have the appropriate read or write permissions assigned to interact with a project's data. Permissions are evaluated using the RLS (Row-Level Security) access model.

### Team Members

Team members can be invited to a project. Accepting an invitation grants the invited user access according to the permissions configured for that project. Note that permission changes (such as those resulting from accepting an invitation) are reflected immediately on the server even if a user's session was established before the change occurred.

## Authentication and Project Access

Upon login, the platform checks your current project membership:

- **No projects:** You are redirected to `/projects/new` to create your first project.
- **One or more projects:** You are directed to the main dashboard where your projects are listed.

This check uses up-to-date user data fetched directly from the database, ensuring that recent changes — such as invitation acceptance or newly granted permissions — are always reflected correctly, even if your session was established before those changes took place.
