Skip to content

harej/hackerpaste

Repository files navigation

Add to Homescreen

...is a one-of-a-kind text snippet sharing tool, secure by design and built for the decentralized web.

The best paste bin ever created

  • Hacker Paste is entirely in-browser. There is no central server. Your data is not submitted to any intermediary processors. Everything that goes on in the app can be viewed in your browser's inspector. The app and its operations are highly transparent.
  • Hacker Paste stores snippets to Skynet, a decentralized content delivery network. All pastes generated in Hacker Paste, and the Hacker Paste app itself, can be accessed on any Skynet portal.
  • Hacker Paste encrypts all data with AES encryption prior to being uploaded, using a securely generated encryption key that is kept in the snippet URL. The existence of this document is not recorded anywhere other than your list of saved pastes. The existence of the document and its contents are only known to you and anyone you share the URL with.
  • Syntax highlighting in any programming language you can think of

See for yourself

Why this matters

  • Share documents privately and discreetly with anyone with just a URL, no complicated encryption tools required.
  • Decentralized storage and delivery means resistence to censorship and deplatforming. While public portals like siasky.net and skyportal.xyz are available for convenience, anyone can operate their own Skynet portal and use Hacker Paste that way.
  • No central app server means the app can't go down.

Usage

No user account is needed to use Hacker Paste. However, you can optionally sign in with SkyID. This allows you to save your pastes to your "My Pastes" list and to generate and save pastes at reusable URLs (i.e., mutable documents). No personal information of any kind is needed to create a SkyID account.

Both logged in and logged out accounts can save "Snapshots," which are immutable documents. Updating the document generates a new link.

Build

  1. git clone https://github.com/harej/hackerpaste && cd hackerpaste
  2. npm install
  3. npm run build

Deploy to Skynet

Anything pushed to the main branch of https://github.com/harej/hackerpaste will be automatically deployed to Skynet and made available through the Handshake domain hackerpaste.hns and the Ethereum domain hackerpaste.eth. The main branch should be considered the source of truth as to the latest version of Hacker Paste.

If you would like to deploy your own build of Hacker Paste to Skynet (either because you've made modifications or you do not trust the owner of the hackerpaste.hns or hackerpaste.eth domains), upload the build directory to Skynet using a portal such as siasky.net. Be sure to select the directory upload option.

Once you upload the app you will get a link with a 55-character subdomain to your deployment. This link will always point to that exact version of the app. (In certain scenarios, you may prefer a link that can be guaranteed to load the same version of the app.) If you want to be able to update the app and not have to share new links, it is recommended you create a "resolver skylink" using Rift. To do so:

  1. Log in with Skynet (MySky). If you do not have a MySky account, you will be prompted to create one. (Note this is different from SkyID, the predecessor login system used by Hacker Paste.)
  2. From the row of menu options select "DNS"
  3. Click the "Add DNS record" button on the top right. You will be prompted for a name and a skylink. If you have a HNS or ENS name for the app you can use that, or you can use any arbitrary identifying label. For the skylink, take the 55-character app subdomain and somehow convert it into a 46-character skylink.
  4. Click "Save". You will have a resolver skylink that can be updated to point to the latest version of Hacker Paste.

There are tutorials available for associating resolver links with Handshake and associating resolver links with Ethereum Name Service.

Donate

Check out Hacker Paste on Gitcoin.

Alternatively you can send SiaCoin to 4868b7b041f0b80b61b02a07032454667ea69b0f909ea289a016b5678307d033542de76d28a9.