PHPackages                             icemont/sling - 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. [Payment Processing](/categories/payments)
4. /
5. icemont/sling

ActiveProject[Payment Processing](/categories/payments)

icemont/sling
=============

Sling - Simple Laravel Invoice Generator.

v3.2(3y ago)871[1 PRs](https://github.com/Icemont/sling/pulls)MITPHPPHP ^8.1

Since Feb 14Pushed 1y ago1 watchersCompare

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

READMEChangelog (7)Dependencies (16)Versions (9)Used By (0)

[![](https://raw.githubusercontent.com/Icemont/sling-docs/main/assets/screenshots/sling.png)](https://raw.githubusercontent.com/Icemont/sling-docs/main/assets/screenshots/sling.png)

Sling - Simple Laravel Invoice Generator
----------------------------------------

[](#sling---simple-laravel-invoice-generator)

[![Tests](https://github.com/Icemont/sling/actions/workflows/laravel.yml/badge.svg?branch=main)](https://github.com/Icemont/sling/actions/workflows/laravel.yml)[![Psalm Static Analysis](https://github.com/Icemont/sling/actions/workflows/psalm.yml/badge.svg)](https://github.com/Icemont/sling/actions/workflows/psalm.yml)[![GitHub license](https://camo.githubusercontent.com/91a656fe72f476b30a9a328a4f7b1025b64393402a6515cd6f75fea8adac6e8b/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6c6963656e73652f4963656d6f6e742f736c696e67)](https://github.com/Icemont/sling/blob/main/LICENSE)

Sling — open-source web application that helps you create invoices and track income.

Table of Contents
-----------------

[](#table-of-contents)

1. [About](#about)
2. [Features](#features)
3. [Installation](#installation)
4. [Installation with Docker](#installation-with-docker)
5. [Customization](#customization)
6. [Roadmap](#roadmap)
7. [License](#license)

About
-----

[](#about)

**Sling** was originally created for personal use, for convenient accounting of income and invoice generation for Individual Entrepreneur with "Small Business" status in Georgia (tax is paid on total revenue every month).

This application will be useful for businesses and individuals with a similar taxation system, or just for generating invoices and income accounting. Sling is based on the Laravel PHP framework.

Screenshots of the deployed app are available [here](https://github.com/Icemont/sling-docs/tree/main/assets/screenshots).

Sling page on the developer's website:

Features
--------

[](#features)

- Client Accounting.
- Separate invoice number prefix for each customer with the ability to set the initial number index.
- Generate invoices &amp; Download invoices as PDF.
- Invoicing model: "one invoice = one service"
- One main currency for accounting with the ability to invoice in other currencies. If the invoice is billed in a non-primary currency, it is possible to get an exchange rate from an exchange rate provider for the invoice payment date. At the moment only exchange rate provider for GEL (Georgian Lari) is available, but providers for other currencies can be easily added.
- Unlimited number of payment methods can be created. Different payment method can be selected for each invoice. Information about the selected payment method will be added to the generated invoice.
- Reports generation for the selected period with grouping by clients.

Installation
------------

[](#installation)

Clone the project repository:

```
$ git clone https://github.com/Icemont/sling.git

```

Next, go to the project data directory and install the dependencies using the composer:

```
$ cd ./sling
$ composer install --no-dev

```

Then create in the project root directory a settings file `.env` by copying it from `.env.example` and edit the necessary options in it, such as database connection settings.

Generate your application key with the command:

```
$ php artisan key:generate --ansi

```

Perform database migrations to create the initial database tables structure:

```
$ php artisan migrate

```

Complete installation by adding currencies to the database using one of the commands of your choice:

```
$ php artisan sling:install
# Or:
$ php artisan db:seed --class=CurrenciesSeeder

```

Minimized JS and CSS assets are already available in the current repository, but you can install development versions of assets by installing dependencies and executing commands:

```
$ npm install
$ npm run dev

```

Then you can generate production-ready assets using the command:

```
$ npm run build

```

Initial configuration does not differ from the typical Laravel project configuration, so you can refer to the official [Laravel framework documentation](https://laravel.com/docs/9.x/configuration) in case of difficulties.

Installation with Docker
------------------------

[](#installation-with-docker)

Install Docker on your host by using this guide:

Install Docker Compose by using this guide:

Clone the project repository:

```
$ git clone https://github.com/Icemont/sling.git

```

Next, go to the project data directory and create in the project root directory a settings file `.env` by copying it from `.env.example` and edit the necessary options in it:

```
$ cd sling
$ cp .env.example .env

```

Next, run commands below:

```
$ docker-compose up -d
$ ./docker-compose/setup.sh

```

Customization
-------------

[](#customization)

#### Base settings

[](#base-settings)

You can change some basic application settings in the file: `config/app.php`, such as pagination or default currency:

```
    /*
    |--------------------------------------------------------------------------
    | Sling config options
    |--------------------------------------------------------------------------
    */

    'per_page' => [
        'clients' => 25,
        'invoices' => 25,
        'payment_methods' => 25,
    ],

    'default_currency' => 'GEL',
    'invoice_index_length' => 5,
```

#### New currency

[](#new-currency)

If you need to add a new currency to the database, you can add it to the `$currencies` array in the `database/seeders/CurrenciesSeeder.php` file and then run the command:

```
$ php artisan db:seed --class=CurrenciesSeeder

```

Roadmap
-------

[](#roadmap)

```
📌 There are no specific deadlines and guarantees for the implementation.

```

- Sending invoices to the client's email
- Adding exchange rate providers for other currencies
- Abandoning the jQuery library in favor of native JS

License
-------

[](#license)

The contents of this repository is released under the [MIT license](https://opensource.org/licenses/MIT).

###  Health Score

32

—

LowBetter than 72% of packages

Maintenance33

Infrequent updates — may be unmaintained

Popularity11

Limited adoption so far

Community8

Small or concentrated contributor base

Maturity63

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 ~73 days

Recently: every ~61 days

Total

7

Last Release

1111d ago

Major Versions

v1.1.1 → v2.02022-09-29

v2.0 → v3.02023-01-19

PHP version history (2 changes)v1.0.1PHP ^7.4|^8.0

v2.0PHP ^8.1

### Community

Maintainers

![](https://www.gravatar.com/avatar/0b6c35e98f550eeccaf9958fd2e144460f650da75c39a997cb63b0731869ad8f?d=identicon)[Icemont](/maintainers/Icemont)

---

Top Contributors

[![Icemont](https://avatars.githubusercontent.com/u/17479623?v=4)](https://github.com/Icemont "Icemont (84 commits)")

---

Tags

businessinvoiceinvoiceslaravelmoneypaymentsphpslingphplaravelbusinesspaymentsinvoiceinvoicessling

###  Code Quality

TestsPHPUnit

Static AnalysisPsalm

Code StyleLaravel Pint

Type Coverage Yes

### Embed Badge

![Health badge](/badges/icemont-sling/health.svg)

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

###  Alternatives

[bagisto/bagisto

Bagisto Laravel E-Commerce

26.2k161.6k7](/packages/bagisto-bagisto)[krayin/laravel-crm

Krayin CRM

22.0k32.8k1](/packages/krayin-laravel-crm)[laraveldaily/laravel-invoices

Missing invoices for Laravel

1.5k1.3M4](/packages/laraveldaily-laravel-invoices)[unopim/unopim

UnoPim Laravel PIM

9.4k1.8k](/packages/unopim-unopim)[tomatophp/filament-invoices

Generate and manage your invoices / payments using multi currencies and multi types in FilamentPHP

993.9k](/packages/tomatophp-filament-invoices)

PHPackages © 2026

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