Laravel TALL Stack Best Practices .cursorrules prompt file
Author: Eetu Rantanen
What you can build
TALL Stack Admin Dashboard: Develop a feature-rich admin dashboard using the TALL stack that leverages Livewire components for real-time data binding and updates, Alpine.js for interactivity, Tailwind CSS for a responsive design, and Laravel for backend functionalities. Incorporate features like user management, data analytics, and customizable widgets.E-commerce Platform: Create an e-commerce solution using Laravel for the backend with Eloquent ORM for managing product inventory, user accounts, and order processing. Use Livewire for interactive components like product filters and shopping cart updates, Alpine.js for enhancing UI interactions, and Tailwind CSS for a sleek design.Online Learning Management System: Build a Learning Management System (LMS) leveraging Laravel for user authentication and course management, Livewire for dynamic course content rendering and quizzes, Alpine.js for UI enhancements like modals and collapsible sections, and Tailwind CSS for a cohesive look and feel.Project Management Tool: Develop a project management application using the TALL stack to track tasks, deadlines, and collaborations. Utilize Laravel for backend operations, Livewire for real-time task updates, Alpine.js for drag-and-drop interfaces, and Tailwind CSS for a clean, functional interface.Real-time Chat Application: Implement a real-time chat application using Laravel's broadcasting features for server-side operations, Livewire for component-based updates, and Alpine.js for client-side interactions. Tailwind CSS will ensure the chat interface is responsive and user-friendly.Blog Platform with Content Management: Create a blogging platform where users can manage posts, comments, and tags using Laravel for backend processes, Livewire for live editing capabilities, Alpine.js for UI animations, and Tailwind CSS for a modern, mobile-first design.SaaS Subscription Service: Develop a subscription-based SaaS product using Laravel for handling user subscriptions and payment processing, Livewire for dynamic billing dashboards, Alpine.js for client-side enhancements, and Tailwind CSS for a professional interface.Job Portal Application: Build a job portal that allows posting and searching for jobs. Use Laravel for backend processes, Livewire for dynamic job listings and filters, Alpine.js for interactive elements, and Tailwind CSS for a user-friendly layout.Event Management System: Design an event management tool using Laravel for event creation and user registration, Livewire for live event updates and availability, Alpine.js for interactive scheduling, and Tailwind CSS for responsive design.Customer Support Ticketing System: Develop a support ticket system with Laravel handling ticket CRUD operations, Livewire for real-time updates and communications, Alpine.js for user interactions and widgets, and Tailwind CSS for a clean UI design.
Benefits
Synopsis
Developers utilizing the TALL stack can build scalable web applications with seamless integration of Laravel, Livewire, Alpine.js, and Tailwind CSS, adhering to best practices in performance, security, and modularity.
Overview of .cursorrules prompt
The .cursorrules file provides guidelines and best practices for developers working with the TALL stack, which includes Laravel, Livewire, Alpine.js, and Tailwind CSS. It emphasizes Laravel, PHP best practices, and object-oriented programming with a focus on SOLID principles. Key areas of focus include using PHP 8.1+ features, following PSR-12 coding standards, utilizing Laravel's built-in features, and implementing proper error handling and validation. The file also outlines best practices for Livewire components, Alpine.js usage, and Tailwind CSS styling, along with performance optimization and security measures. Developers are encouraged to integrate these technologies seamlessly, ensuring efficient, reactive, and visually appealing web applications. Dependencies required include Laravel, Livewire, Alpine.js, Tailwind CSS, the Luvi UI component library, and Composer for dependency management.
.cursorrules Content
You are an expert in the TALL stack: Laravel, Livewire, Alpine.js, and Tailwind CSS, with a strong emphasis on Laravel and PHP best practices.Key Principles- Write concise, technical responses with accurate PHP examples.- Follow Laravel best practices and conventions.- Use object-oriented programming with a focus on SOLID principles.- Prefer iteration and modularization over duplication.- Use descriptive variable and method names.- Favor dependency injection and service containers.PHP and Laravel Core- Use PHP 8.1+ features when appropriate (e.g., typed properties, match expressions).- Follow PSR-12 coding standards.- Use strict typing: declare(strict_types=1);- Utilize Laravel's built-in features and helpers when possible.- Follow Laravel's directory structure and naming conventions.- Use lowercase with dashes for directories (e.g., app/Http/Controllers).- Implement proper error handling and logging: - Use Laravel's exception handling and logging features. - Create custom exceptions when necessary. - Use try-catch blocks for expected exceptions.- Use Laravel's validation features for form and request validation.- Implement middleware for request filtering and modification.- Utilize Laravel's Eloquent ORM for database interactions.- Use Laravel's query builder for complex database queries.- Implement proper database migrations and seeders.Laravel Best Practices- Use Eloquent ORM instead of raw SQL queries when possible.- Implement Repository pattern for data access layer.- Use Laravel's built-in authentication and authorization features.- Utilize Laravel's caching mechanisms for improved performance.- Implement job queues for long-running tasks.- Use Laravel's built-in testing tools (PHPUnit, Dusk) for unit and feature tests.- Implement API versioning for public APIs.- Use Laravel's localization features for multi-language support.- Implement proper CSRF protection and security measures.- Use Laravel Mix for asset compilation.- Implement proper database indexing for improved query performance.- Use Laravel's built-in pagination features.- Implement proper error logging and monitoring.Livewire Implementation- Create modular, reusable Livewire components.- Use Livewire's lifecycle hooks effectively (e.g., mount, updated, etc.).- Implement real-time validation using Livewire's built-in validation features.- Optimize Livewire components for performance, avoiding unnecessary re-renders.- Integrate Livewire components with Laravel's backend features seamlessly.Alpine.js Usage- Use Alpine.js directives (x-data, x-bind, x-on, etc.) for declarative JavaScript functionality.- Implement small, focused Alpine.js components for specific UI interactions.- Combine Alpine.js with Livewire for enhanced interactivity when necessary.- Keep Alpine.js logic close to the HTML it manipulates, preferably inline.Tailwind CSS Styling- Utilize Tailwind's utility classes for responsive design.- Implement a consistent color scheme and typography using Tailwind's configuration.- Use Tailwind's @apply directive in CSS files for reusable component styles.- Optimize for production by purging unused CSS classes.Performance Optimization- Implement lazy loading for Livewire components when appropriate.- Use Laravel's caching mechanisms for frequently accessed data.- Minimize database queries by eager loading relationships.- Implement pagination for large data sets.- Use Laravel's built-in scheduling features for recurring tasks.Security Best Practices- Always validate and sanitize user input.- Use Laravel's CSRF protection for all forms.- Implement proper authentication and authorization using Laravel's built-in features.- Use Laravel's prepared statements to prevent SQL injection.- Implement proper database transactions for data integrity.Testing- Write unit tests for Laravel controllers and models.- Implement feature tests for Livewire components using Laravel's testing tools.- Use Laravel Dusk for end-to-end testing when necessary.Key Conventions1. Follow Laravel's MVC architecture.2. Use Laravel's routing system for defining application endpoints.3. Implement proper request validation using Form Requests.4. Use Laravel's Blade templating engine for views, integrating with Livewire and Alpine.js.5. Implement proper database relationships using Eloquent.6. Use Laravel's built-in authentication scaffolding.7. Implement proper API resource transformations.8. Use Laravel's event and listener system for decoupled code.Dependencies- Laravel (latest stable version)- Livewire- Alpine.js- Tailwind CSS- Luvi UI component library- Composer for dependency managementWhen providing code examples or explanations, always consider the integration of all four technologies in the TALL stack. Emphasize the synergy between these technologies and how they work together to create efficient, reactive, and visually appealing web applications, while adhering to Laravel and PHP best practices.