- What Laravel versions does algowrite/laravel-help-center support?
- Check the package’s `composer.json` for exact Laravel version requirements, but it’s designed for modern Laravel (likely 9.x–11.x). Always verify compatibility with your app’s version to avoid middleware or route conflicts. Test thoroughly if using newer features like Laravel 11’s app structure changes.
- Can I customize the help center’s UI without forking the package?
- Yes, the package likely uses Blade templates that can be published and overridden via `vendor:publish`. Look for `HelpCenterServiceProvider` to identify publishable assets. Extend or replace views while keeping core functionality intact. Check for hooks or events to modify behavior dynamically.
- How do I organize help articles into categories or sections?
- The package provides Eloquent models for articles and categories, so you can define hierarchical relationships (e.g., `hasMany`/`belongsTo`) in migrations or seeders. Use Laravel’s nested routes or custom middleware to enforce category-based access. Example: `Route::get('/help/{category}', [HelpController::class, 'showCategory']);`.
- Does algowrite/laravel-help-center support multi-tenancy for SaaS apps?
- The package doesn’t explicitly advertise multi-tenancy, but you can implement it manually by adding tenant IDs to models or using middleware like `spatie/laravel-tenancy`. Override the `boot()` method in the service provider to scope queries by tenant. Test thoroughly for data isolation and performance under concurrent requests.
- How do I integrate the help center with Laravel’s authentication system?
- Use Laravel’s built-in auth gates or policies to restrict access to admin features (e.g., article creation). Middleware like `auth` or `can:manage-help-center` can protect routes. For public-facing content, ensure the package’s default visibility settings align with your needs—some packages allow toggling this via config.
- Are there performance concerns with large help centers (e.g., 10K+ articles)?
- Without optimization, unindexed queries or eager-loading issues could slow down searches or listings. Audit the package’s queries for N+1 problems and add indexes to `articles` and `categories` tables. Consider caching frequent queries (e.g., `help_articles`) with Laravel’s cache or Redis. Test under load with tools like Laravel Debugbar.
- Can I add custom fields (e.g., tags, version labels) to help articles?
- Extend the `Article` model by adding custom attributes or using Laravel’s `morphToMany` for tags. Publish the package’s migrations to modify the schema, then update the UI via Blade overrides. For complex needs, consider a separate `article_metadata` pivot table. Always back up your database before altering migrations.
- How do I deploy the help center in production? Does it need queues or asset compilation?
- The package likely uses Blade templates, so compile assets with Laravel Mix or Vite before deployment. If it includes queueable jobs (e.g., for notifications), run `php artisan queue:work` in production. Check for environment-specific configs (e.g., `.env` overrides) and disable debug modes. Monitor for asset loading issues post-deploy.
- What alternatives exist if algowrite/laravel-help-center lacks features?
- For more robust solutions, consider `spatie/laravel-newsletter` (for content-heavy apps) or `knuckleswtf/highlight` (for syntax-highlighted docs). For commercial options, try **Help Scout** or **Zendesk Guide** APIs. If you need open-source flexibility, evaluate **Docuum** or **KnowledgeBase** packages, but ensure they align with your Laravel version and auth requirements.
- How do I handle user-generated help content securely (e.g., XSS, SQL injection)?
- Sanitize article content with Laravel’s `Str::of()` or HTML purifiers like `blade-ui-kit`. Use Eloquent’s query builder (not raw SQL) and enable Laravel’s CSRF protection for admin routes. For public submissions, implement moderation queues or CAPTCHA. Audit the package’s input validation—if missing, extend the `ArticleRequest` or add custom rules.