PHPackages                             novay/draft - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Framework](/categories/framework)
4. /
5. novay/draft

ActiveLaravel-package[Framework](/categories/framework)

novay/draft
===========

A starter kit for Livewire projects.

0.0.1(8mo ago)03MITPHPPHP ^8.2

Since Aug 22Pushed 8mo agoCompare

[ Source](https://github.com/novay/draft)[ Packagist](https://packagist.org/packages/novay/draft)[ RSS](/packages/novay-draft/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (1)DependenciesVersions (2)Used By (0)

🚀 Draft Starter Kit \[Edisi Pribadi\]
=====================================

[](#-draft-starter-kit-edisi-pribadi)

[![Latest Version on Packagist](https://camo.githubusercontent.com/1d51c02f4571f874dceb75ac742925b0f6d89f76468bd66bc3b753afc07ac527/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f6e6f7661792f64726166742e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/novay/draft)[![Total Downloads](https://camo.githubusercontent.com/fb478fae5b4c790e24d0368059e5d082d8daf13a08b5d2b08473fa5b44fca45d/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f6e6f7661792f64726166742e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/novay/draft)[![License](https://camo.githubusercontent.com/461a65c047c6da6c133ceb04755fcd7615bed2c40ac7dfe3ef4e66ace1e9b32b/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f6c2f6e6f7661792f64726166742e7376673f7374796c653d666c61742d737175617265)](LICENSE.md)

**Draft** ini adalah *paket siap pakai* untuk Laravel, dirancang untuk **mempercepat proses pembuatan proyek baru**. Dengan satu perintah interaktif, **Draft** akan langsung memasang dan mengonfigurasi *package-package* penting yang umumnya selalu terpakai di hampir setiap proyek Laravel yang saya mulai. Ini adalah solusi untuk menyingkat waktu *setting* yang sering berulang!

---

📑 Daftar Isi
------------

[](#-daftar-isi)

- [Fitur Utama](#-fitur-utama)
- [Cara Pasang](#-cara-pasang)
- [Cara Pakai](#-cara-pakai)
    - [Perintah Artisan](#perintah-artisan)
    - [Helper Functions](#helper-functions)
    - [Setting Manual (Bila Perlu)](#konfigurasi-manual-jika-diperlukan)
- [Publikasi File](#-publikasi-file)
- [Settings API](#-settings-api)
- [Traits](#-traits)
- [Kustomisasi](#-kustomisasi)
- [Catatan Penting](#-catatan-penting)
- [Lisensi](#-lisensi)

---

✨ Fitur Utama
-------------

[](#-fitur-utama)

- **Installer via Terminal**
    Tinggal jalanin `php artisan draft:install`, lalu bisa dipilih fitur apa saja yang akan dipasang, atau langsung pasang semua rekomendasi secara otomatis.
- **Keamanan Bawaan**

    - Proteksi **XSS** dengan [`stevebauman/purify`](https://github.com/stevebauman/purify)
    - Proteksi **SPAM** dengan [`spatie/laravel-honeypot`](https://github.com/spatie/laravel-honeypot)
    - Login tanpa *password* dengan [`spatie/laravel-passkeys`](https://github.com/spatie/laravel-passkeys)
    - Catat riwayat login dengan [`yadahan/laravel-authentication-log`](https://github.com/yadahan/laravel-authentication-log)
    - **Standarisasi sandi** dengan [`bjeavons/zxcvbn-php`](https://github.com/bjeavons/zxcvbn-php)
- **UI &amp; Fitur Admin**

    - Login sebagai user lain dengan [`lab404/laravel-impersonate`](https://github.com/404labfr/laravel-impersonate)
    - Tabel data interaktif dengan [`rappasoft/laravel-livewire-tables`](https://github.com/rappasoft/laravel-livewire-tables)
- **Utilitas Inti**

    - Sistem pengaturan aplikasi dengan helper `settings()`
    - Manajemen File di BunnyCDN [`novay/bunny-secrets`](https://github.com/novay/bunny-secrets)
    - Catatan Aktivitas (Logging) dengan [`novay/logify`](https://github.com/novay/logify)
    - Trait untuk ID unik (`RandomIds`)
    - Helper tambahan (`tglIndonesia`, `rupiah`, `greetings`, `me`)

---

⚡ Cara Pasang
-------------

[](#-cara-pasang)

Tambahkan package ini ke proyek Laravel:

```
composer require novay/draft
```

Lakukan ini:

```
php artisan draft:install
```

Pilih mode instalasi: **otomatis** (semua fitur) atau **manual** (pilih satu per satu).

Nanti proses ini akan otomatis:

- Menginstal dependensi Composer
- Memublikasikan file config, view, dan aset
- Memberikan instruksi tambahan jika ada konfigurasi manual

---

🛠 Cara Pakai
------------

[](#-cara-pakai)

### Perintah Artisan

[](#perintah-artisan)

- **`php artisan draft:install`**Jalankan pemasangan untuk instalasi awal.
- **`php artisan draft:publish {--force}`**Memublikasikan ulang *views/assets* dari package. Gunakan `--force` untuk menimpa file.

### Helper Functions

[](#helper-functions)

Draft menyediakan beberapa helper global:

```
settings('app_name', 'Default Name'); // Ambil setting aplikasi
tglIndonesia('2025-08-22');           // Format tanggal Indonesia
rupiah(15000);                        // Format angka ke Rupiah
me();                                 // Ambil user yang sedang login
greetings();                          // "Selamat Pagi / Siang / Malam"
```

### Konfigurasi Manual (Jika Diperlukan)

[](#konfigurasi-manual-jika-diperlukan)

Beberapa fitur mungkin memerlukan sedikit konfigurasi di file proyek:

1. **Middleware (`bootstrap/app.php`)**

    ```
    ->withMiddleware(function (Middleware $middleware) {
        $middleware->web([
            \Novay\Draft\Http\Middleware\PurifyInput::class,
            \Spatie\Honeypot\ProtectAgainstSpam::class,
        ]);
    })
    ```
2. **Model User (`app/Models/User.php`)**

    ```
    use Spatie\LaravelPasskeys\Models\Concerns\HasPasskeys;
    use Spatie\LaravelPasskeys\Models\Concerns\InteractsWithPasskeys;
    use Lab404\Impersonate\Models\Impersonate;
    use Yadahan\AuthenticationLog\AuthenticationLogable;

    class User extends Authenticatable implements HasPasskeys
    {
        use InteractsWithPasskeys, Impersonate, AuthenticationLogable;
    }
    ```
3. **Route (`routes/web.php`)**

    ```
    Route::impersonate();
    Route::passkeys();
    ```
4. **JavaScript (`resources/js/app.js`)**

    ```
    import './passkeys.js';
    ```

    Lalu jalankan `npm run build`.
5. **Environment (`.env`)**

    ```
    MAIL_MAILER=resend
    RESEND_API_KEY=re_123456789

    SECRET_URI="https://btekno.app"
    SECRET_KEY="your-secret-key"

    BUNNY_SECRET_FILE="bunny"
    BUNNY_SECRET_KEY="bunnyPass"
    ```
6. **Livewire Component**

    ```

    ```

---

📦 Publikasi File
----------------

[](#-publikasi-file)

Gunakan `php artisan draft:publish` untuk memublikasikan file. Anda juga bisa memilih kategori dengan **tag**:

```
php artisan vendor:publish --tag=draft-views       # Views Livewire
php artisan vendor:publish --tag=draft-views-volt  # Views Volt
php artisan vendor:publish --tag=draft-assets      # Assets JS/CSS
php artisan vendor:publish --tag=draft-config      # Config
php artisan vendor:publish --tag=draft-migrations  # Migrations
```

---

⚙️ Settings API
---------------

[](#️-settings-api)

Package ini menyediakan API untuk menyimpan dan mengambil pengaturan aplikasi yang tersimpan di database dengan dukungan **caching**.

### Metode Utama

[](#metode-utama)

MetodeDeskripsi`all($fresh = false)`Mengambil semua settings (dengan cache).`get($key, $default = null)`Mengambil 1 setting dengan fallback.`set($key, $value)`Menyimpan atau memperbarui setting.`has($key)`Mengecek apakah setting tersedia.`remove($key)`Menghapus setting tertentu.`flushCache()`Membersihkan cache settings.`group($groupName)`Mengatur namespace/group untuk settings.### Contoh Penggunaan

[](#contoh-penggunaan)

```
use Novay\Draft\Facades\Setting;

// Simpan setting
Setting::set('app_name', 'My Application');

// Ambil setting
$name = Setting::get('app_name', 'Default App');

// Hapus setting
Setting::remove('app_name');

// Ganti group
Setting::group('custom')->set('theme', 'dark');
```

---

🧩 Traits
--------

[](#-traits)

### RandomIds

[](#randomids)

Trait ini akan:

- Menonaktifkan auto-increment bawaan Laravel.
- Menghasilkan ID **numerik acak 8 digit unik** sebelum setiap model disimpan.
- Menjamin keunikan dengan pengecekan ke database agar tidak ada duplikasi.

#### Contoh Penggunaan

[](#contoh-penggunaan-1)

```
use Illuminate\Database\Eloquent\Model;
use App\Traits\RandomIds;

class Invoice extends Model
{
    use RandomIds;
}
```

#### Hasil

[](#hasil)

```
$invoice = Invoice::create([
    'customer_id' => 123,
    'amount' => 50000,
]);

echo $invoice->id;
// Contoh output: 48291537
```

---

🎨 Kustomisasi
-------------

[](#-kustomisasi)

Draft dirancang agar mudah dikustomisasi:

- **Config**: Semua file konfigurasi akan tersedia di folder `config/`.
- **Views**: Setelah dipublikasikan, bebas edit di `resources/views/`.
- **Assets**: File JS (misalnya `passkeys.js`) bisa diedit di `resources/js/`.

---

⚠️ Catatan Penting
------------------

[](#️-catatan-penting)

- Untuk mengaktifkan **Passkey**, pastikan nilai `APP_URL` di file `.env` sesuai dengan domain aplikasi yang sedang berjalan. Ketidaksesuaian akan menyebabkan fitur ini tidak berfungsi.
- Gunakan opsi `--force` dengan hati-hati saat mempublikasikan ulang file agar tidak menimpa perubahan lokal Anda. Jadi, pastikan Anda sudah melakukan backup jika ada perubahan penting.

---

📄 Lisensi
---------

[](#-lisensi)

Package ini dirilis di bawah [Lisensi MIT](LICENSE.md).

###  Health Score

28

—

LowBetter than 54% of packages

Maintenance58

Moderate activity, may be stable

Popularity3

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity38

Early-stage or recently created project

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Unknown

Total

1

Last Release

269d ago

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/712577?v=4)[Novianto Rahmadi](/maintainers/novay)[@novay](https://github.com/novay)

---

Top Contributors

[![novay](https://avatars.githubusercontent.com/u/712577?v=4)](https://github.com/novay "novay (1 commits)")

### Embed Badge

![Health badge](/badges/novay-draft/health.svg)

```
[![Health](https://phpackages.com/badges/novay-draft/health.svg)](https://phpackages.com/packages/novay-draft)
```

###  Alternatives

[laravel/passport

Laravel Passport provides OAuth2 server support to Laravel.

3.4k85.0M532](/packages/laravel-passport)[nolimits4web/swiper

Most modern mobile touch slider and framework with hardware accelerated transitions

41.8k177.2k1](/packages/nolimits4web-swiper)[laravel/dusk

Laravel Dusk provides simple end-to-end testing and browser automation.

1.9k36.7M259](/packages/laravel-dusk)[laravel/prompts

Add beautiful and user-friendly forms to your command-line applications.

712181.8M596](/packages/laravel-prompts)[cakephp/chronos

A simple API extension for DateTime.

1.4k47.7M121](/packages/cakephp-chronos)[laravel/pail

Easily delve into your Laravel application's log files directly from the command line.

91545.3M590](/packages/laravel-pail)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
