Open-source platforms for hosting private text and code snippet sharing services on your own infrastructure.
PrivateBin is a self-hosted, zero-knowledge text hosting service and secret sharing tool. It utilizes browser-based AES 256-bit encryption to ensure that data is encrypted on the client side before transmission, meaning the hosting server cannot read or recover the original content. The project distinguishes itself by using URL fragments to distribute decryption keys, preventing the secret key from ever being sent to the server. It supports the distribution of both encrypted text and files, which are compressed and encrypted locally prior to storage. The platform includes capabilities for anonymous discussion threads, customizable content expiration policies, and pluggable storage backends. Additional functionality covers markdown rendering, syntax highlighting, and IP-based submission rate limiting to prevent system abuse.
PrivateBin is a self-hosted, privacy-focused pastebin that provides all the requested features, including syntax highlighting, markdown support, ephemeral storage, and API access, while ensuring content remains encrypted on the server.
Grip is a GitHub API rendering tool and markdown previewer that transforms local markdown files into styled HTML. It functions as a converter for processing markdown text into HTML files and as a local server for verifying content appearance before it is committed to a repository. The project ensures visual parity with GitHub by using the GitHub API to render content, applying the specific styles used in repository comments, issues, and pull requests. It includes a mechanism to embed external CSS directly into generated HTML files for portable offline distribution and utilizes disk-based asset caching for fonts and styles to reduce network requests. The tool covers a range of capabilities including markdown-to-HTML export, repository-context linking for correct link resolution, and environment-based configuration for managing API tokens and server settings.
This tool is a local markdown previewer and converter designed for development workflows rather than a self-hosted pastebin or snippet management application for storing and sharing text.
react-syntax-highlighter is a React component that renders source code with language-specific syntax coloring. It wraps the Prism and Highlight.js syntax highlighting libraries, tokenizing source code using their language grammars and mapping each token to a styled React element. The component operates in two styling modes: inline style objects applied directly to each token, or CSS class names that can be themed via external stylesheets. This dual-mode approach makes the highlighter portable across environments where CSS class injection may or may not be available. The component is built around a pluggable architecture where interchangeable highlighter engines feed a tokenization pipeline, and the resulting tokens are wrapped in nested React elements to preserve line and token structure. Developers can apply custom color themes and select from dozens of language grammars, enabling consistent branding or accessibility requirements in React-based documentation, blogs, and tutorials. The rendering is entirely virtual DOM-based, converting parsed tokens into styled elements without requiring external DOM manipulation or dependencies beyond the core highlighter libraries. The project covers the full workflow of syntax highlighting in React: parsing source code, tokenization, and styled rendering, all exposed through a straightforward component API. Documentation and installation instructions are available in the repository, guiding users through adding the package and using either the default themes or custom ones.
This is a React component library for rendering syntax-highlighted code within an existing application, rather than a standalone self-hosted pastebin service for storing and managing snippets.
Highlight.js is a syntax highlighting library that automatically detects and applies color-coded styling to source code blocks within web pages. It functions as a language-agnostic formatting engine, utilizing a modular processor that applies consistent visual themes to diverse programming languages based on their specific grammatical rules. By decoupling the core parsing logic from language-specific definitions, the library provides a unified execution environment that operates without requiring internal knowledge of the target language. The project is distinguished by its modular architecture, which allows developers to import only the specific language definitions required for their application, effectively minimizing bundle sizes. It employs a state-machine tokenizer to process raw text through nested states, enabling the accurate identification of complex language structures. Because the engine is platform-agnostic, it can be executed in both browser and server environments, delegating visual presentation to external stylesheets through generic CSS classes. The library supports a wide range of integration strategies, including server-side rendering for consistent content delivery and client-side processing for dynamic updates. It offers performance-focused features such as web worker support to offload heavy processing tasks, ensuring that user interfaces remain responsive. Furthermore, the library provides compatibility with both modern and legacy module standards, along with plugins for common component-based frameworks to facilitate integration into existing application lifecycles.
This is a syntax highlighting library used to build code-related tools, but it is not a self-hosted pastebin application for storing and managing snippets.
render-markdown.nvim is a Neovim plugin that transforms raw markdown syntax into a visually formatted layout directly inside the editor. It acts as a component visualizer and syntax highlighter, replacing standard markdown elements with custom symbols, icons, and formatted blocks to improve document readability. The plugin provides a toggle between rendered visual layouts and raw text views, allowing users to switch based on their current needs. It also applies markdown styling to injected content sections found within non-markdown file types. The system covers the visualization of various document elements, including tables rendered as grids, stylized callouts, checkboxes, and code blocks with configurable borders. It manages document hierarchy through heading styling, indentation guides, and vertical markers. To maintain performance in large files, the renderer limits visual updates to the currently visible viewport.
This is a Neovim editor plugin for visualizing markdown within a text editor, rather than a self-hosted web application for managing and sharing snippets.
markdown-preview.nvim is a real-time browser-based previewer for Markdown files written within the Neovim text editor. It functions as a live Markdown renderer that converts source text into HTML and provides a synchronized scroll interface to coordinate the editor and the browser preview window. The tool allows for visual customization through a Markdown CSS customizer, enabling the application of custom stylesheets to the rendered documents. It also supports the embedding of local image assets and the rendering of technical diagrams, charts, and mathematical formulas. The system manages these updates via a local HTTP server and provides configurations to restrict preview access to the local machine or open it to other network devices.
This is a Neovim plugin for live-previewing Markdown files locally rather than a self-hosted web application for storing, sharing, and managing snippets.
Runestone is a web-based code editor component and rendering engine designed for browser-based text editing. It functions as a customizable interface that handles the visual representation of code, including line numbering, indentation, and line wrapping. The project features a rule-based syntax highlighting engine that applies colors to text ranges based on language grammar definitions. It also includes a regex-based text search engine that locates specific patterns and applies visual highlights to matching character offsets. The editor manages text input through automatic character pairing and provides tools for customizing aesthetics, such as fonts and colors. It maintains a system for managing page boundaries and formatting text structure to control the visual experience.
This is a text-editing component and rendering engine for iOS and browser-based applications, rather than a self-hosted web application for managing and sharing snippets.