LaunchBeacon documentation

LaunchBeacon is a self-hosted awards platform for websites, themes, apps and games. Creators submit work (free or paid), staff review it, a jury and the community score it, and the best work wins dated awards with verifiable certificates and embeddable badges. This guide covers installation, every screen with its fields and limits, payments, emails and day-to-day running.

Requirements

ItemNeeded
PHP8.2 or newer with PDO MySQL, Mbstring, OpenSSL, cURL, Fileinfo, GD (with WebP support), DOM, XML, Ctype, Tokenizer and Filter. Intl and Exif are recommended.
DatabaseMySQL 8 or MariaDB 10.6 or newer (full-text search is used).
Web serverApache or Nginx with the document root pointing at the public folder. LaunchBeacon runs at the root of its own domain or subdomain (for example awards.example.com).
HTTPSRequired for payments, gateway webhooks and browser notifications on a live site.
CronOne cron entry that runs every minute (see Scheduler and queue).

Installation with the installer

  1. Unzip launchbeacon.zip and upload the contents to your server, for example to /home/you/launchbeacon.
  2. Point the domain's document root at /home/you/launchbeacon/public. On cPanel, set it under Domains for the domain or subdomain.
  3. Create an empty MySQL database and a user with all privileges on it.
  4. Open the domain in a browser. Until installation finishes, every visit goes to the installer at /installer.
  5. Server requirements lists PHP and each extension with OK, Missing or Recommended. Enable anything missing in your hosting panel and reload. Next step unlocks when nothing required is missing.
  6. Folder permissions checks that storage, its subfolders, bootstrap/cache and the application folder (for .env) are writable. On Linux run chmod -R 775 storage bootstrap/cache if needed.
  7. Database and admin asks for the site name and address (must start with http:// or https://), the database name, user, password, host and port (1–65535), and the admin account: your name, email and a password of at least 8 characters with letters and numbers. Press Install.
  8. The installer replaces every table in the database, imports the starting data, creates the admin account (on the house jury), writes .env with a new application key and creates storage/installed. You land on the staff sign-in at /admin/login. The installer cannot be opened again afterwards.

The installer makes no network calls. If a field is wrong it returns to the form with the problem shown under the field; nothing is written until every value passes.

Manual installation

cp .env.example .env            # then set APP_URL and the DB_* values
php artisan key:generate
php artisan migrate --seed --force
php artisan storage:link
php artisan tinker --execute="App\Models\Admin::create(['name' => 'Your Name', 'email' => 'you@example.com', 'password' => 'a-strong-password', 'role' => 'owner', 'is_jury' => true]);"
date > storage/installed
php artisan optimize

Keep APP_ENV=production and APP_DEBUG=false on a live site. DB_TIMEZONE=+00:00 keeps timestamps in UTC even when the database server runs on local time.

Scheduler and queue (cron)

Add one cron entry. It runs the scheduler every minute, and the scheduler also works the email and job queue, so no separate worker is needed on shared hosting.

* * * * * cd /home/you/launchbeacon && php artisan schedule:run >> /dev/null 2>&1

Settings → Scheduler shows whether cron has run recently, the exact line for your server and a web-cron address for hosts without cron access.

WhenTaskWhat it does
Every 5 minuteslb:voting-closeCloses voting windows that ended, freezes scores and grants honorable mentions.
Every 5 minuteslb:orders-expireCancels unpaid orders older than 24 hours and returns their drafts.
Hourlylb:sla-alertsAlerts the staff who review work (admins and the jury) about reviews due within two hours or overdue.
Hourlylb:links-checkChecks that live works still open. A link failing for 7 days hides the work from walls.
Daily 00:05lb:awards-propose --kind=dayProposes yesterday's winner for each type.
Daily (publish time, default 09:00)lb:awards-publishPublishes confirmed proposals (and unreviewed ones when that setting is on).
1st of the month 00:10lb:awards-propose --kind=monthProposes last month's winner and People's choice.
5 January 00:15lb:awards-propose --kind=yearProposes last year's winner.
Daily 02:00lb:subscriptions-reconcileChecks memberships with their gateway, expires ended terms and sends renewal reminders.
Daily 03:00lb:sitemapRebuilds the sitemap files.
Daily 07:00lb:jury-digestEmails each juror how many works matching their expertise wait for a score, when new ones opened since yesterday.
Mondays 08:00lb:newsletter-digestDrafts the weekly issue and sends it when automatic sending is on.

Times follow the time zone under Settings → General.

First sign-in checklist

  1. Settings → General: tagline, contact email, time zone, languages and store currency.
  2. Settings → Branding: site name, logos, favicon, colours and fonts.
  3. Settings → Email (SMTP): enter your mail server and use Send test email. Without email, creators cannot confirm their address.
  4. Settings → Payments: add your PayPal credentials (see PayPal) and switch on any other gateway you use.
  5. Settings → Tax and invoices: seller details printed on invoices, and a tax rate if you charge one.
  6. Pricing and plans: check tier prices per type and the membership plans.
  7. Settings → Scheduler: confirm cron is running.
  8. Pages: review the terms, privacy, refund and cookie pages.

Demo content

php artisan db:seed --class=DemoSeeder fills an empty install with thirteen months of fictional activity: creators, jurors, 300 works in every state, votes, awards, paid orders, a membership, blog posts and newsletter subscribers. Every person, studio and address is invented and every image is drawn by the seeder. It refuses to run on a database that already has submissions. All demo accounts use the password demo1234: the client creator@example.com, the juror jury@example.com, and the staff admin@example.com (admin), housejury@example.com (jury) and editor@example.com (editor).

Public pages

PageAddressWhat visitors see and do
Home/The hero is a slider of up to three highlights: today's winner, a work open for voting and the most awarded creators (a slide is left out when it has nothing to show). The previous and next arrows under it step through the slides, the numbered pills beside them pick one, and the arrow keys move between the pills; with full motion it moves on every 7 seconds, waiting while the pointer or keyboard focus is inside it, and the pause button stops it. Below it: today's winners (drag or throw the rail, or use its arrows; each move lands on a card), the latest winners, the Stacks band (a full-width strip with a Themes, Apps and Games tab; each tab shows its platforms, built with and languages as rows of logos that loop across the page in alternating directions, pausing under the pointer or keyboard focus and standing still as scrollable rows when motion is reduced or off; a logo opens that type's winners filtered by the stack; the lists follow Categories and tags), work open for voting, the Spotlight rail, how judging works, top creators, pricing and the newsletter form.
Winners/winners/{type}Published awards; filter by award (day, month, year, honorable mention, People's choice), category, stack (the Any stack list, grouped into Platforms, Built with and Languages) and month. The AI toggle at the end of the filters shows only work built with AI; it stays on when you switch type with the pills. The Winners menu in the header opens on hover or click: one row per type, and beside the row under the pointer or keyboard focus that type's filters. Themes, apps and games show their Platforms, Built with and Languages (every one offered for the type, in name order, each with its logo) beside their ten most used categories. Websites are listed by category only, so they show their categories. Each entry opens this wall already filtered. On a theme, app or game wall the Any stack filter offers the same stacks. Which stacks belong to which type is set under Categories and tags.
Nominees/nominees/{type}Work open for voting; Spotlight pins first (labelled). Filter by category and stack, turn on the AI toggle to show only work built with AI (Spotlight pins included; it stays on when you switch type), and sort by newest, ending soon or most liked. The Nominees menu in the header works like the Winners menu.
Work page/websites/{slug}, /themes/…, /apps/…, /games/…Award stubs, score ring and breakdown after voting closes, like, share, the way out (Visit site on websites, Preview now on themes, apps and games; the cover leads to the same address), the pictures under the cover (mobile screenshot and gallery), which open full size in a viewer with arrows, a counter and a row of thumbnails (arrow keys, a swipe or Esc also work), the website address under Details, vote panel while voting is open, Ask AI buttons under the description on Boost and Spotlight work (see Pricing and plans), credits, categories, tags, related work and a report link. Work built with AI shows a Built with AI badge beside its award stubs and lists AI provider, AI model and Tokens used under Details; its cards on every wall carry an AI badge in the top corner.
Categories and tags/categories, /tags/{slug}Category tiles per type with counts, and filtered walls.
Search/searchSearch by name, purpose or technology, optionally awarded only.
Directory/directoryCreators with filters for role, skill, country, budget, awarded and members; up to three featured creators first (see Directory featuring).
Profile/u/{username}Award counters, bio, skills, works and awards, and a hire form for members whose plan includes it.
Jury/juryThe jurors, with Become a juror beside How judging works and a card at the bottom inviting designers and developers to apply (it states the pay rate while jury pay is on).
Become a juror/jury/applyWhat jurors do, the number on the panel and, while jury pay is on, the rate. Guests get Log in and Create an account; signed-in creators get the application form (see Jury panel).
Awards/awardsThe judging rules, drawn from your live settings, and the certificate and badge showcase.
Pricing/pricingTiers per type and membership plans with a monthly or yearly switch.
Certificates/certificates/{number}Public verification of a certificate number.
Blog, pages, contact/blog, /{slug}, /contactPosts two to a row beside the blog sidebar (categories, latest posts, RSS at /feed); a post keeps the same width, its cover across the page and the text beside the sidebar. Legal and about pages sit at the root (/about, /terms…), and the contact form (stored in the staff Inbox).

Visitor forms and their limits

FormFields and rules
ContactName (up to 120 characters), email, topic (general, support, advertising or partnerships), message (20–5,000 characters), captcha when set up. Up to 5 messages a day from one address.
Hire formSigned-in creators only, not on their own profile. Message (20–2,000 characters), optional budget band, captcha. Up to 5 a day per sender. It is emailed to the profile owner if they keep hire requests switched on.
Community voteSigned-in, confirmed email, account at least 3 days old (setting), not the owner. One score from 1 to 10 in steps of 0.5, changeable until voting closes.
LikeSigned-in creators, one per work; likes never affect the score.
ReportReason (broken link, plagiarism, inappropriate, spam or other) and an optional note up to 500 characters. Up to 20 reports a day per person.
NewsletterEmail; a confirmation email follows (double opt-in). A signed-in creator's own confirmed address is subscribed at once.

Submitting work

  1. Submit (/submit) asks what the work is: website, theme, app or game. Guests can start; they are asked to register before the details step.
  2. The creator enters the address (the live preview address for a theme, a store and store link for an app or game) in the card at the top, then picks a tier (Free, Boost or Spotlight) and presses Continue under the tiers. Members see their discount and credits.
  3. The details form saves itself as a draft while the creator types. A duplicate address is refused with a link to the existing work.
  4. The creator ticks that they own or may submit the work. Free work goes straight to review. Paid tiers go to checkout; the work enters review once payment is confirmed.

What the details form asks for

FieldRules
TitleRequired for review, up to 120 characters.
TaglineUp to 160 characters.
Address (websites and themes)Required for review, http or https, up to 500 characters.
Store links (apps and games)At least one of Google Play, App Store, Microsoft Store, Amazon Appstore, Steam or Web, each up to 500 characters. Pricing model: free, paid or freemium.
Theme detailsMarketplace link and price label (up to 40 characters).
ImagesCover (required, shown at 16:10), icon (required for apps and games, square), mobile screenshot (websites and themes) and gallery images up to the tier's limit. JPG, PNG or WebP, up to 5 MB each by default. Every image is re-encoded to WebP at 400, 800 and 1600 pixels wide.
CategoriesAt least one, up to 3 from the chosen type.
Platforms, built with and languages (themes, apps and games)Websites have none; they are listed by category. Ticked from the lists offered for the chosen type: up to 3 platforms (such as WordPress, Magento, iOS or Steam), up to 5 under Built with (frameworks and engines such as React, Laravel, Flutter or Unity) and up to 3 languages (such as PHP, Python or C#). The work page shows them in rows of the same names.
TagsUp to 5 topics such as Minimal or Dark mode, each up to 40 characters; new names become new tags.
DescriptionRequired for review with at least 80 characters of text (formatted text up to 40,000 characters).
CreditsDeveloper name (120), website (500) and country.
Built with AIOptional, in its own section. Turn on This work was built with AI to show AI provider and AI model (the model list shows only the chosen provider's models) and Total tokens used (a whole number). Turning the switch off clears all three. The provider and model lists are kept in config/ai_catalog.php: add, rename or remove entries there. Work built with AI carries an AI badge on its cards and a Built with AI badge on its work page, where Details lists the provider, model and tokens.
Social linksX, Facebook, Instagram, Pinterest, LinkedIn, Dribbble and Behance addresses (255 each).
SearchSEO title (70), focus keyword (80), meta description (160). The AI assistant can suggest these when it is set up.

Staff then approve (voting opens), request changes (the creator edits and resubmits) or decline.

Voting, scores and awards

Tiers, memberships and credits

Each type has three tiers whose prices and benefits are edited under Pricing and plans: review time, gallery images, days pinned on Nominees, days on the home Spotlight rail, newsletter feature, social post, directory listing, the Ask AI buttons and the link attribute on the visit button. Paid links carry rel="sponsored", free ones nofollow ugc; an earned award makes the link followed.

Memberships (Pro and Studio as installed) can grant a tier discount, monthly Boost and Spotlight credits, priority review, a badge, analytics, a followed profile link, directory featuring, a profile cover, the hire form and featured categories. Gateways with automatic renewal (PayPal, Stripe, Mollie, Paystack, GoCardless) renew by themselves; the others sell a prepaid month or year with reminder emails before it ends. Credits come with each paid period and stay usable for 30 days after a membership ends.

A creator can upgrade Free to Boost or Spotlight at any time before voting closes and pays only the difference. Unpaid orders expire after 24 hours and the draft is released.

Sign-up, profile and security

Clients (the people who submit work) reach their account from the avatar menu or at /account; the tag beside the logo reads Client, or Juror for jurors. The sidebar holds Overview, Submissions, Awards, Billing, Plan, Profile, Security, Notifications, Privacy and, for jurors, Jury.

ScreenFields, controls and rules
RegisterName (2–120 characters), optional username (3–40 lowercase letters, numbers and dashes, not starting or ending with a dash; picked from the name when blank), email, password (at least 8 characters with letters and numbers), the terms tick and captcha when set up. Up to 5 sign-ups an hour from one address. A confirmation email follows; submitting and voting need a confirmed email.
Sign inEmail and password with Remember me. After 5 wrong passwords for the same email and address, sign-in waits 60 seconds. Suspended accounts cannot sign in. Forgot password emails a reset link (captcha when set up).
Overview30-day views, likes and visits, work that needs action, credit balance and membership status.
ProfilePhoto (JPG, PNG or WebP up to 4 MB, saved at 400 × 400) with Upload photo or Replace photo, and cover (up to 6 MB, saved at 1600 × 400, Studio members only) with Upload cover or Replace cover; other members see Upgrade to Studio in its place. After choosing a picture, drag it in the frame, move it with the arrow keys or use Zoom to choose the part that is kept; without that, the picture is centred. Remove photo and Remove cover clear them. Then name (2–120), company (120), profile address (3–40 characters, changeable once every 30 days; the old address keeps redirecting), role, website, country, bio (600), up to 8 skills, up to 8 languages, open to, typical budget and social links. Press Save profile.
SecurityChange password needs the current password and a different new one. Change email needs the password; the new address must be confirmed from the email sent to it. Sign out other sessions needs the password.

Submissions and revisions

Awards, billing and plan

Notifications and privacy

Jury panel

Become a juror (/jury/apply, also linked from the jury page): creators with a confirmed email fill in the kinds of work they can judge (at least one), up to 3 skills and up to 3 each of platforms, built with and languages, years of experience (0–60), a portfolio or website address (optional), why they want to judge (80–2,000 characters) and a tick promising honest scores, then press Send application. While it waits, the page shows the application with Withdraw application (confirmation). A declined creator sees the reason staff gave and the date they can apply again. Once approved, the page links to the jury desk. Unconfirmed, unclaimed and suspended accounts cannot apply, and while applications are closed the page says so.

Creators marked as jurors see Jury in their account: work open for voting that they have not scored, oldest window first. Opening one shows the work and a scoring sheet with four sliders from 1 to 10 in steps of 0.5 (keyboard arrows work), an optional comment up to 500 characters and the live weighted result. Jurors cannot score their own work. Scores can be changed until voting closes; after saving, the next waiting work opens.

Expertise: on Profile, under What you do, a juror picks up to 3 skills and up to 3 each of platforms, built with and languages (the stacks listed under Categories and tags); jurors are not asked what they are open to, and their public profile leaves it out. The expertise named in an approved application is copied here and can be changed at any time. Waiting for your score, the next work after saving a score, the daily jury digest and Remind jurors all count only work that lists one of the juror's platforms, built with or languages. A juror who has picked none sees Choose your expertise with a link to their profile. Websites list no stacks, so they never reach the jury panel; staff on the house jury score them from the moderation screen.

While jury pay is on (Settings → Jury), two cards come first:

Sign-in, sidebar and roles

Staff sign in at /admin/login (clients and staff are separate accounts; up to 10 attempts a minute). The sign-in card shows your logo (or the mark beside the site name). The tag beside the logo in the sidebar shows your role (Admin, Jury or Editor). The sidebar groups Review, Awards, Content, Clients, Revenue and Marketing, then Inbox, Settings and Staff. Counts beside Moderation queue, Revisions, Reports, Awards desk, Jury applications, Social queue and Inbox show what is waiting. Your own profile (name, email, time zone, photo up to 2 MB and password, which needs the current password) and View site (the public site in a new tab) are in the avatar menu.

RoleOpens
AdminEverything, including Settings and Staff.
JuryReview, Awards, Content, Clients and Inbox.
EditorContent, Marketing and Inbox.

Staff marked On the house jury can score work from the moderation screen, so awards work before you have outside jurors.

Overview

Cards for revenue in the last 30 days, monthly recurring revenue, submissions and new creators in 30 days, and work in review; a revenue chart; Next in the queue with Open the queue; award proposals waiting; and the latest orders. While maintenance mode is on, a bar at the top of every staff page says so.

Moderation queue

View: work waiting for review, soonest deadline first, with tier and deadline badges. Filter by title search, type and tier.

Open a work to see its details, description, maker, signals (link check, duplicates, reports) and, when the AI assistant is on, AI read-through with Summarise.

A work that is no longer in review cannot be decided again from this screen.

Revisions

View: pending changes to live work, with the maker, changed fields and date; switch to reviewed ones with the status filter. Open one for a side-by-side comparison of each changed field and any new images. Approve the changes publishes them (optional note up to 1,000 characters); Decline the changes needs a reason of 5–1,000 characters that is sent to the maker. A revision can be decided only once.

Reports and message templates

View: open reports with the work, reason (broken link, plagiarism, inappropriate, spam or other), note and reporter; switch status with the filter.

Message templates holds the texts offered when requesting changes and declining. New template: used for (request changes or decline), title (up to 80 characters), message to the maker (up to 2,000) and order (0–999). Open a template to edit it; delete it from its form at any time.

Voting

View: work with open voting windows, closing soonest first, with jury votes against the number needed, community votes and the closing time. A chip at the top counts work short of jury scores; the jurors button opens Jury.

Awards desk

View: proposals for the chosen award (day, month or year) and period, then published awards with certificate numbers. Use Previous period to look back.

Jury

View: jurors with their scores in the last 30 days and in total, and the staff on the house jury. Add a juror: search a creator by name, username or email and press Add. Remove (confirmation) takes a juror off the jury; their past scores stay. Staff join the house jury from Staff. Applications (with the number waiting) opens Jury applications, Payouts (for staff who open Revenue) opens Jury payouts, and Public jury page opens /jury.

Jury applications

Awards → Jury applications. View: tabs for Waiting, Approved, Declined and Withdrawn, each with its count; every row shows the creator, the kinds of work they can judge, years of experience and when they applied. The sidebar count shows applications waiting, and each new one sends a staff alert to staff who open Awards. Application page opens /jury/apply.

Review (or Open for decided ones) shows the creator with their email and whether it is confirmed, why they want to judge, kinds of work, skills, platforms, built with and languages, experience, portfolio link, works and awards, when they applied and joined, up to six live works, and their earlier applications. Public profile opens their page.

An application can be decided only once. To take an approved juror off the jury, use Remove on Jury.

Submissions

View: every work in every state with owner, tier, status, score and last update. Search by title, address, owner or number; filter by status, type and tier. Tick rows (or Tick all) for bulk archive or restore.

Edit any field with the same limits as the details form, in cards for basics, description, categories and tags, credits, social links, search and Tier and owner (move the work to another account by username or email, change the tier and the link attribute). Archive submission takes an optional note up to 500 characters. Restore returns archived work to the state it was archived from (published if its voting window has passed). Review jumps to the moderation screen.

Images: add a cover, a mobile screenshot (websites and themes) or an app icon (apps and games), or gallery pictures up to the tier's limit, as JPG, PNG or WebP within the size set in submission settings. Staff changes apply at once, without a revision; Remove (confirmation) is refused for the cover or app icon of published work, so upload a replacement instead. Drafts owned by an unclaimed profile also show Publish listing (see Profile claims).

Types

One row per installed type (website, theme, app, game): name, plural name and award name (each up to 40 characters, for example "Site of the day"), icon (lowercase letters, numbers and dashes), order (0–99) and Takes submissions and shows on the site. Press Save. At least one type has to stay open. The four types cannot be deleted and new kinds of work need development.

Categories and tags

The stacks a new install starts with:

GroupOffered forStacks
PlatformsThemesWordPress, WooCommerce, Shopify, Webflow, Framer, Drupal, Joomla, Magento, OpenCart, PrestaShop, CS-Cart, nopCommerce, osCommerce, Osclass, X-Cart
PlatformsApps and gamesiOS, Android, Windows, macOS, Web; Steam (games only)
Built withThemesReact, Next.js, Vue, Nuxt, Angular, Tailwind, Laravel, Django, Node.js, GSAP, Figma; Three.js and WebGL (also games)
Built withAppsFlutter, React Native, Ionic, Cordova, Xamarin, Titanium; Corona and Unity (also games)
Built withGamesGodot, Buildbox, Construct 3
LanguagesThemesHTML, CSS, PHP, Ruby; Python, Go and VB.NET (also apps); JavaScript, Java, C# and C & C++ (also apps and games)
LanguagesApps and gamesSwift, Kotlin

Blog

View: posts with category, state and date; filter by state and category. The Categories card adds (name up to 60 characters), renames and deletes categories; deleting one leaves its posts without a category.

New post: title (up to 160 characters), address (up to 180, unique, made from the title when blank), excerpt (300), cover (JPG, PNG or WebP up to 8 MB), the post body (required, editor with headings, lists, quotes, links and images), category, state (draft or published) with publish date (a future date schedules the post), SEO title (70) and meta description (160). Save post; Delete post (confirmation) from the form. Staff can preview drafts on the site.

Pages

View: pages with address, state, footer link and last update. About, terms, privacy, refunds and cookies are installed. New page: title (up to 120 characters), address (up to 120, unique), body (required), published, link in the footer, order in the footer (0–999), SEO title (70) and meta description (160). Terms, privacy, refunds and cookies are linked from checkout, so their address is locked, they are Always published and they cannot be deleted; other pages can be deleted from their form.

Users

View: creators with username, works, award points, status and join date. Search by name, username, company or email; filter by status, or show members, jurors, unconfirmed emails or unclaimed profiles (these open under Profile claims).

Open a creator to see their submissions and orders and to change the account: name (120), company (120), email (unique) and username (3–30 lowercase letters and numbers with single dashes; the old address redirects). Then:

Directory featuring

The directory's featured block shows up to three creators at a time: staff picks first, then members whose plan includes directory featuring.

Profile claims

List a company before it joins, add its work, and hand the profile over when its owner claims it. An unclaimed profile has a public page with an Unclaimed chip and a Claim this profile button. It cannot sign in, never receives email or notifications, and cannot be invited to the jury.

View: Claim requests waiting for review, oldest first (their count shows in the sidebar); Unclaimed profiles with website, live works, drafts and open invitations, searchable by name, username or website; and Recent decisions. Unclaimed profiles also appear under Users (filter Unclaimed profiles) and open here.

How owners claim

A signed-in creator with a confirmed email presses Claim this profile and uses one of these:

Open a request to see the claimant, their message, the profile's domains, whether the claimant's email is at one of them, and other open claims on the same profile. Then Approve claim (confirmation) or Decline claim with a reason of 10 to 1,000 characters, which is emailed with a link to try again.

An approved claim, in one step: moves every work (archived ones too) to the claimant with its awards, scores and certificates; fills the claimant's empty company, website, country, about, photo and cover from the profile, merges social links and carries over a staff directory pick; makes the old profile address redirect to the claimant's profile; declines the other open requests and cancels invitations; and deletes the unclaimed profile. The claimant is notified, and staff are alerted about claims approved without a review. Suspended accounts cannot claim.

Orders

View: orders with buyer, items, total, gateway, status and date; search by number, name or email and filter by status and gateway.

Open an order for items, payments, buyer and documents, and:

Payments and webhooks

Payments lists every charge and refund with gateway reference, filtered by gateway and kind, with charges, refunds and net for 30 days. Webhooks lists events received from gateways with their state (failed, waiting or done) and attempts, filtered by gateway and state; Retry processes a failed event again. Duplicate events are ignored automatically, and five failures in a row for one gateway alert owners and finance staff by email and in the bell.

Subscriptions

View: memberships with member, plan, gateway, status and period end; filter by status and plan. Sync reads the latest state from the gateway (renewing gateway subscriptions only). Cancelling stops a running membership from renewing at the gateway, and the member keeps access until the period ends. End now (confirmation) stops the benefits at once. Money is not refunded automatically; refund the order separately if needed.

Pricing and plans

Tier prices: a table per type with a row per tier. Price (0–100,000 in the store currency), on sale, review within (1–2,160 hours), gallery images (0–20), pinned days on Nominees (0–60), home Spotlight days (0–60), link attribute, and switches for newsletter feature, social post, directory listing and Ask AI (on for Boost and Spotlight, off for Free by default). Press Save prices. Every tier, Free included, has its own price and On sale switch: Free starts at 0. Work on a tier priced 0 goes straight to review when the creator sends it; any other price goes through checkout. Untick On sale to take a tier off the submit page (for example, to run without a free tier); drafts already on that tier keep it.

Ask AI puts ChatGPT, Perplexity, Claude, Gemini and Grok buttons on the work: over the card's image on hover or keyboard focus, and under the description on the work page. Each opens that service in a new tab with one fixed question filled in from the work itself: title, type, maker, tagline, the work's address and its LaunchBeacon page. The question follows the visitor's language.

Membership plans lists plans with monthly and yearly price, members and state. New plan or open one: name (up to 60 characters), address name (60, unique), tagline (160), monthly price (0–100,000), yearly price (0–1,000,000), order (0–999), on sale, mark as popular, and What it grants: tier discount (up to 100%), Boost credits per month, Spotlight credits per month, priority review, badge, analytics, followed profile link, directory featuring, profile cover, hire form and featured categories.

The plan list has a column for each gateway with automatic renewal, showing Synced or Needs sync; press the refresh button in that column to create or update the plan at the gateway. Do it again after changing a price; existing members keep the price they signed up at. Deleting a plan that members have used hides it from sale instead.

Coupons

View: codes with discount, what they apply to, uses, discount given, validity and state. New coupon: code (up to 40 characters: capital letters, numbers, dashes and underscores, unique), discount type (percent or fixed), value (0.01–1,000,000), applies to (everything, tiers or plans), uses in total and uses per member (blank for unlimited), start and end dates (end on or after start) and active. Open a coupon to edit it. Deleting a coupon that was used on orders switches it off instead.

Invoices

Invoices and credit notes with gapless numbers, billed to, order, total and issue date; filter by kind and search by number. PDF downloads one. Seller and tax opens the settings printed on them. Invoices cannot be edited or deleted.

Jury payouts

Revenue → Jury payouts. Jurors earn one payment of a set amount for every run of scores that count, as set under Settings → Jury: scores on paid listings only (Boost and Spotlight), or on paid and free listings. Scores are paid oldest first, and a change to the rate applies only to scores not paid yet. LaunchBeacon keeps the record; you send the money yourself.

Spotlight placements

Paid Spotlight work is pinned automatically. Pin a work adds a placement by hand: where (top of Nominees or the home Spotlight rail), the work (its number or public address), start (blank for now) and days (1–60), then Pin. Running and upcoming placements are listed with where, work and dates; ending a running one stops it now and deleting an upcoming one removes it. Ended placements appear below.

Newsletter

Social queue

Boost and Spotlight work adds a social post here, filtered by status and network. For each: edit the caption, Copy caption, download the Image, post it on your network, paste Link to the post (optional, up to 500 characters) and press Posted. Remove drops an item.

Inbox

Messages from the contact form in tabs for new, read, replied and archived. Opening one marks it read. Reply by email opens your mail app addressed to the sender, Mark replied, Archive and Delete (confirmation).

Staff and activity log

View: staff with role, house jury and last sign-in. Add staff: name (up to 120 characters), email (unique), password (at least 8 characters with letters and numbers), role and On the house jury, then Save; give the member their password (they can change it under their own profile). Open a member to change name, email, role, house jury or password (leave password blank to keep it).

Guards: you cannot remove your own account; there must always be at least one owner, so the last owner cannot be demoted or removed; a member who scored on the house jury, or whose account is tied to records that must be kept, cannot be removed (change their role or password instead).

Activity log lists staff actions with who, what, details, when and IP address, filtered by staff member and area.

Settings hub

Settings shows one card per page with its state (for example Ready, Not set up, Running, Maintenance on). Secret fields are never shown again after saving; leave them blank to keep the saved value, or tick clear to remove it.

Every settings page

PageFields and rules
GeneralTagline (120), contact email (contact messages, reports and staff alerts go here), time zone, date format, languages offered, default language (always kept in the offered list), currency (prices in the panel are labelled with its symbol, such as $), and Maintenance mode with its message (up to 300 characters). While maintenance mode is on, visitors and creators get a "Back soon" page with your message (HTTP 503, so search engines come back later); staff signed in to the panel still see the whole site, a bar in the panel says maintenance is on, and payments, webhooks, web cron and one-click unsubscribes keep working.
BrandingSite name (60), footer line (160; the field shows the line as it prints, such as "© 2026 LaunchBeacon", and the year and the site name in it stay current on their own), default theme, primary and secondary colours (hex such as #5A3FF0), heading and body fonts from the bundled list, logo and dark logo (PNG, JPG, WebP or SVG up to 1 MB), favicon (PNG, ICO, SVG or WebP up to 512 KB).
PaymentsSee Payment gateways.
Submissions and votingDays voting stays open (1–60), jury votes needed (1–50), community votes that count (0–500), account age to vote (0–90 days), the four criteria weights (must add up to 100), the honorable mention threshold and upload limits.
JuryTake jury applications (off: the Become a juror page says applications are closed; staff can still add jurors under Awards → Jury) and days before a declined creator can apply again (0–365). Pay jurors for scoring, scores per payment (1–100,000, for example 100 or 1,000), amount per payment in the store currency (0–1,000,000) and Scores that count: paid listings only (Boost and Spotlight) or paid and free listings. Changes apply to scores not paid yet. The settings card shows the rate, or Unpaid while pay is off.
AwardsPublish proposals nobody reviewed (on: unconfirmed proposals publish too) and publish time.
Tax and invoicesTax rate %, tax label (for example VAT or GST), prices include tax; the seller's company name, address, tax ID and billing email; invoice prefix.
Email (SMTP)Host, port (1–65535), encryption (STARTTLS or SSL/TLS), username, password, sender name and address. Send test email sends to you with the values in the form, before saving.
SchedulerCron status, the cron line and the web-cron address.
CaptchaProvider (off, Google reCAPTCHA v2 or Cloudflare Turnstile), site key and secret key. Used on the registration, password reset, contact and hire forms.
Google sign-inSwitch, client ID and client secret (from an OAuth client of type Web application in Google Cloud → APIs & Services → Credentials), and the presentation: Button puts Continue with Google on the log in and sign-up pages; One Tap shows Google's prompt on every page for signed-out visitors instead. Only one is offered at a time. The page lists the Authorized redirect URI to add to the client, and the Authorized JavaScript origin One Tap also needs. A first Google sign-in creates the creator account with the address already confirmed; unclaimed profiles and suspended accounts are refused. Staff always sign in with their password. The settings card reads Off, Button or One Tap.
SEO and analyticsHome title (70) and description (160), share image (JPG, PNG or WebP up to 4 MB; 1200 × 630 works everywhere), Google Analytics ID (G- followed by letters and numbers; loaded only after a visitor accepts measurement).
AI assistantProvider (OpenAI, Anthropic or Google Gemini), API key, model (blank for the provider default), SEO and tag suggestions on submit, summaries for reviewers. Test connection checks the key.
Browser pushSee Browser push.
MotionFull, reduced or off, and smooth scrolling on home, awards and pricing. With full motion on a desktop screen, the home page hero also shows a 3D scene of floating award tokens; it is skipped on phones and tablets, with data saver on, and where WebGL is not available. Visitors who ask their device for less motion always get reduced motion.
Social linksYour profiles shown in the footer.
NewsletterWhether the weekly issue sends itself or waits for an editor.

Browser push

Browser notifications use the standard Web Push protocol with keys that belong to your site, so there is no third-party account to create.

  1. Open Settings → Browser push and press Create keys. The public key appears on the page; the private key stays on the server, encrypted.
  2. Switch on Send browser notifications, optionally enter a contact email for push services, and save.
  3. Creators turn notifications on per browser under Account → Notifications. Every bell notification then also appears as a browser notification.

Replace keys (confirmation) creates new keys; browsers that were turned on stop receiving notifications until each creator turns them on again. Push needs HTTPS (browsers allow localhost for testing).

How gateways work

Settings → Payments lists all 17 gateways with their switch, mode and capability chips (Recurring, Refund API, Webhook). Open one to enter credentials, choose Test or Live, press Test connection (it uses the values in the form, before saving) and copy its webhook address. Credentials are stored encrypted and never shown again; leave a secret blank to keep it.

GatewayCheckoutMembershipsRefundsWebhook setupCurrencies
PayPalButtons on the pageAutomatic renewalFrom the orderButton in LaunchBeacon24 major currencies
StripeStripe CheckoutAutomatic renewalFrom the orderStripe dashboardAll Stripe currencies
BraintreeDrop-in on the pagePrepaid termFrom the orderBraintree control panelYour merchant account currency
SquareSquare payment linkPrepaid termFrom the orderSquare developer dashboardUSD, CAD, GBP, AUD, JPY, EUR
MollieMollie checkoutAutomatic renewalFrom the orderAutomatic28 currencies
PaystackPaystack checkoutAutomatic renewalFrom the orderPaystack dashboardNGN, GHS, ZAR, KES, USD, XOF, EGP, RWF
FlutterwaveFlutterwave checkoutPrepaid termFrom the orderFlutterwave dashboardNGN, USD, GBP, EUR, GHS, KES, UGX, TZS, ZAR, XAF, XOF, RWF, ZMW, MWK, EGP
PayUPayU hosted pagePrepaid termFrom the orderPayU dashboardINR
SSLCommerzSSLCommerz hosted pagePrepaid termFrom the orderAutomaticBDT, USD, EUR, GBP, AUD, CAD, SGD, INR, MYR
aamarPayaamarPay hosted pagePrepaid termRecordNot usedBDT, USD
toyyibPaytoyyibPay bill pagePrepaid termRecordAutomaticMYR
SkrillSkrill Quick CheckoutPrepaid termRecordAutomatic35 currencies
GoCardlessGoCardless bank authorisationAutomatic renewalFrom the orderGoCardless dashboardGBP, EUR, USD, SEK, DKK, AUD, NZD, CAD
Amazon PayAmazon Pay buttonPrepaid termFrom the orderSeller CentralBy region: USD (North America), EUR and GBP (Europe), JPY (Japan)
VR payVR pay hosted pagePrepaid termRecordVR pay dashboardCHF, EUR, USD, GBP
CryptomusCryptomus invoicePrepaid termRecordAutomaticAny store currency, paid in crypto
Bank transferInstructions and proof uploadPrepaid termRecordNot usedAny

PayPal

Fields
Client ID, Secret, Webhook ID (filled by the register button)
Test mode
PayPal sandbox apps and sandbox buyer accounts
Memberships
Automatic renewal through PayPal subscriptions
  1. Sign in at developer.paypal.com, open Apps & Credentials, choose Sandbox for testing or Live, and create an app (type Merchant).
  2. Copy the Client ID and Secret into Settings → Payments → PayPal, choose the matching mode and press Test connection.
  3. Save, then press Register webhook. LaunchBeacon creates the webhook in PayPal and fills in the Webhook ID. The site must be reachable over HTTPS for PayPal to deliver events.
  4. Switch PayPal on.
  5. For memberships, open Pricing and plans → Membership plans and press the refresh button in the PayPal column of each plan until it shows Synced. Repeat after changing a plan's price.
  6. Buy a Boost submission with a sandbox Personal account from Sandbox accounts to confirm, then switch to Live with your live app's credentials, register the webhook again and sync the plans again.

On localhost PayPal cannot reach the webhook, but one-time payments still complete: the capture is confirmed with PayPal as soon as the buyer approves.

Stripe

Fields
Publishable key, Secret key, Webhook signing secret
Test mode
Test-mode keys (pk_test_…, sk_test_…)
Memberships
Automatic renewal through Stripe subscriptions
  1. In the Stripe dashboard open Developers → API keys and copy the publishable and secret keys (test or live).
  2. Open Developers → Webhooks, add an endpoint with the webhook address from LaunchBeacon and select the events checkout.session.completed, checkout.session.async_payment_succeeded, checkout.session.async_payment_failed, invoice.paid, invoice.payment_failed, customer.subscription.updated, customer.subscription.deleted, charge.refund.updated, refund.created and refund.updated.
  3. Copy the endpoint's signing secret (whsec_…) into Webhook signing secret, test the connection, save and switch Stripe on.

Braintree

Fields
Merchant ID, Public key, Private key
Test mode
A Braintree sandbox account
Memberships
Prepaid term
  1. In the Braintree control panel open Settings → API, generate a key pair and copy the merchant ID, public key and private key.
  2. Under Settings → Webhooks create a webhook with the address from LaunchBeacon and select the transaction notifications.
  3. Enter the keys, choose the matching mode, test, save and switch Braintree on. The card form (Drop-in) appears on the checkout page.

Square

Fields
Access token, Location ID, Webhook signature key
Test mode
Square sandbox application credentials
Memberships
Prepaid term
  1. In the Square developer dashboard open your application, copy the access token (sandbox or production) and, under Locations, the location ID.
  2. Under Webhooks → Subscriptions add a subscription with the exact webhook address from LaunchBeacon and the events payment.created, payment.updated, refund.created and refund.updated.
  3. Copy its signature key into Webhook signature key (the signature is tied to that exact address), test, save and switch Square on.

Mollie

Fields
API key
Test mode
The test API key (test_…)
Memberships
Automatic renewal: a first payment creates a mandate, then Mollie charges each period
  1. In the Mollie dashboard open Developers → API keys and copy the test or live key.
  2. Enter it, test, save and switch Mollie on. No webhook setup is needed: LaunchBeacon sends its webhook address with every payment.

Paystack

Fields
Public key, Secret key
Test mode
Test keys (pk_test_…, sk_test_…)
Memberships
Automatic renewal through Paystack plans
  1. In the Paystack dashboard open Settings → API Keys & Webhooks and copy the public and secret keys.
  2. On the same page paste the webhook address from LaunchBeacon into Webhook URL (test and live have separate fields). LaunchBeacon uses charge.success, invoice.update, invoice.payment_failed, subscription.disable, subscription.not_renew and refund.processed, signed with your secret key.
  3. Enter the keys, test, save and switch Paystack on.

Flutterwave

Fields
Public key, Secret key, Webhook secret hash
Test mode
Test keys from test mode in the dashboard
Memberships
Prepaid term
  1. In the Flutterwave dashboard open Settings → API Keys and copy the public and secret keys.
  2. Under Settings → Webhooks paste the webhook address from LaunchBeacon, set a secret hash of your choice and enable charge.completed.
  3. Enter the same secret hash in Webhook secret hash, test, save and switch Flutterwave on.

PayU

Fields
Merchant key, Salt
Test mode
PayU test credentials (test.payu.in)
Memberships
Prepaid term; INR only
  1. In the PayU dashboard open Developers → API keys (or the key and salt page for your account) and copy the merchant key and salt.
  2. Under webhooks add the address from LaunchBeacon for successful, failed and pending payments.
  3. Enter the key and salt, choose the matching mode, test, save and switch PayU on. The store currency must be INR.

SSLCommerz

Fields
Store ID, Store password
Test mode
A sandbox store from the SSLCommerz developer site
Memberships
Prepaid term
  1. Copy the store ID and store password from your SSLCommerz merchant panel (or the sandbox registration email).
  2. Enter them, choose the matching mode, test, save and switch SSLCommerz on. No webhook setup is needed: LaunchBeacon sends its IPN address with every payment and validates each one with SSLCommerz.

aamarPay

Fields
Store ID, Signature key
Test mode
aamarPay sandbox credentials
Memberships
Prepaid term; BDT or USD
  1. Copy the store ID and signature key from your aamarPay merchant panel (or the sandbox credentials aamarPay provides).
  2. Enter them, choose the matching mode, test, save and switch aamarPay on. There is no webhook: each payment is verified with aamarPay when the buyer returns. Refunds are made in aamarPay, then recorded on the order.

toyyibPay

Fields
User secret key, Category code
Test mode
An account on dev.toyyibpay.com
Memberships
Prepaid term; MYR only
  1. In toyyibPay copy your user secret key, then create a category and copy its category code.
  2. Enter both, choose the matching mode, test, save and switch toyyibPay on. The callback address goes with every bill automatically. Refunds are made in toyyibPay, then recorded on the order.

Skrill

Fields
Merchant email, Secret word
Test mode
A Skrill test merchant account
Memberships
Prepaid term
  1. In your Skrill merchant account open Settings → Developer settings, set a secret word and enable Quick Checkout for your account.
  2. Enter the merchant email and the same secret word, test, save and switch Skrill on. The status address goes with every payment automatically. Refunds are made in Skrill, then recorded on the order.

GoCardless

Fields
Access token, Webhook endpoint secret
Test mode
A GoCardless sandbox account
Memberships
Automatic renewal through Direct Debit subscriptions
  1. In the GoCardless dashboard open Developers → Create → Access token with read-write access and copy it.
  2. Under Developers → Create → Webhook endpoint add the address from LaunchBeacon and copy its secret. LaunchBeacon uses payment, refund, subscription and billing request events.
  3. Enter both, choose the matching mode, test, save and switch GoCardless on. Direct Debit payments take a few days to confirm; the order shows as processing until then.

Amazon Pay

Fields
Merchant ID, Store ID, Public key ID, Private key, Region
Test mode
Sandbox keys from Seller Central
Memberships
Prepaid term
  1. In Amazon Seller Central open Integration → Integration Central. Copy the merchant ID and the store ID (starts with amzn1.application-oa2-client).
  2. Create an API key pair, keep the downloaded private key file and copy the public key ID. Paste the whole private key, including its BEGIN and END lines.
  3. Choose the region that matches your account (North America, Europe or Japan; it sets the currency), add the webhook address from LaunchBeacon as the notification endpoint, test, save and switch Amazon Pay on.

VR pay

Fields
Instance, API key
Test mode
A VR pay test instance
Memberships
Prepaid term; CHF, EUR, USD or GBP
  1. In VR pay note your instance name (the part before .vr-pay.ch) and create an API key under Integrations → API.
  2. Under webhooks add the address from LaunchBeacon for confirmed transactions.
  3. Enter both, test, save and switch VR pay on. Refunds are made in VR pay, then recorded on the order.

Cryptomus

Fields
Merchant UUID, Payment API key
Test mode
Cryptomus has no separate sandbox; test with a small live amount
Memberships
Prepaid term
  1. In the Cryptomus merchant dashboard open Business → Settings → API, copy the merchant UUID and generate a Payment API key (not the payout key).
  2. Enter both, test, save and switch Cryptomus on. The callback address goes with every invoice automatically; orders stay processing until the network confirms the payment. Refunds are made in Cryptomus, then recorded on the order.

Bank transfer

Fields
Payment instructions, Ask for proof of payment
Memberships
Prepaid term
  1. Write the payment instructions (bank name, account, reference to use) and choose whether buyers must upload proof.
  2. At checkout the buyer sees the instructions and uploads the receipt (JPG, PNG, WebP or PDF up to 5 MB) with an optional note up to 500 characters. Admins are alerted.
  3. When the money arrives, open the order and press Confirm payment. The order is paid, the invoice is issued and the work enters review.

Emails

Every email uses your site name and colours. Each row links to a preview rendered with the demo content (open it in the browser; nothing is sent). Emails go out only when Settings → Email (SMTP) is set up; the same messages always appear in the bell, and in browsers where creators turned notifications on.

EmailSent whenToCreator switch
Confirm your emailA creator registers or changes their emailCreatorAlways sent
WelcomeThe email is confirmedCreatorAlways sent
Reset passwordA creator asks for a reset linkCreatorAlways sent
Submission receivedWork enters review (free, or after payment)CreatorReview results
Changes requestedStaff request changesCreatorReview results
Approved, voting openStaff approve the workCreatorReview results
Submission declinedStaff decline the workCreatorReview results
Voting resultsVoting closesCreatorVoting results
Award wonAn award is published (honorable mention, day, month, year, People's choice)CreatorAwards
Changes approvedStaff approve a revisionCreatorReview results
Changes declinedStaff decline a revisionCreatorReview results
Link unreachableThe link check first fails for a live workCreatorReview results
Payment receiptAn order with a total above zero is paidBuyerAlways sent
Refund issuedA refund is made or recordedBuyerAlways sent
Membership activeA membership startsMemberMembership reminders
Membership renewedA renewal is paidMemberMembership reminders
Membership payment failedThe gateway reports a failed renewalMemberAlways sent
Membership cancelledA membership is cancelledMemberMembership reminders
Membership endedA membership endsMemberMembership reminders
Membership ending soon7 days and 1 day before a prepaid term endsMemberMembership reminders
Hire requestSomeone sends the hire form on a profileProfile ownerHire requests
Jury digestDaily at 07:00 when new work opened for votingJurorsJury digest
Jury reminderStaff press Remind jurorsJurors who have not scoredJury digest
Jury application approved / declinedStaff decide a jury applicationApplicantJury digest
Jury payment recordedStaff record a jury paymentJurorAlways sent
Newsletter confirmationSomeone signs up for the newsletterSubscriberAlways sent
Weekly newsletterAn issue is sentConfirmed subscribersWeekly newsletter (with one-click unsubscribe)
Staff password resetA staff member asks for a reset linkStaff memberAlways sent
Staff alertSee the list belowStaff whose role opens that areaAlways sent

Staff alerts go to staff whose role opens the area: a new paid submission and reviews due within two hours or overdue (review), a new report (review), a new contact message (inbox), award proposals ready (awards), a new jury application (awards), the weekly issue ready for an editor (marketing), a bank transfer to confirm (revenue), and five webhook failures in a row for a gateway (revenue). Recorded refunds add a bell alert for revenue staff, without an email.

Commands

CommandUse
php artisan launchbeacon:admin-password you@example.comSet a new staff password when email is not working (add --password=… or get a random one).
php artisan lb:awards-propose --kind=day --date=2026-09-13Propose winners for a specific day, month (--kind=month --date=2026-08) or year.
php artisan lb:awards-publishPublish confirmed proposals now.
php artisan lb:voting-closeClose voting windows that have ended.
php artisan lb:links-check --limit=50Check the links of live works now.
php artisan lb:sitemapRebuild the sitemap.
php artisan lb:translations esTranslation status for a language (see below).
php artisan lb:installer-sqlFor developers: rebuild public/installer/app_db.sql from a freshly migrated and seeded database. It refuses to export saved credentials.

Languages and translations

LaunchBeacon ships in English, Spanish and Arabic (right to left, with an Arabic typeface). Choose the languages offered and the default under Settings → General; visitors switch language in the footer and signed-in creators keep their choice.

Every interface string lives in lang/es.json and lang/ar.json (plus lang/es and lang/ar for validation messages). To edit a translation, change the value next to the English text. The translation command helps keep files complete:

php artisan lb:translations es                       # how many strings are missing
php artisan lb:translations es --export=missing.json # write the missing strings with empty values
php artisan lb:translations es --import=done.json    # merge a translated file
php artisan lb:translations fr --write               # start a new language with English copies
php artisan lb:translations es --prune               # remove strings the code no longer uses

To offer a new language, create its file with the command, then add its code and name to the language lists in config/settings.php and config/launchbeacon.php.

Updating

  1. Back up the database and the storage folder.
  2. Switch on maintenance mode under Settings → General if visitors should not see the update in progress.
  3. Upload the new files over the old ones, keeping .env, storage and public/storage.
  4. Run php artisan migrate --force and php artisan optimize:clear, then php artisan optimize. Switch maintenance mode off.

Troubleshooting

ProblemFix
Uploaded images do not showRun php artisan storage:link, or create a link from public/storage to storage/app/public in your file manager.
Visitors see "Back soon"Maintenance mode is on under Settings → General.
"Incorrect datetime value" errors for certain hoursKeep DB_TIMEZONE=+00:00 in .env; the database server is running on local time.
"This server cannot create keys" under Browser pushPHP's OpenSSL needs elliptic curve support. LaunchBeacon retries with its own resources/openssl/openssl.cnf; if it still fails, ask your host to enable OpenSSL with EC curves.
"The form has expired" or 419 errorsCheck that APP_URL matches the address in the browser (including https) and clear the browser's cookies for the site.
Awards are not proposed, voting never closes, emails are lateCron is not running. Check Settings → Scheduler.
Uploads are refusedPHP's upload_max_filesize and post_max_size must be above the image limits, and GD must support WebP.
A gateway is not offered at checkoutIt must be switched on, have credentials and accept the store currency under Settings → General.
A buyer paid but the order is still pendingOpen Payments → Webhooks for that gateway and Retry a failed event; check the webhook address in the gateway's dashboard. Bank transfers wait for Confirm payment.
Staff password lost and email not set upRun php artisan launchbeacon:admin-password you@example.com on the server.

FAQ

How are winners chosen?

By published rules: jury and community scores with fixed weights, an honorable mention threshold, then the best eligible work per day, month and year, confirmed by staff. See Voting, scores and awards.

Can a paid tier buy an award?

No. Boost and Spotlight buy a faster review and exposure (pins, newsletter, social post). Awards come only from the scores.

Can I stop winners from publishing without a person checking them?

Yes. Switch off Publish proposals nobody reviewed under Settings → Awards; then only proposals confirmed in the Awards desk are published.

Can I change prices, or add a fourth tier?

Prices and every tier benefit can be changed per type under Pricing and plans, and tiers can be taken off sale. The three tiers themselves (Free, Boost, Spotlight) are fixed.

Can I add another kind of work, such as plugins?

The four types (website, theme, app, game) can be renamed, given new award names or switched off under Types. A new kind with its own fields needs development.

What happens when a paid submission is declined?

The reviewer chooses whether its amount returns as store credit. A cash refund is made from the order under Orders.

Can creators change their work after it wins?

Yes, through revisions that staff approve. The title and address of an awarded work can only be changed by staff.

Why can't a visitor vote?

Community votes need a signed-in account with a confirmed email, at least 3 days old (setting), and never on the voter's own work. Voting must still be open.

How do I test payments before going live?

Use each gateway's test or sandbox credentials with Test mode, buy a Boost submission from a creator account, then check the order, invoice and payment in the staff panel. See PayPal.

How do I take the site offline for an update?

Switch on maintenance mode under Settings → General. Staff still see everything; payments and webhooks keep working.

Where are uploaded images stored, and what should I back up?

Uploads live in storage/app/public (served through public/storage); bank transfer proofs live privately in storage/app/private. Back up the database, the storage folder and .env.

Emails are not arriving. What should I check?

That Settings → Email (SMTP) sends a test email, that cron runs (emails go through the queue), and your mail server's spam and sender rules (SPF and DKIM for your domain).

Changelog

1.0.0

Credits

LaunchBeacon is built on Laravel. Animation uses GSAP, the home page's 3D scene uses three.js, charts use Chart.js, icons are Lucide and fonts are self-hosted from Fontsource. The full list with licences is in THIRD-PARTY-LICENSES.md. Demo content, placeholder images and email preview content are original and fictional. Payment provider and store names are trademarks of their owners, used only to name the service a setting connects to.