PHPackages                             bangnokia/lina - 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. [CLI &amp; Console](/categories/cli)
4. /
5. bangnokia/lina

Abandoned → [linaphp/lina](/?search=linaphp%2Flina)Library[CLI &amp; Console](/categories/cli)

bangnokia/lina
==============

static blog generator

v0.6.7(3mo ago)6662MITPHPPHP ^8.3CI passing

Since Nov 4Pushed 3mo ago1 watchersCompare

[ Source](https://github.com/linaphp/lina)[ Packagist](https://packagist.org/packages/bangnokia/lina)[ Docs](https://lina.daudau.cc)[ RSS](/packages/bangnokia-lina/feed)WikiDiscussions main Synced today

READMEChangelog (10)Dependencies (24)Versions (55)Used By (0)

[![lina's logo](icon.png)](icon.png)

Lina PHP - lightweight and blazing fast static blog generator
=============================================================

[](#lina-php---lightweight-and-blazing-fast-static-blog-generator)

**Lina** is an opinionated flat-file CMS for who want a simple and fast blog. Lina uses Blade template engine, so you can use all Blade features.

Features
--------

[](#features)

- **Blazing fast**: Lina is a lightweight and superfast static blog generator.
- Written in PHP: so if you hate Javascript, Lina is for you.
- Blade template engine: you can use all Blade features.'
- Minimalistic: Lina is a static blog generator. It's not a full-fledged CMS.
- Deploy everywhere! You know, just html files 🤣

Requirements
------------

[](#requirements)

- PHP 8.3

Getting started
---------------

[](#getting-started)

There are some ways to install Lina:

Require Lina as dependency, with this option, you can keep lina up-to-date easily.

```
mkdir my-blog && cd my-blog && composer init --name=linaphp/blog --no-interaction --require=bangnokia/lina:^0.5 && composer install
./vendor/bin/lina new . # scaffolding a new blog skeleton in the current directory
./vendor/bin/lina serve # start a development server and happy writing
```

Or install Lina as global composer package

```
composer global require linaphp/lina
lina new my-blog
lina serve
```

Or you can use the `phar` file

```
curl -LO https://github.com/linaphp/lina/releases/latest/download/lina.phar && chmod +x lina.phar
```

Folder structure
----------------

[](#folder-structure)

In case you want to migrate from another blog platform, you can check the base structure of Lina

```
content/
    posts/
        2020-11-01-hello.md
    index.md
resources/
    views/
        index.blade.php
        post.blade.php
public/
    images/
    style.css

```

- `content` directory is where you store your markdown content file.
- `resources/views` directory is where you store your blade template.
- `public` directory is where you store your assets like images, css, ... This folder is also where all the generated files are stored. So please remember to add your custom files to `.gitignore` if you want to store them in `git`

**We really recommend you to prefix your content file with the date, so it will easy to sort and find your content. Lina automatically strip the date from the slug, so you don't need to worry about the url.**

Helper functions
----------------

[](#helper-functions)

There are some functions that you can use to programmatically access your content.

### Get all content in a directory

[](#get-all-content-in-a-directory)

Get all the content in a directory. The content will be sorted by the date in the filename.

```
foreach (lina()->index('post') as $post) {
    echo $post->title;
}
```

### Get a single content

[](#get-a-single-content)

```
$post = lina()->get('posts/2020-11-01-hello.md');
```

Deployments
-----------

[](#deployments)

Lina can be deployed to any static hosting provider. Here are some examples: Github pages, Netlify, Vercel, Cloudflare pages, ...

### Deploy on Github pages

[](#deploy-on-github-pages)

So you please modify the file `.github/workflows/deploy.yml` to match your demand.

### Deploy on Cloudflare pages

[](#deploy-on-cloudflare-pages)

We also provide a configuration file for Cloudflare pages. You can find it in `cloudflare-page.sh`. You can modify it to match your demand. Also you need to change the `Build configuration` like this. [![Cloudflare deploy](cloudflare_config.png)](cloudflare_config.png)

Built with Lina
---------------

[](#built-with-lina)

So, you know, at least that's me.

- [daudau.cc](https://daudau.cc): My personal blog. [Source code](https://github.com/bangnokia/daudau.cc).
- [Lina's landing page](https://lina.daudau.cc): Lina's site (this site is built with Lina, of course). [Source code](https://github.com/bangnokia/lina-site).

TODO
----

[](#todo)

- Add `lina serve` command for development
- Add code highlighter support
- Support live reloading
- Cloudflare pages support

###  Health Score

48

—

FairBetter than 93% of packages

Maintenance82

Actively maintained with recent releases

Popularity15

Limited adoption so far

Community9

Small or concentrated contributor base

Maturity73

Established project with proven stability

 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

Every ~39 days

Recently: every ~16 days

Total

51

Last Release

98d ago

PHP version history (4 changes)v0.1.0-alphaPHP ^7.3

v0.1.1-alphaPHP ^7.4

v0.2.9PHP ^7.4|^8.0

v0.3PHP ^8.3

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/5652494?v=4)[Nguyen Viet](/maintainers/bangnokia)[@bangnokia](https://github.com/bangnokia)

---

Top Contributors

[![bangnokia](https://avatars.githubusercontent.com/u/5652494?v=4)](https://github.com/bangnokia "bangnokia (290 commits)")

---

Tags

bladelaravellinamarkdown-to-htmlstatic-blogstatic-site-generatorcliconsolelaravellaravel-zeropekyll

###  Code Quality

TestsPest

### Embed Badge

![Health badge](/badges/bangnokia-lina/health.svg)

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

###  Alternatives

[statamic/cms

The Statamic CMS Core Package

4.8k3.6M982](/packages/statamic-cms)[moonshine/moonshine

Laravel administration panel

1.3k253.1k81](/packages/moonshine-moonshine)[tempest/framework

The PHP framework that gets out of your way.

2.2k34.4k15](/packages/tempest-framework)[nunomaduro/laravel-console-menu

Laravel Console Menu is an output method for your Laravel/Laravel Zero commands.

819430.4k54](/packages/nunomaduro-laravel-console-menu)[nunomaduro/laravel-console-task

Laravel Console Task is a output method for your Laravel/Laravel Zero commands.

2592.3M13](/packages/nunomaduro-laravel-console-task)[mehrancodes/laravel-harbor

A CLI tool to Quickly create On-Demand preview environment for your apps.

10097.5k](/packages/mehrancodes-laravel-harbor)

PHPackages © 2026

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