# Environment Setup

# Environment Setup (dev/staging/prod)

Intempt uses **organizations** and **projects** to help you separate data, manage environments, and control access.

---

## Organizations

An organization is the highest-level structure in Intempt. It represents a real company or team and contains:

- Multiple projects  
- Members and their access rights  
- A single billing plan applied across all projects  

Within an organization, you can create projects, manage members, and switch between different organizations using the top panel.

---

## Projects

A project is an isolated data container inside Intempt. All events, profiles, and analysis belong to a specific project.  
Each project also has its own API keys, used when initializing your integrations.

You can switch between projects or create new ones using the project switcher in the top bar.

---

## Recommended Environment Structure

To keep your analytics clean and avoid mixing test data with real user data, Intempt recommends creating three separate projects:

- **Local Development** – when the app runs on your local machine  
- **Staging** – when testing on a staging server  
- **Production** – for live user data  

This setup ensures you can safely test tracking and behavior in dev/staging environments without polluting production analytics.

---

## When to Combine Projects

If you have multiple products that share the same customer experience (e.g., marketing website + iOS app + web app), they should **share the same Production project**.  
This allows you to track the full user journey across platforms and keeps all events for each user in one place.

---

## When to Use Separate Projects

If your products are completely isolated — for example:

- Different authentication systems  
- Different user bases  
- Admin-facing tools separate from customer-facing tools  

Then you should create **separate projects** to prevent data overlap and maintain clean, logical segmentation.


