diff --git a/.cursor/rules/README.mdc b/.cursor/rules/README.mdc
index 3eb1c56fb..07f19a816 100644
--- a/.cursor/rules/README.mdc
+++ b/.cursor/rules/README.mdc
@@ -1,6 +1,6 @@
---
-description:
-globs:
+description: Complete guide to Coolify Cursor rules and development patterns
+globs: .cursor/rules/*.mdc
alwaysApply: false
---
# Coolify Cursor Rules - Complete Guide
@@ -18,6 +18,7 @@ This comprehensive set of Cursor Rules provides deep insights into **Coolify**,
### 🎨 Frontend Development
- **[frontend-patterns.mdc](mdc:.cursor/rules/frontend-patterns.mdc)** - Livewire + Alpine.js + Tailwind architecture
+- **[form-components.mdc](mdc:.cursor/rules/form-components.mdc)** - Enhanced form components with built-in authorization
### 🗄️ Data & Backend
- **[database-patterns.mdc](mdc:.cursor/rules/database-patterns.mdc)** - Database architecture, models, and data management
diff --git a/.cursor/rules/api-and-routing.mdc b/.cursor/rules/api-and-routing.mdc
index 21daf22d2..8321205ac 100644
--- a/.cursor/rules/api-and-routing.mdc
+++ b/.cursor/rules/api-and-routing.mdc
@@ -1,6 +1,6 @@
---
-description:
-globs:
+description: RESTful API design, routing patterns, webhooks, and HTTP communication
+globs: routes/*.php, app/Http/Controllers/**/*.php, app/Http/Resources/*.php, app/Http/Requests/*.php
alwaysApply: false
---
# Coolify API & Routing Architecture
diff --git a/.cursor/rules/application-architecture.mdc b/.cursor/rules/application-architecture.mdc
index 162c0840f..ef8d549ad 100644
--- a/.cursor/rules/application-architecture.mdc
+++ b/.cursor/rules/application-architecture.mdc
@@ -1,6 +1,6 @@
---
-description:
-globs:
+description: Laravel application structure, patterns, and architectural decisions
+globs: app/**/*.php, config/*.php, bootstrap/**/*.php
alwaysApply: false
---
# Coolify Application Architecture
diff --git a/.cursor/rules/database-patterns.mdc b/.cursor/rules/database-patterns.mdc
index 58934598b..a4f65f5fb 100644
--- a/.cursor/rules/database-patterns.mdc
+++ b/.cursor/rules/database-patterns.mdc
@@ -1,6 +1,6 @@
---
-description:
-globs:
+description: Database architecture, models, migrations, relationships, and data management patterns
+globs: app/Models/*.php, database/migrations/*.php, database/seeders/*.php, app/Actions/Database/*.php
alwaysApply: false
---
# Coolify Database Architecture & Patterns
diff --git a/.cursor/rules/deployment-architecture.mdc b/.cursor/rules/deployment-architecture.mdc
index 5174cbb99..35ae6699b 100644
--- a/.cursor/rules/deployment-architecture.mdc
+++ b/.cursor/rules/deployment-architecture.mdc
@@ -1,6 +1,6 @@
---
-description:
-globs:
+description: Docker orchestration, deployment workflows, and containerization patterns
+globs: app/Jobs/*.php, app/Actions/Application/*.php, app/Actions/Server/*.php, docker/*.*, *.yml, *.yaml
alwaysApply: false
---
# Coolify Deployment Architecture
diff --git a/.cursor/rules/development-workflow.mdc b/.cursor/rules/development-workflow.mdc
index dd38cbc3f..175b7d85a 100644
--- a/.cursor/rules/development-workflow.mdc
+++ b/.cursor/rules/development-workflow.mdc
@@ -1,6 +1,6 @@
---
-description:
-globs:
+description: Development setup, coding standards, contribution guidelines, and best practices
+globs: **/*.php, composer.json, package.json, *.md, .env.example
alwaysApply: false
---
# Coolify Development Workflow
diff --git a/.cursor/rules/form-components.mdc b/.cursor/rules/form-components.mdc
new file mode 100644
index 000000000..d56480823
--- /dev/null
+++ b/.cursor/rules/form-components.mdc
@@ -0,0 +1,431 @@
+---
+description: Enhanced form components with built-in authorization system
+globs: resources/views/**/*.blade.php, app/View/Components/Forms/*.php
+alwaysApply: true
+---
+
+# Enhanced Form Components with Authorization
+
+## Overview
+
+Coolify's form components now feature **built-in authorization** that automatically handles permission-based UI control, dramatically reducing code duplication and improving security consistency.
+
+## Enhanced Components
+
+All form components now support the `canGate` authorization system:
+
+- **[Input.php](mdc:app/View/Components/Forms/Input.php)** - Text, password, and other input fields
+- **[Select.php](mdc:app/View/Components/Forms/Select.php)** - Dropdown selection components
+- **[Textarea.php](mdc:app/View/Components/Forms/Textarea.php)** - Multi-line text areas
+- **[Checkbox.php](mdc:app/View/Components/Forms/Checkbox.php)** - Boolean toggle components
+- **[Button.php](mdc:app/View/Components/Forms/Button.php)** - Action buttons
+
+## Authorization Parameters
+
+### Core Parameters
+```php
+public ?string $canGate = null; // Gate name: 'update', 'view', 'deploy', 'delete'
+public mixed $canResource = null; // Resource model instance to check against
+public bool $autoDisable = true; // Automatically disable if no permission
+```
+
+### How It Works
+```php
+// Automatic authorization logic in each component
+if ($this->canGate && $this->canResource && $this->autoDisable) {
+ $hasPermission = Gate::allows($this->canGate, $this->canResource);
+
+ if (! $hasPermission) {
+ $this->disabled = true;
+ // For Checkbox: also sets $this->instantSave = false;
+ }
+}
+```
+
+## Usage Patterns
+
+### ✅ Recommended: Single Line Pattern
+
+**Before (Verbose, 6+ lines per element):**
+```html
+@can('update', $application)
+
+
+ Save
+@else
+
+
+@endcan
+```
+
+**After (Clean, 1 line per element):**
+```html
+
+
+Save
+```
+
+**Result: 90% code reduction!**
+
+### Component-Specific Examples
+
+#### Input Fields
+```html
+
+
+
+
+
+
+
+
+```
+
+#### Select Dropdowns
+```html
+
+
+
+
+
+
+
+
+
+ @foreach($servers as $server)
+
+ @endforeach
+
+```
+
+#### Checkboxes with InstantSave
+```html
+
+
+
+
+
+
+
+
+```
+
+#### Textareas
+```html
+
+
+
+
+
+```
+
+#### Buttons
+```html
+
+
+ Save Configuration
+
+
+
+
+ Deploy Application
+
+
+
+
+ Delete Application
+
+```
+
+## Advanced Usage
+
+### Custom Authorization Logic
+```html
+
+
+```
+
+### Multiple Permission Checks
+```html
+
+
+```
+
+### Conditional Resources
+```html
+
+
+ {{ $isEditing ? 'Save Changes' : 'View Details' }}
+
+```
+
+## Supported Gates
+
+### Resource-Level Gates
+- `view` - Read access to resource details
+- `update` - Modify resource configuration and settings
+- `deploy` - Deploy, restart, or manage resource state
+- `delete` - Remove or destroy resource
+- `clone` - Duplicate resource to another location
+
+### Global Gates
+- `createAnyResource` - Create new resources of any type
+- `manageTeam` - Team administration permissions
+- `accessServer` - Server-level access permissions
+
+## Supported Resources
+
+### Primary Resources
+- `$application` - Application instances and configurations
+- `$service` - Docker Compose services and components
+- `$database` - Database instances (PostgreSQL, MySQL, etc.)
+- `$server` - Physical or virtual server instances
+
+### Container Resources
+- `$project` - Project containers and environments
+- `$environment` - Environment-specific configurations
+- `$team` - Team and organization contexts
+
+### Infrastructure Resources
+- `$privateKey` - SSH private keys and certificates
+- `$source` - Git sources and repositories
+- `$destination` - Deployment destinations and targets
+
+## Component Behavior
+
+### Input Components (Input, Select, Textarea)
+When authorization fails:
+- **disabled = true** - Field becomes non-editable
+- **Visual styling** - Opacity reduction and disabled cursor
+- **Form submission** - Values are ignored in forms
+- **User feedback** - Clear visual indication of restricted access
+
+### Checkbox Components
+When authorization fails:
+- **disabled = true** - Checkbox becomes non-clickable
+- **instantSave = false** - Automatic saving is disabled
+- **State preservation** - Current value is maintained but read-only
+- **Visual styling** - Disabled appearance with reduced opacity
+
+### Button Components
+When authorization fails:
+- **disabled = true** - Button becomes non-clickable
+- **Event blocking** - Click handlers are ignored
+- **Visual styling** - Disabled appearance and cursor
+- **Loading states** - Loading indicators are disabled
+
+## Migration Guide
+
+### Converting Existing Forms
+
+**Old Pattern:**
+```html
+
+```
+
+**New Pattern:**
+```html
+
+```
+
+### Gradual Migration Strategy
+
+1. **Start with new forms** - Use the new pattern for all new components
+2. **Convert high-traffic areas** - Migrate frequently used forms first
+3. **Batch convert similar forms** - Group similar authorization patterns
+4. **Test thoroughly** - Verify authorization behavior matches expectations
+5. **Remove old patterns** - Clean up legacy @can/@else blocks
+
+## Testing Patterns
+
+### Component Authorization Tests
+```php
+// Test authorization integration in components
+test('input component respects authorization', function () {
+ $user = User::factory()->member()->create();
+ $application = Application::factory()->create();
+
+ // Member should see disabled input
+ $component = Livewire::actingAs($user)
+ ->test(TestComponent::class, [
+ 'canGate' => 'update',
+ 'canResource' => $application
+ ]);
+
+ expect($component->get('disabled'))->toBeTrue();
+});
+
+test('checkbox disables instantSave for unauthorized users', function () {
+ $user = User::factory()->member()->create();
+ $application = Application::factory()->create();
+
+ $component = Livewire::actingAs($user)
+ ->test(CheckboxComponent::class, [
+ 'instantSave' => true,
+ 'canGate' => 'update',
+ 'canResource' => $application
+ ]);
+
+ expect($component->get('disabled'))->toBeTrue();
+ expect($component->get('instantSave'))->toBeFalse();
+});
+```
+
+### Integration Tests
+```php
+// Test full form authorization behavior
+test('application form respects member permissions', function () {
+ $member = User::factory()->member()->create();
+ $application = Application::factory()->create();
+
+ $this->actingAs($member)
+ ->get(route('application.edit', $application))
+ ->assertSee('disabled')
+ ->assertDontSee('Save Configuration');
+});
+```
+
+## Best Practices
+
+### Consistent Gate Usage
+- Use `update` for configuration changes
+- Use `deploy` for operational actions
+- Use `view` for read-only access
+- Use `delete` for destructive actions
+
+### Resource Context
+- Always pass the specific resource being acted upon
+- Use team context for creation permissions
+- Consider nested resource relationships
+
+### Error Handling
+- Provide clear feedback for disabled components
+- Use helper text to explain permission requirements
+- Consider tooltips for disabled buttons
+
+### Performance
+- Authorization checks are cached per request
+- Use eager loading for resource relationships
+- Consider query optimization for complex permissions
+
+## Common Patterns
+
+### Application Configuration Forms
+```html
+
+
+...
+
+Save
+```
+
+### Server Management Forms
+```html
+
+
+...
+Delete Server
+```
+
+### Resource Creation Forms
+```html
+
+
+...
+Create Application
+```
\ No newline at end of file
diff --git a/.cursor/rules/frontend-patterns.mdc b/.cursor/rules/frontend-patterns.mdc
index 45888eee4..663490d3b 100644
--- a/.cursor/rules/frontend-patterns.mdc
+++ b/.cursor/rules/frontend-patterns.mdc
@@ -1,6 +1,6 @@
---
-description:
-globs:
+description: Livewire components, Alpine.js patterns, Tailwind CSS, and enhanced form components
+globs: app/Livewire/**/*.php, resources/views/**/*.blade.php, resources/js/**/*.js, resources/css/**/*.css
alwaysApply: false
---
# Coolify Frontend Architecture & Patterns
@@ -230,6 +230,41 @@ class ServerList extends Component
- **Asset bundling** and compression
- **CDN integration** for static assets
+## Enhanced Form Components
+
+### Built-in Authorization System
+Coolify features **enhanced form components** with automatic authorization handling:
+
+```html
+
+
+
+Save
+
+
+@can('update', $application)
+
+@else
+
+@endcan
+```
+
+### Authorization Parameters
+```php
+// Available on all form components (Input, Select, Textarea, Checkbox, Button)
+public ?string $canGate = null; // Gate name: 'update', 'view', 'deploy', 'delete'
+public mixed $canResource = null; // Resource model instance to check against
+public bool $autoDisable = true; // Automatically disable if no permission (default: true)
+```
+
+### Benefits
+- **90% code reduction** for authorization-protected forms
+- **Consistent security** across all form components
+- **Automatic disabling** for unauthorized users
+- **Smart behavior** (disables instantSave on checkboxes for unauthorized users)
+
+For complete documentation, see **[form-components.mdc](mdc:.cursor/rules/form-components.mdc)**
+
## Form Handling Patterns
### Livewire Forms
diff --git a/.cursor/rules/project-overview.mdc b/.cursor/rules/project-overview.mdc
index 2be9f31e6..b615a5d3e 100644
--- a/.cursor/rules/project-overview.mdc
+++ b/.cursor/rules/project-overview.mdc
@@ -1,6 +1,6 @@
---
-description:
-globs:
+description: High-level project mission, core concepts, and architectural overview
+globs: README.md, CONTRIBUTING.md, CHANGELOG.md, *.md
alwaysApply: false
---
# Coolify Project Overview
diff --git a/.cursor/rules/security-patterns.mdc b/.cursor/rules/security-patterns.mdc
index 9cdbcaa0c..104dbd71b 100644
--- a/.cursor/rules/security-patterns.mdc
+++ b/.cursor/rules/security-patterns.mdc
@@ -1,7 +1,7 @@
---
-description:
-globs:
-alwaysApply: false
+description: Security architecture, authentication, authorization patterns, and enhanced form component security
+globs: app/Policies/*.php, app/View/Components/Forms/*.php, app/Http/Middleware/*.php, resources/views/**/*.blade.php
+alwaysApply: true
---
# Coolify Security Architecture & Patterns
@@ -63,6 +63,170 @@ class User extends Authenticatable
## Authorization & Access Control
+### Enhanced Form Component Authorization System
+
+Coolify now features a **centralized authorization system** built into all form components (`Input`, `Select`, `Textarea`, `Checkbox`, `Button`) that automatically handles permission-based UI control.
+
+#### Component Authorization Parameters
+```php
+// Available on all form components
+public ?string $canGate = null; // Gate name (e.g., 'update', 'view', 'delete')
+public mixed $canResource = null; // Resource to check against (model instance)
+public bool $autoDisable = true; // Auto-disable if no permission (default: true)
+```
+
+#### Smart Authorization Logic
+```php
+// Automatic authorization handling in component constructor
+if ($this->canGate && $this->canResource && $this->autoDisable) {
+ $hasPermission = Gate::allows($this->canGate, $this->canResource);
+
+ if (! $hasPermission) {
+ $this->disabled = true;
+ // For Checkbox: also disables instantSave
+ }
+}
+```
+
+#### Usage Examples
+
+**✅ Recommended Pattern (Single Line):**
+```html
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Save Configuration
+
+```
+
+**❌ Old Pattern (Verbose, Deprecated):**
+```html
+
+@can('update', $application)
+
+ Save
+@else
+
+@endcan
+```
+
+#### Advanced Usage with Custom Control
+
+**Custom Authorization Logic:**
+```html
+
+
+```
+
+**Multiple Permission Checks:**
+```html
+
+
+```
+
+#### Supported Gates and Resources
+
+**Common Gates:**
+- `view` - Read access to resource
+- `update` - Modify resource configuration
+- `deploy` - Deploy/restart resource
+- `delete` - Remove resource
+- `createAnyResource` - Create new resources
+
+**Resource Types:**
+- `Application` - Application instances
+- `Service` - Docker Compose services
+- `Server` - Server instances
+- `Project` - Project containers
+- `Environment` - Environment contexts
+- `Database` - Database instances
+
+#### Benefits
+
+**🔥 Massive Code Reduction:**
+- **90% less code** for authorization-protected forms
+- **Single line** instead of 6-12 lines per form element
+- **No more @can/@else blocks** cluttering templates
+
+**🛡️ Consistent Security:**
+- **Unified authorization logic** across all form components
+- **Automatic disabling** for unauthorized users
+- **Smart behavior** (like disabling instantSave on checkboxes)
+
+**🎨 Better UX:**
+- **Consistent disabled styling** across all components
+- **Proper visual feedback** for restricted access
+- **Clean, professional interface**
+
+#### Implementation Details
+
+**Component Enhancement:**
+```php
+// Enhanced in all form components
+use Illuminate\Support\Facades\Gate;
+
+public function __construct(
+ // ... existing parameters
+ public ?string $canGate = null,
+ public mixed $canResource = null,
+ public bool $autoDisable = true,
+) {
+ // Handle authorization-based disabling
+ if ($this->canGate && $this->canResource && $this->autoDisable) {
+ $hasPermission = Gate::allows($this->canGate, $this->canResource);
+
+ if (! $hasPermission) {
+ $this->disabled = true;
+ // For Checkbox: $this->instantSave = false;
+ }
+ }
+}
+```
+
+**Backward Compatibility:**
+- All existing form components continue to work unchanged
+- New authorization parameters are optional
+- Legacy @can/@else patterns still function but are discouraged
+
### Team-Based Multi-Tenancy
- **[Team.php](mdc:app/Models/Team.php)** - Multi-tenant organization structure (8.9KB, 308 lines)
- **[TeamInvitation.php](mdc:app/Models/TeamInvitation.php)** - Secure team collaboration
diff --git a/.cursor/rules/self_improve.mdc b/.cursor/rules/self_improve.mdc
index 40b31b6ea..2bebaec75 100644
--- a/.cursor/rules/self_improve.mdc
+++ b/.cursor/rules/self_improve.mdc
@@ -31,19 +31,6 @@ alwaysApply: true
- Related rules have been updated
- Implementation details have changed
-- **Example Pattern Recognition:**
- ```typescript
- // If you see repeated patterns like:
- const data = await prisma.user.findMany({
- select: { id: true, email: true },
- where: { status: 'ACTIVE' }
- });
-
- // Consider adding to [prisma.mdc](mdc:.cursor/rules/prisma.mdc):
- // - Standard select fields
- // - Common where conditions
- // - Performance optimization patterns
- ```
- **Rule Quality Checks:**
- Rules should be actionable and specific
diff --git a/.cursor/rules/technology-stack.mdc b/.cursor/rules/technology-stack.mdc
index 81a2e3bb3..2119a2ff1 100644
--- a/.cursor/rules/technology-stack.mdc
+++ b/.cursor/rules/technology-stack.mdc
@@ -1,6 +1,6 @@
---
-description:
-globs:
+description: Complete technology stack, dependencies, and infrastructure components
+globs: composer.json, package.json, docker-compose*.yml, config/*.php
alwaysApply: false
---
# Coolify Technology Stack
diff --git a/.cursor/rules/testing-patterns.mdc b/.cursor/rules/testing-patterns.mdc
index c3eabe09f..010b76544 100644
--- a/.cursor/rules/testing-patterns.mdc
+++ b/.cursor/rules/testing-patterns.mdc
@@ -1,6 +1,6 @@
---
-description:
-globs:
+description: Testing strategies with Pest PHP, Laravel Dusk, and quality assurance patterns
+globs: tests/**/*.php, database/factories/*.php
alwaysApply: false
---
# Coolify Testing Architecture & Patterns
diff --git a/CLAUDE.md b/CLAUDE.md
index 4ab6b748d..5f9b96718 100644
--- a/CLAUDE.md
+++ b/CLAUDE.md
@@ -29,21 +29,22 @@ Only run artisan commands inside "coolify" container when in development.
### Technology Stack
- **Backend**: Laravel 12 (PHP 8.4)
-- **Frontend**: Livewire + Alpine.js + Tailwind CSS
-- **Database**: PostgreSQL 15
-- **Cache/Queue**: Redis 7
+- **Frontend**: Livewire 3.5+ with Alpine.js and Tailwind CSS 4.1+
+- **Database**: PostgreSQL 15 (primary), Redis 7 (cache/queues)
- **Real-time**: Soketi (WebSocket server)
- **Containerization**: Docker & Docker Compose
+- **Queue Management**: Laravel Horizon
### Key Components
#### Core Models
-- `Application` - Deployed applications with Git integration
-- `Server` - Remote servers managed by Coolify
-- `Service` - Docker Compose services
+- `Application` - Deployed applications with Git integration (74KB, highly complex)
+- `Server` - Remote servers managed by Coolify (46KB, complex)
+- `Service` - Docker Compose services (58KB, complex)
- `Database` - Standalone database instances (PostgreSQL, MySQL, MongoDB, Redis, etc.)
- `Team` - Multi-tenancy support
- `Project` - Grouping of environments and resources
+- `Environment` - Environment isolation (staging, production, etc.)
#### Job System
- Uses Laravel Horizon for queue management
@@ -67,27 +68,139 @@ Only run artisan commands inside "coolify" container when in development.
- `app/Jobs/` - Background queue jobs
- `app/Livewire/` - Frontend components (full-stack with Livewire)
- `app/Models/` - Eloquent models
+- `app/Rules/` - Custom validation rules
+- `app/Http/Middleware/` - HTTP middleware
- `bootstrap/helpers/` - Helper functions for various domains
- `database/migrations/` - Database schema evolution
+- `routes/` - Application routing (web.php, api.php, webhooks.php, channels.php)
+- `resources/views/livewire/` - Livewire component views
+- `tests/` - Pest tests (Feature and Unit)
## Development Guidelines
-### Code Organization
-- Use Actions pattern for complex business logic
-- Livewire components handle UI and user interactions
-- Jobs handle asynchronous operations
-- Traits provide shared functionality (e.g., `ExecuteRemoteCommand`)
+### Frontend Philosophy
+Coolify uses a **server-side first** approach with minimal JavaScript:
+- **Livewire** for server-side rendering with reactive components
+- **Alpine.js** for lightweight client-side interactions
+- **Tailwind CSS** for utility-first styling with dark mode support
+- **Enhanced Form Components** with built-in authorization system
+- Real-time updates via WebSocket without page refreshes
-### Testing
-- Uses Pest for testing framework
-- Tests located in `tests/` directory
+### Livewire Component Structure
+- Components located in `app/Livewire/`
+- Views in `resources/views/livewire/`
+- State management handled on the server
+- Use wire:model for two-way data binding
+- Dispatch events for component communication
-### Deployment and Docker
-- Applications are deployed using Docker containers
-- Configuration generated dynamically based on application settings
-- Supports multiple deployment targets and proxy configurations
+### Code Organization Patterns
+- **Actions Pattern**: Use Actions for complex business logic (`app/Actions/`)
+- **Livewire Components**: Handle UI and user interactions
+- **Jobs**: Handle asynchronous operations
+- **Traits**: Provide shared functionality (e.g., `ExecuteRemoteCommand`)
+- **Helper Functions**: Domain-specific helpers in `bootstrap/helpers/`
-## Cloud instance
-We have a cloud instance of Coolify, a hosted Coolify.
-This consists of 2 horizon worker servers.
-It has thousands of servers connected, thousands of users, so make sure develop features to that usecase.
\ No newline at end of file
+### Database Patterns
+- Use Eloquent ORM for database interactions
+- Implement relationships properly (HasMany, BelongsTo, etc.)
+- Use database transactions for critical operations
+- Leverage query scopes for reusable queries
+- Apply indexes for performance-critical queries
+
+### Security Best Practices
+- **Authentication**: Multi-provider auth via Laravel Fortify & Sanctum
+- **Authorization**: Team-based access control with policies and enhanced form components
+- **Form Component Security**: Built-in `canGate` authorization system for UI components
+- **API Security**: Token-based auth with IP allowlisting
+- **Secrets Management**: Never log or expose sensitive data
+- **Input Validation**: Always validate user input with Form Requests or Rules
+- **SQL Injection Prevention**: Use Eloquent ORM or parameterized queries
+
+### API Development
+- RESTful endpoints in `routes/api.php`
+- Use API Resources for response formatting
+- Implement rate limiting for public endpoints
+- Version APIs when making breaking changes
+- Document endpoints with clear examples
+
+### Testing Strategy
+- **Framework**: Pest for expressive testing
+- **Structure**: Feature tests for user flows, Unit tests for isolated logic
+- **Coverage**: Test critical paths and edge cases
+- **Mocking**: Use Laravel's built-in mocking for external services
+- **Database**: Use RefreshDatabase trait for test isolation
+
+### Routing Conventions
+- Group routes by middleware and prefix
+- Use route model binding for cleaner controllers
+- Name routes consistently (resource.action)
+- Implement proper HTTP verbs (GET, POST, PUT, DELETE)
+
+### Error Handling
+- Use `handleError()` helper for consistent error handling
+- Log errors with appropriate context
+- Return user-friendly error messages
+- Implement proper HTTP status codes
+
+### Performance Considerations
+- Use eager loading to prevent N+1 queries
+- Implement caching for frequently accessed data
+- Queue heavy operations
+- Optimize database queries with proper indexes
+- Use chunking for large data operations
+
+### Code Style
+- Follow PSR-12 coding standards
+- Use Laravel Pint for automatic formatting
+- Write descriptive variable and method names
+- Keep methods small and focused
+- Document complex logic with clear comments
+
+## Cloud Instance Considerations
+
+We have a cloud instance of Coolify (hosted version) with:
+- 2 Horizon worker servers
+- Thousands of connected servers
+- Thousands of active users
+- High-availability requirements
+
+When developing features:
+- Consider scalability implications
+- Test with large datasets
+- Implement efficient queries
+- Use queues for heavy operations
+- Consider rate limiting and resource constraints
+- Implement proper error recovery mechanisms
+
+## Important Reminders
+
+- Always run code formatting: `./vendor/bin/pint`
+- Test your changes: `./vendor/bin/pest`
+- Check for static analysis issues: `./vendor/bin/phpstan`
+- Use existing patterns and helpers
+- Follow the established directory structure
+- Maintain backward compatibility
+- Document breaking changes
+- Consider performance impact on large-scale deployments
+
+## Additional Documentation
+
+For more detailed guidelines and patterns, refer to the `.cursor/rules/` directory:
+
+### Architecture & Patterns
+- [Application Architecture](.cursor/rules/application-architecture.mdc) - Detailed application structure
+- [Deployment Architecture](.cursor/rules/deployment-architecture.mdc) - Deployment patterns and flows
+- [Database Patterns](.cursor/rules/database-patterns.mdc) - Database design and query patterns
+- [Frontend Patterns](.cursor/rules/frontend-patterns.mdc) - Livewire and Alpine.js patterns
+- [API & Routing](.cursor/rules/api-and-routing.mdc) - API design and routing conventions
+
+### Development & Security
+- [Development Workflow](.cursor/rules/development-workflow.mdc) - Development best practices
+- [Security Patterns](.cursor/rules/security-patterns.mdc) - Security implementation details
+- [Form Components](.cursor/rules/form-components.mdc) - Enhanced form components with authorization
+- [Testing Patterns](.cursor/rules/testing-patterns.mdc) - Testing strategies and examples
+
+### Project Information
+- [Project Overview](.cursor/rules/project-overview.mdc) - High-level project structure
+- [Technology Stack](.cursor/rules/technology-stack.mdc) - Detailed tech stack information
+- [Cursor Rules Guide](.cursor/rules/cursor_rules.mdc) - How to maintain cursor rules
\ No newline at end of file