Nebula is a minimalistic and easy to use administration tool for Laravel applications, made with Laravel, Alpine.js, and Tailwind CSS.

Overview

Nebula

Latest Version on Packagist Total Downloads

Nebula is a minimalistic and easy to use administration tool for Laravel applications, made with Laravel, Alpine.js, and Tailwind CSS.

Nebula makes you write less code and lets you focus more on the product by lessening the code required to build CRUD interfaces and metrics. Nebula offers a rich CLI and a set of metrics and form fields that does the heavy lifting for you.

This is the pre 1.0.0 version, the API might be subject to change. Please be careful with using this version in production apps.

Join our Discord if you have any questions or would like to be an active member in the Nebula community.

Installation

You can install the package via composer:

composer require larsklopstra/nebula

Usage

Please read the documentation at nebulapackage.com.

Changelog

Please see CHANGELOG for more information what has changed recently.

Contributing

Please see CONTRIBUTING for details.

Security

If you discover any security related issues, please email [email protected] instead of using the issue tracker.

Credits

License

The MIT License (MIT). Please see License File for more information.

Laravel Package Boilerplate

This package was generated using the Laravel Package Boilerplate.

Comments
  • LogicException: configuration files are not serializable.

    LogicException: configuration files are not serializable.

    When I try to execute the command php artisan optimize in production environments, I get a logical exception because the configuration offered by this package is not serializable.

    Output

    LogicException 
    
      Your configuration files are not serializable.
    
      at vendor/laravel/framework/src/Illuminate/Foundation/Console/ConfigCacheCommand.php:71
         67▕             require $configPath;
         68▕         } catch (Throwable $e) {
         69▕             $this->files->delete($configPath);
         70▕ 
      ➜  71▕             throw new LogicException('Your configuration files are not serializable.', 0, $e);
         72▕         }
         73▕ 
         74▕         $this->info('Configuration cached successfully!');
         75▕     }
    
      1   bootstrap/cache/config.php:781
          Error::("Call to undefined method App\Nebula\Resources\UserResource::__set_state()")
    
          +27 vendor frames 
      29  artisan:37
          Illuminate\Foundation\Console\Kernel::handle()
    

    This is probably due to the fact that we store resource instances, dashboards, etc. in the configuration file. As a possible solution, we could give the user the option to assign namespaces as follows.

    // config/nebula.php
    
    return [
        'resources' => [
            UserResource::class,
        ],
    
        'dashboards' => [
           UserDashboard::class,
        ],
    ];
    

    I could try to solve it, what do you think?

    discussion 
    opened by gregorip02 7
  • Field creation

    Field creation

    Refactor the make() method so it takes the label first and accepts a column:

    Input::make('Name', 'column')

    name is required and the column is optional

    hacktoberfest improvement 
    opened by Larsklopstra 4
  • clean up service provider

    clean up service provider

    Fixes #32

    I added the 4 route resolvers to the folder, as it was discussed in the issue; each one with a static method: bind

    and the NebulaServiceProvider calls these methods in its boot method.

    opened by johnnyfekete 3
  • feature: custom pages / tools

    feature: custom pages / tools

    This PR enables users to build and register custom pages within the Nebula panel.

    It introduces a new php artisan nebula:page command that will generate a new class in app/Nebula/Pages, as well as a view under resources/views/nebula/pages.

    To register a new page, you follow the same pattern as the dashboards and resources, adding new PageClass under the nebula.pages configuration option.

    The idea for these pages is similar to Laravel Nova's custom tools. Have a uniform API that allows developers to build third-party extensions for Nebula.

    I've named them pages because using the term Tool felt too similar to Nova, but I'm happy to change this.

    It's also worth noting that the developer doesn't need to use the nebula::layouts.shell view in their pages view, since it will automatically be wrapped in it. Instead, they only need to worry about what their page will display.

    The page also moves away from the singularName() and pluralName() pattern that the resources & dashboards follow because it didn't make much sense here. Instead the NebulaPage::name() method will be used for displaying the menu item and the page title.

    For the URL slug / route binding, a new NebulaPage::slug() method has been introduced which will be used to match the page.

    Happy to hear thoughts and ideas on this - this was the simplest implementation after all. 🤗

    opened by ryangjchandler 3
  • Laravel 8

    Laravel 8

    Hi, all features is compatible with Laravel 8 ? I tried to create a new project, following all the steps in the documentation, but when the user's CRUD is accessed it returns the error: image

    and when I try to insert a new record: image

    Thanks in advance

    opened by vitormicillo 2
  • Accessing UserResource simply give 404

    Accessing UserResource simply give 404

    Hi

    Just tried to install Nebula using the the instructions: https://nebulapackage.com/installation

    I then created a new 'UserResource' Registered the resource in the config file

    http://test.test/nebula/resources/users

    simply return 404

    opened by rabol 2
  • feature(dashboards): custom views

    feature(dashboards): custom views

    This PR adds a couple of new methods to the NebulaDashboard class:

    • NebulaDashboard::display() - similar to NebulaPage::display(), is the parent method used for calling the underlying render method.

    • NebulaDashboard::render() - used to change the view that a dashboard returns, allowing for custom views.

    • NebulaDashboard::displayMetrics() - used to render the metrics, using the default view provided by Nebula.

    These changes will allow developers to change the view that is used for the dashboard, greatly improving the customisation, whilst still being able to render the default metrics view.

    opened by ryangjchandler 2
  • feature: manual register methods

    feature: manual register methods

    This PR adds 6 new methods to a brand new Nebula class in the root of the package. This class will act as the central source of truth for resources, dashboards and now pages.

    Nebula::resources() - used to register an array of resources:

    Nebula::resources([
        ExampleResource::class,
    ]);
    

    Nebula::availableResources() - used to retrieve the array of available / registered resources.

    There are equivalent methods for dashboards and pages too. This will allow developers to manually register resources inside of a service providers boot method, and will also create a new place for more filtering based on permissions, etc in the future.

    opened by ryangjchandler 2
  • Option for overriding default views

    Option for overriding default views

    This PR provides option for overriding default views.

    User will be able to publish the view files to resources/views/vendor/nebula and override them as they like.

    opened by Hasnayeen 2
  • Disable Create/Update/Delete Resource

    Disable Create/Update/Delete Resource

    I want to make some of my resources only viewable, but don't allow create, edit or delete them. So I need only basic index view. How can I achieve this?

    opened by plakhin 1
  • PageController doesn't exist

    PageController doesn't exist

    Just got a BindingResolutionError because the PageController doesn't exist while it's being used in routes/web.php. I thought it was just an issue on my dev environment, but it doesn't seem to exist on the master branch either.

    opened by zeo 1
  • Wrong examples in documentation.

    Wrong examples in documentation.

    You have done a very good job.

    There are errors in the documentation, for example, there is no class named InputField, it must be Input::make(). Also php artisan make:filter WhereNameStartsWithAFilter this command does not exist "Command 'make: filter' is not defined." it must be php artisan nebula:filter FilterName. Example in resources page.

    opened by ArtMin96 0
  • Please consider upgrading to support php 8

    Please consider upgrading to support php 8

    [InvalidArgumentException]
    Package larsklopstra/nebula has a PHP requirement incompatible with your PHP version, PHP extensions and Composer version

    Suggestion:

    "require": { "php": "^7.4|^8.0", ... }

    opened by bauersfeld 0
  • Attribute Field

    Attribute Field

    How to append custom attributes to field? For example on User model, I have field first_name and last_name. And i make custom attribute called full_name

    // App/Model/User.php
    public function getFullNameAttribute(){
    return $this->first_name.' '.$this->last_name;
    }
    
    opened by axmad386 1
  • Able to access dashboard with guest access

    Able to access dashboard with guest access

    I'm able to access the dashboard at /nebula with the NebulaEmailAuthStrategy enabled, while not being logged in at all (also tried this on incognito).

    Surely this shouldn't be the case.

    bug 
    opened by zeo 1
Releases(v0.4.2)
Owner
Nebula
Nebula is a minimalistic and easy to use administration tool for Laravel applications, made with Laravel, Alpine.js, and Tailwind CSS.
Nebula
It's like React for PHP. Powered by Laravel, Livewire, Tailwind, & Alpine.

Tailwire It's like React for PHP. Powered by Laravel, Livewire, Tailwind, & Alpine. Features: Use a custom view component class namespace Declare rout

null 5 Dec 12, 2021
🔌 Convert Bootstrap CSS code to Tailwind CSS code

Tailwindo This tool can convert Your CSS framework (currently Bootstrap) classes in HTML/PHP (any of your choice) files to equivalent Tailwind CSS cla

Awssat 923 Sep 23, 2022
A minimalistic event calendar Tool for Laravel's Nova 4

Event calendar for Laravel Nova 4 An event calendar that displays Nova resources or other time-related data in your Nova 4 project on a monthly calend

wdelfuego 32 Sep 3, 2022
An open-source Laravel library for building high-quality, accessible applications and administration dashboards.

Arpite An open-source Laravel library for building high-quality, accessible applications and administration dashboards. Built using Inertia.js, React,

Arpite 3 Jul 5, 2022
Free and open-source Laravel admin dashboard interface built with Livewire & Alpine.js based on Bootstrap 5

Volt Dashboard Laravel Free Frontend Web App for Laravel with Livewire & Alpine.js Never start a development project from scratch again. We've partner

Themesberg 191 Sep 22, 2022
Scribbl is a fast and minimalistic note-taking app built with Laravel

Scribbl is a fast and minimalistic note-taking app built with Laravel

Cam White (Jex) 4 Jul 27, 2022
Twitter clone project being developed by using PHP Laravel Framework and tailwind.css

Twits! About Twits! We, as enthusiastic learners and new developers, kicked of this project in order to improve our skills and capabilities in PhP Lar

Furkan Meraloğlu 10 Aug 29, 2022
A simple blog app where a user can signup , login, like a post , delete a post , edit a post. The app is built using laravel , tailwind css and postgres

About Laravel Laravel is a web application framework with expressive, elegant syntax. We believe development must be an enjoyable and creative experie

Nahom_zd 1 Mar 6, 2022
This package wraps up the standalone executable version of the Tailwind CSS framework for a Laravel application.

Tailwind CSS for Laravel Introduction This package wraps the standalone Tailwind CSS CLI tool. No Node.js required. Inspiration This package was inspi

Tony Messias 236 Sep 1, 2022
A premade, easy to use local development setup to be used for authoring Laravel applications

Laravel Drydock This project is a premade, easy to use local development setup to be used for authoring Laravel applications. The deliverables of this

Alexander Trauzzi 17 Feb 21, 2020
🐍 Web application made in PHP with Laravel where you can interact via API with my Snake game which is made in Python

Snake web application Project of the web application where you can interact via API with Snake game which is available to download on it. Application

Maciek Iwaniuk 1 Jul 31, 2022
CSS Exfil helper script to generate injected CSS and corresponding HTML (inspired by mike gualtieri)

The PoC-CSS Exfill Basic Keylogger First of all i was developing bot stuff and i seen attribute=value] [target=_blank] in source code of website. This

Ahsen 6 Apr 2, 2022
This package provides a console command to convert dynamic JS/CSS to static JS/CSS assets.

Laravel Nova Search This package provides a console command to convert dynamic JS/CSS to static JS/CSS assets. Requirements laravel-mix v6.0+ php 7.3+

Akki Khare 3 Jul 19, 2022
👻 It's never been easier to build and customize admin panels. Yah! yaldash is a beautifully designed administration panel for Laravel.

?? It's never been easier to build and customize admin panels. Yah! yaldash is a beautifully designed administration panel for Laravel.

Yasser A.Idrissi 392 Aug 6, 2022
Worlds (soon to be) most advanced Anime site! Featuring Administration features and everything you need for users and yourself. The successor of aniZero.

/**********************************************************************\ | _____ H33Tx & xHENAI __ 31.01.2022| |

HENAI.eu 33 Sep 19, 2022
📦 Flatpack: Administration panel for Laravel, ready to assemble.

Flatpack ?? Administration panel for Laravel, ready to assemble. Quickly create CRUD (Create, Read, Update, Delete) interfaces for your Eloquent model

Flatpack 10 Sep 16, 2022
This is an open source demo of administration panel for polymorphic relationship and SEO content

Laravel SEO admin This application demonstrates usage of polymorphic relationships described at (http://maxoffsky.com/code-blog/using-polymorphic-rela

Maksim Surguy 128 Jul 7, 2022
Email-flooder - A CLI flooder e-mail tool, made in PHP.

E-mail flooder (PHP 8.0.13) You can send emails to any server, however the request must come from Gmail. (Remember to enable less secure apps to be ab

null 2 Dec 17, 2021
Feature Switching made easy in Laravel 5

Feature Switching (made easy) for Laravel Need to wrap new features for dev and production? Use a directive in the view or alias in the controller The

Jonathan Bird 24 Jun 18, 2022