Open-source, self-hosted classifieds — by Mindstellar.
Build and run your own ads marketplace: real estate, jobs, vehicles, anything.
Shopclass is a PHP application that lets you launch a full classifieds website on your own hosting — listings with photos, categories and locations, user accounts, comments, search and filtering, multi-language support, and an admin panel to run it all. It ships as a zip you install on ordinary shared or VPS hosting; there is no build step or bundler to run on the server.
Shopclass is the modernised, community-maintained successor to Osclass. It
keeps Osclass's plugin and theme APIs (the osc_* helpers, hook names, and asset
paths) so existing extensions keep working, while replacing the legacy frontend:
a Bootstrap 5 admin theme, jQuery removed from the core, PHP 8 throughout, and a
first-class maintenance/cleanup toolset built in.
- 🗂️ Listings with photos, categories, and hierarchical locations
- 🔍 Search, filtering, and SEO-friendly URLs
- 👥 User registration, accounts, and moderation
- 🎨 Themeable frontend + a modern, accessible (WCAG-checked) admin panel
- 🧩 Plugin & theme system — compatible with the Osclass extension API
- 🌎 Multi-language / i18n support
- 🔒 CSRF protection, CAPTCHA, and hardened sessions
- 🧹 Built-in Tools → Cleanup for expired, spam, blocked, and unactivated content
- ♻️ One-click self-updater that pulls release packages
- PHP 8.0+ with
mysqli,gd,curl,mbstring,openssl,zip,json,ctype,fileinfo, andposix - MySQL 5.7+ / MariaDB 10.2+
- Any web server (Apache or nginx)
Deploy from a release zip, never from a branch —
master/developmay contain untested code, and releases carry the compiled CSS/JS the branches don't rebuild for you.
- Download the latest package from the Releases page and unpack it into your web root (e.g.
public_html). - Open your site in a browser —
https://example.com/— and the installer starts automatically (or go straight tooc-includes/osclass/install.php). - Follow the installer: confirm file permissions, enter your database details, set the site name and country, and finish.
- Sign in at
https://example.com/oc-admin/with the generated admin password.
The runtime needs no build tools, but the admin theme's CSS/JS are compiled from source. You only need Node to work on them.
git clone --recursive git@github.com:mindstellar/shopclass.git
cd shopclass
npm install
npm run build # vendor assets + SCSS → CSS + JS
npm run watch # rebuild CSS on change while developingCompiled output (oc-admin/themes/modern/css/main.css, oc-includes/assets/…)
is committed — releases are cut with git archive, so whatever is committed
is exactly what users receive. Rebuild and commit the output with any SCSS/JS
change.
docker compose up -d| Service | Address |
|---|---|
| Web server | http://localhost:5080 |
| phpMyAdmin | http://localhost:5800 |
| MySQL | localhost:5306 |
| Mailhog | http://localhost:5025 |
Inside the network, services resolve as php-fpm:9000, mysql:3306,
memcached:11211, and mailhog:1025.
Logos, the mark, the favicon set, and the palette live in the shopclass-brand repository.
| Role | Color | Hex |
|---|---|---|
| Deep Navy | dark / headings | #0F2742 |
| Teal | brand / identity | #12A6A0 |
| Slate Gray | neutral | #435466 |
| Warm Off-White | surface | #F7F5F1 |
| Coral | accent | #FF6B4A |
Brand assets are licensed CC BY-ND 4.0: use them to refer to Shopclass, but please don't modify the marks or imply endorsement.
Contributions are welcome — bug fixes, features, translations, docs.
- Open an issue describing the change before you start.
- Branch from
develop(never targetmaster). - Make your change; if it touches the admin theme, run
npm run buildand commit the compiled output. - Open a pull request against
develop.
Because Shopclass runs on installs with third-party themes and plugins, treat the
osc_* helpers, hook names, admin CSS class names, and oc-includes/assets/
paths as a public API — restyle freely, but don't rename or remove them.
Questions, help, and discussion happen on GitHub Discussions. For reproducible bugs, open an issue.
Shopclass is distributed under the GNU General Public License v3.0 or later (LICENSE). It derives from Osclass, whose original code is licensed under the Apache License 2.0 (LICENSE-APACHE); those notices are retained in NOTICE as that license requires.
- 📦 Releases
- 🐛 Issues
- 💬 Discussions
- 🎨 Brand kit