Development Environment Setup
To get a new engineer from a fresh laptop to a running local instance of the application.
| Field | Value |
|---|---|
| Version | 1.2.0 |
| Last Updated | January 19, 2025 |
| Owner | o.yasser@getzeal.io |
| Status | ✅ Current |
| Type | Guide |
Prerequisites
Before you begin, ensure you have the following tools installed on your system:
| Tool | Version/Requirement | Installation Guide |
|---|---|---|
| Git | Latest stable | Official Git Installation |
| Node.js | 22.19.0 (via nvm recommended) | Node.js Installation or nvm Installation |
| Yarn | Latest (via Corepack recommended) | Yarn Installation Guide |
| Cursor IDE | Latest | Download Cursor |
We recommend using nvm (Node Version Manager) to manage Node.js versions. The project includes an .nvmrc file that automatically sets the correct version when you run nvm use in the project directory.
Recommended IDE Extensions
A extensions.json file is included in the .vscode directory to recommend these extensions automatically when you open the project in Cursor:
| Extension | Purpose |
|---|---|
| ES7+ React/Redux/React-Native snippets | React code snippets |
| ESLint | Code linting |
| GitLens | Enhanced Git capabilities |
| Prettier | Code formatting |
Project Setup
Now let's get the project code and install its dependencies.
Clone the Repository
We maintain two main repositories for frontend development:
| Repository | Description | Link |
|---|---|---|
| webmono | Monorepo containing our dashboards (Merchant Dashboard, Admin Dashboard, Acquirer Dashboard, etc.) | github.com/zeal-io/webmono |
| whitelabel-website | Whitelabel (generic) website that serves as an ordering/booking website for merchants | github.com/zeal-io/whitelabel-website |
Which repository should you clone?
Your work scope follows your squad's scope. Check with your lead or senior engineer to determine which repository you'll be working on. It's good to know where each project exists, and you may need to read both repositories depending on your work.
Once you know which repository to use:
# Clone the repository (replace with the appropriate URL)
git clone https://github.com/zeal-io/<repository-name>
# Navigate into the project
cd <repository-name>
Project Overview
webmono is our monorepo containing multiple dashboards:
- Merchant Dashboard
- Admin Dashboard
- Acquirer Dashboard
- And other dashboard applications
whitelabel-website is our generic website solution that serves as an ordering/booking website for merchants.
Your work scope follows your squad's scope. Refer to your lead or senior engineer for more information about your specific scope and which repositories you'll be working with. It's beneficial to familiarize yourself with both repositories to understand the broader context of our frontend architecture.
Set Up Environment Variables
For webmono
Environment variables are already included in the repository. See the webmono repository for details.
For whitelabel-website
You'll need to get the QA environment variables from Vault. See the whitelabel-website repository for more information.
- Open Vault at https://vault.zeal-members.com/
- Navigate to the Whitelabel project secrets
- Copy the environment variables
- Create a
.env.localfile in the project root - Paste the variables
Never commit .env.local to version control. It should already be in .gitignore.
Install Dependencies
yarn install
This will install all project dependencies defined in package.json.
Running the Application
You're all set! Let's see it in action.
Start the Development Server
# For QA environment
yarn dev.vndr.qa
Verify It's Working
- Open your browser
- Navigate to http://localhost:3000
- You should see the Zeal login page
🎉 Congratulations! Your environment is set up.
Run Tests
To make sure everything is working correctly, run the test suite in a separate terminal window:
yarn test.unit
Tech Stack
Here's an overview of the technologies we use:
| Category | Technology |
|---|---|
| Framework | Next.js |
| Language | TypeScript |
| Styling | Tailwind CSS / Styled Components |
| State Management | React Query / Zustand |
| Testing | Jest / React Testing Library |
| Package Manager | Yarn |
| Version Control | Git |
Troubleshooting
Common Issues
Node version mismatch error
Problem: You see an error about incompatible Node.js version.
Solution:
- Ensure you have Node.js version 22.19.0 installed
- If using nvm, run
nvm usein the project directory (it will read the.nvmrcfile) - Verify with
node --version- it should outputv22.19.0 - Refer to the nvm documentation for installation and usage instructions
Yarn not found
Problem: Command yarn is not recognized.
Solution:
- Enable Corepack:
corepack enable(recommended) - Or install Yarn globally:
npm install -g yarn - Refer to the Yarn installation guide for platform-specific instructions
Port 3000 already in use
Problem: Another process is using port 3000.
Solution:
- Find and stop the process using port 3000 (platform-specific commands vary)
- Or use a different port by setting the
PORTenvironment variable:PORT=3001 yarn dev.vndr.qa
Next Steps
Once your environment is set up:
- ✅ Read the Welcome Guide
- ✅ Understand our FE/BE Communication Process
- ✅ Pick up your first ticket!
If you run into issues not covered here, reach out in #frontend-team on Slack. We're happy to help!
Change Log
| Version | Date | Changes | Author |
|---|---|---|---|
| 1.2.0 | 2025-01-15 | Added repository links (webmono and whitelabel-website), added project overview section, updated environment variables section with repository references | Documentation Team |
| 1.1.0 | 2025-01-15 | Refactored to be platform-agnostic, removed macOS/Homebrew-specific instructions, added external documentation links for prerequisites | Documentation Team |
| 1.0.0 | 2025-01-15 | Initial version | o.yasser@getzeal.io |
Related Documentation
- Welcome Guide - Your starting point for onboarding
- FE/BE Communication Process - How we communicate with backend APIs
- ACL Protection Rules - Access control implementation guidelines
- Documentation Guidelines - How to contribute to documentation