Green Submissions

The complete guide — installation, the writer's experience, and the Editorial Suite
Version 1.0  ·  Submission Manager by Glenn Lyvers  ·  greensubmissions.com
↓  Download Green Submissions v1.0 (zip)

Introduction

Green Submissions is a complete, self-hosted submission manager for literary journals, magazines, and small presses. It gives writers a clean place to send work and follow its progress, and gives your editorial staff a private suite for reading, rating, deciding, collaborating on revisions, running contests, and communicating with contributors.

It is battle-tested software: the same codebase has run a working literary journal continuously since 2010, and this release carries all of that refinement — modern security, PayPal contest fees, blind reading, volunteer readers, and more.

It is distributed as free shareware. You may use it for any purpose, including commercial publishing, at no cost. The only requirement is that the footer credit line — "Submission Manager by Glenn Lyvers, provided freely through greensubmissions.com" — remains visible with its link active. See Appendix D.

How this guide is organized

  • Part I gets the software installed and configured — written for a site owner with no special technical background.
  • Part II is the writer's guide — you can copy from it freely for your own help pages.
  • Part III covers every tool in the Editorial Suite, role by role.

1. Choosing a host Install

Green Submissions runs on ordinary PHP + MySQL hosting — the most common, least expensive kind of hosting there is. You do not need a VPS, a "managed application" plan, or anything exotic. Any cPanel-style shared account that meets the requirements will do.

Recommended host: InstantAccess.net

instantaccess.net is the best host for this product, period. They offer deeply discounted, fast, reliable hosting and already run Green Submissions for a multitude of customers — which means:

  • Every server requirement below is met out of the box — PHP 8.3, all needed extensions, MySQL, working SMTP. Zero configuration surprises.
  • Their support team already knows this software. If you get stuck, you won't have to explain what a "submission manager" is.
  • Pricing is aggressively low for the performance — this app feels instant on their servers.
  • One-stop setup: domain, SSL certificate, database, and email accounts all in the same panel.

If you don't already have hosting, start there and the rest of Part I becomes a ten-minute job.

Get hosting at instantaccess.net →

Where to put it

Two common layouts, both fully supported:

LayoutExampleNotes
A subfolder of your main sitehttps://yourjournal.com/submit/Simplest. Upload into a folder inside public_html.
A subdomainhttps://submissions.yourjournal.com/Cleaner URL. Create the subdomain in cPanel first, then upload into its document root.

2. Server requirements Install

RequirementMinimumNotes
PHP8.0 (8.3 recommended)Set in cPanel → MultiPHP Manager or Select PHP Version
DatabaseMySQL 5.7+ / MariaDB 10.3+One database, one user
PHP extensionspdo_mysql, curl, gd, mbstring, opensslStandard on almost every host; toggle in Select PHP Version if missing
Web serverApache with .htaccessNginx works too if you port the two small .htaccess rule sets
EmailAn SMTP mailboxUsed for signup confirmations, password resets, and status notifications
SSL (HTTPS)Strongly recommendedFree via Let's Encrypt / AutoSSL on most hosts; required if you take PayPal payments
Disk~25 MB + uploadsSubmissions are stored as files in /attachments

The web installer checks every one of these automatically on its first screen, so you don't need to verify them by hand.

3. Preparing your server Install

Step A — Create the database

  1. In cPanel, open MySQL® Databases.
  2. Create a new database (e.g. myacct_submissions).
  3. Create a new database user with a strong password.
  4. Add the user to the database and grant ALL PRIVILEGES.
  5. Write down all three values: database name, user name, password. The installer will ask for them.

Step B — Upload the files

  1. Upload the release ZIP with cPanel's File Manager (or FTP/SFTP) to the folder you chose in section 1.
  2. Extract it there so that index.php, styles.css, and the editors/ folder sit directly in your target folder.
  3. Confirm folder permissions are 755 (the cPanel default). Nothing needs to be 777.

Step C — Have your SMTP details ready

Create a mailbox such as [email protected] in cPanel → Email Accounts, and note the SMTP host (usually mail.yourjournal.com), port (usually 465 with SSL), username (the full email address), and password. You'll enter these in the Editorial Suite right after installing.

4. The web installer Install

Visit your upload folder in a browser — e.g. https://yourjournal.com/submit/. Because no config.php exists yet, you are redirected to the installer automatically. Four screens:

Screen 1 — Requirements check

Every requirement from section 2 is tested live, plus write-permission checks on the app folder, /attachments, and guidelines_content.html. Anything marked ✗ FAILED must be fixed before continuing (the screen tells you how). On a properly configured host — such as instantaccess.net — everything passes on the first load.

Screen 2 — Database & site identity

FieldWhat to enter
MySQL hostAlmost always localhost
Database name / user / passwordThe values from section 3, step A
Journal / press nameShown on every page, in emails, and on PayPal checkout — e.g. The Riverbank Review
URL of this appPre-filled; the exact folder the app lives in, no trailing slash
Your main websiteWhere the masthead title links to (leave blank to use the app URL)
TaglineOptional small line above the masthead — e.g. A Literary Journal · Established 2020
Cloudflare Turnstile keysOptional. Free invisible bot protection — get keys at dash.cloudflare.com → Turnstile. Leave both blank and the built-in image captcha is used instead, with zero setup.

On submit, the installer connects to your database, creates all tables with sensible seed settings, and writes config.php. Errors (wrong password, no privileges, etc.) are shown in plain language so you can correct and retry.

Screen 3 — First administrator

Create your own staff account. It receives the Super Administrator role — full access to everything, including staff management. The password must be at least 8 characters with upper- and lowercase letters and a number. This screen only works while the staff table is empty; it can never be used to add accounts to a live site.

Screen 4 — Finished

You get links to your public site and the Editorial Suite, plus the first-run checklist (section 6).

Do this immediately: delete the /install folder from your server. The installer disables itself once config.php exists, but removing it entirely is the correct habit.

5. Manual installation Install

Prefer to do it by hand, or installing on a server without a browser-reachable installer? Three steps:

  1. Import the schema. In phpMyAdmin, select your empty database → Import → choose install/schema.sql. This creates all tables and seed settings.
  2. Create the config. Copy config-sample.php to config.php and fill in the database credentials and site identity variables. Every field is commented.
  3. Create the first admin. Either open /install/index.php?step=3 in a browser (it works as long as the staff table is empty), or insert a row into sm_editors yourself with user_type = 'superadmin' and a password generated by PHP's password_hash().

Then delete /install and continue with the first-run checklist.

6. First-run checklist Install

Log in to the Editorial Suite at /editors/login.php and work through these in order:

  1. SMTP — enter your outgoing-mail settings and use Send Test Email to confirm they work. Nothing else matters until mail flows: signups can't be confirmed without it. (Section 34.)
  2. Editions — create your first edition (e.g. Spring 2027) and tick Open for Submissions. Writers cannot submit until at least one edition is open. (Section 27.)
  3. Guidelines — replace the placeholder guidelines with your own. Writers must agree to them at signup and again at every submission. (Section 36.)
  4. Settings — review the toggles: blind reading, withdrawals, downloads, allowed file types, slush-pile columns, notification emails. (Section 33.)
  5. PayPal (optional) — if you'll run paid contests, configure sandbox credentials, test, then switch to live. (Section 35.)
  6. Staff — add your editors and admins. (Section 31.)
  7. Test the writer journey yourself — sign up with a personal email, confirm, submit a test piece, then log back into the Suite and decide it. Five minutes, total confidence.

7. Security notes Install

Security is engineered in, not bolted on. What ships enabled, and what you should do on top:

Built in — nothing to configure

  • Every database query uses PDO prepared statements — no string-built SQL anywhere.
  • Passwords stored with password_hash() (bcrypt); never in plain text, never recoverable.
  • CSRF tokens on every form; sessions regenerated at login to defeat fixation.
  • Hardened session cookies: HttpOnly, SameSite=Lax, Secure on HTTPS.
  • Bot protection on login, signup, and password reset — Turnstile or image captcha.
  • The /attachments folder refuses to execute any script type; uploads can only ever be downloaded.
  • config.php, config-sample.php, and paypal_config.php are blocked from direct web access.
  • Password-reset and email-change tokens are single-use, random, and time-limited.
  • Writer bios pass through a strict server-side HTML whitelist — no scripts, no links to malware, no XSS.
  • PayPal payments are verified server-to-server; the browser is never trusted to claim a payment happened.

Your part

  • Delete /install after installing.
  • Use HTTPS. Free on virtually every host; mandatory if you take payments.
  • Back up the database and /attachments on a schedule (cPanel backups or your host's tools — instantaccess.net plans include this).
  • Optionally rename the /editors/ folder to something private. All its internal links are relative, so only one line in editors/forgot-password.php (the reset-link path) needs updating afterward.
  • Keep PHP current — when your host offers a newer PHP 8.x, switch to it.

8. Upgrading Install

  1. Back up the database and the whole app folder.
  2. Upload the new release over the old files, keeping your config.php, paypal_config.php, guidelines_content.html, and the entire /attachments folder.
  3. Run any SQL migration listed in the release notes (phpMyAdmin → SQL tab).
  4. Delete the new /install folder.

9. Troubleshooting Install

SymptomCause & fix
Blank page or "500" errorAlmost always the PHP version. Set PHP 8.0+ in cPanel → MultiPHP Manager. Details land in the server's error_log file.
Redirected to the installer after installingconfig.php is missing or unreadable — confirm it exists in the app root with permissions 644.
Signup works but no confirmation email arrivesSMTP not configured or wrong. Editorial Suite → SMTP → fill in, then Send Test Email. Check spam. Port 465 + SSL is typical.
"Could not connect to the database" in the installerWrong credentials, or the DB user wasn't granted privileges on the database. Re-check section 3, step A.
Captcha image doesn't displayThe gd PHP extension is disabled. Enable it in Select PHP Version. (Or configure Turnstile keys instead.)
Uploads fail/attachments isn't writable (needs 755 and correct ownership), or the file type isn't in the allowed list (Settings), or it exceeds your host's upload_max_filesize.
PayPal "Test Connection" failsCredentials pasted with stray spaces, or Sandbox credentials used while set to Live (or vice versa). Environment and credentials must match.
Writers report the status email never cameSame SMTP checklist as above; also confirm the From address is a real mailbox on your domain (many hosts reject spoofed senders).
"You need to be logged in" loopsCookies blocked, or the site is being served over a mix of http/https. Force HTTPS everywhere.

Still stuck? Your host's support is the fastest path for server-level issues — one more reason to use a host that already runs this software, like instantaccess.net. Bugs in the software itself can be reported through greensubmissions.com.

10. Creating an account Writers

Everything below describes what your writers see. Feel free to copy any of it into your own FAQ or help page.

  1. From the home page, choose Create an Account (or Sign Up in the menu).
  2. Enter first name, last name, email address, and a password — that's the whole form. Passwords must be at least 8 characters and include an uppercase letter, a lowercase letter, a number, and a special character.
  3. Complete the human-verification check (an invisible Cloudflare widget, or a short image code, depending on how the site is configured).
  4. Tick the box agreeing to the submission guidelines (linked right there — read them!).
  5. Check your inbox for the confirmation email and click its link. You cannot log in until you confirm. No email after a few minutes? Check spam, then contact the editors — they can confirm you manually.

11. Signing in & passwords Writers

Sign in with your email and password at the Login page. Sessions are secure and private; use Logout in the member menu when you're on a shared computer.

Forgot your password?

  1. Click Forgot your password? on the login page.
  2. Enter your email and pass the verification check. If the address is on file, a reset link arrives by email (valid for 1 hour, single use).
  3. Choose a new password meeting the same strength rules. As a bonus, completing a reset also confirms your email if it was never confirmed.

12. The dashboard Writers

After signing in you land on Your Account Manager. It shows:

  • Status notifications — a card for every submission whose status changed since you last checked, including any note the editor attached. Click Remove this Notification once you've read it.
  • Submission credits — if the editors have granted you contest-fee credits, a banner shows your balance (see section 14).
  • An acceptance message — when work of yours is accepted, the journal's congratulation note appears here once.

The member menu links to Guidelines, Submit (only while an edition is open), My Submissions, My Biography, My Profile, and Logout. When nothing is open for submissions, the menu says so instead of showing a Submit link.

13. Submitting work Writers

  1. Choose Submit from the member menu.
  2. Pick an edition. Regular issues are free; contests show their entry fee right in the list. Selecting a contest reveals its full description and the payment box.
  3. Enter a title.
  4. Attach your file. One attachment per submission; the accepted file types are listed under the field (set by the editors — commonly .doc, .docx, .txt).
  5. Optional comments — a cover-note box for anything you want the editors to know.
  6. Tick the guidelines agreement and press Submit.
Limits: you may submit up to 3 pieces per edition (the journal can adjust this number). One piece per submission — submit twice for two pieces. The form tells you if you've reached the limit.

For contest editions you'll also choose how to pay before submitting — see the next section.

14. Contest fees & credits Writers

Contests carry an entry fee. Two ways to cover it:

Submission credits

Editors can grant fee-waiver credits to your account (prizes, hardship waivers, promotions — their call). If you have any, the payment box offers Use 1 submission credit, which covers the full fee instantly. Your balance shows on the dashboard.

PayPal

  1. Select Pay with PayPal and press Submit. Your entry is stored as pending and you're taken to PayPal's secure checkout (card payments work there too — no PayPal account needed).
  2. Approve the payment and you're returned to the site. The system verifies the payment directly with PayPal before your entry is accepted — the confirmation page will say "Payment received — your contest entry has been submitted."
  3. Cancel at PayPal and nothing is charged or submitted; your uploaded file is discarded and you can try again anytime.
Good to know: paid entries are flagged for the editors and float to the top of their reading queue.

15. Tracking submissions Writers

My Submissions lists everything you've sent: date, title, current status, and edition. Statuses you may see:

StatusMeaning
PendingIn the reading queue; no decision yet.
AcceptedCongratulations — watch the dashboard for the journal's note.
RejectedNot this time. Journals often add an encouraging note to the notification.
Revision RequestedThe editors want changes — the Revision Tool link appears (next section).
Custom statusesJournals can define their own (e.g. Shortlisted, Winner); they appear here just like the built-ins.

Row options

  • WITHDRAW — instantly withdraw a pending submission yourself, no email needed (if the journal has this enabled). Once accepted, contact the editors instead.
  • DOWNLOAD — re-download the file you sent (if enabled).
  • REVISION TOOL — appears when revisions are requested, with a note of who replied last.
  • Clicking a title shows the full submission record, including the cover comments you sent.

16. Revision collaboration Writers

When editors set your piece to Revision Requested, the Revision Tool opens a private message thread between you and the editorial team, attached to that specific submission:

  • A banner always tells you whose turn it is — "Waiting for Your Response (your turn)" or "Waiting for Editor's Response."
  • Write a message, attach a revised file, or both. The same file-type rules apply as for submissions.
  • The most recent message is shown prominently; expand View Full Message History for the whole thread, color-coded by sender.

Everything stays in one place — no digging through email chains to find draft three.

17. Your biography Writers

My Biography is the text that appears on the journal's public Contributors page once you have accepted work. The editor supports bold, italic, underline, and bullet/numbered lists — nothing else, by design — with a live character counter (2,000 visible characters max) and a live preview showing exactly how your entry will look. If you paste something over the limit, your draft is preserved so you can trim it without losing work.

18. Your profile Writers

  • Pen name — set one and it's used everywhere public (directory, editor screens show both). Leave blank to publish under your real name.
  • Contributors-page listing — untick List me on the public Contributors page to keep your name and bio out of the public directory. Your published work is unaffected.
  • Email change (two-step, secure) — click Change My Email Address, enter the new address, and save. A confirmation link goes to the new address; your sign-in email does not change until you click it (link valid 1 hour). A pending change can be cancelled from the profile at any time. Keep this address current — it's where all notices go.

19. Contributor directory Writers

The public Contributors page lists everyone with accepted work who hasn't opted out — searchable by name, paginated, displayed in elegant newspaper columns. Clicking a name opens the contributor's biography in a pop-over without leaving the page. Pen names are respected throughout.

20. Becoming a volunteer reader Writers

If the journal has volunteer reading enabled, a Staff Reader signup link appears in the footer. Applicants provide contact details, agree to the reader guidelines, and pass a captcha; the application lands in a queue for an administrator to approve. Approved readers get a staff login to the Readers Area (section 32) where they score pending submissions to help editors prioritize.

21. Staff login & roles Editors

The Editorial Suite lives at /editors/login.php — a completely separate login from writer accounts. Staff password resets are available on the same page (secure emailed link, single-use).

RoleCan do
Super AdministratorEverything below, plus the Staff page (add/edit/remove staff accounts). Created by the installer.
AdministratorEverything an editor can, plus: Credits, Contributors, Mail, Settings, SMTP, PayPal, Guidelines, dashboard admin tools, edition management.
EditorThe full reading workflow: slush pile, contest tab, search, accepted/rejected/other lists, revisions, status decisions.
ReaderThe Readers Area only: rate pending submissions 1–10, leave reader notes (if enabled). Readers can never change a status.
PendingA volunteer application awaiting approval; no access.

Each role inherits the tools of the roles below it. The nav shows only what your role permits.

22. The admin dashboard Editors

The Suite home page gives administrators four quick tools:

  • Manually confirm an email — for the writer whose confirmation email got eaten by a spam filter. Enter their address; done.
  • Accepted message — the congratulation text shown once on a writer's dashboard when you accept their work.
  • Custom statuses — add your own statuses beyond Accepted / Rejected / Revision Requested (e.g. Shortlisted, Winner, Hold for Next Issue). Edit or delete them here too; deleting a status returns any submissions using it to Pending.
  • Notification settings — turn on email alerts for new submissions and list the staff addresses (comma-separated) that should receive them.

23. The slush pile Editors

The heart of the Suite: every pending submission in one sortable table.

  • Priority first: paid contest entries (badged PAID) float to the top and are row-highlighted; everything else follows in your chosen sort order.
  • Sortable columns: date, title, contributor, type, email, edition — click a header to sort, click again to flip. Optional columns (toggled in Settings): average reader score, IP address, and payment type.
  • Contributor links: the name links to that writer's full User History (every submission they've ever sent); the email is a one-click mailto.
  • Bulk move: tick any set of rows and move them to a different edition in one action — perfect for rolling unread work into the next issue at deadline.
  • Blind mode: flip Blind Editor Mode in Settings and editors get an identity-free slush pile (and, if configured, contributor cover comments are hidden too) for genuinely anonymous reading. A parallel blind contest view exists for contests.

24. Reviewing a submission Editors

Click a title to open the full submission view:

  • Title, edition, current status, and the writer's cover comments (hidden in blind mode).
  • Download the attachment via a protected download endpoint (files can never execute on the server).
  • Private editorial notes — a running note thread on the piece, visible to staff only, each entry stamped with author and date. Readers can contribute notes too if Reader Notes is enabled.
  • Reader scores for the piece, where volunteer readers are in use.
  • A direct link to Update Status (next section).

25. Statuses & decisions Editors

The Update Status screen is where decisions happen:

  1. Choose the new status — Accepted, Rejected, Revision Requested, or any custom status you've defined.
  2. Optionally attach a note to the writer — personalized feedback, next steps, congratulations.
  3. Save. The system records the change in the submission's history, queues the notification on the writer's dashboard, and emails the writer automatically ("the status of your submission has been updated — log in to view"), including a login link.

Accepting a piece also triggers the journal's accepted message on the writer's dashboard. Every status change is tracked with previous → new status, editor, timestamp, and note, so the full decision history of any piece is auditable.

Dedicated list pages keep the archive organized: Accepted, Rejected, Other (custom statuses), and Search (find anything by contributor name and/or title, across all statuses).

26. Requesting revisions Editors

Set a submission to Revision Requested and the collaboration thread opens for both sides:

  • Use Collaborate on the submission to send messages and attach files (marked-up drafts, style sheets, whatever helps).
  • The writer gets the same thread from their side, with clear your-turn/their-turn signals.
  • Revisions in Progress lists every piece currently in revision, sorted by the latest activity, so nothing stalls silently.
  • When the revision satisfies you, simply update the status to Accepted (or anything else) — the thread stays on record.

27. Editions & contests Editors

An edition is anything writers submit to: an issue, a themed folio, or a contest. On the Editions page (admins):

  • Create an edition with a name and a rich description.
  • Open / close it with the Open for Submissions checkbox. Multiple editions can be open at once — writers pick from a dropdown. When nothing is open, the public site says "Submissions are currently closed."
  • Make it a contest by ticking This is a contest and setting the entry fee. Contest editions display their description and fee to writers at submission time and require payment (credit or PayPal) before entry.
  • The list shows open and closed editions separately with type, fee, date added, status, and a live count of accepted pieces.
  • Delete removes an edition and every submission under it — the big red warning means it.

Contest entries also appear in the dedicated Contest tab (toggleable in Settings), including a blind variant for anonymous contest judging.

28. Submission credits Editors

Credits are fee waivers writers can spend on contest entries — one credit covers one full entry fee. Admin-only, on the Credits page:

  • Search any writer by name, pen name, email, or ID.
  • Grant (or deduct) 1–100 credits with a required reason — every movement is written to a permanent audit ledger showing date, amount, reason, and which admin did it.
  • The writer's current balance and recent history display right in the search result.
  • When a writer spends a credit, the ledger records which submission consumed it, automatically.

Typical uses: contest prizes ("three free entries next year"), hardship waivers, promotions, make-goods.

29. Contributors admin Editors

The Contributors page (admins) manages the public directory:

  • Toggle any writer's visibility on the public Contributors page (the writer controls this from their profile too — either side can hide a listing).
  • Edit or clean up a contributor's biography; the same strict HTML whitelist is applied on save, so nothing unsafe can be stored regardless of what's pasted.

30. The mail center Editors

Send email to your writers, straight from the Suite (admins):

AudienceUse for
EveryoneReading-period announcements, new issue launches
An edition's contributorsEveryone with accepted work in a given edition — proofs are ready, launch details, payment notices
One writerAny individual note, picked from a directory list

Messages support mail-merge variables — [firstname], [lastname], [email] — personalized per recipient. After sending you get an explicit per-recipient delivered/failed report. All mail goes through your configured SMTP account.

31. Managing staff Editors

The Staff page (super administrators only):

  • Add staff with name, email, phone, password, and role (admin, editor, or reader).
  • Edit any account — change details, promote/demote roles, or set a new password (leave the password blank to keep the current one).
  • Approve volunteer readers: reader applications from the public signup arrive with the pending role — promote them to reader to activate, or remove them.

32. Volunteer readers Editors

A built-in first-read program that scales your journal without scaling your masthead:

  1. Enable Allow Volunteer Reader Signups (and optionally the footer link) in Settings, and set your reader-guidelines URL.
  2. Writers and fans apply through the public form; applications wait in the Staff page as pending.
  3. Approved readers log in to the Readers Area, where they see pending submissions they haven't yet rated and score each 1–10. Their recent ratings are shown back to them alongside how other readers scored the same pieces, which self-calibrates your pool.
  4. Editors see the resulting average score column on the slush pile and can read reader notes on each piece (if enabled) — pre-sorted slush, effectively.

Privacy knobs: Blind Reader Comments hides contributor cover notes from readers; Reader Notes controls whether readers can view/leave private notes at all.

33. Settings reference Editors

Everything on the Settings page (admins), in one table:

SettingWhat it does
Allow Volunteer Reader SignupsTurns the public reader-application form on/off.
Show Reader Signup Link in FooterAdvertises the reader program in the public footer.
Readers Can View / Leave Private NotesLets readers participate in the private note threads on submissions.
Blind Editor ModeHides submitter identity from editors for anonymous reading (slush pile and contest views switch to blind variants).
Hide Submitter Comments from ReadersKeeps cover notes away from volunteer readers (they can identify authors).
Show Payment Type Column on Slush PileAdds the free/paid column.
Show IP Address Column on Slush PileAdds the submitter-IP column (useful against multiple-account abuse).
Show Average Reader Score ColumnAdds the reader-rating average to the slush pile.
Show "Contest Entries" TabAdds the dedicated contest view to the editor menu.
Accept Paid Contest Submissions OnlyContest workflow accepts no free entries.
Require Contributor Final-Confirmation StepAdds a final confirm step to the submission flow.
Offer Payment-or-Donate Choice to Accepted PoetsFor journals that pay contributors: accepted writers choose payment or donating it back.
Display the Payment Amount in the UIShows the payment figure where relevant.
Allow Users to Download Their Own SubmissionsAdds the DOWNLOAD link on My Submissions.
Allow Users to Withdraw Submissions Prior to AcceptanceAdds the self-service WITHDRAW link on pending work.
Site Maintenance ModeMaintenance flag for the public side.
Allow User RegistrationTurns new writer signups on/off (e.g. off between reading periods).
Enable Comment ModerationModeration flag for contributor-facing comments.
Allowed file typesComma-separated upload whitelist, e.g. .txt, .doc, .docx — applies to submissions and revision attachments.
Reader Guidelines URLWhere the reader-application form's guidelines link points.

34. Email (SMTP) setup Editors

All outgoing mail — confirmations, resets, status notifications, mail-center campaigns — flows through one SMTP account configured on the SMTP page:

FieldTypical value
Mail hostmail.yourjournal.com
Port465 (SSL) — or 587 with TLS
Usernamethe full mailbox address, e.g. [email protected]
Passwordthe mailbox password
From address / From namewhat recipients see, e.g. The Riverbank Review

Use Send Test Email at the bottom of the page after saving — it sends a real message through your settings and reports success or the exact SMTP error. Do this before opening submissions.

35. PayPal setup Editors

PayPal is optional and used only for contest entry fees. It uses PayPal's modern Checkout (Orders v2 REST) — writers can pay with a PayPal balance or a card, and the money lands in your PayPal business account.

Getting credentials

  1. Sign in at developer.paypal.comApps & Credentials.
  2. Create an app; copy the Client ID and Secret. Note there are separate Sandbox and Live credential pairs.

Configuring

Two equivalent places — the PayPal page in the Suite (stored in the database; secret write-only, never redisplayed), or the paypal_config.php file (takes precedence if filled in). Either way you set: environment (sandbox/live), Client ID, Secret, currency, and the master enabled switch.

  1. Start in sandbox with sandbox credentials. Use Test Connection to verify authentication.
  2. Create a test contest edition, submit to it with a sandbox buyer account, and confirm the entry appears marked PAID.
  3. Swap in Live credentials, set environment to live, tick enabled, and re-test with a small real fee.

How the money flow protects you

  • The order is created server-side; the writer approves it on PayPal's site; on return the app captures and verifies the payment directly with PayPal — status, amount, currency, and order identity must all match before the entry is accepted.
  • Nothing a browser sends can fake a payment. Failed or mismatched captures are logged and the writer is shown a payment-failed page with nothing submitted.
  • Cancelled checkouts are cleaned up automatically (the uploaded file is discarded).
  • If PayPal is disabled, contests still work via submission credits — the form says PayPal is unavailable and points writers to request a credit.

36. Editing guidelines Editors

Your submission guidelines are one HTML document shown to writers before signup and before every submission. Edit them on the Guidelines page in the Suite (admins) — it edits guidelines_content.html directly, so you can also update that file over FTP with any editor if you prefer. Standard HTML plus the shipped classes (callout, callout-warn, ornament) are available; the placeholder content that ships with the product demonstrates all of them.

Appendix A — Feature summary

AreaFeatures
Writer accountsEmail-confirmed signup · strong-password enforcement · secure resets · two-step email change · pen names · privacy controls
SubmittingMultiple simultaneous open editions · per-edition limits · single-attachment uploads with type whitelist · cover comments · guidelines agreement · configurable withdrawal & download
ContestsPer-contest entry fees · PayPal Checkout with server-side verification · submission credits with audit ledger · paid-entry priority reading · blind contest judging
Editorial workflowSortable slush pile · blind reading mode · custom statuses · decision notes with automatic writer email · private staff notes · full status history · search · bulk edition moves · user history
RevisionsTwo-way threaded collaboration per submission with attachments and turn indicators · revisions-in-progress overview
ReadersPublic application → approval queue · 1–10 ratings · score averages on the slush pile · calibration view · privacy toggles
CommunityPublic searchable contributor directory · self-managed sanitized bios · mail center with merge variables
AdminFour-role permission system · 20+ behavior toggles · SMTP with test send · in-suite guidelines editor · new-submission notifications
SecurityPDO everywhere · bcrypt passwords · CSRF on all forms · hardened sessions · Turnstile or image captcha · non-executing upload store · protected configs · single-use expiring tokens

Appendix B — File & folder map

/                       writer-facing app (home, signup, login, submit, dashboard…)
/editors/               the Editorial Suite (staff login, slush pile, all admin)
/attachments/           uploaded files (script execution disabled by .htaccess)
/captcha/               built-in image captcha (used when Turnstile keys are blank)
/install/               web installer + schema.sql   ← DELETE AFTER INSTALLING
/docs/                  this documentation
/phpmailer/             bundled PHPMailer library (SMTP email)
/tinymce/               bundled TinyMCE editor (bios, guidelines)
config-sample.php       configuration template (installer writes config.php)
paypal_config.php       optional PayPal credentials file (blank by default)
guidelines_content.html your submission guidelines (editable in the Suite)
styles.css              the entire design system — restyle freely
LICENSE.txt             the free-use license
README.md               quick-start version of this guide

Appendix C — Configuration reference

config.php

ValuePurpose
DBHOST / DBUSER / DBPASS / DBNAMEDatabase connection
$site_urlFull URL of the app folder (no trailing slash) — used in emails and PayPal return links
$site_nameYour journal's name, shown everywhere
$site_home_urlMasthead link target (your main website)
$site_taglineSmall line above the masthead title (may be empty)
TURNSTILE_SITEKEY / TURNSTILE_SECRETCloudflare Turnstile keys; both blank = image captcha

Other knobs

WhereWhat
credits.phpSUB_LIMIT_REGULARPer-edition submission limit (default 3)
paypal_config.phpFile-based PayPal credentials (overrides the Suite's PayPal page when filled in)
styles.css (top)CSS variables for colors and fonts — restyle the whole site in one place

Appendix D — License

Green Submissions is free for any use, personal or commercial, under one condition: the footer credit —

"Submission Manager by Glenn Lyvers, provided freely through greensubmissions.com"

— must remain visible on every page with the link active. You may restyle it to match your site; you may not remove, hide, or disable it. Removing the credit terminates the license. You may modify the software, and share the original package freely (this license travels with it).

No warranty

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY CLAIM, DAMAGES, OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT, OR OTHERWISE, ARISING FROM, OUT OF, OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

You are responsible for your own data, backups, legal compliance (including payment processing and privacy law), and server security. This documentation is provided on the same as-is basis and may not reflect every configuration of every host.

Full terms, including the licenses of bundled third-party components (PHPMailer, TinyMCE), are in LICENSE.txt in the distribution package.