PHPackages                             rahamatj/kaiju - 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. [Parsing &amp; Serialization](/categories/parsing)
4. /
5. rahamatj/kaiju

ActiveLibrary[Parsing &amp; Serialization](/categories/parsing)

rahamatj/kaiju
==============

A markdown powered portfolio/blog package for the Laravel framework.

05HTML

Since Apr 12Pushed 7y agoCompare

[ Source](https://github.com/rahamatj/kaiju)[ Packagist](https://packagist.org/packages/rahamatj/kaiju)[ RSS](/packages/rahamatj-kaiju/feed)WikiDiscussions master Synced 2mo ago

READMEChangelogDependenciesVersions (1)Used By (0)

Kaiju
=====

[](#kaiju)

A markdown powered portfolio/blog package for the Laravel framework.

Features
--------

[](#features)

- Powered by [Laravel](https://laravel.com),
- Uses markdown files to create/update blogs/projects,
- Uses SQLite for database,
- Uses assets and compiled html/css from [Indigo](https://github.com/sergiokopplin/indigo).

Set up
------

[](#set-up)

- `composer create-project --prefer-dist laravel/laravel blog`
- `cd blog`
- `composer require rahamatj/kaiju`
- Open the project on your browser and go to the path `/kaiju/install` and follow along.

Or,

- `php artisan kaiju:install`
- `php artisan migrate`
- `php artisan kaiju:roar`
- Set `block-installation-route` to true in the `kaiju` config file after the installation.

How to
------

[](#how-to)

- Set your name, bio, picture, socials and other information in `config/kaiju.php`.
- Place images inside `public/vendor/kaiju/assets` folder and use image names with paths after `public/vendor/kaiju/assets` in your config file or markdown files. e.g. `'picture' => 'images/profile.jpg'` in your config file or `![example image](images/markdown.jpg "An exemplary image")` in your markdown files.

Use full urls in case of external images.

- Place your blog posts and projects inside `kaiju/posts` folder.
- Example `post.md`

```
---
title: My title
description: My description
---

# Hello

```

- Example `project.md`

```
---
title: My project
description: My description
is_project: true
---

# Hello

```

Projects are basically posts but has one extra field in the head section aptly named `is_project` and it needs to be set to true.

Make sure post and project titles are unique.

After adding new markdown files or updating old files run `php artisan kaiju:roar` or go to path `/kaiju/roar` to process new files or update existing posts.

- You can change the path to the markdown files in your `config/kaiju.php` file if you need to.

```
// driver configurations
'file' => [
    'path' => 'kaiju/posts'
]

```

- Use full urls for socials and uncomment the ones you need.
- If the `projects` is set to false it won't show up in the menu.
- `about` specifies the file path from where the about page gets it's contents.
- Set `resume` according to your needs.

Extending
---------

[](#extending)

### Add custom fields

[](#add-custom-fields)

- Publish kaiju migrations `php artisan vendor:publish --tag=kaiju-migrations`,
- Add new fields in the migration file.
- Create a new folder inside app called `Fields` and add your new field classes here.

```
namespace App\Fields;

use Rahamatj\Kaiju\Field;

class Author extends Field
{
    // override process method or keep the class empty
    public function process($field, $value) {
        return [
            $field => $value // 'author' => $value
        ];
    }
}

```

- Publish Kaiju Service Provider `php artisan vendor:publish --tag=kaiju-provider`
- Register new field classes inside `registerFields()` method of `app/Providers/KaijuServiceProvider.php` class.

```
protected function registerFields()
{
    return [
        \App\Fields\Author::class
    ];
}

```

- Then in your `post.md` file add a new field

```
title: My title
description: My description
author: John Doe
---

# Hello

```

If you don't create or register your field classes, any new fields added in your markdown file's head section will be added to the database as a json object stored under a field called `extra`. And you can access the field like `$post->extra()->field`

```
title: My title
description: My description
author: John Doe
kaiju: roar
---

# Hello

```

```
echo $post->extra()->kaiju; // roar

```

### Override views

[](#override-views)

If you wish to override package views, place your views inside `resources/views/vendor/kaiju` folder. Follow the package's `views` folder structure.

For example, if you want to override the pagination view, simply create a new blade file called `resources/views/vendor/kaiju/includes/pagination.blade.php` and place your code there.

###  Health Score

18

—

LowBetter than 8% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity4

Limited adoption so far

Community2

Small or concentrated contributor base

Maturity37

Early-stage or recently created project

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.

### Community

Maintainers

![](https://www.gravatar.com/avatar/8cd150a9aefd056131066b071675d1553055fc909bc4df69410485fbfc804d7c?d=identicon)[rahamatj](/maintainers/rahamatj)

---

Tags

blog-enginelaravellaravel-5-packagemarkdown

### Embed Badge

![Health badge](/badges/rahamatj-kaiju/health.svg)

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

###  Alternatives

[mtdowling/jmespath.php

Declaratively specify how to extract elements from a JSON document

2.0k472.8M135](/packages/mtdowling-jmespathphp)[opis/closure

A library that can be used to serialize closures (anonymous functions) and arbitrary data.

2.6k230.0M284](/packages/opis-closure)[masterminds/html5

An HTML5 parser and serializer.

1.8k242.8M229](/packages/masterminds-html5)[sabberworm/php-css-parser

Parser for CSS Files written in PHP

1.8k191.2M65](/packages/sabberworm-php-css-parser)[michelf/php-markdown

PHP Markdown

3.5k52.4M345](/packages/michelf-php-markdown)[jms/metadata

Class/method/property metadata management in PHP

1.8k152.8M88](/packages/jms-metadata)

PHPackages © 2026

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