Open-source project
tastyigniter/TastyIgniter avatar
tastyigniter/TastyIgniter

TastyIgniter: self-hosted restaurant ordering and table booking on Laravel

:fire: Powerful, yet easy to use, open-source online ordering, table reservation and management system for restaurants

3,767 stars1,183 forksPHPMIT

At a glance

What is it?
TastyIgniter is an MIT-licensed PHP application for online ordering, table reservations and restaurant management, built on Laravel and Bootstrap 5. It fits teams that want to own the ordering stack rather than rent one, and it asks for a real PHP deployment in return.
Who is it for?
Adopt TastyIgniter if you run one or several restaurants, want the ordering and reservation flow on infrastructure you control, and have someone who can operate a PHP 8.3 or 8.4 Laravel deployment with MySQL. Do not adopt it if you need a zero-ops SaaS, a native mobile app, or a POS that the README claims to replace; the repository does not present it as any of those.
Can I use it commercially?
Yes. MIT is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
Is it still maintained?
Yes. The repository last received commits 10 days ago.
What is it written in?
Mainly PHP, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on September 30, 2026, and from our analysis. They are not legal advice.

Editorial analysis

The problem TastyIgniter solves for restaurant operators

A restaurant that takes orders through a third-party marketplace hands over the customer relationship, the menu presentation and a per-order cut. TastyIgniter exists for operators who want that flow on their own domain. The README describes it as a platform for restaurants that want to offer online food ordering and table reservation to their customers, and the repository topics list multiple-restaurant and multiple-locations, so the intended unit is not a single storefront. The .env.example file reinforces this with IGNITER_LOCATION_MODE=multiple, a setting that decides whether the install behaves as one location or many. That default matters: a single-site operator who never changes it is configuring for a shape they do not have. The audience is therefore an operator or an agency that already runs PHP hosting, not a restaurant owner looking for a signup page. There is no hosted tier described in the README; the homepage points to documentation and a community forum, and support runs through a forum and Discord rather than a paid support desk.

How the ordering, menu and reservation pieces fit together

The architecture is a Laravel application with a theme and extension layer bolted on. The top-level entries show the split: app/, config/, database/ and routes/ hold standard Laravel code, while extensions/ and themes/ are separate directories that hold add-ons and front-end templates. That layout is the whole design argument. Core ordering, menu and reservation logic lives in the application; anything a specific restaurant needs beyond it is expected to arrive as an extension, and the look of the storefront is expected to arrive as a theme. The README names Laravel as the full-stack framework and Bootstrap 5 as the front-end framework, which tells you the rendering model is server-side Blade with a Bootstrap grid, not a JavaScript single-page application. The .env.example shows the operational layer underneath: MySQL as DB_CONNECTION, file-based cache and sessions by default, sync queues by default, and a Redis block present but unused unless you point the cache and session drivers at it. Sync queues are the detail worth pausing on. With QUEUE_CONNECTION=sync, anything that would be queued runs inline during the request, so a busy service period is served by the web process alone until someone changes that setting and runs a worker.

Installing TastyIgniter and taking a first order

The README does not reproduce install commands. It says plainly: read the Installation Guide for more information, linking to tastyigniter.com/docs/installation. What the repository does give you is the environment contract. Copy .env.example to .env and fill it in before anything else, because APP_KEY and the database block are empty in the example.

bash
cp .env.example .env

The variables you must supply are the application block and the database block. APP_URL has to match the address the site is served from, and IGNITER_LOCATION_MODE decides single versus multiple locations.

bash
# edit .env:
# APP_NAME=
# APP_KEY=
# APP_URL=
# DB_CONNECTION=mysql
# DB_HOST=
# DB_PORT=
# DB_DATABASE=
# DB_USERNAME=
# DB_PASSWORD=
# IGNITER_LOCATION_MODE=multiple

Front-end assets are built with Laravel Mix, not Vite. The package.json defines dev, watch and prod scripts that all delegate to mix, and the devDependencies are laravel-mix 6 with axios, lodash and postcss.

bash
npm install
npm run dev

A production build uses the prod script, which runs mix with the production flag.

bash
npm run prod

After that, the first real use is administrative rather than transactional: you sign in to the backend, create a location and a menu, then place a test order through the storefront theme. The repository does not document the default administrator credentials or the first-run setup screen, so treat the Installation Guide as the source for those. What you should see once it is running is a Bootstrap 5 storefront served by PHP, with menu and reservation pages driven by whatever theme is active in themes/.

Where TastyIgniter stops being the right tool

The first limitation is operational, and it is the one that surprises people. TastyIgniter is not a hosted product. The README points to a documentation site, a forum and Discord; it does not describe a managed service. That means patches, backups, TLS certificates, database migrations between versions and PHP upgrades are yours. The README badge states PHP 8.3 to 8.4, so an install on an older PHP branch is outside the supported range, and a host that will not move is a blocker rather than an inconvenience. The second limitation is the extension surface. Because extensions and themes live in their own top-level directories and the README directs people to a marketplace, the practical feature set is core plus whatever add-ons you install. The repository does not enumerate which extensions exist or what they cost, and the README does not document rollback for an extension or theme update. If your requirements depend on an add-on, that dependency is a supply-chain question you have to answer yourself. The third is the queue default. With QUEUE_CONNECTION=sync in .env.example, notification and background work runs inside the request until you change it; a restaurant that expects order confirmations to fire asynchronously needs to configure a real queue driver and run a worker, and the example file does not do that for you. Finally, the repository contains no mobile application directory. The topics mention an ordering app, but the top-level layout is a web application, so anyone expecting a native customer app should look at what the storefront theme provides instead.

TastyIgniter compared with a hosted ordering platform

The honest alternative for most small restaurants is not another self-hosted PHP project; it is a hosted ordering platform where the vendor runs the servers and takes a fee or a subscription. The difference in approach is not feature parity, it is where the cost lands. A hosted platform converts infrastructure work into money and gives you an uptime number someone else is accountable for. TastyIgniter converts that money into a server, a domain and someone's time, and gives you the menu, the customer list and the order data in a MySQL database you can query. For a single restaurant with no technical staff, the hosted route is usually correct and TastyIgniter is the wrong tool. For a group with several locations, an existing PHP deployment and a reason to keep customer data in-house, the trade runs the other way. Within the self-hosted PHP space, the meaningful comparison is against writing the ordering flow yourself on Laravel. TastyIgniter is already a Laravel application with migrations, routes, a theme layer and an extension layer, so the question is whether its menu, order and reservation model matches yours closely enough that extending it beats starting from an empty app/. If your ordering rules are unusual, the extension layer becomes the place you fight the framework, and that is worth testing before you commit.

Maintenance, upgrades and what the MIT licence means here

The repository is not archived, and the last push was on 2026-09-20, the same date as the v4.4.3 release. The two preceding releases, v4.4.1 and v4.4.2, landed on 2026-08-22 and 2026-09-14, so the 4.x line is being released on a short cadence. That tells you patches arrive; it does not tell you how much upgrading costs. The default branch is 4.x, which means the branch you clone is the development line for the current major version, and a production install should track tagged releases rather than the branch head. Because TastyIgniter is a Laravel application, an upgrade is not only TastyIgniter's code: composer.json pins the framework and its dependencies, and the PHP range in the README is 8.3 to 8.4, so a major version bump can drag a PHP upgrade behind it. Budget for a staging copy, a database backup and a repeatable deploy before you touch production. The licence is MIT, stated in the README and in LICENSE.md. In practice that is permissive: you can run it commercially, modify it and redistribute it, provided the copyright notice and permission notice travel with it. That is a description of the licence text, not legal advice, and it says nothing about the licence of any extension or theme you add from the marketplace, which may carry its own terms. Check those separately before you build a business process on top of one.

Editorial conclusion

Adopt TastyIgniter if you run one or several restaurants, want the ordering and reservation flow on infrastructure you control, and have someone who can operate a PHP 8.3 or 8.4 Laravel deployment with MySQL. Do not adopt it if you need a zero-ops SaaS, a native mobile app, or a POS that the README claims to replace; the repository does not present it as any of those. Before committing, verify three things against your own environment: that your host satisfies the PHP 8.3 to 8.4 range stated in the README badge, that the extensions and themes you need are reachable from the marketplace, and that you can run the documented installation on a staging copy and then repeat it on production without losing the database.

Frequently asked questions

How do I install TastyIgniter?

The README does not list install commands; it directs you to the Installation Guide at tastyigniter.com/docs/installation. The repository does give the environment contract: copy .env.example to .env and fill in APP_KEY, APP_URL and the MySQL block, then build front-end assets with the npm dev or prod scripts defined in package.json.

What is the best open source alternative to TastyIgniter?

The README does not name any competing project, so no specific alternative can be given here. What can be compared is the approach: TastyIgniter is a self-hosted Laravel application you deploy and maintain, against a hosted ordering platform where the vendor runs the servers, or against building the ordering flow yourself on Laravel.

Does TastyIgniter support multiple restaurant locations?

The repository topics include multiple-restaurant and multiplelocations, and .env.example carries IGNITER_LOCATION_MODE with a default of multiple. That variable is the setting that decides whether the install behaves as one location or many.

Which PHP versions does TastyIgniter require?

The README badge states PHP 8.3 to 8.4. Running it on an older PHP branch is outside the stated supported range, which matters when choosing a host.

What licence is TastyIgniter released under?

The README states that TastyIgniter is open-source software licensed under the MIT license, and LICENSE.md is present at the repository root. That covers the core project; any extension or theme you add from the marketplace may carry its own terms.

Official sources

  1. License: MIT
  2. Project website
  3. README
  4. Releases
  5. tastyigniter/TastyIgniter on GitHub
Add this badge to your README

If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/tastyigniter-tastyigniter.svg)](https://hysenlabs.com/projects/tastyigniter-tastyigniter)