PHPackages                             linaphp/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. linaphp/lina

ActiveLibrary[CLI &amp; Console](/categories/cli)

linaphp/lina
============

static blog generator

v0.6.7(1mo ago)6152MITPHPPHP ^8.3CI passing

Since Nov 4Pushed 1mo ago1 watchersCompare

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

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

50

—

FairBetter than 96% of packages

Maintenance90

Actively maintained with recent releases

Popularity14

Limited adoption so far

Community9

Small or concentrated contributor base

Maturity72

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

52d 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://www.gravatar.com/avatar/66da34ae32eba55e163bd3cdabd731c8462665845678a096a2b55a4743b597f7?d=identicon)[bangnokia](/maintainers/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/linaphp-lina/health.svg)

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

###  Alternatives

[nunomaduro/collision

Cli error handling for console/command-line PHP applications.

4.6k331.8M8.5k](/packages/nunomaduro-collision)[nunomaduro/laravel-console-menu

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

815412.0k48](/packages/nunomaduro-laravel-console-menu)[nunomaduro/laravel-console-task

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

2582.1M11](/packages/nunomaduro-laravel-console-task)[nunomaduro/laravel-console-summary

A Beautiful Laravel Console Summary for your Laravel/Laravel Zero commands.

662.0M3](/packages/nunomaduro-laravel-console-summary)[nunomaduro/laravel-console-dusk

Laravel Console Dusk allows the usage of Laravel Dusk in Laravel/Laravel Zero artisan commands.

16255.4k7](/packages/nunomaduro-laravel-console-dusk)[mehrancodes/laravel-harbor

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

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

PHPackages © 2026

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