About this software
About Votedesk - Feedback Boards, Roadmap & Changelog SaaS
Votedesk is a Laravel 13 (PHP 8.3) monolith using Blade, Tailwind CSS 4, Alpine.js and MySQL. Product teams collect feature requests with voting and comments, publish a roadmap and announce releases in a changelog. It runs as a multi-tenant SaaS, with workspaces isolated by a global scope in a single database. Plans, coupons and invoices are handled with Stripe, PayPal or manual bank transfer. The archive includes a web installer, schema and seed SQL, a Docker setup, HTML docs and a PHPUnit test suite (the README states 198 tests). Web app only; no mobile apps.
Why Votedesk - Feedback Boards, Roadmap & Changelog SaaS
What makes it better
than the alternatives
- 01
Run it as your own SaaS
Sell plans to many companies from one installation; each workspace has isolated data, its own team roles, branding and public portal.
- 02
Flexible portal hosting
Portals can be served as /w/{workspace} folders, subdomains or custom domains, with a domains:verify command for DNS verification.
- 03
Built-in SaaS billing
Stripe, PayPal and manual gateways sit behind a common interface using plain HTTP (no SDKs), with plans, trials, coupons, PDF invoices and a Stripe webhook controller.
- 04
Embeddable widget with JWT SSO
A script tag widget authenticates via an X-Widget-Token header and HS256 JWT, so an existing app's users can post and vote without a second login.
- 05
Ready to deploy and extend
A 3-step web installer, an updater command, demo mode with hourly reset, a Docker setup and a CLAUDE.md guide for AI coding tools are included.
Feedback & Voting
- Boards
- posts
- threaded comments
- attachments
- tags and custom statuses
- Voting
- vote on behalf of customers
- post merging and a moderation inbox
- Passwordless magic-link sign-in for portal customers
Roadmap & Changelog
- Workspace roadmap view and a public portal roadmap
- Markdown changelog with scheduling (changelog:deliver command) and an RSS feed
- Status-change
- new comment and shipped-post notifications
- plus a weekly digest and unsubscribe controller
Embeddable Widget
- Widget script at
public/widget/votedesk.jswith settings screen - JWT SSO token issuing and verification
- Widget availability check per workspace
Workspace Administration
- Workspace roles and email invitations (Team)
- Branding
- custom domain
- settings and AI actions per workspace
- Dashboard and activity log
Billing & Plans
- Plans
- coupons
- subscriptions and invoices managed in the admin
- Stripe
- PayPal and manual bank transfer gateways
- Subscription sync command (billing:sync) and plan limits via Entitlements
Super Admin Panel
- Dashboard with MRR
- signups chart and system health (cron
- failed jobs
- mail)
- Users
- workspaces
- impersonation
- SMTP and landing-page editor
- System and updates screen
Localization
- Translation editor with JSON import/export and language management
- RTL support through logical CSS
- Language switcher and per-user locale
Optional AI
- OpenAI-compatible and Anthropic providers with admin settings and connection test
- Feature toggles for AI assistance on posts and changelog
Installation & Operations
- Web installer with requirements
- database and admin steps
- Docker Compose stack
- schema.sql and seed.sql
- PHPUnit feature tests including a page crawl for every role
| Language | Version | Framework | Used for | Share of code |
|---|---|---|---|---|
| PHP | — | — | Web, API | 86.5% |
| SQL | — | — | Database | 9.9% |
| HTML | — | — | Front-end | 1.7% |
| JavaScript | — | — | Front-end | 1.6% |
| CSS | — | — | Styling | 0.2% |
| Shell | — | — | Scripts | 0.1% |
- Primary language
- PHP 8.3 or later
- Framework
- Laravel 13 (laravel/framework ^13.17)
- Database
- MySQL 8 or MariaDB 10.3+ (SQLite for local development)
- Authentication
- Email and password sessions, passwordless magic email links for customers, email verification, password reset, HS256 JWT single sign-on for the embeddable widget
- Licence
- Single-site
- Screens
- 90
- Database tables
- 32
- Supported languages
- 47 languages with a translation editor and JSON import/export; full right-to-left layout support
- Browser support
- Chrome, Edge, Firefox and Safari (current versions); responsive on iOS and Android browsers
| Minimum | Recommended | |
|---|---|---|
| CPU | 1 vCPU | 2 vCPU |
| RAM | 1 GB RAM | 4 GB RAM |
| OS | Linux with PHP 8.3+ and Composer, MySQL 8 or MariaDB 10.3+, Node.js for the Vite asset build | Linux with PHP 8.3+ and Composer, MySQL 8 or MariaDB 10.3+, Node.js for the Vite asset build |
| Est. monthly hosting | $12 | $12 |
```bash docker compose up -d --build ``` Open http://localhost:8080 and complete the web installer (database host `db`, see HowToSetup.md).
```bash composer install --no-dev --optimize-autoloader npm ci && npm run build chown -R www-data:www-data storage bootstrap/cache lang ``` Point the web root at `public/`, open the domain and complete the installer at /install. Add the cron job: ```bash * * * * * php /var/www/votedesk/artisan schedule:run >> /dev/null 2>&1 ```
Build locally (composer + npm), upload, point the domain at `public/` (or use the included .htaccess), select PHP 8.3+ and run the installer.
Quality report
Manually reviewedHow to read the quality report
What this is. Every project on Vibe96 goes through an automated audit of its source code before a reviewer in Dubai checks it by hand. The score is out of 100; 75 is the minimum to be listed, and any single failing check blocks a listing regardless of the score.
- Security
- No real credentials in the code, every data-changing route protected, admin areas role-gated, no SQL built from user input.
- Code structure
- A developer can navigate and extend it: clear module boundaries, no giant files, little copy-paste.
- Docs & completeness
- The setup guide, example config, schema and required files the builder committed to are actually in the archive.
- Dependency health
- Packages pinned, no known critical vulnerabilities, no abandoned libraries in production paths.
- Build & deploy
- A clean machine can restore, build and start it by following the shipped instructions.
Warnings are problems that didn't block the listing; they stay visible here until a later version clears them. The audit reads the code — it does not run it — so always try the live demo before you buy. Lines of code are counted from the same audited archive.
Reviewer notes (4 minor)
No real credentials found; weak default passwords in docker-compose and demo accounts ship to buyers; authz design looks sound, but routes/controllers were mostly not visible, so full coverage is unverified; mostly reproducible laravel build; setup doc unverified and a few consistency gaps; tenant scoping looks solid, but the migrations and queries could not be inspected, so the review is incomplete. None of these stop the software from working; the developer has been told and improvements come in a future update.
Versions & updates
No updates yet. New versions appear here with a changelog.
Buyers receive updates free for 1 year.
What you get
- </>Full source codeThe complete audited source, delivered as a download from your account. No obfuscation.
- ▤DocumentationSetup guide, architecture notes, CLAUDE.md and AGENTS.md.
- ↻One year of updatesEvery new version the builder publishes, free for 12 months.
- ♧30 days of supportInstallation and defect support through Vibe96 tickets.