Listaro documentation
Your own classifieds marketplace: the app, the website and the panel, in one download.
Before you start
- PHP 8.3 or newer with the usual extensions, and MySQL 8, MariaDB 10.6+ or SQLite — ordinary shared hosting is enough, no SSH, Composer or Node
- Apache with mod_rewrite (the .htaccess is included) or nginx
- Flutter 3.x (Dart 3.3+) to build the app: Android SDK 36 for Android, a Mac with Xcode for iOS 13+
- Apple and Google developer accounts (paid) to publish the app under your own name
- Optional, on your own accounts: Stripe for card payments, Twilio for SMS codes, Firebase for push notifications
The Flutter app and the whole Laravel backend — API, marketplace website, admin panel and installer — are in the download and run on PHP hosting of your own. Stripe, Twilio and Firebase are optional, on your own accounts.
What it does not do
- It does not come with hosting. The backend installs on PHP hosting of your own; the domain, the certificate and the server are yours.
- It does not include accounts with Stripe, Twilio or Firebase. Card payments, SMS codes and push ship switched off on a log driver; each provider bills you directly once you add your own keys. Stripe is the only card gateway included, Twilio the only SMS provider.
- It does not include map tiles or real-time sockets. The map is drawn rather than fetched, and chat refreshes by push and polling, which is what keeps it shared-hosting friendly.
- It does not moderate itself or write your legal pages. The admin panel is where a person approves ads and handles reports; Terms and Privacy are yours to write.
- It is a project you build and publish under your own Apple and Google developer accounts, not an app we submit for you.
What is in the download
mobile-app/ — the Flutter application for Android and iOS: 37 screens in English, Arabic and Turkish, running on built-in sample data until you point it at your server.
backend/ — Laravel 13: the REST API for the app (73 routes under /api/v1), the public marketplace website, the web admin panel, the web installer, migrations for 35 database tables, and vendor/ with every PHP dependency, so nothing needs Composer.
documentation/ — the full guide, including the changelog, upgrade notes from 1.1.0, the API reference, and a plain list of what is not included.
Installing the backend
Upload the contents of backend/ to your hosting account and point the domain’s document root at backend/public, not at backend/. Make storage/ and bootstrap/cache/ writable, and create a database (MySQL 8, MariaDB 10.6+, or SQLite, which needs nothing).
Open https://your-domain/install: a server check, the database, then your site address and administrator account. It asks for a setup token kept in a file on the server, and locks itself when it finishes. Installing over SSH instead is documented too.
Sign in to the panel at /admin/login and paste the licence key from your purchase email under Licence. The marketplace website is now live at your domain’s home page; write your About, Terms and Privacy pages and set your logo and colour under Settings → Website.
Building the app
Run the app on its built-in sample data first. It confirms your Flutter toolchain works, and separates “my Flutter setup is wrong” from “my server is wrong”, which otherwise look like the same error.
Then build it against your server with one flag: flutter build apk --dart-define=LISTARO_API=https://your-domain/api/v1. No screen changes; only the data source does. Publish under your own Apple and Google developer accounts, with your own branding.
Payments, SMS and push
Card payments (Stripe Checkout), SMS sign-in codes (Twilio) and push notifications (Firebase Cloud Messaging) ship switched off, writing to the log instead, so the marketplace runs fully before you sign up for anything.
Each is switched on from Settings in the panel with your own account. None of these services is included in the price, and most cost money: Stripe per transaction, SMS per message, and Apple push needs a paid developer account.
Updating
Back up the database, upload the new files keeping .env, storage/ and public/storage, then press Run the update in the panel or run php artisan listaro:update. Members, ads, payments and the admin password are kept.
Coming from 1.1.0: the domain’s home page now shows the public website instead of redirecting to the panel, and the app must be rebuilt and republished for the new screens, languages and payment flow. The documentation’s upgrade notes cover both.
Licence, updates and support
- One licence covers 1 application you build and publish.
- 1 year of updates, from the date of purchase.
- 1 year of email support.
- Instant download + licence key by email
- 30-day money-back guarantee
Questions this page does not answer go to support@webkoding.com. If you bought from us and cannot find your licence key, look it up here.
Common questions
What exactly is in the download?
The Flutter app for iOS and Android (37 screens), and a Laravel 13 backend with the REST API the app talks to (73 routes under /api/v1), the public marketplace website, the web admin panel and a web installer, with every PHP dependency already in vendor/. Plus the documentation. Nothing is minified or obfuscated.
Can I try it before I buy?
Yes. The demo runs the same 1.2 code: the marketplace website, in English, Arabic and Turkish, and the admin panel, whose demo login is printed on its sign-in page. Sign in on the website by SMS code — on the demo the code is shown on screen. Card payments are switched off on the public demo, because it has no Stripe account. It resets every night.
Does it take card payments?
Yes, through Stripe Checkout: sellers top up their wallet or pay for a boost by card, in the app and on the website. Card numbers are typed on Stripe’s page, never on your server, and a payment is settled only by a signed webhook. It ships switched off; you enable it with your own Stripe keys, and Stripe charges you per transaction. Without it, you can credit wallets by hand from the panel.
Are there monthly fees?
None to us — it is a one-time purchase of self-hosted software. Your running costs are your hosting and whichever third-party services you choose to switch on: Stripe per transaction, Twilio per SMS (prices vary by country), Firebase, and the Apple and Google developer accounts. They bill you directly.
Will it run on shared hosting?
Yes, if the host offers PHP 8.3+ with the usual extensions and MySQL 8, MariaDB 10.6+ or SQLite. There is no Node, no build step and no queue worker; cron is optional. The installer checks the server and lists anything missing before it writes a thing.
Which languages does it speak?
English, Arabic and Turkish, with a right-to-left layout for Arabic — in the app, the website, the admin panel and every message the server sends. Each member picks theirs. Another language is one translation file per part.
How do updates work?
Upload the new files over the old ones and press Run the update in the panel, or run php artisan listaro:update. Your members, ads, payments and settings are kept. The licence includes one year of updates and email support; after that everything keeps working, and only new versions and support stop.
