Introduction

Novus - Modern CMS for your Laravel application

Novus is a modern, content management system (CMS) designed specifically for Laravel applications. It provides a robust, feature-rich platform for creating, managing, and publishing digital content with a focus on developer experience and content flexibility.


Overview

Novus combines the power of Laravel and Inertia.js with a sleek, React-based Shadcn UI components to deliver a seamless developer experience. It’s designed to stay out of your way — once installed and configured, Novus operates on its own path, without interfering with your application’s core logic.

Key Features

  • Modern Admin Interface: Built with React, TypeScript, and Tailwind CSS for an intuitive user experience
  • Media Management: Comprehensive asset management with image optimization and thumbnails
  • SEO Tools: Built-in SEO features for optimizing content visibility
  • Analytics Integration: Connect with Google Analytics to track performance metrics
  • AI Assistance: Optional AI-powered content enhancement features

Quick start

Get Novus up and running in your Laravel application with just a few simple steps.

Installing the package

Novus can be installed via Composer. It requires Laravel 11+ and PHP 8.2+.

composer require codemystify/novus

After installing the package, you can use the built-in installation command to set up Novus:

php artisan novus:prod

This command will:

  • Publish the configuration file
  • Publish migrations
  • Run the migrations (with your confirmation)
  • Set up frontend assets
  • Build the frontend assets (unless you use the --no-build option)

Additional options:

  • --force Overwrite any existing assets or config
  • --no-build: Skip the frontend build process

Creating your first author

Novus comes with a command to create your first administrative user:

php artisan novus:create-author

This interactive command will prompt you for the author's name, email, and password, and set up the first user with administrative privileges.

Security First!

Make sure to use a strong, unique password for your admin account. The admin user has full access to all content and settings within Novus CMS.

Configuring the routes

Novus automatically registers its routes during the package bootstrapping process. By default, the CMS will be accessible at /novus. You can customize this in the configuration file.

// config/novus.php
return [
    // Route configuration
    'path' => env('NOVUS_PATH', 'novus'),
    'domain' => env('NOVUS_DOMAIN'),
    'middleware_group' => [],

    // Storage configuration
    'storage_disk' => env('NOVUS_STORAGE_DISK', 'public'),
    'storage_path' => env('NOVUS_STORAGE_PATH', 'novus-media'),

    // Access control
    'access_control' => \Shah\Novus\Services\Auth\AccessResolver::class,

    // Media settings
    'image_sizes' => [
        'thumbnail' => [
            'width' => 150,
            'height' => 150,
        ],
        'medium' => [
            'width' => 300,
            'height' => 300,
        ],
        'large' => [
            'width' => 1024,
            'height' => 1024,
        ],
    ],

    // Additional configurations...
];

Custom Domain

You can also configure Novus to run on a specific domain by setting the domain option in the configuration file. This is useful if you want to serve your CMS from a subdomain like admin.yoursite.com.


Content Management

Novus provides comprehensive tools for managing all aspects of your content.

Posts

The posts module allows you to create, edit, and manage blog posts or articles. Each post can:

  • Be saved as a draft or published immediately
  • Have a featured image
  • Be organized with categories and tags
  • Include formatted content using the rich text editor
  • Have SEO metadata for better search engine visibility

To create a new post, navigate to the Posts section and click "New Post". The editor supports rich formatting, embedding images, and more.

Categories and Tags

Organize your content with a flexible category system:

  • Categories can have sub-categories
  • Each post can belong to multiple categories
  • Categories have their own SEO settings

Tags provide another way to classify your content:

  • Create tags on-the-fly while creating posts
  • Manage all tags from the dedicated tag management interface
  • Import and export tags for bulk operations

Media Library

The media library allows you to upload, organize, and reuse images and other media files:

  • Drag-and-drop file uploads
  • Automatic thumbnail generation
  • Media organization with collections
  • Metadata management for images (alt text, title, etc.)
  • Search and filter capabilities