← All posts

From install to first paste: getting SnipShare running in 10 minutes

Walk through installing SnipShare on WordPress, choosing the settings that matter on day one, creating your first multi-file paste with syntax highlighting, and sharing it. Covers visibility modes, expiration, and the raw URL.

SnipShare installs like any WordPress plugin and has sensible defaults out of the box - but a handful of settings decisions made in the first 10 minutes determine how the tool behaves for you long-term. This post walks through the full setup sequence from a fresh install to a working paste you can share.

What you are installing

SnipShare is a self-hosted Pastebin/Gist alternative. The core workflow: create a paste (one or more files, each with syntax highlighting), get a URL, share it. The paste lives on your WordPress install, not on a third-party server.

What ships in the free plugin:

  • Multi-file pastes with per-file language and filename
  • 20+ syntax languages via CodeMirror
  • Four visibility modes: Public, Unlisted, Private, Burn-after-read
  • Password protection per paste
  • Expiration controls: Never / 1 hour / 1 day / 1 week / 1 month
  • Revision history with side-by-side diff
  • Forking, starring, and tagging
  • Public archive at /pastes/ with filter by language and tag
  • Raw URL at /paste/<hash>/raw/ for curl and programmatic access
  • ZIP download

Step 1 - Install and activate

  1. From your WordPress admin, go to Plugins - Add New.
  2. Search for SnipShare or upload the zip from the store.
  3. Activate. The plugin runs a brief setup check and registers the custom post type and rewrite rules.
  4. Go to Settings - Permalinks and hit Save Changes (no change needed, just flush). This ensures /paste/<hash>/ resolves correctly.

Step 2 - Run through the settings that matter on day one

From admin - SnipShare - Settings:

URL slug. Default is /pastes/. Change this if you want something shorter like /code/ or /p/. Set it now - changing it later breaks existing paste URLs.

Who can create pastes. By default, any logged-in user can create pastes. If you want guests to create public pastes (common for Pastebin-style public sites), enable guest submissions. If you want pastes restricted to a specific role (Editors and above for a team intranet), set that here.

Default visibility. If your primary use is sharing code publicly, leave this as Public. If your primary use is a private team archive, set the default to Private - authors always override per-paste, but a sensible default saves clicks. See the team intranet use case for private-library configuration.

Default expiration. For a permanent personal library, set this to Never. For a public site where you want pastes to age out, set a sensible default (1 month) while allowing authors to override.

Syntax theme. Pick a theme that matches how you work. One Dark and Dracula are the most-used choices among VS Code users. This is cosmetic but people notice.

Step 3 - Create your first paste

Navigate to /pastes/create/ (or hit New Paste from the admin bar if you added it). The create form:

  1. Add a file. Click Add file or drag a file in. Give it a filename (e.g. config.yaml) and pick the language from the dropdown.
  2. Paste your code in the editor. Syntax highlighting applies immediately.
  3. Add a second file if needed. SnipShare treats a paste as a container for multiple related files - the same model as a GitHub Gist. A bash script with its configuration file, or three component files that belong together, all go in one paste.
  4. Set visibility. Public (shows in the archive), Unlisted (anyone with the link can view, not listed), Private (only you), or Burn-after-read (self-destructs after the first view).
  5. Set expiration. For code you intend to reference later, leave this as Never.
  6. Add a description and tags. Both are optional but improve searchability. Tags let you filter by topic in the archive.
  7. Hit Create.

You land on the paste view page. The URL is /paste/<hash>/.

Step 4 - Understand the paste URLs

Each paste has three useful URLs:

URLWhat it does
/paste/<hash>/The rendered paste view with syntax highlighting
/paste/<hash>/raw/Plain text, no HTML - useful for curl and scripting
/paste/<hash>/raw/?file=config.yamlRaw text for a specific file in a multi-file paste

The raw URL is worth bookmarking as a workflow pattern. When you reference a paste in a terminal session or want to pipe it into a command, the raw URL is the one you use:

curl https://yourdomain.com/paste/abc123/raw/ | bash

Step 5 - Share the paste

Copy the paste URL from your browser. That is the shareable link. For Unlisted pastes, only people you send the URL to can view it - it will not appear in the archive or search results.

If you need the raw URL for a specific purpose (pasting into a documentation site, linking from a code comment), use /paste/<hash>/raw/.

What revision history looks like in practice

Every time you edit a paste and save, SnipShare creates a new revision. From the paste view, the Revisions tab shows the version history with timestamps.

Click any two revisions and hit Compare to see a side-by-side diff. This is useful when:

  • You iterate on a script over several days and want to see what changed
  • A collaborator forked your paste and you want to compare the changes
  • You want to roll back to an earlier version

The diff view highlights added lines in green and removed lines in red, per file.

Quick-reference: visibility mode decision table

ModeWho can viewIn archive?Use case
PublicAnyoneYesSharing broadly, tutorials, open code
UnlistedAnyone with the URLNoClient-sharing, internal links, not-for-public
PrivateOwner onlyNoPersonal scratch, drafts
Burn-after-readFirst viewer, then goneNoSecrets, temporary credentials, one-time shares

What you have after 10 minutes

  • A working paste archive at /pastes/
  • A create form at /pastes/create/
  • Your first paste with syntax highlighting at /paste/<hash>/
  • A raw URL at /paste/<hash>/raw/ for scripting use
  • Revision history on every paste you create from here

This is the baseline. The Pro features (BuddyPress and bbPress integration, REST API, WP-CLI commands, Collections for organizing pastes) are additive - the core workflow above is complete in the free plugin.