Merge branch 'main' into orbit-chat
2
.github/ISSUE_TEMPLATE/open_an_issue.md
vendored
@ -13,7 +13,7 @@ Hello! To ensure this issue is correctly addressed as soon as possible by the IP
|
||||
|
||||
- A clear description is provided. It should includes as much relevant information as possible and clear scope for the issue to be actionable.
|
||||
|
||||
FOR GENERAL DISCUSSION, HELP OR QUESTIONS, please see the options at https://ipfs.io/help or head directly to https://discuss.ipfs.io.
|
||||
FOR GENERAL DISCUSSION, HELP OR QUESTIONS, please see the options at https://ipfs.tech/help or head directly to https://discuss.ipfs.tech.
|
||||
|
||||
(you can delete this section after reading)
|
||||
-->
|
||||
|
2
.github/config.yml
vendored
@ -20,7 +20,7 @@ newIssueWelcomeComment: >
|
||||
- "Status" labels will show if this is ready to be worked on, blocked, or in progress.
|
||||
- "Need" labels will indicate if additional input or analysis is required.
|
||||
|
||||
Finally, remember to use https://discuss.ipfs.io if you just need general
|
||||
Finally, remember to use https://discuss.ipfs.tech if you just need general
|
||||
support.
|
||||
|
||||
# Configuration for new-pr-welcome - https://github.com/behaviorbot/new-pr-welcome
|
||||
|
88
.github/workflows/broken_link_cron.yml
vendored
@ -1,88 +0,0 @@
|
||||
name: Open a PR to remove broken links on a schedule
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
schedule:
|
||||
- cron: '0 0 * * *'
|
||||
|
||||
permissions:
|
||||
issues: write
|
||||
pull-requests: write
|
||||
|
||||
jobs:
|
||||
check-for-broken-links:
|
||||
runs-on: ubuntu-latest
|
||||
permissions:
|
||||
pull-requests: write
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
with:
|
||||
token: ${{ secrets.REMOVE_BROKEN_LINKS_GH_TOKEN }}
|
||||
|
||||
- uses: actions/setup-node@v3
|
||||
with:
|
||||
node-version: 13
|
||||
|
||||
- uses: ipfs/aegir/actions/cache-node-modules@master
|
||||
with:
|
||||
directories: |
|
||||
README.md
|
||||
build: |
|
||||
npm run build:readme
|
||||
cache_name: readme
|
||||
|
||||
- name: Set up Ruby 3.1.2
|
||||
uses: ruby/setup-ruby@v1
|
||||
with:
|
||||
ruby-version: 3.1.2
|
||||
|
||||
# Cache the files created by awesome_bot
|
||||
- name: Cache awesome_bot files
|
||||
uses: actions/cache@v3
|
||||
id: awesome_bot_cache
|
||||
with:
|
||||
path: |
|
||||
ab-results-README.md-filtered.json
|
||||
ab-results-README.md-markdown-table.json
|
||||
ab-results-README.md.json
|
||||
key: ${{ runner.os }}-awesome_bot-${{ hashFiles('README.md') }}
|
||||
|
||||
- name: Install and run awesome_bot
|
||||
if: steps.awesome_bot_cache.outputs.cache-hit != 'true'
|
||||
run: |
|
||||
gem install awesome_bot
|
||||
awesome_bot --allow 429 --allow-redirect --allow-dupe --allow-ssl -w ipfs.io README.md || echo
|
||||
|
||||
- name: Remove broken links
|
||||
id: remove-broken-links
|
||||
run: |
|
||||
node scripts/remove-broken-links.js
|
||||
echo "Changed files:"
|
||||
git ls-files -m
|
||||
changed_data_files_count=$(git ls-files -m data | wc -l | tr -d ' ')
|
||||
echo "changed_data_files_count='$changed_data_files_count'"
|
||||
echo "changed_data_files_count=$changed_data_files_count" >> $GITHUB_OUTPUT
|
||||
|
||||
- uses: EndBug/add-and-commit@d4d066316a2a85974a05efb42be78f897793c6d9 # v9.1.0 - https://github.com/EndBug/add-and-commit/commit/d4d066316a2a85974a05efb42be78f897793c6d9
|
||||
if: steps.remove-broken-links.outputs.changed_data_files_count != 0
|
||||
with:
|
||||
add: 'data'
|
||||
new_branch: remove-broken-links
|
||||
message: 'chore: Remove broken links'
|
||||
push: 'origin remove-broken-links --set-upstream --force'
|
||||
author_name: 'ipfs-gui-bot'
|
||||
author_email: '108953096+ipfs-gui-bot@users.noreply.github.com'
|
||||
|
||||
- name: pull-request
|
||||
if: steps.remove-broken-links.outputs.changed_data_files_count != 0
|
||||
uses: repo-sync/pull-request@65785d95a5a466e46a9d0708933a3bd51bbf9dde
|
||||
with:
|
||||
source_branch: "remove-broken-links"
|
||||
destination_branch: "master"
|
||||
pr_title: "chore: Remove broken links"
|
||||
pr_body: "Automated PR created by .github/workflows/broken_link_cron.yml"
|
||||
pr_label: "kind/maintenance"
|
||||
pr_draft: false
|
||||
pr_allow_empty: false
|
||||
github_token: ${{ secrets.GITHUB_TOKEN }}
|
33
.github/workflows/data.yml
vendored
@ -1,33 +0,0 @@
|
||||
name: auto build data
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
paths:
|
||||
- data/**
|
||||
|
||||
jobs:
|
||||
build:
|
||||
runs-on: ubuntu-latest
|
||||
if: "!contains(github.event.head_commit.message, '[skip ci]') && github.repository == 'ipfs/awesome-ipfs'"
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/setup-node@v3
|
||||
with:
|
||||
node-version: 13
|
||||
- name: build
|
||||
run: |
|
||||
npm --version
|
||||
node --version
|
||||
npm ci
|
||||
npm run lint
|
||||
npm run build
|
||||
- name: Commit files
|
||||
run: |
|
||||
git config --local user.email "action@github.com"
|
||||
git config --local user.name "GitHub Action"
|
||||
git commit -m "Rebuild" -a
|
||||
- name: Push changes
|
||||
if: success()
|
||||
run: git push
|
28
.github/workflows/pull_requests.yml
vendored
@ -7,27 +7,8 @@ on:
|
||||
branches: [ master, main ]
|
||||
|
||||
jobs:
|
||||
# Run linting and tests
|
||||
build-and-lint:
|
||||
run-awesome-bot:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/setup-node@v1
|
||||
with:
|
||||
node-version: 13
|
||||
- uses: ipfs/aegir/actions/cache-node-modules@master
|
||||
with:
|
||||
directories: |
|
||||
README.md
|
||||
build: |
|
||||
npm run build:readme
|
||||
cache_name: readme
|
||||
# aegir/actions/cache-node-modules runs build. We don't need to run it again.
|
||||
- run: npm run lint
|
||||
|
||||
run-danger:
|
||||
runs-on: ubuntu-latest
|
||||
needs: build-and-lint
|
||||
if: "!contains(github.event.head_commit.message, '[skip ci]')"
|
||||
steps:
|
||||
- name: Checkout
|
||||
@ -40,13 +21,6 @@ jobs:
|
||||
uses: ruby/setup-ruby@v1
|
||||
with:
|
||||
ruby-version: 3.1.2
|
||||
- uses: ipfs/aegir/actions/cache-node-modules@master
|
||||
with:
|
||||
directories: |
|
||||
README.md
|
||||
build: |
|
||||
npm run build:readme
|
||||
cache_name: readme
|
||||
- name: Install and run awesome_bot
|
||||
# It's okay for awesome_bot to fail (for maintainers only). Danger will post a comment on the PR (for maintainers only) if it fails.
|
||||
run: |
|
||||
|
@ -1,26 +1,35 @@
|
||||
# Contribution Guidelines
|
||||
|
||||
Thanks for submitting your entry to Awesome IPFS!
|
||||
Please ensure your pull request adheres to the following guidelines:
|
||||
|
||||
## Content Policy
|
||||
|
||||
Entries are accepted if they meet the following criteria:
|
||||
|
||||
- Entries must use _IPFS_
|
||||
- Entries in the **apps** & **tools** categories must be **open-source** and contain a link to their source code.
|
||||
- Entries in the services & platforms category must contain a clear description of how they relate to IPFS and avoid marketing buzzwords.
|
||||
- Entries must be immediately usable (eg. nothing that is paywall-only, even a free trial would be ok).
|
||||
- Entries must have a clear license and/or privacy policy where applicable.
|
||||
- Entries must respect the [IPFS Community Code of Conduct](https://github.com/ipfs/community/blob/master/code-of-conduct.md).
|
||||
|
||||
### 1. Before submitting
|
||||
|
||||
- Search previous suggestions before making a new one, as yours may be a duplicate.
|
||||
- If you just created something, wait at least a couple of weeks before submitting.
|
||||
- Review the [content policy](POLICY.md) to ensure your submission meets the requirements.
|
||||
- Review the [content policy](#content-policy) to ensure your submission meets the requirements.
|
||||
|
||||
### 2. Creating a submission
|
||||
|
||||
Make an individual pull request for each suggestion:
|
||||
- **Do not edit README directly!**
|
||||
- Add the idea to the corresponding file in [`data`](./data) and make sure it matches the format.
|
||||
Make an **individual pull request for each suggestion**:
|
||||
|
||||
Style tips:
|
||||
- New categories, or improvements to the existing categorization are welcome.
|
||||
|
||||
- Keep descriptions short and simple, but descriptive.
|
||||
- Don't mention `IPFS` in the description as it's implied.
|
||||
- Start the description with a capital and end with a full stop/period.
|
||||
- Check your spelling and grammar.
|
||||
- You can add a picture to describe your idea in [`./src/static/images`](./src/static/images).
|
||||
|
||||
### 3. Submitting it through a PR
|
||||
|
||||
@ -29,6 +38,4 @@ Style tips:
|
||||
|
||||
Thank you for your suggestions!
|
||||
|
||||
-----
|
||||
|
||||
**NOTE**: If you want to edit the README file directly (not the items/links) you need to modify the [`scripts/readme-template.md`](https://github.com/ipfs/awesome-ipfs/blob/master/scripts/readme-template.md) instead. Thank you!
|
||||
---
|
||||
|
6
Makefile
@ -1,6 +0,0 @@
|
||||
build:
|
||||
npm --version
|
||||
node --version
|
||||
npm ci
|
||||
npm run lint
|
||||
npm run build
|
15
POLICY.md
@ -1,15 +0,0 @@
|
||||
# Awesome IPFS Content Policy
|
||||
|
||||
Thanks for submitting your entry to Awesome IPFS!
|
||||
|
||||
Entries are accepted if they meet the following criteria:
|
||||
|
||||
* Entries must respect the [IPFS Community Code of Conduct](https://github.com/ipfs/community/blob/master/code-of-conduct.md)
|
||||
* Entries must use *IPFS* (libp2p, ipld, multiformats is not enough)
|
||||
* Entries must be immediately usable (eg. nothing that is paywall-only, even a free trial would be ok)
|
||||
* Entries must have a clear license and/or privacy policy where applicable
|
||||
|
||||
This policy is evaluated by the site admins upon submission, per the process defined in the [contribution guide](CONTRIBUTING.md).
|
||||
|
||||
This policy was developed [here](https://github.com/ipfs/awesome-ipfs/issues/150) - please add questions, comments and suggestions there.
|
||||
|
278
README.md
@ -1,266 +1,120 @@
|
||||
# Awesome IPFS [![Awesome](https://cdn.rawgit.com/sindresorhus/awesome/d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg)](https://github.com/sindresorhus/awesome)
|
||||
|
||||
> Useful resources for using [IPFS](https://ipfs.tech) and building things on top of it
|
||||
This is a community list of awesome projects, apps, tools, and services related to IPFS.
|
||||
|
||||
_This list is for projects, tools, or pretty much any things related to IPFS that are totally_ **awesome**_. This is for products which are already awesome - if you have plans for cool stuff to do with IPFS, you should build it, and then link it here. If you have an idea for an awesome thing to do with IPFS, a good place to ask about it might be in [our IPFS Discuss Forums](https://discuss.ipfs.io)._
|
||||
If you have an idea for an awesome thing to do with IPFS, a good place to ask about it might be in the [IPFS Forums](https://discuss.ipfs.tech).
|
||||
|
||||
## Table of Contents
|
||||
|
||||
- [Contribute](#contribute-to-this-list)
|
||||
- [Collab-Cluster](#collab-cluster)
|
||||
- [Apps](#apps)
|
||||
- [Articles](#articles)
|
||||
- [Datasets](#datasets)
|
||||
- [Services](#services)
|
||||
- [Tools](#tools)
|
||||
- [Videos](#videos)
|
||||
- [Discussions](#discussions)
|
||||
- [Want to hack on IPFS?](#want-to-hack-on-ipfs)
|
||||
- [Services & Platforms](#services--platforms)
|
||||
- [Pinning Services](#pinning-services)
|
||||
- [Stale Projects](#stale-projects)
|
||||
- [Contribute](#contribute)
|
||||
- [License](#license)
|
||||
|
||||
## Contribute to this list!
|
||||
|
||||
Everyone is welcome to submit their new awesome-ipfs item, but it will be accepted only if it meets our [content policy](https://github.com/ipfs/awesome-ipfs/blob/master/POLICY.md).
|
||||
|
||||
Readme and the website are automatically generated. In order to add an element to this list, you need to modify the files in `/data` and then run `make build` before publishing your pull request. Read [contributing guidelines](https://github.com/ipfs/awesome-ipfs/blob/master/CONTRIBUTING.md) to learn how to do so.
|
||||
|
||||
## Collab-Cluster
|
||||
|
||||
[Collaborative clusters](https://collab.ipfscluster.io/) are public IPFS Clusters that anyone can join to help replicating and re-distributing content on the IPFS network. Instead of datasets cluster content is usually updated.
|
||||
|
||||
## Apps
|
||||
|
||||
- [2read](https://2read.net/) - Convert article in current tab to readable form and upload it to writable node(s). [Source](https://github.com/meehow/2read)
|
||||
- [3Box](https://3box.io) - Create and manage your Ethereum Profile, and your personal data. Use the 3box-js library to integrate profiles into your dapp. [Source](https://github.com/uport-project/3box)
|
||||
- [a js video player](https://github.com/ipfs/website/tree/master/content/docs/examples/webapps/play) - [Demo](https://ipfs.io/ipfs/QmVc6zuAneKJzicnJpfrqCH9gSy6bz54JhcypfJYhGUFQu/play#/ipfs/QmTKZgRNwDNZwHtJSjCp6r5FYefzpULfy37JvMt9DwvXs)
|
||||
- [a markdown renderer](https://github.com/ipfs/website/tree/master/content/docs/examples/webapps/markdown-viewer) - [Demo](https://ipfs.io/ipfs/QmSrCRJmzE4zE1nAfWPbzVfanKQNBhp7ZWmMnEdbiLvYNh/mdown#/ipfs/QmfQ75DjAxYzxMP2hdm6o4wFwZS5t7uorEZ2pX9AKXEg2u)
|
||||
- [a qr-code renderer](https://github.com/ipfs/website/tree/master/content/docs/examples/webapps/qr-render) - [Demo](https://ipfs.io/ipfs/QmccqhJg5wm5kNjAP4k4HrYxoqaXUGNuotDUqfvYBx8jrR/qr#enter%20text%20here)
|
||||
- [Agregore](https://github.com/AgregoreWeb/agregore-browser) - A minimal web browser for the distributed web. Supports downloading/uploading data from IPFS using the browser's `fetch()` API
|
||||
- [AirSecure](https://github.com/airsecure/airsecure) - Decentralized two factor authentication app built on Textile & IPFS.
|
||||
- [akasha](http://akasha.world/) - A Next-Generation Social Media Network, powered by Ethereum and embedded into IPFS.
|
||||
- [Alexandria](http://www.alexandria.io/) - Decentralized content publishing / monetization platform.
|
||||
- [Arbore](http://arbo.re) - A friend-to-friend file-sharing app build on top of IPFS.
|
||||
- [archiveweb.page](https://github.com/webrecorder/archiveweb.page) - A High-Fidelity Web Archiving Extension for Chrome and Chromium based browsers with support for IPFS.
|
||||
- [Autonomica "IPFS Social Proof"](https://github.com/IBM/ipfs-social-proof) - Autonomica is a Keybase-like Dapp for creating an identity and proving this identity via published social media and web proofs.
|
||||
- [beets](https://github.com/beetbox/beets) - Beets has a plugin which allows for easy sharing of music libraries using IPFS
|
||||
- [Blokaly](https://github.com/blokaly) - A badge issuing, sharing and display platform based on IPFS.
|
||||
- [Boards](https://ipfs.io/ipns/boards.ydns.eu) - Distributed social platform that runs in the browser. [Source](https://github.com/fazo96/ipfs-boards)
|
||||
- [brig](https://brig.readthedocs.io/en/latest) - File synchronization with git like interface and FUSE filesystem. [Source](https://github.com/sahib/brig)
|
||||
- [Cohort](https://github.com/zignig/cohort) - A golang app to preset a threejs interface and get all of its assets out of IPFS.
|
||||
- [CoTNetwork](http://www.cotnetwork.com) - A distributed computing network base on ipfs
|
||||
- [dapple](https://github.com/nexusdev/dapple) - Dapple is a Solidity developer multitool designed to manage the growing complexity of interconnected smart contract systems.
|
||||
- [DeCommerce](https://www.ivyca.com/decommerce/) - Decentralized ecommerce for Web3. Allows people to transact business without middlemen. No Middleman, no Bank, no Big Tech, no Government.
|
||||
- [Diffuse](https://diffuse.sh) - Play music from your IPFS node, or any other cloud/distributed storage service you use.
|
||||
- [Discussify](https://github.com/ipfs-shipyard/discussify-browser-extension) - Discussify provides a real-time, peer to peer, and permanent discussion platform for anyone to join and participate.
|
||||
- [DtinyUrl](https://github.com/facert/dtinyurl) - Decentralized URL shortening service based on IPFS.
|
||||
- [dtube](https://d.tube) - Distributed video sharing with steem.it integrations, using ipfs for backend storage.
|
||||
- [edChain](https://www.edchain.io/) - EdChain is a global network for education and careers. It uses blockchain and distributed web technologies to deliver educational content, even to those without broadband internet. [Source](https://github.com/edchainio/edchain-client-gui)
|
||||
- [enzypt.io](https://enzypt.io/) - A website to buy and sell files through Ethereum and IPFS. [Source](https://github.com/flex-dapps/enzypt)
|
||||
- [Ethlance](http://ethlance.com) - First completely decentralised job market platform built on Ethereum and IPFS. [Source](https://github.com/madvas/ethlance)
|
||||
- [Everforo](https://www.everforo.com) - Everforo is the next generation of online community groups build on top of IPFS.
|
||||
- [git-ipfs-rehost](https://github.com/whyrusleeping/git-ipfs-rehost) - A script to rehost your git repos in ipfs.
|
||||
- [Global Upload](https://globalupload.io/) - File transportation service for IPFS, upload files to the future of distributed web.
|
||||
- [Gorilla REPL viewer](https://github.com/keorn/ipfs-gorilla-repl) - Gorilla is a rich REPL for Clojure in the notebook style.
|
||||
- [brig](https://github.com/sahib/brig) - File synchronization with git like interface and FUSE filesystem.
|
||||
- [Diffuse](https://github.com/icidasset/diffuse) - Play music from your IPFS node, or any other cloud/distributed storage service you use.
|
||||
- [Durin](https://durin.site/) - Mobile app for accessing and uploading content on the IPFS network.
|
||||
- [Hardbin](https://github.com/jes/hardbin) - Hardbin is an encrypted pastebin, with the decryption key passed in the URL fragment
|
||||
- [HydrusNetwork](https://github.com/hydrusnetwork/hydrus) - A booru-style media tagging application with a multitude of features, recently added basic ipfs support.
|
||||
- [InfiniteBooru](https://infinitebooru.com) - A booru-style media tagging application and content aggregator with all media backed by IPFS.
|
||||
- [InfinitumX](https://infinitumx.io) - A decentralized "Reddit Place" like board with Harberger's tax as an economical concept & censorship resistance built in.
|
||||
- [infura.io](https://infura.io) - An Infrastructure: use API and developer tools provide secure, reliable, and scalable access to Ethereum and IPFS to help build decentralized application easier.
|
||||
- [InterPlanetary Wayback](https://github.com/oduwsdl/ipwb) - Web Archive (WARC) indexing and replay using IPFS.
|
||||
- [Interplanetary Wiki](https://github.com/jamescarlyle/ipfs-wiki) - Wiki built on top of IPFS
|
||||
- [ipcoronafs](https://github.com/RTradeLtd/ipcoronafs) - A realtime service to scrape COVID-19 and SARS-CoV-2, storing on IPFS, DNSLink, and streaming over LibP2P pubsub
|
||||
- [IPFessay](https://gitlab.com/stavros/IPFessay) - A simple way to publish uncensorable essays on IPFS.
|
||||
- [IPFS Desktop](https://github.com/ipfs-shipyard/ipfs-desktop) - Run your IPFS node on your machine without having to bother with command line tools. Manage your node, add your files, easily change the settings... everything from just one interface.
|
||||
- [IPFS Drive](https://github.com/fazo96/ipfs-drive) - In browser file manager for IPFS.
|
||||
- [IPFS Event Drop](https://github.com/travisperson/ipfs-event-drops) - An app that allows for improved visualization of ipfs events.
|
||||
- [IPFS ID and Public Key QR Codes Demo](https://ipfs.io/ipfs/zdj7Whr8X3zah99TSuyPjENaERcBW9C7B36EaCb1DEZ5pbbL9/) - A demo app that uses windows.ipfs to show you a QR Code of your IPNS Link and of your Public Key. [Source](https://github.com/ipfs-shipyard/demo-ipfs-id-qr-codes)
|
||||
- [IPFS Image Uploader](https://ipfs.talaikis.com/) - IPFS image uploader and viewer. Minerva is a storage plugin of Apache Drill that connects IPFS's decentralized storage and Drill's flexible query engine. [Source](https://github.com/TalaikisInc/ipfs-uploader)
|
||||
- [IPFS with TiddlyWiki](https://github.com/xmaysonnave/tiddlywiki-ipfs) - IPFS with TiddyWiki is a TiddlyWiki plugin who aims to help developers, editors or users to save their wikis and attachments over IPFS.
|
||||
- [IPFS Desktop](https://github.com/ipfs-shipyard/ipfs-desktop) - IPFS Desktop gives you all the power of IPFS in a convenient desktop app: a complete IPFS node, plus handy OS menubar/taskbar shortcuts and an all-in-one file manager, peer map, and content explorer.
|
||||
- [ipfs-chat](https://github.com/SomajitDey/ipfs-chat) - Terminal-based, encrypted chatrooms. Allows private messaging & secure in-chat file/directory sharing. Server/broker-less (no signaling/rendezvous server needed). Works over LAN/internet(w/ NAT-traversal).
|
||||
- [IPFS-forum](https://github.com/ReForum-ipfs/ReForum#readme) - A web3 forum.You can get new ideas,reports,dicussions from this forum ,though you maybe are in a network-restricted area,all the contents will be updated qucikly by ipfs. [Source](https://github.com/ReForum-ipfs/ReForum)
|
||||
- [IPFS-FPS](https://ipfs-fps-website.on.fleek.co/) - A completely decentralized first person shooter. Built with Unity, Fleek, Unstoppable Domans and Pinata.
|
||||
- [ipfs-md-wiki](https://github.com/daijiale/ipfs-md-wiki) - Build your wiki system base on ipfs and markdown.
|
||||
- [ipfs-search](https://ipfs-search.com) - Searching the universe since 2016.
|
||||
Sniffs the DHT gossip and indexes file and directory hashes. Metadata and search API's available. [Source](https://github.com/ipfs-search/ipfs-search)
|
||||
- [ipfs-share](https://github.com/rameshvarun/ipfs-share) - Pastebin/Image host/File sharing application
|
||||
- [ipfs.ink](https://github.com/kpcyrd/ipfs.ink) - Publish and render markdown essays to and from ipfs.
|
||||
- [ipfs.pics](https://github.com/ipfspics/ipfspics-server) - Upload and share pics.
|
||||
- [IPFSBin](https://github.com/victorbjelkholm/ipfsbin) - Pastebin clone build.
|
||||
- [IPFS-FPS](https://github.com/underscoredLabs/webgl-ipfs-fps) - A completely decentralized first person shooter. Built with Unity, Fleek, Unstoppable Domans and Pinata.
|
||||
- [IPGit](https://github.com/meyer1994/ipgit) - Remote Git repository that mirrors your code to IPFS
|
||||
- [IpJot](https://ipjot.herokuapp.com/) - Creates short notes, stories, books, poems, conversations on IPFS.
|
||||
- [IPSE](https://www.ipse.io/) - A search engine for the IPFS network.
|
||||
- [Kauri](https://kauri.io) - A community-based knowledge platform for web3 technologies built on top of IPFS and Ethereum. Learn, share and curate on up-to-date and high-quality technical articles and series.
|
||||
- [KDE-DolphinServiceMenu-IPFS](https://github.com/amar-laksh/KDE-DolphinServiceMenu-IPFS) - Service Menu for Dolphin File Manager to upload files to IPFS The open network for transaction requests.
|
||||
- [killcord](https://killcord.io/) - A censorship resistant deadman's switch [Source](https://github.com/nomasters/killcord)
|
||||
- [La Marque](https://marque.la/) - Generate & pin content from your phone. Validate "La Marque" assets by verifying received images from others.
|
||||
- [markup.rocks](https://ipfs.io/ipfs/QmWPgJnUGLB1LPh9KMG9LEN4LVu5e17TwkEtcmTWdNn9V6/#/ipfs/QmfQ75DjAxYzxMP2hdm6o4wFwZS5t7uorEZ2pX9AKXEg2u) - Pandoc-based markup editor/previewer/converter, ported to IPFS. [Source](https://github.com/davidar/markup.rocks)
|
||||
- [Minerva](https://github.com/bdchain/Minerva) - Minerva is a storage plugin of Apache Drill that connects IPFS's decentralized storage and Drill's flexible query engine.
|
||||
- [Music For Programming](https://ipfs.io/ipns/mfp.jillejr.tech) - Unofficial port of musicforprogramming.net. [Source](https://github.com/jilleJr/musicforprogramming.ipfs)
|
||||
- [OpenBazaar](https://github.com/OpenBazaar) - OpenBazaar was an open source project developing a protocol for e-commerce transactions in a fully decentralized marketplace.
|
||||
- [Orbit](https://orbit.chat) - Distributed, peer-to-peer chat application on IPFS. [Source](https://github.com/haadcode/orbit)
|
||||
- [Origin Protocol](https://demo.originprotocol.com/) - Distributed sharing economy marketplace with images, metadata, and ERC 725 data stored on IPFS. [Source](https://github.com/OriginProtocol/demo-dapp)
|
||||
- [P2Pdoc](https://p2pdoc.glitch.me/) - P2Pdoc allows you to create a document and then upload it to the distributed web. [Source](https://github.com/aboutDavid/p2pdoc)
|
||||
- [Partyshare](https://busterlabs.github.io/Partyshare) - A simple file sharing desktop app. [Source](https://github.com/BusterLabs/Partyshare)
|
||||
- [Pathephone](https://pathephone.github.io) - Distributed music streaming app.
|
||||
- [Peer Bandwidth Demo](https://ipfs.io/ipfs/QmVaVXbLdw4R5NqAiiQoTWtitxo5g7FS31PQmCLbH9p8Fu/) - An demo app that uses window.ipfs, provided by the IPFS Companion web extension to get and graph bandwidth info for your IPFS node [Source](https://github.com/tableflip/ipfs-peer-bw-example)
|
||||
- [Peer Map Demo](https://ipfs.io/ipfs/QmRPGCmLKH2dQmNiPRsiuYS9EhhJL1Gmkz5F75gKY1K4Bm/) - A map of IPv4 IPFS peers that uses window.ipfs [Source](https://github.com/tableflip/ipfs-peer-map-example)
|
||||
- [Peer Web Site](https://peerweb.site/) - Peer to Peer Web Site hosting at your fingertips! Send full featured HTML (incl. CSS, JS) sites from your browser and attach files eg. videos, images, etc. [Source](https://github.com/Weedshaker/PeerWebSite)
|
||||
- [Peergos](https://peergos.org) - End-to-end encrypted, peer-to-peer file storage and sharing. [Source](https://github.com/Peergos/Peergos)
|
||||
- [Playback](https://mafintosh.github.io/playback/) - IPFS playback support. This allows casting a video in IPFS to a Chromecast.
|
||||
- [PubSub Chat Demo](https://ipfs.io/ipfs/QmWZ3u5S7RjFXKfW6dSZhj7CozcvpqJxm48RYMmKkWcmNQ/) - A ~76KB demo chat app that uses window.ipfs, provided by the IPFS Companion web extension [Source](https://github.com/tableflip/ipfs-pubsub-chat-example)
|
||||
- [Pugdit](https://github.com/zbyte64/pugdit) - A bulletin board service that discovers and distributes over IPFS
|
||||
- [killcord](https://github.com/nomasters/killcord) - A censorship resistant deadman's switch
|
||||
- [Peer Web Site](https://github.com/Weedshaker/PeerWebSite) - Peer to Peer Web Site hosting at your fingertips! Send full featured HTML (incl. CSS, JS) sites from your browser and attach files eg. videos, images, etc.
|
||||
- [Peergos](https://github.com/Peergos/Peergos) - End-to-end encrypted, peer-to-peer file storage and sharing.
|
||||
- [PushToTalk](http://timothy.hobbs.cz/push-to-talk/index.html) - Push to Talk lets you edit audio essays and publish them with IPFS.
|
||||
- [qri](https://qri.io) - Dataset version control, discovery and collaboration tools (free, open-source). [Project is winding down] [Source](https://github.com/qri-io/qri)
|
||||
- [QuestNetwork Messenger](https://github.com/QuestNetwork/quest-messenger-js) - Multi-Platform End-To-End Encrypted Messenger on IPFS PubSub. Emulates Servers/Community with folders that can be shared using invitation codes. It's free and open source. On track to become the most comprehensive and user-friendly messenger on IPFS.
|
||||
- [Request](https://request.network/) - Decentralized network for financial transactions. [Source](https://github.com/RequestNetwork/requestNetwork)
|
||||
- [SimpleAsWater Bot](https://github.com/simpleaswater/twitter-pinbot) - A twitter bot that adds, pins, unpins your tweets to public IPFS network using IPFS Cluster.
|
||||
- [Skiff](https://www.skiff.com) - Privacy-first, end-to-end encrypted email, file storage, and collaboration platform using IPFS storage. [Source](https://github.com/skiff-org/skiff-mail)
|
||||
- [Skyhook](https://github.com/deedeecx330/skyhook) - Send and receive files securely
|
||||
- [TallyLab](https://tallylab.com/) - Local-first, end-to-end encrypted data diary app for capturing, analyzing, and sharing data about any and everything.
|
||||
- [Temporal](https://github.com/RTradeLtd/Temporal) - Temporal is an easy to use API and platform for integrating IPFS and other distributed/decentralized storage technologies into enterprise applications
|
||||
- [Terrive](https://ipfs.io/ipns/terrive.one) - A Photo and Video Sharing Platform that uses the HIVE blockchain as a database and Immutable Image/Video Hosting. [Source](https://github.com/appukuttan66/terrive)
|
||||
- [Textile Photos](https://www.textile.photos) - Textile Photos is a secure, mobile digital wallet for your photos. [Source](https://github.com/textileio/textile-mobile)
|
||||
- [ToDo List Demo](https://ipfs.io/ipfs/QmSGQrmvHe6fFiWdV2H8YnhLaoX4qe5nYEmJfUFx6LdUYa/) - A ToDo List demo app that uses windows.ipfs. [Source](https://github.com/ipfs-shipyard/demo-ipfs-todo)
|
||||
- [ujo](http://ujomusic.com/) - A blockchain marketplace for musicians.
|
||||
- [Uniswap](https://uniswap.org/) - Decentralized Trading Protocol built on Ethereum. [Source](https://github.com/Uniswap)
|
||||
- [uport](https://www.uport.me) - Uport is a mobile, self-sovereign identity and key management system, built on the Ethereum blockchain.
|
||||
- [Valist](https://valist.io) - A trustless universal package repository enabling you to digitally sign and distribute software in just a few steps. [Source](https://github.com/valist-io/valist)
|
||||
- [Watchit](https://github.com/ZorrillosDev/watchit-desktop) - A movie platform with a decentralized network approach.
|
||||
- [Wistful Books](https://wistfulbooks.com/) - Single page offline application for enjoying librivox.org audio books. [Source](https://github.com/smwa/wistfulbooks)
|
||||
- [xfce-screenshooter-ipfs-support](https://github.com/amar-laksh/xfce-screenshooter-ipfs-support) - A fork of xfce-screenshooter with IPFS support!
|
||||
- [youtube2ipfs](https://pypi.org/project/youtube2ipfs/) - Download videos from YouTube (and similar video platforms) and add them to IPFS. [Source](https://github.com/dokterbob/youtube2ipfs)
|
||||
- [Skiff](https://github.com/skiff-org/skiff-mail) - Privacy-first, end-to-end encrypted email, file storage, and collaboration platform using IPFS storage.
|
||||
|
||||
## Articles
|
||||
|
||||
- 2020-08-03: [How to Create a Unity Game on IPFS using Pinata](https://medium.com/pinata/how-to-create-a-unity-game-on-ipfs-using-pinata-d0af18a5bd44)
|
||||
- 2019-08-14: [Managing storage in a Java application with IPFS](https://kauri.io/article/3e8494f4f56f48c4bb77f1f925c6d926)
|
||||
- 2019-07-22: [10+ Resources Every IPFS Developer Should Know About](https://medium.com/@vaibhavsaini_67863/10-resources-to-get-started-with-ipfs-5f429dc8a841)
|
||||
- 2019-05-12: [The Complete Beginner's Guide to Deploying Your First Static Website to IPFS](https://dev.to/agentofuser/the-complete-beginner-s-guide-to-deploying-your-first-static-website-to-ipfs-33po)
|
||||
- 2019-03-10: [The Case for a Decentralized Social Network](https://medium.com/npfoss/the-case-for-a-decentralized-social-network-2683b727abf5)
|
||||
- 2019-01-30: [Ultimate Guide to Filecoin Breaking Down Filecoin Whitepaper & Economics](https://medium.com/swlh/ultimate-guide-to-filecoin-breaking-down-filecoin-whitepaper-economics-9212541a5895)
|
||||
- 2018-08-06: [Content Identifiers in IPFS](https://pascalprecht.github.io/posts/content-identifiers-in-ipfs/)
|
||||
- 2018-07-11: [On future-proof cryptographic hashes](https://pascalprecht.github.io/posts/future-proofed-hashes-with-multihash/)
|
||||
- 2017-08-21: [Understanding the IPFS White Paper part 2](https://decentralized.blog/understanding-the-ipfs-white-paper-part-2.html)
|
||||
- 2017-08-10: [Understanding the IPFS White Paper part 1](https://decentralized.blog/understanding-the-ipfs-white-paper-part-1.html)
|
||||
- 2017-05-05: [Decentralized indexes for public genomic data](https://github.com/luizirber/2017-recomb)
|
||||
- 2017-03-31: [Using IPFS for IoT Communications](https://medium.com/@chrismatthieu/using-ipfs-for-iot-communications-b49c2139783a)
|
||||
- 2016-09-12: [IPFS: The Internet Democratised](https://medium.com/@tonywillenberg/web-3-0-a-truly-democratised-internet-f4b06cb4077b)
|
||||
- 2016-05-20: [Changelog Podcast](https://changelog.com/podcast/204/)
|
||||
- 2015-09-18: [The InterPlanetary File System Wants to Create a Permanent Web](http://motherboard.vice.com/read/the-interplanetary-file-system-wants-to-create-a-permanent-web)
|
||||
- 2015-09-13: [Introduction to IPFS](http://whatdoesthequantsay.com/2015/09/13/ipfs-introduction-by-example)
|
||||
- 2015-09-08: [HTTP is obsolete. It's time for the distributed, permanent web](https://ipfs.io/ipfs/QmNhFJjGcMPqpuYfxL62VVB9528NXqDNMFXiqN5bgFYiZ1/its-time-for-the-permanent-web.html)
|
||||
- [Downloading nodejs versions with nvm/n over IPFS](https://ipfs.io/ipfs/QmTkzDwWqPbnAh5YiV5VwcTLnGdwSNsNTn2aDxdXBFca7D/example#/ipfs/QmUx363UFtgiQqkHHsPK3TSDmwoALDo2hrbMWbcxjH2vFc)
|
||||
|
||||
## Datasets
|
||||
|
||||
- [7-piece Syzygy tablebases](https://syzygy-tables.info/) - Solutions for all chess endgames with up to 7 pieces. [Source](https://github.com/syzygy1/tb)
|
||||
- [alpine-linux 3.4 packages](https://ipfs.io/ipfs/QmRsvEpJggeu4HhoafzRFobV4sbwVVTXMrdb2p8XWv7bCS) [Source](https://github.com/ipfs/archives/issues/83)
|
||||
- [arXiv](https://ipfs.io/ipfs/QmfXH9XtP7xmoTH8WAp4HNSduqWMwLTH8B8TvbTkdgzNAa) [Source](https://github.com/ipfs/archives/issues/2)
|
||||
- [Brainwash Dataset](https://purl.stanford.edu/sx925dc9385) - Stewart, Russell. (2015). Brainwash dataset.
|
||||
- [cdn.media.ccc.de](https://ipfs.io/ipfs/QmW84mqTYnCkRTy6VeRJebPWuuk8b27PJ4bWm2bL4nrEWb) [Source](https://github.com/ipfs/archives/issues/52)
|
||||
- [cdnjs](https://ipfs.io/ipfs/QmRrnfFUgx81KZR9ibEcxDXgevoj9e5DydB5v168yembnX) [Source](https://github.com/ipfs/archives/issues/35)
|
||||
- [Cooking Recipes](https://ipfs.io/ipfs/QmTXo6GforwsuGAd8behjgvKCsMMBdG1xMZJF4qa9W7CHB) - Around 50GB of formatted and unformatted cooking recipes. [Source](https://old.reddit.com/r/opendirectories/comments/dsznin/50_gb_directory_of_cooking_recipes/)
|
||||
- [CrowdHuman Dataset](http://www.crowdhuman.org/) - CrowdHuman dataset. A Benchmark for Detecting Human in a Crowd [Source](http://www.crowdhuman.org/download.html)
|
||||
- [Geocities by Archive Team](https://ipfs.io/ipfs/QmVCjhoEFC9vwvaa8bKyJgwAByP4MXSogcyDGoz4Lkc3ox) [Source](https://github.com/ipfs/archives/issues/182)
|
||||
- [haveibeenpwnd.com passwords](https://ipfs.io/ipfs/QmSRBDMksX7c5dfheGsYDdWrLdve5hBvXDQm7Yrov7KMJv) [Source](https://github.com/ipfs/archives/issues/157)
|
||||
- [IETF RFC Archive](https://ipfs.io/ipfs/QmNvTjdqEPjZVWCvRWsFJA1vK7TTw1g9JP6we1WBJTRADM) [Source](https://github.com/ipfs/archives/issues/18)
|
||||
- [KinoKabaret Caen, 2018 - Shortfilms](https://ipfs.io/ipfs/QmajLDwZLH6bKTzd8jkq913ZbxaB2nFGRrkDAuygYNNv39) [Source](https://github.com/ipfs/archives/issues/172)
|
||||
- [MDSConnect](https://ipfs.io/ipfs/QmcvfB6pAqUfTnuAK8zFKVxbdhopnBPveJrDcy1JAA7HX5) [Source](https://github.com/ipfs/archives/issues/152)
|
||||
- [No-Intro Collection](https://ipfs.io/ipfs/QmPFj6iAxUwxVyEtDJBJHXVp4SX9dkV91Mh5mjqGxTctHy) [Source](https://github.com/ipfs/archives/issues/163)
|
||||
- [Old Internet Files](https://ipfs.io/ipfs/QmbsZEvJE8EU51HCUHQg2aem9JNFmFHdva3tGVYutdCXHp) [Source](https://github.com/ipfs/archives/issues/176)
|
||||
- [Presidential Daily Briefs](https://ipfs.io/ipfs/Qme6epvZDj3vzHcFKdF1nZhbixjw8Bn4imGcKnbUyBJL89) [Source](https://github.com/ipfs/archives/issues/23)
|
||||
- [Project Apollo Archives](https://ipfs.io/ipfs/QmSnuWmxptJZdLJpKRarxBMS2Ju2oANVrgbr2xWbie9b2D) [Source](https://github.com/ipfs/archives/issues/143)
|
||||
- [textfiles.com](https://ipfs.io/ipfs/QmNoscE3kNc83dM5rZNUC5UDXChiTdDcgf16RVtFCRWYuU) [Source](https://github.com/ipfs/archives/issues/155)
|
||||
- [WistfulBooks: LibriVox Audiobook Archive](https://wistfulbooks.com) - Free public domain audiobooks from LibriVox.org packaged into a single page that lets you listen to audiobooks in your browser. [Source](https://github.com/smwa/wistfulbooks)
|
||||
- [World Wide Web History Project](https://ipfs.io/ipfs/QmRTSA1UFHSx3z7taNRwUVM8AjB2EQwKvyZu3BfJg9QRtZ) [Source](https://github.com/ipfs/archives/issues/159)
|
||||
- [xkcd](https://ipfs.io/ipns/xkcd.hacdias.com) [Source](https://github.com/ipfs/archives/issues/21)
|
||||
- [yarchive.net](https://ipfs.io/ipfs/QmdA5WkDNALetBn4iFeSepHjdLGJdxPBwZyY47ir1bZGAK) [Source](https://github.com/ipfs/archives/issues/76)
|
||||
|
||||
## Services
|
||||
|
||||
- [Boom.FYI](https://www.boom.fyi) - An IPFS link shortening and access control service.
|
||||
- [Crust Network](https://crust.network) - Decentralized pinning and gateway service for IPFS.
|
||||
- [Eternum](https://www.eternum.io/) - Paid pinning service with an easy-to-use API.
|
||||
- [Fission](https://fission.codes) - App and website hosting powered by IPFS, including DNS automation, identity, and end-to-end encryption.
|
||||
- [Fleek](http://fleek.co/) - Open Web development platform for building, hosting, and storing sites and apps on IPFS, Filecoin, and the Internet Computer. [Source](https://github.com/FleekHQ)
|
||||
- [IPFSBay](https://www.ipfsbay.com) - Unstoppable marketplace in the IPFS network.
|
||||
- [Monaparty](https://www.monaparty.me/) - Token assets platform based on Monacoin and Counterparty. Contents bound to user assets are hosted by IPFS.
|
||||
- [Peergos](https://peergos.org) - Your private, but social, space online. Store and edit documents and media. Share files or folders with friends. [Source](https://github.com/Peergos/Peergos)
|
||||
- [Pinata](https://pinata.cloud) - Build and manage your dapp through Pinata’s REST API and IPFS toolkit.
|
||||
- [Robonomics Network](https://robonomics.network/) - Ethereum network infrastructure for cyber-physical systems' integration into Smart Cities and Industry 4.0
|
||||
- [Temporal](https://temporal.cloud) - Scalable IPFS Infrastructure with free starter package featuring turnkey APIs, toolkits and storage.
|
||||
- [Unstoppable Domains](https://unstoppabledomains.com) - Domains on blockchains
|
||||
## Browsers
|
||||
A list of web browsers with IPFS integrations
|
||||
- [Agregore](https://github.com/AgregoreWeb/agregore-browser) - A minimal web browser for the distributed web. Supports downloading/uploading data from IPFS using the browser's `fetch()` API
|
||||
- [Brave](https://brave.com/ipfs-support/) - A privacy-focused browser with many future forward features.
|
||||
- [galacteek](https://github.com/pinnaculum/galacteek) - A multi-platform Qt5-based browser for the distributed web.
|
||||
|
||||
## Tools
|
||||
|
||||
- [Almonit Browser Extension](https://almonit.com/#/extension/) - Resolves ENS domains, this let users access .eth websites while offering maximum decentralization. [Source](https://github.com/almonit/almonit-plugin)
|
||||
- [Blockwatch](https://ipfs.io/ipfs/QmdikpwcyeBuGaVzWzSzPuqvBfTGD8jPAVydcCjYHsBUxo/index.html) - Monitor the current block number of the Ethereum blockchain, and set alerts (stored locally using PouchDB in your browser) for when certain block heights are passed. [Source](https://github.com/MidnightLightning/ethereum-blockwatch)
|
||||
- [Bubble IPFS From URL Plugin](https://bubble.io/plugin/ipfs-add-from-uri-1616424944051x638386852081172500) - Bubble (no code platform) plugin for IPFS From URL integration
|
||||
- [cachewarmer](https://github.com/BrendanBenshoof/cachewarmer) - Donate ipfs gateways to cache other people's content
|
||||
- [bifrost-gateway](https://github.com/ipfs/bifrost-gateway) - [EXPERIMENTAL] A lightweight IPFS Gateway daemon backed by a remote data store.
|
||||
- [create-ipfs-app](https://github.com/alexbakers/create-ipfs-app) - Set up a decentralized web3 app by running one command.
|
||||
- [galacteek](https://galacteek.github.io) - A multi-platform Qt5-based browser for the distributed web [Source](https://github.com/pinnaculum/galacteek)
|
||||
- [dScan](https://github.com/p2plabsxyz/dscan) - A browser extension that uploads the content to Web3.Storage and generates QR codes for CIDs.
|
||||
- [gatsby-plugin-ipfs](https://github.com/moxystudio/gatsby-plugin-ipfs) - Adds support for deploying Gatsby websites to IPFS by ensuring that assets are relative.
|
||||
- [git-remote-ipfs](https://github.com/cryptix/git-remote-ipfs) - push/pull repositories from/to IPFS
|
||||
- [git-ipfs-rehost](https://github.com/whyrusleeping/git-ipfs-rehost) - A script to rehost your git repos in ipfs.
|
||||
- [git-remote-ipfs](https://github.com/cryptix/git-remote-ipfs) - push/pull repositories from/to IPFS.
|
||||
- [Git IPFS Remote Bridge](https://github.com/ElettraSciComp/Git-IPFS-Remote-Bridge) - set of programs written in Python 3 which allow Git user to clone, push, fetch, self-host or release Git repositories over IPFS decentralized data storage system.
|
||||
- [go-orbit-db](https://github.com/berty/go-orbit-db) - This is a Golang port of OrbitDB that intends to be fully compatible with the original JavaScript version. OrbitDB is a serverless, distributed, peer-to-peer database.
|
||||
- [go-stellar-ipfs](https://github.com/aanupam23/go-stellar-ipfs) - go-stellar-ipfs is a library that is a bridge between Stellar and IPFS.
|
||||
- [gomobile-ipfs](https://github.com/ipfs-shipyard/gomobile-ipfs) - IPFS and libp2p on Mobile, with Gomobile
|
||||
- [gomobile-ipfs](https://github.com/ipfs-shipyard/gomobile-ipfs) - IPFS and libp2p on Mobile, with Gomobile.
|
||||
- [http2ipfs](https://github.com/jbenet/http2ipfs-web) - This is a simple webtool to add URLs to an IPFS node.
|
||||
- [ipcat](https://github.com/noffle/ipcat) - :cat2: Retrieve IPFS object data and send it to stdout.
|
||||
- [IPDR](https://github.com/miguelmota/ipdr) - IPFS-backed Docker Registry
|
||||
- [IPFS Setup Action](https://github.com/marketplace/actions/ipfs-setup-action) - A GitHub Action to install and initialize go-ipfs to provision a cross-platform test environment on GitHub's CI platform. [Source](https://github.com/ibnesayeed/setup-ipfs)
|
||||
- [IPDR](https://github.com/miguelmota/ipdr) - IPFS-backed Docker Registry.
|
||||
- [IPFS Setup Action](https://github.com/ibnesayeed/setup-ipfs) - A GitHub Action to install and initialize go-ipfs to provision a cross-platform test environment on GitHub's CI platform.
|
||||
- [ipfs-action](https://github.com/aquiladev/ipfs-action) - GitHub Action for delivery of static websites.
|
||||
- [ipfs-add-from-encrypted](https://github.com/TroyWilson1/ipfs-add-from-encrypted) - Encrypt a file or directory with AES256 then add to IPFS
|
||||
- [ipfs-add-from-url](https://github.com/maxlath/ipfs-add-from-url) - Add a file to IPFS from a URL instead of a file path
|
||||
- [ipfs-chrome-extension](https://github.com/dylanPowers/ipfs-chrome-extension) - Chrome extension to redirect ipfs.io traffic to local gateway
|
||||
- [ipfs-chrome-station](https://github.com/fbaiodias/ipfs-chrome-station) - Chrome extension to redirect ipfs.io traffic to local gateway
|
||||
- [ipfs-common](https://github.com/arsyun) - Some common tools, 1.CID to human readable cid, 2.cid and block name convert, 3. read the leveldb tools. [Source](https://github.com/arsyun/ipfs-common)
|
||||
- [ipfs-add-from-encrypted](https://github.com/TroyWilson1/ipfs-add-from-encrypted) - Encrypt a file or directory with AES256 then add to IPFS.
|
||||
- [ipfs-companion](https://github.com/ipfs/ipfs-companion) - Browser extension that simplifies access to IPFS resources.
|
||||
- [ipfs-deploy](https://github.com/agentofuser/ipfs-deploy) - Zero-config CLI to deploy static websites: cd my-static-website && npx @agentofuser/ipfs-deploy
|
||||
- [ipfs-encrypted-share](https://github.com/whs/ipfs-encrypted-share) - Easy to use encrypted file uploader.
|
||||
- [ipfs-gui](https://github.com/marcin212/ipfs-gui) - Windows UI integration and IPFS installer
|
||||
- [ipfs-linux-service](https://github.com/dylanPowers/ipfs-linux-service) - IPFS Linux Init Daemon
|
||||
- [ipfs-mount](https://github.com/richardschneider/net-ipfs-mount) - Mount IPFS as a mapped drive on Windows
|
||||
- [ipfs-paste](https://github.com/jbenet/ipfs-paste) - Paste stdin and clipboard to IPFS
|
||||
- [ipfs-mount](https://github.com/richardschneider/net-ipfs-mount) - Mount IPFS as a mapped drive on Windows.
|
||||
- [ipfs-paste](https://github.com/jbenet/ipfs-paste) - Paste stdin and clipboard to IPFS.
|
||||
- [ipfs-pinner](https://github.com/wabarc/ipfs-pinner) - A toolkit help upload files to IPFS pinning services.
|
||||
- [ipfs-publish](https://ipfs-publish.uhlir.dev) - Continuous Delivery tool for delivery of static websites from Git providers to IPFS. [Source](https://github.com/AuHau/ipfs-publish)
|
||||
- [ipfs-publish](https://github.com/auhau/ipfs-publish/) - Continuous Delivery tool for delivery of static websites from Git providers to IPFS.
|
||||
- [ipfs-screencap](https://github.com/jbenet/ipfs-screencap) - Capture screenshots, publish them to IPFS, and copy the link to the clipboard.
|
||||
- [ipfs-video-gateway](https://ipfs.video) - Cloud-init your own IPFS gateway on a cloud provider and easily pin content through a simple web interface. [Source](https://github.com/bneijt/ipfs-video-gateway)
|
||||
- [ipfscrape](https://github.com/victorbjelkholm/ipfscrape) - Scrape a webpage with all assets and put it in IPFS
|
||||
- [ipfsecret](https://github.com/shlemph/ipfsecret) - Encrypt and decrypt IPFS files with a secret passphrase
|
||||
- [ipfs-video-gateway](https://github.com/bneijt/ipfs-video-gateway) - Cloud-init your own IPFS gateway on a cloud provider and easily pin content through a simple web interface.
|
||||
- [ipfsecret](https://github.com/shlemph/ipfsecret) - Encrypt and decrypt IPFS files with a secret passphrase.
|
||||
- [ipget](https://github.com/ipfs/ipget) - :satellite: wget for IPFS: retrieve files over IPFS and save them locally.
|
||||
- [IPLD Explorer](https://explore.ipld.io) - Explore the Merkle Forest from the comfort of your browser [Source](https://github.com/ipfs-shipyard/ipld-explorer)
|
||||
- [IPLD Explorer](https://github.com/ipfs-shipyard/ipld-explorer) - Explore the Merkle Forest from the comfort of your browser.
|
||||
- [ipns-pin](https://github.com/justicenode/node-ipns-pin) - A command-line tool to pin stuff via ipns.
|
||||
- [IPRedirect](https://github.com/JayBrown/IPRedirect) - Browser userscript for redirecting IPFS/IPNS addresses to your local gateway. This should work on any browser that hasn't had an extension written for it yet and has support for userscripts.
|
||||
- [iprfc](https://github.com/RTradeLtd/iprfc) - IETF RFC downloader which stores RFCs on IPFS and indexes them with RTradeLtd/Lens.
|
||||
- [ipscend](https://github.com/diasdavid/ipscend) - Tool for hosting web apps and static websites in IPFS
|
||||
- [mahuta](https://github.com/ConsenSys/Mahuta) - Mahuta is a plug and play service for your micro-service architecture allowing to collect, store and index data on IPFS and offering search functionalities (full text, query).
|
||||
- [Multiverse](https://github.com/multiverse-vcs/go-multiverse) - Multiverse is a decentralized version control system that enables peer-to-peer software development.
|
||||
- [orbit-db](https://github.com/orbitdb/orbit-db) - OrbitDB is a serverless, distributed, peer-to-peer database that uses IPFS as its data storage and IPFS Pubsub to automatically sync databases with peers.
|
||||
- [pinbot](https://github.com/whyrusleeping/pinbot) - Pin content via IRC
|
||||
- [Public gateway status checker](https://ipfs.fooock.com/) - Web app to check public states of IPFS gateways, including latency and gateway writable state. [Source](https://github.com/fooock/ipfs-gateway-checker)
|
||||
- [Pin Tweet to IPFS](https://github.com/meandavejustice/pin-tweet-to-ipfs) - Web Extension which creates a WebArchiveZip of a tweet and adds to IPFS network.
|
||||
- [Public Gateway Checker](https://github.com/ipfs/public-gateway-checker) - Checks which public gateways are online or not.
|
||||
- [rivet](https://github.com/wabarc/rivet) - A toolkit makes it easier to archive webpages to IPFS.
|
||||
- [ShareX integration](https://github.com/ShareX/CustomUploaders/blob/master/ipfs.io.sxcu) - ShareX is a file upload and manipulation tool that has a custom integration with IPFS
|
||||
- [Siderus Orion](https://orion.siderus.io) - Easy to use IPFS desktop client for macOS, Windows and Linux [Source](https://github.com/Siderus/Orion)
|
||||
- [SimpleAsWater Bot](https://github.com/simpleaswater/twitter-pinbot) - A twitter bot that adds, pins, unpins your tweets to public IPFS network using IPFS Cluster.
|
||||
- [solid-ipfs](https://github.com/Eximua/solid-ipfs) - Using Solid to store IPFS Hash privately or publicly.
|
||||
- [Sweet IPFS](https://github.com/RHazDev/Sweet-IPFS) - Full node for Android
|
||||
- [Tellit](https://gitlab.com/terceranexus6/tellit) - Encrypt files before uploading them using a keypair or a passphrase
|
||||
- [VIPFS](https://github.com/Ideea-inc/vipfs) - Publish your Vue apps easily to IPFS
|
||||
- [Tellit](https://gitlab.com/terceranexus6/tellit) - Encrypt files before uploading them using a keypair or a passphrase.
|
||||
- [VIPFS](https://github.com/Ideea-inc/vipfs) - Publish your Vue apps easily to IPFS.
|
||||
- [wbipfs](https://github.com/wabarc/wbipfs) - A command-line tool and Go package interface for wayback webpage to IPFS.
|
||||
- [youtube2ipfs](https://github.com/dokterbob/youtube2ipfs) - Download videos from YouTube (and similar video platforms) and add them to IPFS.
|
||||
|
||||
## Videos
|
||||
## Services & Platforms
|
||||
|
||||
- [Distributed Apps with IPFS - Juan Benet at Fullstack Fest 2016](https://www.youtube.com/watch?v=jONZtXMu03w) - This talk breaks down how to build a dynamic app on top of IPFS with CRDTs, pub/sub, and slick UIs. It also delves into new models for distributed computation, and the ethical importance of distributing the web.
|
||||
- [IPFS Alpha - Why we must redistribute the web](https://www.youtube.com/watch?v=skMTdSEaCtA)
|
||||
- [IPFS Simply Explained](https://www.youtube.com/watch?v=5Uj6uR3fp-U) - Let's take a look at how IPFS works, how it can solve issue's like censorship and if it would really work across multiple planets!
|
||||
- [Juan Benet at Stanford 2015](https://www.youtube.com/watch?v=HUVmypx9HGI) - The talk includes a broad look at The IPFS Project, and a discussion on evolving the network stack through open source protocols R & D.
|
||||
- [Textile Build Series - A Free Online Workshop](https://www.youtube.com/playlist?list=PLC8CEtJ9shDznO1tpvGe--BVEWmCKY9_Z) - A full Training Program to teach devs on how to build for the Decentralized Web. The series covers a ton of content, touch multiple parts of the IPFS stack and guides devs through building a simple DApp.
|
||||
- [Ceramic](https://ceramic.network/) - Ceramic combines IPFS content addressing with advanced cryptography and blockchain timestamps to guarantee security and verifiability of data.
|
||||
- [dAppling](https://www.dappling.network/) - Hosting platform with automated deployments from GitHub to IPFS
|
||||
- [Fleek](http://fleek.co/) - Open Web development platform for building, hosting, and storing sites and apps on IPFS, Filecoin, and the Internet Computer.
|
||||
- [Fission](https://fission.codes) - Fission builds open source protocols and managed solutions that empower developers to construct scalable and secure software applications.
|
||||
- [Peergos](https://peergos.org) - Your private, but social, space online. Store and edit documents and media. Share files or folders with friends.
|
||||
- [Valist](https://www.valist.io/) - A trustless universal package repository enabling you to digitally sign and distribute software in just a few steps.
|
||||
|
||||
## Discussions
|
||||
## Pinning services
|
||||
- [4EVERLAND](https://www.4everland.org/) - 4EVERLAND is a pinning service that provides IPFS infrastructure and tooling making it easier and faster to host frontends, store data/NFT/file and fetch data with IPFS.
|
||||
- [Filebase](https://filebase.com/) - Pinning data to IPFS can be hard. Filebase removes that complexity.
|
||||
- [NFT.Storage](https://nft.storage/) - Free decentralized storage and bandwidth for NFTs on IPFS & Filecoin.
|
||||
- [Pinata](https://pinata.cloud) - Build and manage your dapp through Pinata’s REST API and IPFS toolkit.
|
||||
- [Infura](https://infura.io) - Scalable and distributed storage infrastructure for your application.
|
||||
- [Kriptonio](https://kriptonio.com/) - Pinning service & Web3 Platform for building Web3 apps.
|
||||
- [Spheron](https://spheron.network) - Spheron offers IPFS pinning service and dedicated gateways.
|
||||
- [Web3.storage](https://web3.storage/) - Simple file storage with IPFS & Filecoin.
|
||||
|
||||
* [CRDTs discussion](https://github.com/ipfs/notes/issues/23)
|
||||
## Stale Projects
|
||||
We maintain a list of no longer maintained projects for reference. If you see something on this list that's no longer maintained, please submit a pr and we'll get it into the right place.
|
||||
|
||||
## Want to hack on IPFS?
|
||||
[View the list here](./stale.md)
|
||||
|
||||
[![](https://cdn.rawgit.com/jbenet/contribute-ipfs-gif/master/img/contribute.gif)](https://github.com/ipfs/community/blob/master/CONTRIBUTING.md)
|
||||
## Contribute
|
||||
|
||||
Contributions are welcome!
|
||||
|
||||
See the [**Contribution Guidelines**](./CONTRIBUTING.md).
|
||||
|
||||
## License
|
||||
|
||||
|
@ -2,34 +2,13 @@ const { danger, markdown, fail, warn, message } = require('danger')
|
||||
const awesomeBotResults = require('./ab-results-README.md-markdown-table.json')
|
||||
|
||||
const githubMetadata = danger.git.fileMatch('.github/**')
|
||||
const yamlData = danger.git.fileMatch('data/**')
|
||||
const scripts = danger.git.fileMatch('scripts/**')
|
||||
const src = danger.git.fileMatch('src/**')
|
||||
const readme = danger.git.fileMatch('README.md')
|
||||
|
||||
if (readme.edited) {
|
||||
fail('Please do not edit the README directly. It is generated from the data in the data/ directory.')
|
||||
if (readme.edited && awesomeBotResults.error) {
|
||||
fail(awesomeBotResults.title)
|
||||
markdown(awesomeBotResults.message)
|
||||
}
|
||||
|
||||
if (githubMetadata.edited) {
|
||||
message('Changes were made within the .github folder.')
|
||||
}
|
||||
|
||||
if (yamlData.edited) {
|
||||
message('YAML data files were edited.')
|
||||
/**
|
||||
* Only display awesomeBot results if the data yaml used to generate the readme have been modified.
|
||||
*/
|
||||
if (awesomeBotResults.error) {
|
||||
fail(awesomeBotResults.title)
|
||||
markdown(awesomeBotResults.message)
|
||||
}
|
||||
}
|
||||
|
||||
if (scripts.edited) {
|
||||
warn('Changes were made to the scripts folder.')
|
||||
}
|
||||
|
||||
if (src.edited) {
|
||||
warn('Changes were made to the src folder.')
|
||||
}
|
||||
|
498
data/apps.yaml
@ -1,498 +0,0 @@
|
||||
title: Apps
|
||||
color: aqua
|
||||
icon: stroke_marketing
|
||||
description: Applications built with IPFS or with functionality that uses IPFS.
|
||||
content:
|
||||
- title: Agregore
|
||||
website: https://github.com/AgregoreWeb/agregore-browser
|
||||
source: https://github.com/AgregoreWeb/agregore-browser
|
||||
picture: /images/agregore.svg
|
||||
description: >
|
||||
A minimal web browser for the distributed web.
|
||||
Supports downloading/uploading data from IPFS using the browser's `fetch()` API
|
||||
- title: IPFS-FPS
|
||||
website: https://ipfs-fps-website.on.fleek.co/
|
||||
picture: /images/ipfs-fps.png
|
||||
description: >
|
||||
A completely decentralized first person shooter.
|
||||
Built with Unity, Fleek, Unstoppable Domans and Pinata.
|
||||
- title: Peer Web Site
|
||||
website: https://peerweb.site/
|
||||
source: https://github.com/Weedshaker/PeerWebSite
|
||||
picture: /images/peerWebSite.png
|
||||
description: >
|
||||
Peer to Peer Web Site hosting at your fingertips!
|
||||
Send full featured HTML (incl. CSS, JS) sites from your browser and attach files eg. videos, images, etc.
|
||||
- title: SimpleAsWater Bot
|
||||
website: https://github.com/simpleaswater/twitter-pinbot
|
||||
source: https://github.com/simpleaswater/twitter-pinbot
|
||||
picture: /images/twitter-bot.png
|
||||
description: >
|
||||
A twitter bot that adds, pins, unpins your tweets to public IPFS network using IPFS Cluster.
|
||||
- title: 2read
|
||||
website: https://2read.net/
|
||||
source: https://github.com/meehow/2read
|
||||
picture: /images/2read.svg
|
||||
description: >
|
||||
Convert article in current tab to readable form and upload it
|
||||
to writable node(s).
|
||||
- title: killcord
|
||||
website: https://killcord.io/
|
||||
source: https://github.com/nomasters/killcord
|
||||
picture: /images/killcord.svg
|
||||
description: >
|
||||
A censorship resistant deadman's switch
|
||||
- title: akasha
|
||||
website: http://akasha.world/
|
||||
description: >
|
||||
A Next-Generation Social Media Network, powered by Ethereum and embedded
|
||||
into IPFS.
|
||||
- title: Alexandria
|
||||
website: http://www.alexandria.io/
|
||||
description: >
|
||||
Decentralized content publishing / monetization platform.
|
||||
- title: Arbore
|
||||
website: http://arbo.re
|
||||
description: >
|
||||
A friend-to-friend file-sharing app build on top of IPFS.
|
||||
- title: beets
|
||||
source: https://github.com/beetbox/beets
|
||||
description: >
|
||||
Beets has a plugin which allows for easy sharing of music libraries
|
||||
using IPFS
|
||||
- title: Blokaly
|
||||
source: https://github.com/blokaly
|
||||
description: >
|
||||
A badge issuing, sharing and display platform based on IPFS.
|
||||
- title: Boards
|
||||
website: https://ipfs.io/ipns/boards.ydns.eu
|
||||
source: https://github.com/fazo96/ipfs-boards
|
||||
description: >
|
||||
Distributed social platform that runs in the browser.
|
||||
- title: brig
|
||||
website: https://brig.readthedocs.io/en/latest
|
||||
source: https://github.com/sahib/brig
|
||||
description: >
|
||||
File synchronization with git like interface and FUSE filesystem.
|
||||
- title: Cohort
|
||||
source: https://github.com/zignig/cohort
|
||||
description: >
|
||||
A golang app to preset a threejs interface and get all of its assets
|
||||
out of IPFS.
|
||||
- title: dapple
|
||||
source: https://github.com/nexusdev/dapple
|
||||
description: >
|
||||
Dapple is a Solidity developer multitool designed to manage the growing
|
||||
complexity of interconnected smart contract systems.
|
||||
- title: DeCommerce
|
||||
website: https://www.ivyca.com/decommerce/
|
||||
picture: /images/decommerce.jpg
|
||||
description: >
|
||||
Decentralized ecommerce for Web3. Allows people to transact business without middlemen.
|
||||
No Middleman, no Bank, no Big Tech, no Government.
|
||||
- title: Diffuse
|
||||
source: https://diffuse.sh
|
||||
description: >
|
||||
Play music from your IPFS node, or any other cloud/distributed storage service you use.
|
||||
- title: dtube
|
||||
website: https://d.tube
|
||||
picture: /images/dtube.png
|
||||
description: >
|
||||
Distributed video sharing with steem.it integrations, using ipfs for
|
||||
backend storage.
|
||||
- title: edChain
|
||||
website: https://www.edchain.io/
|
||||
source: https://github.com/edchainio/edchain-client-gui
|
||||
picture: /images/edchain.png
|
||||
description: >
|
||||
EdChain is a global network for education and careers. It uses blockchain
|
||||
and distributed web technologies to deliver educational content, even to those without broadband internet.
|
||||
- title: Ethlance
|
||||
website: http://ethlance.com
|
||||
source: https://github.com/madvas/ethlance
|
||||
description: >
|
||||
First completely decentralised job market platform built on Ethereum
|
||||
and IPFS.
|
||||
- title: enzypt.io
|
||||
website: https://enzypt.io/
|
||||
source: https://github.com/flex-dapps/enzypt
|
||||
picture: /images/enzypt.png
|
||||
description: >
|
||||
A website to buy and sell files through Ethereum and IPFS.
|
||||
- title: git-ipfs-rehost
|
||||
source: https://github.com/whyrusleeping/git-ipfs-rehost
|
||||
description: >
|
||||
A script to rehost your git repos in ipfs.
|
||||
- title: Global Upload
|
||||
website: https://globalupload.io/
|
||||
description: >
|
||||
File transportation service for IPFS, upload files to the future of
|
||||
distributed web.
|
||||
- title: HydrusNetwork
|
||||
source: https://github.com/hydrusnetwork/hydrus
|
||||
description: >
|
||||
A booru-style media tagging application with a multitude of features,
|
||||
recently added basic ipfs support.
|
||||
- title: InterPlanetary Wayback
|
||||
source: https://github.com/oduwsdl/ipwb
|
||||
picture: /images/interplanetarywayback.png
|
||||
description: >
|
||||
Web Archive (WARC) indexing and replay using IPFS.
|
||||
- title: Interplanetary Wiki
|
||||
source: https://github.com/jamescarlyle/ipfs-wiki
|
||||
description: >
|
||||
Wiki built on top of IPFS
|
||||
- title: ipcoronafs
|
||||
source: https://github.com/RTradeLtd/ipcoronafs
|
||||
description: >
|
||||
A realtime service to scrape COVID-19 and SARS-CoV-2, storing on IPFS, DNSLink, and streaming over LibP2P pubsub
|
||||
- title: IPFS Event Drop
|
||||
source: https://github.com/travisperson/ipfs-event-drops
|
||||
description: >
|
||||
An app that allows for improved visualization of ipfs events.
|
||||
- title: IPFS Drive
|
||||
source: https://github.com/fazo96/ipfs-drive
|
||||
description: >
|
||||
In browser file manager for IPFS.
|
||||
- title: ipfs.ink
|
||||
source: https://github.com/kpcyrd/ipfs.ink
|
||||
description: >
|
||||
Publish and render markdown essays to and from ipfs.
|
||||
- title: ipfs-chat
|
||||
source: https://github.com/SomajitDey/ipfs-chat
|
||||
description: >
|
||||
Terminal-based, encrypted chatrooms. Allows private messaging & secure in-chat file/directory sharing.
|
||||
Server/broker-less (no signaling/rendezvous server needed). Works over LAN/internet(w/ NAT-traversal).
|
||||
- title: ipfs-search
|
||||
website: https://ipfs-search.com
|
||||
source: https://github.com/ipfs-search/ipfs-search
|
||||
description: >
|
||||
Searching the universe since 2016.
|
||||
|
||||
Sniffs the DHT gossip and indexes file and directory hashes. Metadata and search API's available.
|
||||
- title: ipfs-share
|
||||
source: https://github.com/rameshvarun/ipfs-share
|
||||
description: >
|
||||
Pastebin/Image host/File sharing application
|
||||
- title: ipfs.pics
|
||||
source: https://github.com/ipfspics/ipfspics-server
|
||||
description: >
|
||||
Upload and share pics.
|
||||
- title: IPFSBin
|
||||
source: https://github.com/victorbjelkholm/ipfsbin
|
||||
description: >
|
||||
Pastebin clone build.
|
||||
- title: IPGit
|
||||
source: https://github.com/meyer1994/ipgit
|
||||
description: >
|
||||
Remote Git repository that mirrors your code to IPFS
|
||||
- title: IpJot
|
||||
website: https://ipjot.herokuapp.com/
|
||||
description: >
|
||||
Creates short notes, stories, books, poems, conversations on IPFS.
|
||||
- title: IPSE
|
||||
website: https://www.ipse.io/
|
||||
description: >
|
||||
A search engine for the IPFS network.
|
||||
- title: markup.rocks
|
||||
website: https://ipfs.io/ipfs/QmWPgJnUGLB1LPh9KMG9LEN4LVu5e17TwkEtcmTWdNn9V6/#/ipfs/QmfQ75DjAxYzxMP2hdm6o4wFwZS5t7uorEZ2pX9AKXEg2u
|
||||
source: https://github.com/davidar/markup.rocks
|
||||
description: >
|
||||
Pandoc-based markup editor/previewer/converter, ported to IPFS.
|
||||
- title: Orbit
|
||||
website: https://orbit.chat
|
||||
source: https://github.com/haadcode/orbit
|
||||
picture: /images/orbit.png
|
||||
description: >
|
||||
Distributed, peer-to-peer chat application on IPFS.
|
||||
- title: Partyshare
|
||||
website: https://busterlabs.github.io/Partyshare
|
||||
source: https://github.com/BusterLabs/Partyshare
|
||||
picture: /images/Partyshare_Logo.png
|
||||
description: >
|
||||
A simple file sharing desktop app.
|
||||
- title: Playback
|
||||
source: https://mafintosh.github.io/playback/
|
||||
description: >
|
||||
IPFS playback support. This allows casting a video in IPFS to a Chromecast.
|
||||
- title: PushToTalk
|
||||
website: http://timothy.hobbs.cz/push-to-talk/index.html
|
||||
description: >
|
||||
Push to Talk lets you edit audio essays and publish them with IPFS.
|
||||
- title: qri
|
||||
website: https://qri.io
|
||||
source: https://github.com/qri-io/qri
|
||||
description: >
|
||||
Dataset version control, discovery and collaboration tools (free, open-source). [Project is winding down]
|
||||
- title: QuestNetwork Messenger
|
||||
website: https://github.com/QuestNetwork/quest-messenger-js
|
||||
source: https://github.com/QuestNetwork/quest-messenger-js
|
||||
description: >
|
||||
Multi-Platform End-To-End Encrypted Messenger on IPFS PubSub. Emulates Servers/Community with folders that can be shared using invitation codes. It's free and open source. On track to become the most comprehensive and user-friendly messenger on IPFS.
|
||||
- title: ujo
|
||||
website: http://ujomusic.com/
|
||||
description: >
|
||||
A blockchain marketplace for musicians.
|
||||
- title: uport
|
||||
website: https://www.uport.me
|
||||
description: >
|
||||
Uport is a mobile, self-sovereign identity and key management system,
|
||||
built on the Ethereum blockchain.
|
||||
- title: IPFessay
|
||||
website: https://gitlab.com/stavros/IPFessay
|
||||
description: >
|
||||
A simple way to publish uncensorable essays on IPFS.
|
||||
- title: Hardbin
|
||||
source: https://github.com/jes/hardbin
|
||||
description: >
|
||||
Hardbin is an encrypted pastebin, with the decryption key passed in
|
||||
the URL fragment
|
||||
- title: Gorilla REPL viewer
|
||||
source: https://github.com/keorn/ipfs-gorilla-repl
|
||||
description: >
|
||||
Gorilla is a rich REPL for Clojure in the notebook style.
|
||||
- title: a markdown renderer
|
||||
source: https://github.com/ipfs/website/tree/master/content/docs/examples/webapps/markdown-viewer
|
||||
demo: https://ipfs.io/ipfs/QmSrCRJmzE4zE1nAfWPbzVfanKQNBhp7ZWmMnEdbiLvYNh/mdown#/ipfs/QmfQ75DjAxYzxMP2hdm6o4wFwZS5t7uorEZ2pX9AKXEg2u
|
||||
- title: a js video player
|
||||
source: https://github.com/ipfs/website/tree/master/content/docs/examples/webapps/play
|
||||
demo: https://ipfs.io/ipfs/QmVc6zuAneKJzicnJpfrqCH9gSy6bz54JhcypfJYhGUFQu/play#/ipfs/QmTKZgRNwDNZwHtJSjCp6r5FYefzpULfy37JvMt9DwvXs
|
||||
- title: a qr-code renderer
|
||||
source: https://github.com/ipfs/website/tree/master/content/docs/examples/webapps/qr-render
|
||||
demo: https://ipfs.io/ipfs/QmccqhJg5wm5kNjAP4k4HrYxoqaXUGNuotDUqfvYBx8jrR/qr#enter%20text%20here
|
||||
- title: TallyLab
|
||||
website: https://tallylab.com/
|
||||
picture: /images/tallylab.jpg
|
||||
description: >
|
||||
Local-first, end-to-end encrypted data diary app for capturing, analyzing, and sharing data about any and everything.
|
||||
- title: Temporal
|
||||
source: https://github.com/RTradeLtd/Temporal
|
||||
description: >
|
||||
Temporal is an easy to use API and platform for integrating IPFS and other
|
||||
distributed/decentralized storage technologies into enterprise applications
|
||||
- title: Textile Photos
|
||||
website: https://www.textile.photos
|
||||
source: https://github.com/textileio/textile-mobile
|
||||
picture: /images/textilephotos.png
|
||||
description: >
|
||||
Textile Photos is a secure, mobile digital wallet for your photos.
|
||||
- title: Pathephone
|
||||
website: https://pathephone.github.io
|
||||
description: Distributed music streaming app.
|
||||
- title: Origin Protocol
|
||||
website: https://demo.originprotocol.com/
|
||||
source: https://github.com/OriginProtocol/demo-dapp
|
||||
description: >
|
||||
Distributed sharing economy marketplace with images, metadata, and ERC 725 data stored on IPFS.
|
||||
- title: ipfs-md-wiki
|
||||
source: https://github.com/daijiale/ipfs-md-wiki
|
||||
description: Build your wiki system base on ipfs and markdown.
|
||||
- title: infura.io
|
||||
website: https://infura.io
|
||||
picture: /images/infura.png
|
||||
description: >
|
||||
An Infrastructure: use API and developer tools provide secure, reliable, and
|
||||
scalable access to Ethereum and IPFS to help build decentralized application easier.
|
||||
- title: OpenBazaar
|
||||
website: https://github.com/OpenBazaar
|
||||
source: https://github.com/OpenBazaar
|
||||
description: >
|
||||
OpenBazaar was an open source project developing a protocol for
|
||||
e-commerce transactions in a fully decentralized marketplace.
|
||||
- title: Peer Bandwidth Demo
|
||||
website: https://ipfs.io/ipfs/QmVaVXbLdw4R5NqAiiQoTWtitxo5g7FS31PQmCLbH9p8Fu/
|
||||
source: https://github.com/tableflip/ipfs-peer-bw-example
|
||||
picture: /images/peer-bandwidth-demo.jpg
|
||||
description: >
|
||||
An demo app that uses window.ipfs, provided by the IPFS Companion web extension to get and graph bandwidth info for your IPFS node
|
||||
- title: PubSub Chat Demo
|
||||
website: https://ipfs.io/ipfs/QmWZ3u5S7RjFXKfW6dSZhj7CozcvpqJxm48RYMmKkWcmNQ/
|
||||
source: https://github.com/tableflip/ipfs-pubsub-chat-example
|
||||
picture: /images/pubsub-chat-demo.png
|
||||
description: >
|
||||
A ~76KB demo chat app that uses window.ipfs, provided by the IPFS Companion web extension
|
||||
- title: Pugdit
|
||||
website: https://github.com/zbyte64/pugdit
|
||||
source: https://github.com/zbyte64/pugdit
|
||||
description: >
|
||||
A bulletin board service that discovers and distributes over IPFS
|
||||
- title: Peer Map Demo
|
||||
website: https://ipfs.io/ipfs/QmRPGCmLKH2dQmNiPRsiuYS9EhhJL1Gmkz5F75gKY1K4Bm/
|
||||
source: https://github.com/tableflip/ipfs-peer-map-example
|
||||
picture: /images/peer-map-demo.jpg
|
||||
description: >
|
||||
A map of IPv4 IPFS peers that uses window.ipfs
|
||||
- title: IPFS ID and Public Key QR Codes Demo
|
||||
website: https://ipfs.io/ipfs/zdj7Whr8X3zah99TSuyPjENaERcBW9C7B36EaCb1DEZ5pbbL9/
|
||||
source: https://github.com/ipfs-shipyard/demo-ipfs-id-qr-codes
|
||||
picture: /images/id-qr-code.png
|
||||
description: >
|
||||
A demo app that uses windows.ipfs to show you a QR Code of your IPNS Link and of your Public Key.
|
||||
- title: ToDo List Demo
|
||||
website: https://ipfs.io/ipfs/QmSGQrmvHe6fFiWdV2H8YnhLaoX4qe5nYEmJfUFx6LdUYa/
|
||||
source: https://github.com/ipfs-shipyard/demo-ipfs-todo
|
||||
picture: /images/todo-demo.png
|
||||
description: >
|
||||
A ToDo List demo app that uses windows.ipfs.
|
||||
- title: IPFS Desktop
|
||||
source: https://github.com/ipfs-shipyard/ipfs-desktop
|
||||
picture: /images/ipfs-desktop.png
|
||||
description: >
|
||||
Run your IPFS node on your machine without having to bother with command line tools.
|
||||
Manage your node, add your files, easily change the settings... everything from
|
||||
just one interface.
|
||||
- title: 3Box
|
||||
website: https://3box.io
|
||||
source: https://github.com/uport-project/3box
|
||||
picture: /images/3box.png
|
||||
description: >
|
||||
Create and manage your Ethereum Profile, and your personal data. Use the 3box-js
|
||||
library to integrate profiles into your dapp.
|
||||
- title: Autonomica "IPFS Social Proof"
|
||||
source: https://github.com/IBM/ipfs-social-proof
|
||||
description: >
|
||||
Autonomica is a Keybase-like Dapp for creating an identity and proving this identity via published social media and web proofs.
|
||||
- title: xfce-screenshooter-ipfs-support
|
||||
source: https://github.com/amar-laksh/xfce-screenshooter-ipfs-support
|
||||
description: >
|
||||
A fork of xfce-screenshooter with IPFS support!
|
||||
- title: Request
|
||||
website: https://request.network/
|
||||
source: https://github.com/RequestNetwork/requestNetwork
|
||||
picture: /images/request.svg
|
||||
description: >
|
||||
Decentralized network for financial transactions.
|
||||
- title: KDE-DolphinServiceMenu-IPFS
|
||||
source: https://github.com/amar-laksh/KDE-DolphinServiceMenu-IPFS
|
||||
description: >
|
||||
Service Menu for Dolphin File Manager to upload files to IPFS
|
||||
The open network for transaction requests.
|
||||
- title: Discussify
|
||||
source: https://github.com/ipfs-shipyard/discussify-browser-extension
|
||||
description: >
|
||||
Discussify provides a real-time, peer to peer, and permanent discussion platform
|
||||
for anyone to join and participate.
|
||||
- title: AirSecure
|
||||
source: https://github.com/airsecure/airsecure
|
||||
description: >
|
||||
Decentralized two factor authentication app built on Textile & IPFS.
|
||||
- title: DtinyUrl
|
||||
source: https://github.com/facert/dtinyurl
|
||||
description: >
|
||||
Decentralized URL shortening service based on IPFS.
|
||||
- title: Wistful Books
|
||||
website: https://wistfulbooks.com/
|
||||
source: https://github.com/smwa/wistfulbooks
|
||||
description: >
|
||||
Single page offline application for enjoying librivox.org audio books.
|
||||
- title: Peergos
|
||||
website: https://peergos.org
|
||||
source: https://github.com/Peergos/Peergos
|
||||
picture: /images/peergos.png
|
||||
description: >
|
||||
End-to-end encrypted, peer-to-peer file storage and sharing.
|
||||
- title: Minerva
|
||||
source: https://github.com/bdchain/Minerva
|
||||
description: >
|
||||
Minerva is a storage plugin of Apache Drill that connects IPFS's decentralized storage and Drill's flexible query engine.
|
||||
- title: IPFS Image Uploader
|
||||
website: https://ipfs.talaikis.com/
|
||||
source: https://github.com/TalaikisInc/ipfs-uploader
|
||||
description: >
|
||||
IPFS image uploader and viewer.
|
||||
Minerva is a storage plugin of Apache Drill that connects IPFS's decentralized storage and Drill's flexible query engine.
|
||||
- title: IPFS with TiddlyWiki
|
||||
source: https://github.com/xmaysonnave/tiddlywiki-ipfs
|
||||
description: >
|
||||
IPFS with TiddyWiki is a TiddlyWiki plugin who aims to help developers, editors or users to save their wikis and attachments over IPFS.
|
||||
- title: Kauri
|
||||
source: https://kauri.io
|
||||
picture: /images/kauri_io.png
|
||||
description: >
|
||||
A community-based knowledge platform for web3 technologies built on top of IPFS and Ethereum. Learn, share and curate on up-to-date and high-quality technical articles and series.
|
||||
- title: Skyhook
|
||||
source: https://github.com/deedeecx330/skyhook
|
||||
description: >
|
||||
Send and receive files securely
|
||||
- title: Everforo
|
||||
website: https://www.everforo.com
|
||||
description: >
|
||||
Everforo is the next generation of online community groups build on top of IPFS.
|
||||
- title: IPFS-forum
|
||||
website: https://github.com/ReForum-ipfs/ReForum#readme
|
||||
source: https://github.com/ReForum-ipfs/ReForum
|
||||
description: >
|
||||
A web3 forum.You can get new ideas,reports,dicussions from this forum ,though you maybe are in a network-restricted area,all the contents will be updated qucikly by ipfs.
|
||||
- title: Watchit
|
||||
website: https://github.com/ZorrillosDev/watchit-desktop
|
||||
source: https://github.com/ZorrillosDev/watchit-desktop
|
||||
picture: /images/watchit.png
|
||||
description: >
|
||||
A movie platform with a decentralized network approach.
|
||||
- title: La Marque
|
||||
website: https://marque.la/
|
||||
picture: /images/lamarque.png
|
||||
description: >
|
||||
Generate & pin content from your phone. Validate "La Marque" assets by verifying received images from others.
|
||||
- title: Uniswap
|
||||
website: https://uniswap.org/
|
||||
source: https://github.com/Uniswap
|
||||
picture: /images/UniswapCard.png
|
||||
description: >
|
||||
Decentralized Trading Protocol built on Ethereum.
|
||||
- title: youtube2ipfs
|
||||
website: https://pypi.org/project/youtube2ipfs/
|
||||
source: https://github.com/dokterbob/youtube2ipfs
|
||||
description: >
|
||||
Download videos from YouTube (and similar video platforms) and add them to IPFS.
|
||||
- title: P2Pdoc
|
||||
website: https://p2pdoc.glitch.me/
|
||||
source: https://github.com/aboutDavid/p2pdoc
|
||||
picture: /images/p2pdoc.png
|
||||
description: >
|
||||
P2Pdoc allows you to create a document and then upload it to the distributed web.
|
||||
- title: Valist
|
||||
website: https://valist.io
|
||||
source: https://github.com/valist-io/valist
|
||||
picture: /images/valist.png
|
||||
description: >
|
||||
A trustless universal package repository enabling you to digitally sign and distribute software in just a few steps.
|
||||
- title: Terrive
|
||||
website: https://ipfs.io/ipns/terrive.one
|
||||
source: https://github.com/appukuttan66/terrive
|
||||
picture: /images/terrive.png
|
||||
description: >
|
||||
A Photo and Video Sharing Platform that uses the HIVE blockchain as a database and Immutable Image/Video Hosting.
|
||||
- title: Skiff
|
||||
website: https://www.skiff.com
|
||||
source: https://github.com/skiff-org/skiff-mail
|
||||
picture: /images/skiff.png
|
||||
description: >
|
||||
Privacy-first, end-to-end encrypted email, file storage, and collaboration platform using IPFS storage.
|
||||
- title: CoTNetwork
|
||||
website: http://www.cotnetwork.com
|
||||
picture: /images/cotnetwork.png
|
||||
description: >
|
||||
A distributed computing network base on ipfs
|
||||
- title: Music For Programming
|
||||
website: https://ipfs.io/ipns/mfp.jillejr.tech
|
||||
source: https://github.com/jilleJr/musicforprogramming.ipfs
|
||||
picture: /images/musicforprogramming.jpg
|
||||
description: >
|
||||
Unofficial port of musicforprogramming.net.
|
||||
- title: InfiniteBooru
|
||||
source: https://infinitebooru.com
|
||||
picture: /images/infinitebooru.png
|
||||
description: >
|
||||
A booru-style media tagging application and content aggregator
|
||||
with all media backed by IPFS.
|
||||
- title: InfinitumX
|
||||
source: https://infinitumx.io
|
||||
picture: /images/infinitumx.png
|
||||
description: >
|
||||
A decentralized "Reddit Place" like board with Harberger's tax as an economical concept & censorship resistance built in.
|
||||
- title: OrbitChat
|
||||
source: https://orbitchat.dev
|
||||
picture: /images/orbitchat-dev.webp
|
||||
description: >
|
||||
Decentralized message client demo with OrbitDB and IPFS running on an Angular web app.
|
@ -1,60 +0,0 @@
|
||||
title: Articles
|
||||
color: navy
|
||||
icon: stroke_pencil
|
||||
description: Articles about the decentralized web and IPFS.
|
||||
content:
|
||||
- title: "How to Create a Unity Game on IPFS using Pinata"
|
||||
date: "2020-08-03"
|
||||
website: https://medium.com/pinata/how-to-create-a-unity-game-on-ipfs-using-pinata-d0af18a5bd44
|
||||
picture: /images/unity-game-pinata.png
|
||||
- title: 10+ Resources Every IPFS Developer Should Know About
|
||||
date: "2019-07-22"
|
||||
website: https://medium.com/@vaibhavsaini_67863/10-resources-to-get-started-with-ipfs-5f429dc8a841
|
||||
- title: Ultimate Guide to Filecoin Breaking Down Filecoin Whitepaper & Economics
|
||||
date: "2019-01-30"
|
||||
website: https://medium.com/swlh/ultimate-guide-to-filecoin-breaking-down-filecoin-whitepaper-economics-9212541a5895
|
||||
- title: Using IPFS for IoT Communications
|
||||
date: "2017-03-31"
|
||||
website: https://medium.com/@chrismatthieu/using-ipfs-for-iot-communications-b49c2139783a
|
||||
- title: "IPFS: The Internet Democratised"
|
||||
date: "2016-09-12"
|
||||
website: https://medium.com/@tonywillenberg/web-3-0-a-truly-democratised-internet-f4b06cb4077b
|
||||
- title: Changelog Podcast
|
||||
date: "2016-05-20"
|
||||
website: https://changelog.com/podcast/204/
|
||||
- title: Introduction to IPFS
|
||||
date: "2015-09-13"
|
||||
website: http://whatdoesthequantsay.com/2015/09/13/ipfs-introduction-by-example
|
||||
- title: The InterPlanetary File System Wants to Create a Permanent Web
|
||||
date: "2015-09-18"
|
||||
website: http://motherboard.vice.com/read/the-interplanetary-file-system-wants-to-create-a-permanent-web
|
||||
- title: HTTP is obsolete. It's time for the distributed, permanent web
|
||||
date: "2015-09-08"
|
||||
website: https://ipfs.io/ipfs/QmNhFJjGcMPqpuYfxL62VVB9528NXqDNMFXiqN5bgFYiZ1/its-time-for-the-permanent-web.html
|
||||
- title: Downloading nodejs versions with nvm/n over IPFS
|
||||
website: https://ipfs.io/ipfs/QmTkzDwWqPbnAh5YiV5VwcTLnGdwSNsNTn2aDxdXBFca7D/example#/ipfs/QmUx363UFtgiQqkHHsPK3TSDmwoALDo2hrbMWbcxjH2vFc
|
||||
- title: On future-proof cryptographic hashes
|
||||
date: "2018-07-11"
|
||||
website: https://pascalprecht.github.io/posts/future-proofed-hashes-with-multihash/
|
||||
- title: Content Identifiers in IPFS
|
||||
date: "2018-08-06"
|
||||
website: https://pascalprecht.github.io/posts/content-identifiers-in-ipfs/
|
||||
- title: Decentralized indexes for public genomic data
|
||||
date: "2017-05-05"
|
||||
website: https://github.com/luizirber/2017-recomb
|
||||
- title: Understanding the IPFS White Paper part 1
|
||||
date: "2017-08-10"
|
||||
website: https://decentralized.blog/understanding-the-ipfs-white-paper-part-1.html
|
||||
- title: Understanding the IPFS White Paper part 2
|
||||
date: "2017-08-21"
|
||||
website: https://decentralized.blog/understanding-the-ipfs-white-paper-part-2.html
|
||||
- title: "The Complete Beginner's Guide to Deploying Your First Static Website to IPFS"
|
||||
date: "2019-05-12"
|
||||
website: https://dev.to/agentofuser/the-complete-beginner-s-guide-to-deploying-your-first-static-website-to-ipfs-33po
|
||||
picture: /images/tutorial-ipfs-deploy.jpeg
|
||||
- title: "Managing storage in a Java application with IPFS"
|
||||
date: "2019-08-14"
|
||||
website: https://kauri.io/article/3e8494f4f56f48c4bb77f1f925c6d926
|
||||
- title: The Case for a Decentralized Social Network
|
||||
date: "2019-03-10"
|
||||
website: https://medium.com/npfoss/the-case-for-a-decentralized-social-network-2683b727abf5
|
@ -1,139 +0,0 @@
|
||||
title: Datasets
|
||||
color: teal
|
||||
icon: stroke_copy
|
||||
description: Datasets who live or are replicated to IPFS.
|
||||
content:
|
||||
- title: IETF RFC Archive
|
||||
hash: /ipfs/QmNvTjdqEPjZVWCvRWsFJA1vK7TTw1g9JP6we1WBJTRADM
|
||||
website: https://ipfs.io/ipfs/QmNvTjdqEPjZVWCvRWsFJA1vK7TTw1g9JP6we1WBJTRADM
|
||||
source: https://github.com/ipfs/archives/issues/18
|
||||
size: 500MB
|
||||
- title: xkcd
|
||||
hash: /ipns/xkcd.hacdias.com
|
||||
snapshot:
|
||||
hash: /ipfs/QmP7UYTMQFhsiRHfbgPgEngALzXWroSRVkEyWSbJTd23yf
|
||||
date: 15/07/2019
|
||||
website: https://ipfs.io/ipns/xkcd.hacdias.com
|
||||
source: https://github.com/ipfs/archives/issues/21
|
||||
description:
|
||||
size: 242MB
|
||||
- title: Old Internet Files
|
||||
hash: /ipfs/QmbsZEvJE8EU51HCUHQg2aem9JNFmFHdva3tGVYutdCXHp
|
||||
website: https://ipfs.io/ipfs/QmbsZEvJE8EU51HCUHQg2aem9JNFmFHdva3tGVYutdCXHp
|
||||
source: https://github.com/ipfs/archives/issues/176
|
||||
description:
|
||||
size: 207MB
|
||||
- title: yarchive.net
|
||||
hash: /ipfs/QmdA5WkDNALetBn4iFeSepHjdLGJdxPBwZyY47ir1bZGAK
|
||||
website: https://ipfs.io/ipfs/QmdA5WkDNALetBn4iFeSepHjdLGJdxPBwZyY47ir1bZGAK
|
||||
source: https://github.com/ipfs/archives/issues/76
|
||||
description:
|
||||
size: 196MB
|
||||
- title: World Wide Web History Project
|
||||
hash: /ipfs/QmRTSA1UFHSx3z7taNRwUVM8AjB2EQwKvyZu3BfJg9QRtZ
|
||||
website: https://ipfs.io/ipfs/QmRTSA1UFHSx3z7taNRwUVM8AjB2EQwKvyZu3BfJg9QRtZ
|
||||
source: https://github.com/ipfs/archives/issues/159
|
||||
description:
|
||||
size: 92MB
|
||||
- title: haveibeenpwnd.com passwords
|
||||
hash: /ipfs/QmSRBDMksX7c5dfheGsYDdWrLdve5hBvXDQm7Yrov7KMJv
|
||||
website: https://ipfs.io/ipfs/QmSRBDMksX7c5dfheGsYDdWrLdve5hBvXDQm7Yrov7KMJv
|
||||
source: https://github.com/ipfs/archives/issues/157
|
||||
description:
|
||||
size: 43.5GB
|
||||
- title: MDSConnect
|
||||
hash: /ipfs/QmcvfB6pAqUfTnuAK8zFKVxbdhopnBPveJrDcy1JAA7HX5
|
||||
website: https://ipfs.io/ipfs/QmcvfB6pAqUfTnuAK8zFKVxbdhopnBPveJrDcy1JAA7HX5
|
||||
source: https://github.com/ipfs/archives/issues/152
|
||||
description:
|
||||
size: 18.4GB
|
||||
- title: arXiv
|
||||
hash: /ipfs/QmfXH9XtP7xmoTH8WAp4HNSduqWMwLTH8B8TvbTkdgzNAa
|
||||
website: https://ipfs.io/ipfs/QmfXH9XtP7xmoTH8WAp4HNSduqWMwLTH8B8TvbTkdgzNAa
|
||||
source: https://github.com/ipfs/archives/issues/2
|
||||
description:
|
||||
size: 25GB
|
||||
- title: Presidential Daily Briefs
|
||||
hash: /ipfs/Qme6epvZDj3vzHcFKdF1nZhbixjw8Bn4imGcKnbUyBJL89
|
||||
website: https://ipfs.io/ipfs/Qme6epvZDj3vzHcFKdF1nZhbixjw8Bn4imGcKnbUyBJL89
|
||||
source: https://github.com/ipfs/archives/issues/23
|
||||
description:
|
||||
size: 480MB
|
||||
- title: No-Intro Collection
|
||||
hash: /ipfs/QmPFj6iAxUwxVyEtDJBJHXVp4SX9dkV91Mh5mjqGxTctHy
|
||||
website: https://ipfs.io/ipfs/QmPFj6iAxUwxVyEtDJBJHXVp4SX9dkV91Mh5mjqGxTctHy
|
||||
source: https://github.com/ipfs/archives/issues/163
|
||||
description:
|
||||
size: 39.15 GB
|
||||
- title: cdnjs
|
||||
hash: /ipfs/QmRrnfFUgx81KZR9ibEcxDXgevoj9e5DydB5v168yembnX
|
||||
website: https://ipfs.io/ipfs/QmRrnfFUgx81KZR9ibEcxDXgevoj9e5DydB5v168yembnX
|
||||
source: https://github.com/ipfs/archives/issues/35
|
||||
description:
|
||||
size: 17GB
|
||||
- title: alpine-linux 3.4 packages
|
||||
hash: /ipfs/QmRsvEpJggeu4HhoafzRFobV4sbwVVTXMrdb2p8XWv7bCS
|
||||
website: https://ipfs.io/ipfs/QmRsvEpJggeu4HhoafzRFobV4sbwVVTXMrdb2p8XWv7bCS
|
||||
source: https://github.com/ipfs/archives/issues/83
|
||||
description:
|
||||
size: 29GB
|
||||
- title: Project Apollo Archives
|
||||
hash: /ipfs/QmSnuWmxptJZdLJpKRarxBMS2Ju2oANVrgbr2xWbie9b2D
|
||||
website: https://ipfs.io/ipfs/QmSnuWmxptJZdLJpKRarxBMS2Ju2oANVrgbr2xWbie9b2D
|
||||
source: https://github.com/ipfs/archives/issues/143
|
||||
description:
|
||||
size: 61GB
|
||||
- title: textfiles.com
|
||||
hash: /ipfs/QmNoscE3kNc83dM5rZNUC5UDXChiTdDcgf16RVtFCRWYuU
|
||||
website: https://ipfs.io/ipfs/QmNoscE3kNc83dM5rZNUC5UDXChiTdDcgf16RVtFCRWYuU
|
||||
source: https://github.com/ipfs/archives/issues/155
|
||||
description:
|
||||
size: 1.6GB
|
||||
- title: cdn.media.ccc.de
|
||||
hash: /ipfs/QmW84mqTYnCkRTy6VeRJebPWuuk8b27PJ4bWm2bL4nrEWb
|
||||
website: https://ipfs.io/ipfs/QmW84mqTYnCkRTy6VeRJebPWuuk8b27PJ4bWm2bL4nrEWb
|
||||
source: https://github.com/ipfs/archives/issues/52
|
||||
description:
|
||||
size: 5.4TiB
|
||||
- title: Geocities by Archive Team
|
||||
hash: /ipfs/QmVCjhoEFC9vwvaa8bKyJgwAByP4MXSogcyDGoz4Lkc3ox
|
||||
website: https://ipfs.io/ipfs/QmVCjhoEFC9vwvaa8bKyJgwAByP4MXSogcyDGoz4Lkc3ox
|
||||
source: https://github.com/ipfs/archives/issues/182
|
||||
description:
|
||||
size: 641GiB
|
||||
- title: KinoKabaret Caen, 2018 - Shortfilms
|
||||
hash: /ipfs/QmajLDwZLH6bKTzd8jkq913ZbxaB2nFGRrkDAuygYNNv39
|
||||
website: https://ipfs.io/ipfs/QmajLDwZLH6bKTzd8jkq913ZbxaB2nFGRrkDAuygYNNv39
|
||||
source: https://github.com/ipfs/archives/issues/172
|
||||
description:
|
||||
size: 30GB
|
||||
- title: Brainwash Dataset
|
||||
hash: /ipfs/QmZ8BpYCtcPeA5g6uXciNXN395WeqZYNVNvz4xvBxsfxqy
|
||||
website: https://purl.stanford.edu/sx925dc9385
|
||||
source: https://purl.stanford.edu/sx925dc9385
|
||||
description: Stewart, Russell. (2015). Brainwash dataset.
|
||||
size: 4GB
|
||||
- title: 'WistfulBooks: LibriVox Audiobook Archive'
|
||||
hash: /ipfs/QmXyNMhV8bQFp6wzoVpkz3NqDi7Fj72Deg7KphAuew3RYU
|
||||
website: https://wistfulbooks.com
|
||||
source: https://github.com/smwa/wistfulbooks
|
||||
description: Free public domain audiobooks from LibriVox.org packaged into a single page that lets you listen to audiobooks in your browser.
|
||||
size: 2.0 TiB
|
||||
- title: 'Cooking Recipes'
|
||||
hash: /ipfs/QmTXo6GforwsuGAd8behjgvKCsMMBdG1xMZJF4qa9W7CHB
|
||||
website: https://ipfs.io/ipfs/QmTXo6GforwsuGAd8behjgvKCsMMBdG1xMZJF4qa9W7CHB
|
||||
source: https://old.reddit.com/r/opendirectories/comments/dsznin/50_gb_directory_of_cooking_recipes/
|
||||
description: Around 50GB of formatted and unformatted cooking recipes.
|
||||
size: 52GB
|
||||
- title: '7-piece Syzygy tablebases'
|
||||
hash: /ipfs/QmVgcSADsoW5w19MkL2RNKNPGtaz7UhGhU62XRm6pQmzct
|
||||
website: https://syzygy-tables.info/
|
||||
source: https://github.com/syzygy1/tb
|
||||
description: Solutions for all chess endgames with up to 7 pieces.
|
||||
size: 16.9 TiB
|
||||
- title: CrowdHuman Dataset
|
||||
hash: /ipfs/QmTgBpFRM1K4gGyLKSv7tJnEkZZcEQcswnGDdBYkCRu6Vw
|
||||
website: http://www.crowdhuman.org/
|
||||
source: http://www.crowdhuman.org/download.html
|
||||
description: CrowdHuman dataset. A Benchmark for Detecting Human in a Crowd
|
||||
size: 13GB
|
@ -1,64 +0,0 @@
|
||||
title: Services
|
||||
color: green
|
||||
icon: stroke_decentralization
|
||||
description: Services that make use of IPFS technologies.
|
||||
content:
|
||||
- title: Peergos
|
||||
website: https://peergos.org
|
||||
source: https://github.com/Peergos/Peergos
|
||||
picture: /images/peergos.png
|
||||
description: >
|
||||
Your private, but social, space online. Store and edit documents and media. Share files or folders with friends.
|
||||
- title: Pinata
|
||||
website: https://pinata.cloud
|
||||
picture: /images/pinata.png
|
||||
description: >
|
||||
Build and manage your dapp through Pinata’s REST API and IPFS toolkit.
|
||||
- title: Eternum
|
||||
website: https://www.eternum.io/
|
||||
picture: /images/eternum.png
|
||||
description: >
|
||||
Paid pinning service with an easy-to-use API.
|
||||
- title: Robonomics Network
|
||||
website: https://robonomics.network/
|
||||
picture: /images/1_Robonomics_logo_color.png
|
||||
description: Ethereum network infrastructure for cyber-physical systems' integration into Smart Cities and Industry 4.0
|
||||
- title: Boom.FYI
|
||||
website: https://www.boom.fyi
|
||||
picture: /images/boom-fyi.svg
|
||||
description: An IPFS link shortening and access control service.
|
||||
- title: Temporal
|
||||
website: https://temporal.cloud
|
||||
picture: /images/temporal.png
|
||||
description: Scalable IPFS Infrastructure with free starter package featuring turnkey APIs, toolkits and storage.
|
||||
- title: Unstoppable Domains
|
||||
website: https://unstoppabledomains.com
|
||||
picture: /images/unstoppable-domains-app.png
|
||||
description: >
|
||||
Domains on blockchains
|
||||
- title: Fission
|
||||
website: https://fission.codes
|
||||
picture: /images/fission500px.png
|
||||
description: >
|
||||
App and website hosting powered by IPFS, including DNS automation, identity, and end-to-end encryption.
|
||||
- title: Monaparty
|
||||
website: https://www.monaparty.me/
|
||||
picture: /images/monaparty.png
|
||||
description: >
|
||||
Token assets platform based on Monacoin and Counterparty. Contents bound to user assets are hosted by IPFS.
|
||||
- title: Fleek
|
||||
website: http://fleek.co/
|
||||
source: https://github.com/FleekHQ
|
||||
picture: /images/darkfleek.png
|
||||
description: >
|
||||
Open Web development platform for building, hosting, and storing sites and apps on IPFS, Filecoin, and the Internet Computer.
|
||||
- title: IPFSBay
|
||||
website: https://www.ipfsbay.com
|
||||
picture: /images/ipfsbay.png
|
||||
description: >
|
||||
Unstoppable marketplace in the IPFS network.
|
||||
- title: Crust Network
|
||||
website: https://crust.network
|
||||
picture: /images/crustnetwork.png
|
||||
description: >
|
||||
Decentralized pinning and gateway service for IPFS.
|
199
data/tools.yaml
@ -1,199 +0,0 @@
|
||||
title: Tools
|
||||
color: yellow
|
||||
icon: stroke_code
|
||||
description: Tools built on the top of IPFS.
|
||||
content:
|
||||
- title: Almonit Browser Extension
|
||||
website: https://almonit.com/#/extension/
|
||||
source: https://github.com/almonit/almonit-plugin
|
||||
picture: /images/almonit.jpg
|
||||
description: Resolves ENS domains, this let users access .eth websites while offering maximum decentralization.
|
||||
- title: Tellit
|
||||
source: https://gitlab.com/terceranexus6/tellit
|
||||
description: Encrypt files before uploading them using a keypair or a passphrase
|
||||
- title: VIPFS
|
||||
source: https://github.com/Ideea-inc/vipfs
|
||||
description: Publish your Vue apps easily to IPFS
|
||||
- title: Sweet IPFS
|
||||
source: https://github.com/RHazDev/Sweet-IPFS
|
||||
description: Full node for Android
|
||||
- title: go-stellar-ipfs
|
||||
source: https://github.com/aanupam23/go-stellar-ipfs
|
||||
description: go-stellar-ipfs is a library that is a bridge between Stellar and IPFS.
|
||||
- title: cachewarmer
|
||||
source: https://github.com/BrendanBenshoof/cachewarmer
|
||||
description: Donate ipfs gateways to cache other people's content
|
||||
- title: create-ipfs-app
|
||||
source: https://github.com/alexbakers/create-ipfs-app
|
||||
description: Set up a decentralized web3 app by running one command.
|
||||
- title: gatsby-plugin-ipfs
|
||||
source: https://github.com/moxystudio/gatsby-plugin-ipfs
|
||||
description: Adds support for deploying Gatsby websites to IPFS by ensuring that assets are relative.
|
||||
- title: galacteek
|
||||
website: https://galacteek.github.io
|
||||
source: https://github.com/pinnaculum/galacteek
|
||||
description: A multi-platform Qt5-based browser for the distributed web
|
||||
- title: git-remote-ipfs
|
||||
source: https://github.com/cryptix/git-remote-ipfs
|
||||
description: push/pull repositories from/to IPFS
|
||||
- title: http2ipfs
|
||||
source: https://github.com/jbenet/http2ipfs-web
|
||||
description: This is a simple webtool to add URLs to an IPFS node.
|
||||
- title: IPLD Explorer
|
||||
website: https://explore.ipld.io
|
||||
source: https://github.com/ipfs-shipyard/ipld-explorer
|
||||
picture: /images/ipld-explorer.png
|
||||
description: >
|
||||
Explore the Merkle Forest from the comfort of your browser
|
||||
- title: ipcat
|
||||
source: https://github.com/noffle/ipcat
|
||||
description: ":cat2: Retrieve IPFS object data and send it to stdout."
|
||||
- title: ipfs-chrome-station
|
||||
source: https://github.com/fbaiodias/ipfs-chrome-station
|
||||
description: Chrome extension to redirect ipfs.io traffic to local gateway
|
||||
- title: ipfs-chrome-extension
|
||||
source: https://github.com/dylanPowers/ipfs-chrome-extension
|
||||
description: Chrome extension to redirect ipfs.io traffic to local gateway
|
||||
- title: ipfs-companion
|
||||
source: https://github.com/ipfs/ipfs-companion
|
||||
picture: /images/companion.png
|
||||
description: Browser extension that simplifies access to IPFS resources.
|
||||
- title: ipfs-gui
|
||||
source: https://github.com/marcin212/ipfs-gui
|
||||
description: Windows UI integration and IPFS installer
|
||||
- title: ipfs-paste
|
||||
source: https://github.com/jbenet/ipfs-paste
|
||||
description: Paste stdin and clipboard to IPFS
|
||||
- title: ipfs-screencap
|
||||
source: https://github.com/jbenet/ipfs-screencap
|
||||
description: Capture screenshots, publish them to IPFS, and copy the link to the
|
||||
clipboard.
|
||||
- title: ipfscrape
|
||||
source: https://github.com/victorbjelkholm/ipfscrape
|
||||
description: Scrape a webpage with all assets and put it in IPFS
|
||||
- title: ipget
|
||||
source: https://github.com/ipfs/ipget
|
||||
description: ":satellite: wget for IPFS: retrieve files over IPFS and save them
|
||||
locally."
|
||||
- title: IPRedirect
|
||||
source: https://github.com/JayBrown/IPRedirect
|
||||
description: Browser userscript for redirecting IPFS/IPNS addresses to your local
|
||||
gateway. This should work on any browser that hasn't had an extension written
|
||||
for it yet and has support for userscripts.
|
||||
- title: iprfc
|
||||
source: https://github.com/RTradeLtd/iprfc
|
||||
description: IETF RFC downloader which stores RFCs on IPFS and indexes
|
||||
them with RTradeLtd/Lens.
|
||||
- title: ipscend
|
||||
source: https://github.com/diasdavid/ipscend
|
||||
description: Tool for hosting web apps and static websites in IPFS
|
||||
- title: pinbot
|
||||
source: https://github.com/whyrusleeping/pinbot
|
||||
description: Pin content via IRC
|
||||
- title: ipfs-mount
|
||||
source: https://github.com/richardschneider/net-ipfs-mount
|
||||
description: Mount IPFS as a mapped drive on Windows
|
||||
- title: ipfs-add-from-url
|
||||
source: https://github.com/maxlath/ipfs-add-from-url
|
||||
description: Add a file to IPFS from a URL instead of a file path
|
||||
- title: ipfs-linux-service
|
||||
source: https://github.com/dylanPowers/ipfs-linux-service
|
||||
description: IPFS Linux Init Daemon
|
||||
- title: Siderus Orion
|
||||
picture: /images/orion.png
|
||||
website: https://orion.siderus.io
|
||||
source: https://github.com/Siderus/Orion
|
||||
description: Easy to use IPFS desktop client for macOS, Windows and Linux
|
||||
- title: ipfsecret
|
||||
source: https://github.com/shlemph/ipfsecret
|
||||
description: Encrypt and decrypt IPFS files with a secret passphrase
|
||||
- title: ipfs-add-from-encrypted
|
||||
source: https://github.com/TroyWilson1/ipfs-add-from-encrypted
|
||||
description: Encrypt a file or directory with AES256 then add to IPFS
|
||||
- title: Blockwatch
|
||||
website: https://ipfs.io/ipfs/QmdikpwcyeBuGaVzWzSzPuqvBfTGD8jPAVydcCjYHsBUxo/index.html
|
||||
source: https://github.com/MidnightLightning/ethereum-blockwatch
|
||||
description: >
|
||||
Monitor the current block number of the Ethereum blockchain, and set alerts (stored locally using
|
||||
PouchDB in your browser) for when certain block heights are passed.
|
||||
- title: ipfs-common
|
||||
website: https://github.com/arsyun
|
||||
source: https://github.com/arsyun/ipfs-common
|
||||
description: >
|
||||
Some common tools, 1.CID to human readable cid, 2.cid and block name convert, 3. read the leveldb tools.
|
||||
- title: ipfs-publish
|
||||
picture: /images/ipfs-publish.png
|
||||
website: https://ipfs-publish.uhlir.dev
|
||||
source: https://github.com/AuHau/ipfs-publish
|
||||
description: Continuous Delivery tool for delivery of static websites from Git providers to IPFS.
|
||||
- title: mahuta
|
||||
website: https://github.com/ConsenSys/Mahuta
|
||||
source: https://github.com/ConsenSys/Mahuta
|
||||
description: >
|
||||
Mahuta is a plug and play service for your micro-service architecture allowing to collect, store and index data on IPFS and offering search functionalities (full text, query).
|
||||
- title: Public gateway status checker
|
||||
website: https://ipfs.fooock.com/
|
||||
source: https://github.com/fooock/ipfs-gateway-checker
|
||||
description: Web app to check public states of IPFS gateways, including latency and gateway writable state.
|
||||
- title: IPDR
|
||||
website: https://github.com/miguelmota/ipdr
|
||||
description: IPFS-backed Docker Registry
|
||||
- title: 'ipfs-deploy'
|
||||
website: https://github.com/agentofuser/ipfs-deploy
|
||||
source: https://github.com/agentofuser/ipfs-deploy
|
||||
description: 'Zero-config CLI to deploy static websites: cd my-static-website && npx @agentofuser/ipfs-deploy'
|
||||
picture: /images/ipfs-deploy.png
|
||||
- title: ipfs-video-gateway
|
||||
website: https://ipfs.video
|
||||
source: https://github.com/bneijt/ipfs-video-gateway
|
||||
description: Cloud-init your own IPFS gateway on a cloud provider and easily pin content through a simple web interface.
|
||||
- title: orbit-db
|
||||
website: https://github.com/orbitdb/orbit-db
|
||||
source: https://github.com/orbitdb/orbit-db
|
||||
description: OrbitDB is a serverless, distributed, peer-to-peer database that uses IPFS as its data storage and IPFS Pubsub to automatically sync databases with peers.
|
||||
picture: /images/orbit-db.png
|
||||
- title: go-orbit-db
|
||||
website: https://github.com/berty/go-orbit-db
|
||||
source: https://github.com/berty/go-orbit-db
|
||||
description: This is a Golang port of OrbitDB that intends to be fully compatible with the original JavaScript version. OrbitDB is a serverless, distributed, peer-to-peer database.
|
||||
- title: ipfs-action
|
||||
picture: /images/ipfs-action.png
|
||||
source: https://github.com/aquiladev/ipfs-action
|
||||
description: GitHub Action for delivery of static websites.
|
||||
- title: IPFS Setup Action
|
||||
website: https://github.com/marketplace/actions/ipfs-setup-action
|
||||
source: https://github.com/ibnesayeed/setup-ipfs
|
||||
description: A GitHub Action to install and initialize go-ipfs to provision a cross-platform test environment on GitHub's CI platform.
|
||||
- title: ShareX integration
|
||||
website: https://github.com/ShareX/CustomUploaders/blob/master/ipfs.io.sxcu
|
||||
source: https://github.com/ShareX/CustomUploaders/blob/master/ipfs.io.sxcu
|
||||
description: ShareX is a file upload and manipulation tool that has a custom integration with IPFS
|
||||
- title: gomobile-ipfs
|
||||
website: https://github.com/ipfs-shipyard/gomobile-ipfs
|
||||
source: https://github.com/ipfs-shipyard/gomobile-ipfs
|
||||
description: IPFS and libp2p on Mobile, with Gomobile
|
||||
- title: Multiverse
|
||||
source: https://github.com/multiverse-vcs/go-multiverse
|
||||
description: Multiverse is a decentralized version control system that enables peer-to-peer software development.
|
||||
- title: ipfs-pinner
|
||||
source: https://github.com/wabarc/ipfs-pinner
|
||||
description: A toolkit help upload files to IPFS pinning services.
|
||||
- title: wbipfs
|
||||
source: https://github.com/wabarc/wbipfs
|
||||
description: A command-line tool and Go package interface for wayback webpage to IPFS.
|
||||
- title: Bubble IPFS From URL Plugin
|
||||
source: https://bubble.io/plugin/ipfs-add-from-uri-1616424944051x638386852081172500
|
||||
description: Bubble (no code platform) plugin for IPFS From URL integration
|
||||
- title: ipns-pin
|
||||
source: https://github.com/justicenode/node-ipns-pin
|
||||
description: A command-line tool to pin stuff via ipns.
|
||||
- title: ipfs-encrypted-share
|
||||
picture: /images/ipfs-encrypted-share.png
|
||||
source: https://github.com/whs/ipfs-encrypted-share
|
||||
description: Easy to use encrypted file uploader.
|
||||
- title: solid-ipfs
|
||||
source: https://github.com/Eximua/solid-ipfs
|
||||
description: Using Solid to store IPFS Hash privately or publicly.
|
||||
- title: rivet
|
||||
source: https://github.com/wabarc/rivet
|
||||
description: A toolkit makes it easier to archive webpages to IPFS.
|
@ -1,34 +0,0 @@
|
||||
title: Videos
|
||||
color: red
|
||||
description: Videos about IPFS.
|
||||
icon: stroke_speaker
|
||||
content:
|
||||
- title: IPFS Alpha - Why we must redistribute the web
|
||||
website: https://www.youtube.com/watch?v=skMTdSEaCtA
|
||||
picture: /images/ipfs-alpha.jpg
|
||||
- title: IPFS Simply Explained
|
||||
website: https://www.youtube.com/watch?v=5Uj6uR3fp-U
|
||||
picture: /images/ipfs_simply_explained_video.jpg
|
||||
description: >
|
||||
Let's take a look at how IPFS works, how it can solve issue's like
|
||||
censorship and if it would really work across multiple planets!
|
||||
- title: Juan Benet at Stanford 2015
|
||||
website: https://www.youtube.com/watch?v=HUVmypx9HGI
|
||||
picture: /images/stanford-2015.jpg
|
||||
description: >
|
||||
The talk includes a broad look at The IPFS Project, and a discussion on evolving the network stack through open source protocols R & D.
|
||||
- title: Distributed Apps with IPFS - Juan Benet at Fullstack Fest 2016
|
||||
website: https://www.youtube.com/watch?v=jONZtXMu03w
|
||||
picture: /images/fullstack-fest-2016.jpg
|
||||
description: >
|
||||
This talk breaks down how to build a dynamic app on top of IPFS with
|
||||
CRDTs, pub/sub, and slick UIs. It also delves into new models for
|
||||
distributed computation, and the ethical importance of distributing the
|
||||
web.
|
||||
- title: Textile Build Series - A Free Online Workshop
|
||||
website: https://www.youtube.com/playlist?list=PLC8CEtJ9shDznO1tpvGe--BVEWmCKY9_Z
|
||||
picture: /images/textile-build-series.jpg
|
||||
description: >
|
||||
A full Training Program to teach devs on how to build for the
|
||||
Decentralized Web. The series covers a ton of content, touch multiple
|
||||
parts of the IPFS stack and guides devs through building a simple DApp.
|
37
package.json
@ -2,45 +2,12 @@
|
||||
"name": "awesome-ipfs",
|
||||
"version": "1.0.0",
|
||||
"private": true,
|
||||
"dependencies": {
|
||||
"ipfs-css": "^0.12.0",
|
||||
"lunr": "^2.3.6",
|
||||
"tachyons": "^4.11.1"
|
||||
},
|
||||
"dependencies": {},
|
||||
"scripts": {
|
||||
"start": "node ./scripts/dev.js",
|
||||
"lint": "standard",
|
||||
"deploy": "npm run build && ipfs add -r -Q ./public",
|
||||
"build": "run-s build:*",
|
||||
"build:readme": "node ./scripts/make-readme.js",
|
||||
"build:fonts": "shx mkdir -p src/static/fonts && shx cp node_modules/ipfs-css/fonts/* src/static/fonts",
|
||||
"build:icons": "shx cp node_modules/ipfs-css/icons/* src/layouts/partials/icons",
|
||||
"build:css": "postcss --no-map --use postcss-import cssnano -o src/static/app.css src/css/*.css",
|
||||
"build:js": "browserify -g uglifyify src/js/app.js -o src/static/app.js",
|
||||
"build:data": "node ./scripts/make-data.js",
|
||||
"build:hugo": "hugo -s src -d ../public --cleanDestinationDir --minify --gc",
|
||||
"ci:danger": "danger ci"
|
||||
},
|
||||
"devDependencies": {
|
||||
"babel-eslint": "^10.0.2",
|
||||
"browserify": "^16.3.0",
|
||||
"chokidar": "^3.0.2",
|
||||
"cssnano": "^4.1.10",
|
||||
"danger": "^11.1.2",
|
||||
"ecstatic": "^4.1.2",
|
||||
"fs-extra": "^8.1.0",
|
||||
"hugo-bin": "^0.43.6",
|
||||
"node-yaml": "^4.0.1",
|
||||
"npm-run-all": "^4.1.5",
|
||||
"postcss-cli": "^6.1.3",
|
||||
"postcss-import": "^12.0.1",
|
||||
"shx": "^0.3.2",
|
||||
"standard": "^13.0.2",
|
||||
"uglifyify": "^5.0.1",
|
||||
"watch": "^1.0.2"
|
||||
},
|
||||
"standard": {
|
||||
"parser": "babel-eslint"
|
||||
"danger": "^11.1.2"
|
||||
},
|
||||
"author": "Protocol Labs, Inc.",
|
||||
"license": "MIT",
|
||||
|
@ -1,51 +1,5 @@
|
||||
## What kind of PR is this?
|
||||
**Select only one** *to speed up review/approval; i.e., don't lump an addition and a removal into a single PR.*
|
||||
|
||||
- [ ] **Adding** something new to awesome-ipfs
|
||||
- [ ] **Editing** something already listed on awesome-ipfs
|
||||
- [ ] **Removing** something from awesome-ipfs
|
||||
- [ ] **Something else** *(if so, please explain in the "Additional details" section below)*
|
||||
|
||||
<!-- If your change is not listed above, please remove the checklist bellow. -->
|
||||
|
||||
## Pre-submit checklist
|
||||
**Please confirm ALL of the following** before submitting your PR.
|
||||
|
||||
- [ ] This PR includes only one addition, removal, or edit.
|
||||
- [ ] I edited the `/data` directory instead of the [README.md](https://github.com/ipfs/awesome-ipfs/blob/master/README.md).
|
||||
- [ ] I reviewed the [content policy](https://github.com/ipfs/awesome-ipfs/blob/master/POLICY.md) and the and the [IPFS Community Code of Conduct](https://github.com/ipfs/community/blob/master/code-of-conduct.md) to ensure my submission meets the requirements.
|
||||
- [ ] I have followed the [CONTRIBUTING.md guidelines](https://github.com/ipfs/awesome-ipfs/blob/master/CONTRIBUTING.md).
|
||||
|
||||
## Additional details
|
||||
|
||||
### Is there anything else we should know about this PR?
|
||||
<!-- If you've checked "Something else" above, or just want to provide additional info or clarification, please do so here. -->
|
||||
|
||||
### For new additions: What is your project's *current* size/reach?
|
||||
<!--This could be number of users, number of integrations, frequency of use, or any other key metrics. If your PR isn't for a new addition to awesome-ipfs, or you don't know these numbers, you can leave this out.-->
|
||||
|
||||
### For new additions: What is your project's *potential* size/reach?
|
||||
<!--This could be number of users, number of integrations, frequency of use, or any other key metrics. If your PR isn't for a new addition to awesome-ipfs, or you don't know these numbers, you can leave this out.-->
|
||||
|
||||
### For new additions: How critical is IPFS to your project?
|
||||
<!--Choose one. If your PR isn't for a new addition to awesome-ipfs, you can leave this out.-->
|
||||
- [ ] Essential
|
||||
- [ ] Somewhat critical
|
||||
- [ ] Useful, but not critical
|
||||
|
||||
### For new additions: What core goal(s) does your project address?
|
||||
<!--Choose as many as apply. If your PR isn't for a new addition to awesome-ipfs, you can leave this out.-->
|
||||
- [ ] Big-data solutions
|
||||
- [ ] Freedom from corporate/government interference
|
||||
- [ ] Data integrity
|
||||
- [ ] Dev tools or other ways to enable developers
|
||||
- [ ] Disaster resilience/recovery
|
||||
- [ ] File storage/retrieval
|
||||
- [ ] File streaming
|
||||
- [ ] Permanent archiving
|
||||
- [ ] Self-sovereign identity
|
||||
- [ ] Platforms that utilize consensus, reputation, or incentivization
|
||||
- [ ] Other *(please list)*
|
||||
|
||||
### Is anything about IPFS blocking your project?
|
||||
<!--If aspects of IPFS are hindering your project's progress, please elaborate here.-->
|
||||
- [ ] I have followed the [Contribution Guidelines](https://github.com/ipfs/awesome-ipfs/blob/master/CONTRIBUTING.md).
|
||||
- [ ] I reviewed the [IPFS Community Code of Conduct](https://github.com/ipfs/community/blob/master/code-of-conduct.md) to ensure my submission meets the requirements.
|
||||
|
@ -1,34 +0,0 @@
|
||||
const fs = require('fs')
|
||||
const { join } = require('path')
|
||||
const yaml = require('node-yaml')
|
||||
const { sortAbc, sortInv, slugify } = require('./utils')
|
||||
|
||||
const dir = join(__dirname, '../data')
|
||||
const trimIfExists = (str) => str ? str.trim() : undefined
|
||||
|
||||
module.exports = fs.readdirSync(dir)
|
||||
.map(file => join(dir, file))
|
||||
.map(file => yaml.readSync(file))
|
||||
.map(file => {
|
||||
file.slug = slugify(file.title)
|
||||
file.type = 'category'
|
||||
|
||||
file.content = file.content.map(({ title, description, ...meta }, i) => ({
|
||||
...meta,
|
||||
title: trimIfExists(title),
|
||||
description: trimIfExists(description),
|
||||
category: file.slug,
|
||||
color: file.color,
|
||||
index: i
|
||||
}))
|
||||
|
||||
let sort = (a, b) => sortAbc(a.title, b.title)
|
||||
|
||||
if (file.slug === 'articles') {
|
||||
sort = (a, b) => sortInv(a.date, b.date)
|
||||
}
|
||||
|
||||
file.content = file.content.sort(sort)
|
||||
return file
|
||||
})
|
||||
.sort((a, b) => sortAbc(a.title, b.title))
|
@ -1,72 +0,0 @@
|
||||
const chokidar = require('chokidar')
|
||||
const path = require('path')
|
||||
const runAll = require('npm-run-all')
|
||||
const dataFolder = path.join(__dirname, '../data')
|
||||
const srcFolder = path.join(__dirname, '../src')
|
||||
const cssPath = path.join(__dirname, '../src/css')
|
||||
const jsPath = path.join(__dirname, '../src/js')
|
||||
const http = require('http')
|
||||
|
||||
const options = {
|
||||
stdout: process.stdout,
|
||||
stderr: process.stderr
|
||||
}
|
||||
|
||||
const runHugo = () => {
|
||||
return runAll(['build:hugo'], options).catch(() => {})
|
||||
}
|
||||
|
||||
const handler = (path) => {
|
||||
if (path.startsWith(dataFolder)) {
|
||||
runAll(['build:data'], options).then(runHugo)
|
||||
} else if (path.startsWith(cssPath)) {
|
||||
runAll(['build:css'], options).then(runHugo)
|
||||
} else if (path.startsWith(jsPath)) {
|
||||
runAll(['build:js'], options).then(runHugo)
|
||||
} else {
|
||||
runHugo()
|
||||
}
|
||||
}
|
||||
|
||||
async function run () {
|
||||
console.log('Preparing fonts, css, js and data...')
|
||||
await runAll(['build:fonts', 'build:css', 'build:js', 'build:icons', 'build:data'], {
|
||||
stdout: process.stdout,
|
||||
stderr: process.stderr,
|
||||
parallel: true
|
||||
})
|
||||
|
||||
await runHugo()
|
||||
|
||||
console.log('Starting server...')
|
||||
|
||||
const ecstatic = require('ecstatic')({
|
||||
root: `${__dirname}/../public`,
|
||||
showDir: true,
|
||||
autoIndex: true
|
||||
})
|
||||
|
||||
const port = process.env.PORT || 8080
|
||||
http.createServer(ecstatic).listen(port)
|
||||
|
||||
const watcher = chokidar.watch([dataFolder, srcFolder], {
|
||||
ignored: (string) => string.indexOf('src/content') !== -1 ||
|
||||
string.indexOf('src/data') !== -1 ||
|
||||
string.indexOf('src/resources') !== -1 ||
|
||||
string.indexOf('src/layouts/partials/indexes') !== -1 ||
|
||||
string.indexOf('src/static/fonts') !== -1 ||
|
||||
string.indexOf('src/static/app.css') !== -1 ||
|
||||
string.indexOf('src/static/app.js') !== -1,
|
||||
persistent: true,
|
||||
ignoreInitial: true,
|
||||
awaitWriteFinish: true
|
||||
})
|
||||
|
||||
watcher
|
||||
.on('ready', () => console.log('Listening on :' + port))
|
||||
.on('add', handler)
|
||||
.on('change', handler)
|
||||
.on('unlink', handler)
|
||||
}
|
||||
|
||||
run()
|
@ -1,50 +0,0 @@
|
||||
const lunr = require('lunr')
|
||||
const fs = require('fs-extra')
|
||||
const { join } = require('path')
|
||||
|
||||
function getData () {
|
||||
const data = require('./data')
|
||||
|
||||
data.push({
|
||||
title: 'Awesome IPFS',
|
||||
slug: '_index',
|
||||
content: data
|
||||
.reduce((arr, cat) => arr.concat(cat.content), [])
|
||||
.map((el, i) => ({
|
||||
...el,
|
||||
index: i
|
||||
}))
|
||||
})
|
||||
|
||||
data.forEach(makeIndex)
|
||||
return data
|
||||
}
|
||||
|
||||
function makeIndex (category) {
|
||||
const data = category.content.map(({ index, title, description = '', tags = [], category = '' }) => ({
|
||||
ref: index,
|
||||
data: `${title} ${description} ${tags.join(' ')} ${category}`
|
||||
}))
|
||||
|
||||
category.index = lunr(function () {
|
||||
this.ref('ref')
|
||||
this.field('data')
|
||||
data.forEach(this.add.bind(this))
|
||||
})
|
||||
}
|
||||
|
||||
const process = () => {
|
||||
const dir = join(__dirname, '../src/content')
|
||||
fs.ensureDirSync(dir)
|
||||
fs.emptyDirSync(dir)
|
||||
|
||||
const data = getData()
|
||||
|
||||
for (const { index, slug, ...meta } of data) {
|
||||
const filename = join(dir, slug + '.md')
|
||||
fs.writeFileSync(filename, `${JSON.stringify(meta)}
|
||||
<script>var idx = JSON.parse(\`${JSON.stringify(index).replace(`'`, `\\'`)}\`);</script>`)
|
||||
}
|
||||
}
|
||||
|
||||
process()
|
@ -1,43 +0,0 @@
|
||||
const fs = require('fs')
|
||||
const path = require('path')
|
||||
const files = require('./data')
|
||||
const readme = path.join(__dirname, '../README.md')
|
||||
const template = path.join(__dirname, 'readme-template.md')
|
||||
const { slugify } = require('./utils')
|
||||
|
||||
const toc = files.map(cat => `- [${cat.title}](#${slugify(cat.title)})`).join('\n')
|
||||
|
||||
const sections = files.map(category => {
|
||||
const content = category.content.map(item => {
|
||||
let block = '- '
|
||||
let mainUrl = ''
|
||||
|
||||
if (item.website) {
|
||||
mainUrl = item.website
|
||||
} else if (item.source) {
|
||||
mainUrl = item.source
|
||||
} else if (item.demo) {
|
||||
mainUrl = item.demo
|
||||
}
|
||||
|
||||
if (item.date) block += item.date + ': '
|
||||
block += `[${item.title}](${mainUrl}) `
|
||||
if (item.description) block += `- ${item.description.trim()}`
|
||||
if (item.demo && mainUrl !== item.demo) {
|
||||
if (!item.description) block += '-'
|
||||
block += ` [Demo](${item.demo})`
|
||||
}
|
||||
if (item.source && mainUrl !== item.source) {
|
||||
block += ` [Source](${item.source})`
|
||||
}
|
||||
|
||||
return block
|
||||
}).join('\n')
|
||||
|
||||
return `## ${category.title}\n\n${content}`
|
||||
}).join('\n\n')
|
||||
|
||||
fs.writeFileSync(readme, fs.readFileSync(template)
|
||||
.toString()
|
||||
.replace('#PLACEHOLDER_TOC#', toc)
|
||||
.replace('#PLACEHOLDER_CATEGORIES#', sections))
|
@ -1,43 +0,0 @@
|
||||
# Awesome IPFS [![Awesome](https://cdn.rawgit.com/sindresorhus/awesome/d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg)](https://github.com/sindresorhus/awesome)
|
||||
|
||||
> Useful resources for using [IPFS](https://ipfs.tech) and building things on top of it
|
||||
|
||||
_This list is for projects, tools, or pretty much any things related to IPFS that are totally_ **awesome**_. This is for products which are already awesome - if you have plans for cool stuff to do with IPFS, you should build it, and then link it here. If you have an idea for an awesome thing to do with IPFS, a good place to ask about it might be in [our IPFS Discuss Forums](https://discuss.ipfs.io)._
|
||||
|
||||
## Table of Contents
|
||||
|
||||
- [Maintainers](#maintainers)
|
||||
- [Contribute](#contribute-to-this-list)
|
||||
- [Collab-Cluster](#collab-cluster)
|
||||
#PLACEHOLDER_TOC#
|
||||
- [Discussions](#discussions)
|
||||
- [Want to hack on IPFS?](#want-to-hack-on-ipfs)
|
||||
- [License](#license)
|
||||
|
||||
## Maintainers
|
||||
|
||||
Maintainers requested! This repo is not currently under active development nor maintenance and requires more support from the community.
|
||||
|
||||
## Contribute to this list!
|
||||
|
||||
Everyone is welcome to submit their new awesome-ipfs item, but it will be accepted only if it meets our [content policy](https://github.com/ipfs/awesome-ipfs/blob/master/POLICY.md).
|
||||
|
||||
Readme and the website are automatically generated. In order to add an element to this list, you need to modify the files in `/data` and then run `make build` before publishing your pull request. Read [contributing guidelines](https://github.com/ipfs/awesome-ipfs/blob/master/CONTRIBUTING.md) to learn how to do so.
|
||||
|
||||
## Collab-Cluster
|
||||
|
||||
[Collaborative clusters](https://collab.ipfscluster.io/) are public IPFS Clusters that anyone can join to help replicating and re-distributing content on the IPFS network. Instead of datasets cluster content is usually updated.
|
||||
|
||||
#PLACEHOLDER_CATEGORIES#
|
||||
|
||||
## Discussions
|
||||
|
||||
* [CRDTs discussion](https://github.com/ipfs/notes/issues/23)
|
||||
|
||||
## Want to hack on IPFS?
|
||||
|
||||
[![](https://cdn.rawgit.com/jbenet/contribute-ipfs-gif/master/img/contribute.gif)](https://github.com/ipfs/community/blob/master/CONTRIBUTING.md)
|
||||
|
||||
## License
|
||||
|
||||
[![CC0](https://licensebuttons.net/p/zero/1.0/88x31.png)](https://creativecommons.org/publicdomain/zero/1.0/)
|
@ -1,30 +0,0 @@
|
||||
/**
|
||||
* This file assumes that awesome_bot has already been ran.
|
||||
*/
|
||||
const markdownTable = require('../ab-results-README.md-markdown-table.json')
|
||||
const fs = require('fs').promises
|
||||
const { join } = require('path')
|
||||
|
||||
const dir = join(__dirname, '../data')
|
||||
|
||||
if (markdownTable.error) {
|
||||
const brokenLinks = require('../ab-results-README.md-filtered.json').map((resultsData) => resultsData.link);
|
||||
(async () => {
|
||||
const files = (await fs.readdir(dir)).map(file => join(dir, file))
|
||||
|
||||
for await (const filePath of files) {
|
||||
let fileContents = await fs.readFile(filePath, 'utf8')
|
||||
brokenLinks.forEach((brokenLink) => {
|
||||
console.log('Searching for "' + brokenLink + '" in ' + filePath)
|
||||
const regex = new RegExp(brokenLink, 'g')
|
||||
if (fileContents.match(regex)) {
|
||||
fileContents = fileContents.replace(regex, '')
|
||||
console.log('Removed "' + brokenLink + '" from ' + filePath)
|
||||
}
|
||||
})
|
||||
await fs.writeFile(filePath, fileContents, 'utf8')
|
||||
}
|
||||
})()
|
||||
} else {
|
||||
console.log('No errors reported by awesome_bot.')
|
||||
}
|
@ -1,28 +0,0 @@
|
||||
const sort = (a, b) => {
|
||||
if (a < b) return -1
|
||||
if (a > b) return 1
|
||||
return 0
|
||||
}
|
||||
|
||||
const sortInv = (a, b) => -sort(a, b)
|
||||
|
||||
const sortAbc = (a, b) => {
|
||||
a = a.toLowerCase()
|
||||
b = b.toLowerCase()
|
||||
return sort(a, b)
|
||||
}
|
||||
|
||||
const slugify = (text) => text.toString()
|
||||
.toLowerCase()
|
||||
.replace(/\s+/g, '-')
|
||||
.replace(/[^\w-]+/g, '')
|
||||
.replace(/--+/g, '-')
|
||||
.replace(/^-+/, '')
|
||||
.replace(/-+$/, '')
|
||||
|
||||
module.exports = {
|
||||
sort,
|
||||
sortInv,
|
||||
sortAbc,
|
||||
slugify
|
||||
}
|
@ -1,15 +0,0 @@
|
||||
baseurl: 'https://awesome.ipfs.tech'
|
||||
relativeurls: true
|
||||
languageCode: en
|
||||
pluralizelisttitles: false
|
||||
removePathAccents: true
|
||||
canonifyURLs: true
|
||||
title: Awesome IPFS
|
||||
|
||||
disableKinds:
|
||||
- taxonomyTerm
|
||||
|
||||
params:
|
||||
Description: >-
|
||||
Useful resources for using IPFS and building things on top of it
|
||||
image: /images/banner.png
|
@ -1,56 +0,0 @@
|
||||
@import "../../node_modules/tachyons/css/tachyons.css";
|
||||
@import "../../node_modules/ipfs-css/ipfs.css";
|
||||
|
||||
body {
|
||||
background: url('./images/starfield.png') no-repeat;
|
||||
background-size: cover;
|
||||
background-attachment: fixed;
|
||||
overflow-y: scroll;
|
||||
}
|
||||
|
||||
.focus-outline:focus {
|
||||
outline: 0;
|
||||
box-shadow: 0 0 0 .2rem rgba(201, 210, 215, .4);
|
||||
}
|
||||
|
||||
.mt-auto {
|
||||
margin-top: auto;
|
||||
}
|
||||
|
||||
.fill-blue {
|
||||
fill: #357edd;
|
||||
}
|
||||
|
||||
.fill-white {
|
||||
fill: white;
|
||||
}
|
||||
|
||||
.CardContainer {
|
||||
column-count: 4;
|
||||
column-gap: 1em;
|
||||
}
|
||||
|
||||
.Card {
|
||||
margin: 0 0 1em 0;
|
||||
width: 100%;
|
||||
page-break-inside: avoid;
|
||||
break-inside: avoid;
|
||||
}
|
||||
|
||||
@media (max-width: 1000px) {
|
||||
.CardContainer {
|
||||
column-count: 3;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 800px) {
|
||||
.CardContainer {
|
||||
column-count: 2;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 600px) {
|
||||
.CardContainer {
|
||||
column-count: 1;
|
||||
}
|
||||
}
|
@ -1,63 +0,0 @@
|
||||
const lunr = require('lunr')
|
||||
const idx = lunr.Index.load(window.idx)
|
||||
const search = document.getElementById('search')
|
||||
|
||||
const cards = Array.from(document.querySelectorAll('.Card'))
|
||||
.sort((a, b) => {
|
||||
const aId = parseInt(a.dataset.ref)
|
||||
const bId = parseInt(b.dataset.ref)
|
||||
|
||||
if (aId < bId) {
|
||||
return -1
|
||||
}
|
||||
if (aId > bId) {
|
||||
return 1
|
||||
}
|
||||
|
||||
return 0
|
||||
})
|
||||
|
||||
function randomizr () {
|
||||
const cards = document.querySelector('.CardContainer')
|
||||
for (var i = cards.children.length; i >= 0; i--) {
|
||||
cards.appendChild(cards.children[Math.random() * i | 0])
|
||||
}
|
||||
}
|
||||
|
||||
function update (display) {
|
||||
cards.forEach((c) => {
|
||||
if (display.indexOf(c.dataset.ref) >= 0) {
|
||||
c.classList.remove('dn')
|
||||
c.classList.add('dib')
|
||||
} else {
|
||||
c.classList.add('dn')
|
||||
c.classList.remove('dib')
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
randomizr()
|
||||
|
||||
if (search) {
|
||||
search.classList.remove('dn')
|
||||
const input = search.querySelector('input')
|
||||
|
||||
input.addEventListener('keyup', () => {
|
||||
let search = input.value
|
||||
|
||||
if (search === '') {
|
||||
cards.forEach((c) => c.classList.remove('dn'))
|
||||
return
|
||||
}
|
||||
|
||||
if (!search.endsWith('*')) {
|
||||
search = `${search} ${search}*`
|
||||
}
|
||||
|
||||
try {
|
||||
update(idx.search(search).map(s => s.ref))
|
||||
} catch (e) {
|
||||
console.log(e)
|
||||
}
|
||||
})
|
||||
}
|
@ -1,34 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="{{ .Site.LanguageCode }}">
|
||||
<head>
|
||||
{{ partial "head" . }}
|
||||
{{ partial "analytics" . }}
|
||||
</head>
|
||||
<body>
|
||||
<div class="charcoal sans-serif w-90 mw9 center">
|
||||
<nav class="montserrat mv4 fw6 flex-wrap ttu tracked sans-serif flex flex-between">
|
||||
<a href="{{ .Site.BaseURL }}/" class="w-100 w-auto-l flex items-center pv3 pv0-l mr3 flex-grow-1 flex items-center justify-center justify-start-l no-underline" >
|
||||
<img alt="IPFS" src="{{ .Site.BaseURL }}/images/logo.png" class="w3 h3 mr3">
|
||||
<h1 class="f3 white">Awesome IPFS</h1>
|
||||
</a>
|
||||
|
||||
{{ range (where .Site.Pages "Type" "category") }}
|
||||
<a href="{{ .RelPermalink }}"
|
||||
class="flex-grow-1 flex items-center justify-center white no-underline pa2 bg-animate dib bg-{{ .Params.color }}-muted hover-bg-{{ .Params.color }}">
|
||||
<span class="w2 h2 fill-white mr2">{{ partial (print "icons/" .Params.icon ".svg" ) }}</span>
|
||||
{{ .Title }}
|
||||
</a>
|
||||
{{ end }}
|
||||
</nav>
|
||||
|
||||
{{ template "main" . }}
|
||||
|
||||
<footer class="mv4 montserrat ttu tc snow tracked b">
|
||||
<a target="_blank" href="https://github.com/ipfs/awesome-ipfs" class="snow no-underline">GitHub</a> |
|
||||
<a target="_blank" href="https://github.com/ipfs/awesome-ipfs/blob/master/CONTRIBUTING.md" class="snow no-underline"> Suggest a new item</a> |
|
||||
<a target="_blank" href="https://discuss.ipfs.io/c/ecosystem" class="snow no-underline">Discuss</a>
|
||||
</footer>
|
||||
</div>
|
||||
<script src='{{ .Site.BaseURL }}/app.js'></script>
|
||||
</body>
|
||||
</html>
|
@ -1,3 +0,0 @@
|
||||
{{ define "main" }}
|
||||
{{ partial "list" . }}
|
||||
{{ end }}
|
@ -1,3 +0,0 @@
|
||||
{{ define "main" }}
|
||||
{{ partial "list" . }}
|
||||
{{ end }}
|
@ -1,70 +0,0 @@
|
||||
<!-- Google Analytics -->
|
||||
<script>
|
||||
// https://github.com/schalkneethling/dnt-helper/blob/master/js/dnt-helper.js
|
||||
function _dntEnabled(dnt, userAgent) {
|
||||
"use strict";
|
||||
var dntStatus =
|
||||
dnt ||
|
||||
navigator.doNotTrack ||
|
||||
window.doNotTrack ||
|
||||
navigator.msDoNotTrack;
|
||||
var ua = userAgent || navigator.userAgent;
|
||||
var anomalousWinVersions = [
|
||||
"Windows NT 6.1",
|
||||
"Windows NT 6.2",
|
||||
"Windows NT 6.3"
|
||||
];
|
||||
var fxMatch = ua.match(/Firefox\/(\d+)/);
|
||||
var ieRegEx = /MSIE|Trident/i;
|
||||
var isIE = ieRegEx.test(ua);
|
||||
var platform = ua.match(/Windows.+?(?=;)/g);
|
||||
if (isIE && typeof Array.prototype.indexOf !== "function") {
|
||||
return false;
|
||||
} else if (fxMatch && parseInt(fxMatch[1], 10) < 32) {
|
||||
dntStatus = "Unspecified";
|
||||
} else if (
|
||||
isIE &&
|
||||
platform &&
|
||||
anomalousWinVersions.indexOf(platform.toString()) !== -1
|
||||
) {
|
||||
dntStatus = "Unspecified";
|
||||
} else {
|
||||
dntStatus =
|
||||
{ "0": "Disabled", "1": "Enabled" }[dntStatus] || "Unspecified";
|
||||
}
|
||||
return dntStatus === "Enabled";
|
||||
}
|
||||
|
||||
(function() {
|
||||
if (!_dntEnabled() && location.hostname !== "localhost") {
|
||||
!(function(n, o, d, e, j, s) {
|
||||
n.GoogleAnalyticsObject = d;
|
||||
n[d] ||
|
||||
(n[d] = function() {
|
||||
(n[d].q = n[d].q || []).push(arguments);
|
||||
});
|
||||
n[d].l = +new Date();
|
||||
j = o.createElement(e);
|
||||
s = o.getElementsByTagName(e)[0];
|
||||
j.async = 1;
|
||||
j.src = "//www.google-analytics.com/analytics.js";
|
||||
s.parentNode.insertBefore(j, s);
|
||||
})(window, document, "ga", "script");
|
||||
if (!ga) return;
|
||||
ga("create", "UA-96910779-8", "auto");
|
||||
ga("send", "pageview");
|
||||
|
||||
// track outbound project clicks
|
||||
document.addEventListener(
|
||||
"click",
|
||||
function(e) {
|
||||
var href = e.target.closest("a") && e.target.closest("a").href;
|
||||
if (href && href.indexOf("http") > -1) {
|
||||
ga("send", "event", "outbound", "click", href);
|
||||
}
|
||||
},
|
||||
false
|
||||
);
|
||||
}
|
||||
})();
|
||||
</script>
|
@ -1,28 +0,0 @@
|
||||
{{- $title := or .Title .Site.Title -}}
|
||||
{{- $description := or .Description .Site.Params.Description -}}
|
||||
{{- $image := print .Site.BaseURL (or .Params.image .Site.Params.Image) -}}
|
||||
|
||||
<meta charset="utf-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<title>{{ $title }}</title>
|
||||
<meta name="description" content="{{ $description }}">
|
||||
<link rel="canonical" href="{{ .Permalink }}">
|
||||
|
||||
<meta name="twitter:card" content="summary_large_image"/>
|
||||
<meta name="twitter:title" content="{{ $title }}"/>
|
||||
<meta name="twitter:description" content="{{ $description }}"/>
|
||||
<meta name="twitter:image:src" content="{{ $image }}"/>
|
||||
|
||||
<meta property="og:locale" content="{{ .Site.LanguageCode }}" />
|
||||
<meta property="og:title" content="{{ $title }}" />
|
||||
<meta property="og:description" content="{{ $description }}" />
|
||||
<meta property="og:url" content="{{ .Permalink }}" />
|
||||
<meta property="og:site_name" content="{{ .Site.Title }}" />
|
||||
<meta property="og:image" content="{{ $image }}" />
|
||||
|
||||
<meta name="msapplication-TileColor" content="#0b3a53">
|
||||
<meta name="theme-color" content="#0b3a53">
|
||||
<link rel="manifest" href="{{ .Site.BaseURL }}/manifest.json">
|
||||
<link rel="shortcut icon" href="{{ .Site.BaseURL }}/favicon.ico">
|
||||
<link rel="stylesheet" href="{{ .Site.BaseURL }}/app.css" >
|
@ -1 +0,0 @@
|
||||
<svg class="w1 h1 mr2 fill-blue" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path d="M278.9 511.5l-61-17.7c-6.4-1.8-10-8.5-8.2-14.9L346.2 8.7c1.8-6.4 8.5-10 14.9-8.2l61 17.7c6.4 1.8 10 8.5 8.2 14.9L293.8 503.3c-1.9 6.4-8.5 10.1-14.9 8.2zm-114-112.2l43.5-46.4c4.6-4.9 4.3-12.7-.8-17.2L117 256l90.6-79.7c5.1-4.5 5.5-12.3.8-17.2l-43.5-46.4c-4.5-4.8-12.1-5.1-17-.5L3.8 247.2c-5.1 4.7-5.1 12.8 0 17.5l144.1 135.1c4.9 4.6 12.5 4.4 17-.5zm327.2.6l144.1-135.1c5.1-4.7 5.1-12.8 0-17.5L492.1 112.1c-4.8-4.5-12.4-4.3-17 .5L431.6 159c-4.6 4.9-4.3 12.7.8 17.2L523 256l-90.6 79.7c-5.1 4.5-5.5 12.3-.8 17.2l43.5 46.4c4.5 4.9 12.1 5.1 17 .6z"/></svg>
|
Before Width: | Height: | Size: 649 B |
@ -1 +0,0 @@
|
||||
<svg class="w1 h1 mr2 fill-blue" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M437.2 403.5L320 215V64h8c13.3 0 24-10.7 24-24V24c0-13.3-10.7-24-24-24H120c-13.3 0-24 10.7-24 24v16c0 13.3 10.7 24 24 24h8v151L10.8 403.5C-18.5 450.6 15.3 512 70.9 512h306.2c55.7 0 89.4-61.5 60.1-108.5zM137.9 320l48.2-77.6c3.7-5.2 5.8-11.6 5.8-18.4V64h64v160c0 6.9 2.2 13.2 5.8 18.4l48.2 77.6h-172z"/></svg>
|
Before Width: | Height: | Size: 407 B |
@ -1 +0,0 @@
|
||||
<svg class="w1 h1 mr2 fill-blue" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512"><path d="M336.5 160C322 70.7 287.8 8 248 8s-74 62.7-88.5 152h177zM152 256c0 22.2 1.2 43.5 3.3 64h185.3c2.1-20.5 3.3-41.8 3.3-64s-1.2-43.5-3.3-64H155.3c-2.1 20.5-3.3 41.8-3.3 64zm324.7-96c-28.6-67.9-86.5-120.4-158-141.6 24.4 33.8 41.2 84.7 50 141.6h108zM177.2 18.4C105.8 39.6 47.8 92.1 19.3 160h108c8.7-56.9 25.5-107.8 49.9-141.6zM487.4 192H372.7c2.1 21 3.3 42.5 3.3 64s-1.2 43-3.3 64h114.6c5.5-20.5 8.6-41.8 8.6-64s-3.1-43.5-8.5-64zM120 256c0-21.5 1.2-43 3.3-64H8.6C3.2 212.5 0 233.8 0 256s3.2 43.5 8.6 64h114.6c-2-21-3.2-42.5-3.2-64zm39.5 96c14.5 89.3 48.7 152 88.5 152s74-62.7 88.5-152h-177zm159.3 141.6c71.4-21.2 129.4-73.7 158-141.6h-108c-8.8 56.9-25.6 107.8-50 141.6zM19.3 352c28.6 67.9 86.5 120.4 158 141.6-24.4-33.8-41.2-84.7-50-141.6h-108z"/></svg>
|
Before Width: | Height: | Size: 847 B |
@ -1 +0,0 @@
|
||||
<svg class="w1 h1 mr2 fill-blue" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1000 1000"><path d="M524.5 34.5c-171.5 0-323.4 93.1-401.8 235.2L10 157v318.5h318.5L191.3 338.3C255 215.8 377.5 132.5 524.5 132.5 725.4 132.5 892 299.1 892 500S725.4 867.5 524.5 867.5c-161.7 0-294-102.9-347.9-245H73.7c53.9 196 235.2 343 450.8 343C784.2 965.5 990 754.8 990 500S779.3 34.5 524.5 34.5zm-73.5 245v249.9l230.3 137.2 39.2-63.7-196-117.6V279.5H451z"/></svg>
|
Before Width: | Height: | Size: 447 B |
@ -1,95 +0,0 @@
|
||||
{{ define "text" }}
|
||||
<p class="f6 lh-copy mt2 mb0 mid-gray" style="word-break: break-word">
|
||||
{{- markdownify . -}}
|
||||
</p>
|
||||
{{ end }}
|
||||
|
||||
{{ define "hash" }}
|
||||
<a href="https://ipfs.io{{ . }}" target="_blank" alt="Website" title="Website" class="aqua hover-teal">
|
||||
<abbr title="{{ . }}">
|
||||
{{ $length := sub (len .) 5 }}
|
||||
<code>{{ substr . 0 10 }}...{{ substr . $length 5 }}</code>
|
||||
</abbr>
|
||||
</a>
|
||||
{{ end }}
|
||||
|
||||
<div class="mv2 dn" id="search">
|
||||
<input
|
||||
placeholder="Find your awesome app..."
|
||||
class="input-reset outline-0 bn pa3 mb2 db w-100 center focus-outline dn"
|
||||
type="text" />
|
||||
</div>
|
||||
|
||||
<main class="CardContainer mv4" >
|
||||
{{ range (sort .Params.content "index") -}}
|
||||
<article data-ref="{{ .index }}" class="Card dib bg-white shadow-4 br1 dark-gray b--black-10 ma2">
|
||||
<div class="bg-navy ttu fw6 tracked montserrat bg-{{ .color }}-muted br1 br--top white pv1 ph2 ph3-ns f7 b w-100">
|
||||
{{ humanize .category }}
|
||||
</div>
|
||||
|
||||
<div class="pa2 ph3-ns pb3-ns flex flex-column flex-grow-1">
|
||||
<div class="dt w-100 mt1">
|
||||
<div class="dtc">
|
||||
<a target="_blank" class="no-underline charcoal" href="{{ if .website }}{{ .website }}{{ else if .source }}{{ .source }}{{ else if .demo }}{{ .demo }}{{ end }}">
|
||||
<h1 class="f5 f4-ns mv0">{{- .title -}}</h1>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{{- if isset . "date" -}}
|
||||
{{ template "text" dateFormat "January 2, 2006" .date }}
|
||||
{{- end -}}
|
||||
|
||||
{{- if isset . "description" -}}
|
||||
{{ template "text" .description }}
|
||||
{{- end -}}
|
||||
|
||||
{{- if isset . "size" -}}
|
||||
{{ template "text" (print "Size: " .size) }}
|
||||
{{- end -}}
|
||||
|
||||
{{- if isset . "hash" -}}
|
||||
<div class="mt2">
|
||||
{{ template "hash" .hash }}
|
||||
</div>
|
||||
{{- end -}}
|
||||
|
||||
{{- if isset . "picture" -}}
|
||||
<div class="mt2">
|
||||
<a target="_blank" class="no-underline charcoal" href="{{ if .website }}{{ .website }}{{ else if .source }}{{ .source }}{{ else if .demo }}{{ .demo }}{{ end }}">
|
||||
<img class="br2" src="{{ .picture | relURL }}" >
|
||||
</a>
|
||||
</div>
|
||||
{{ end }}
|
||||
|
||||
<div class="flex pt2 mt-auto align-center justify-begin">
|
||||
{{- if isset . "website" -}}
|
||||
<a href="{{ .website }}" target="_blank" alt="Website" title="Website">
|
||||
{{ partial "icons/globe.svg" }}
|
||||
</a>
|
||||
{{- end -}}
|
||||
|
||||
{{- if isset . "snapshot" -}}
|
||||
<a href="http://ipfs.io/{{ .snapshot.hash }}" target="_blank" alt="Snapshot as of {{ .snapshot.date }}" title="Snapshot as of {{ .snapshot.date }}">
|
||||
{{ partial "icons/history.svg" }}
|
||||
</a>
|
||||
{{- end -}}
|
||||
|
||||
{{- if isset . "source" -}}
|
||||
<a href="{{ .source }}" target="_blank" alt="Source Code" title="Source Code">
|
||||
{{ partial "icons/code.svg" }}
|
||||
</a>
|
||||
{{- end -}}
|
||||
|
||||
{{- if isset . "demo" -}}
|
||||
<a href="{{ .demo }}" target="_blank" alt="Demo" title="Demo">
|
||||
{{ partial "icons/flask.svg" }}
|
||||
</a>
|
||||
{{- end -}}
|
||||
</div>
|
||||
</div>
|
||||
</article>
|
||||
{{ end }}
|
||||
</main>
|
||||
|
||||
{{ .Content }}
|
Before Width: | Height: | Size: 361 KiB |
Before Width: | Height: | Size: 6.9 KiB |
@ -1,83 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
<svg xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" width="13.520844mm" height="13.520844mm" viewBox="0 0 47.908501 47.908501" id="svg2" version="1.1" inkscape:version="0.91 r13725" sodipodi:docname="Button - Share.svg" inkscape:export-filename="/Users/jgillanders/Development/Games/Colibrium/Pictures/Button - Share.png" inkscape:export-xdpi="961.83002" inkscape:export-ydpi="961.83002">
|
||||
<defs id="defs4">
|
||||
<marker inkscape:isstock="true" inkscape:stockid="DistanceStart" orient="auto" refY="0" refX="0" id="DistanceStart" style="overflow:visible">
|
||||
<g id="g2300">
|
||||
<path id="path2306" d="M 0,0 2,0" style="fill:none;stroke:#ffffff;stroke-width:1.14999998;stroke-linecap:square" inkscape:connector-curvature="0"/>
|
||||
<path id="path2302" d="M 0,0 13,4 9,0 13,-4 0,0 Z" style="fill:#000000;fill-rule:evenodd;stroke:none" inkscape:connector-curvature="0"/>
|
||||
<path id="path2304" d="M 0,-4 0,40" style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:square" inkscape:connector-curvature="0"/>
|
||||
</g>
|
||||
</marker>
|
||||
<linearGradient x1="14.66" y1="7.0243001" x2="24.031" gradientUnits="userSpaceOnUse" y2="34.826" id="G3">
|
||||
<stop offset="0" stop-color="#fcf9fb" id="s3"/>
|
||||
<stop offset="1" stop-opacity="0" stop-color="#fcf9fb" id="s4"/>
|
||||
</linearGradient>
|
||||
<radialGradient fy="32.797306" fx="28.935429" r="22" gradientTransform="matrix(1,-0.2,0.2,1,-3.8,6.8)" cx="28.935429" cy="32.797306" gradientUnits="userSpaceOnUse" id="R0">
|
||||
<stop offset="0" stop-color="#e6cf00" id="s1"/>
|
||||
<stop offset="1" stop-color="#fde94a" id="s2"/>
|
||||
</radialGradient>
|
||||
<radialGradient r="9.6875" gradientTransform="matrix(2.4,0,0,0.67,-17.1,22.4)" cx="17.312" cy="25.531" gradientUnits="userSpaceOnUse" id="R1">
|
||||
<stop offset="0" stop-opacity=".63" id="s5"/>
|
||||
<stop offset="1" stop-opacity="0" id="s6"/>
|
||||
</radialGradient>
|
||||
<linearGradient gradientTransform="matrix(0.31170768,-0.14537193,0.14537193,0.31170768,-216.07743,565.35148)" y2="34.826" x2="24.031" y1="7.0243001" x1="14.66" gradientUnits="userSpaceOnUse" id="linearGradient2995" xlink:href="#G3" inkscape:collect="always"/>
|
||||
<radialGradient r="22" fy="32.797306" fx="28.935429" cy="32.797306" cx="28.935429" gradientTransform="matrix(1,-0.2,0.2,1,78.2,6.8)" gradientUnits="userSpaceOnUse" id="radialGradient3011" xlink:href="#R0" inkscape:collect="always"/>
|
||||
<radialGradient r="22" fy="32.797306" fx="28.935429" cy="32.797306" cx="28.935429" gradientTransform="matrix(1,-0.2,0.2,1,78.2,6.8)" gradientUnits="userSpaceOnUse" id="radialGradient3018-9" xlink:href="#R0-4" inkscape:collect="always"/>
|
||||
<radialGradient fy="32.797306" fx="28.935429" r="22" gradientTransform="matrix(1,-0.2,0.2,1,-3.8,6.8)" cx="28.935429" cy="32.797306" gradientUnits="userSpaceOnUse" id="R0-4">
|
||||
<stop offset="0" stop-color="#e6cf00" id="s1-8"/>
|
||||
<stop offset="1" stop-color="#fde94a" id="s2-8"/>
|
||||
</radialGradient>
|
||||
<radialGradient r="22" fy="32.797306" fx="28.935429" cy="32.797306" cx="28.935429" gradientTransform="matrix(1,-0.2,0.2,1,78.2,6.8)" gradientUnits="userSpaceOnUse" id="radialGradient3028-2" xlink:href="#R0-45" inkscape:collect="always"/>
|
||||
<radialGradient fy="32.797306" fx="28.935429" r="22" gradientTransform="matrix(1,-0.2,0.2,1,-3.8,6.8)" cx="28.935429" cy="32.797306" gradientUnits="userSpaceOnUse" id="R0-45">
|
||||
<stop offset="0" stop-color="#e6cf00" id="s1-5"/>
|
||||
<stop offset="1" stop-color="#fde94a" id="s2-1"/>
|
||||
</radialGradient>
|
||||
<radialGradient r="22" fy="32.797306" fx="28.935429" cy="32.797306" cx="28.935429" gradientTransform="matrix(1,-0.2,0.2,1,78.2,6.8)" gradientUnits="userSpaceOnUse" id="radialGradient3986" xlink:href="#R0-45" inkscape:collect="always"/>
|
||||
<radialGradient r="22" fy="32.797306" fx="28.935429" cy="32.797306" cx="28.935429" gradientTransform="matrix(1,-0.2,0.2,1,78.2,6.8)" gradientUnits="userSpaceOnUse" id="radialGradient3986-5" xlink:href="#R0-45-7" inkscape:collect="always"/>
|
||||
<radialGradient fy="32.797306" fx="28.935429" r="22" gradientTransform="matrix(1,-0.2,0.2,1,-3.8,6.8)" cx="28.935429" cy="32.797306" gradientUnits="userSpaceOnUse" id="R0-45-7">
|
||||
<stop offset="0" stop-color="#e6cf00" id="s1-5-6"/>
|
||||
<stop offset="1" stop-color="#fde94a" id="s2-1-1"/>
|
||||
</radialGradient>
|
||||
<radialGradient inkscape:collect="always" xlink:href="#R0-45-7" id="radialGradient4007" gradientUnits="userSpaceOnUse" gradientTransform="matrix(1,-0.2,0.2,1,78.2,6.8)" cx="28.935429" cy="32.797306" fx="28.935429" fy="32.797306" r="22"/>
|
||||
<radialGradient r="22" fy="32.797306" fx="28.935429" cy="32.797306" cx="28.935429" gradientTransform="matrix(1,-0.2,0.2,1,78.2,6.8)" gradientUnits="userSpaceOnUse" id="radialGradient3986-5-2" xlink:href="#R0-45-7-7" inkscape:collect="always"/>
|
||||
<radialGradient fy="32.797306" fx="28.935429" r="22" gradientTransform="matrix(1,-0.2,0.2,1,-3.8,6.8)" cx="28.935429" cy="32.797306" gradientUnits="userSpaceOnUse" id="R0-45-7-7">
|
||||
<stop offset="0" stop-color="#e6cf00" id="s1-5-6-9"/>
|
||||
<stop offset="1" stop-color="#fde94a" id="s2-1-1-5"/>
|
||||
</radialGradient>
|
||||
<radialGradient inkscape:collect="always" xlink:href="#R0-45-7-7" id="radialGradient4041" gradientUnits="userSpaceOnUse" gradientTransform="matrix(1,-0.2,0.2,1,78.2,6.8)" cx="28.935429" cy="32.797306" fx="28.935429" fy="32.797306" r="22"/>
|
||||
<radialGradient r="22" fy="32.797306" fx="28.935429" cy="32.797306" cx="28.935429" gradientTransform="matrix(1,-0.2,0.2,1,78.2,6.8)" gradientUnits="userSpaceOnUse" id="radialGradient4065" xlink:href="#R0-45" inkscape:collect="always"/>
|
||||
<radialGradient r="22" fy="32.797306" fx="28.935429" cy="32.797306" cx="28.935429" gradientTransform="matrix(1,-0.2,0.2,1,78.2,6.8)" gradientUnits="userSpaceOnUse" id="radialGradient4065-4" xlink:href="#R0-45-3" inkscape:collect="always"/>
|
||||
<radialGradient fy="32.797306" fx="28.935429" r="22" gradientTransform="matrix(1,-0.2,0.2,1,-3.8,6.8)" cx="28.935429" cy="32.797306" gradientUnits="userSpaceOnUse" id="R0-45-3">
|
||||
<stop offset="0" stop-color="#e6cf00" id="s1-5-1"/>
|
||||
<stop offset="1" stop-color="#fde94a" id="s2-1-2"/>
|
||||
</radialGradient>
|
||||
<radialGradient r="22" fy="32.797306" fx="28.935429" cy="32.797306" cx="28.935429" gradientTransform="matrix(1.0439725,-0.20879451,0.20879451,1.0439725,-147.8058,553.72738)" gradientUnits="userSpaceOnUse" id="radialGradient4113" xlink:href="#R0-45-7-7" inkscape:collect="always"/>
|
||||
<radialGradient r="22" fy="32.797306" fx="28.935429" cy="32.797306" cx="28.935429" gradientTransform="matrix(1,-0.2,0.2,1,78.2,6.8)" gradientUnits="userSpaceOnUse" id="radialGradient4117" xlink:href="#R0-45" inkscape:collect="always"/>
|
||||
<radialGradient r="22" fy="32.797306" fx="28.935429" cy="32.797306" cx="28.935429" gradientTransform="matrix(0.61925922,-1.4303233,1.4303233,0.61925922,-39.346374,44.502008)" gradientUnits="userSpaceOnUse" id="radialGradient4120" xlink:href="#R0-45" inkscape:collect="always"/>
|
||||
</defs>
|
||||
<sodipodi:namedview id="base" pagecolor="#ffffff" bordercolor="#666666" borderopacity="1.0" inkscape:pageopacity="0.0" inkscape:pageshadow="2" inkscape:zoom="3.959798" inkscape:cx="21.898881" inkscape:cy="30.152565" inkscape:document-units="px" inkscape:current-layer="layer1" showgrid="false" fit-margin-top="0" fit-margin-left="0" fit-margin-right="0" fit-margin-bottom="0" inkscape:window-width="1440" inkscape:window-height="815" inkscape:window-x="0" inkscape:window-y="1" inkscape:window-maximized="1"/>
|
||||
<metadata id="metadata7">
|
||||
<rdf:RDF>
|
||||
<cc:Work rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>
|
||||
<dc:title/>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g inkscape:label="Layer 1" inkscape:groupmode="layer" id="layer1" transform="translate(229.66854,-548.40793)">
|
||||
<path id="hl" d="m -206.82877,565.402 2.03199,0.91795 c 1.54237,0.71307 0.75483,0.33719 2.36782,1.12659 -4.12683,1.94063 -0.28812,2.61772 -4.43562,5.1369 l 0.0102,-0.70185 c 0.0502,-4.01163 -0.32955,1.92558 0.0256,-6.47959 z" style="opacity:0.8;fill:url(#linearGradient2995)" inkscape:connector-curvature="0" sodipodi:nodetypes="cccccc"/>
|
||||
<circle r="22.95425" cy="572.36218" cx="-205.71429" id="path3932" style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:url(#radialGradient4113);fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate"/>
|
||||
<circle r="20.743464" cy="572.36218" cx="-205.71429" style="color:#000000;display:inline;overflow:visible;visibility:visible;opacity:0.68999999;fill:none;stroke:#ffffff;stroke-width:2.53080082;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" id="path4067"/>
|
||||
<flowRoot style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:22.5px;line-height:125%;font-family:Arial;-inkscape-font-specification:Arial;text-align:center;letter-spacing:2.72000003px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" id="flowRoot3379" xml:space="preserve" transform="translate(-229.71429,548.3622)"><flowRegion id="flowRegion3381"><rect style="font-size:22.5px" y="12.076912" x="10.03369" height="29.110088" width="28.986216" id="rect3383"/></flowRegion><flowPara id="flowPara3385"/></flowRoot> <g transform="matrix(0.03231979,0,0,0.03231979,-180.85582,575.47438)" id="layer1-2">
|
||||
<g transform="matrix(0,-17.254,17.254,0,10443,-2252.9)" id="g11676">
|
||||
<path transform="translate(1.1045,-949.48)" style="color:#000000" d="m -134.38,309.5 c 0,4.1683 -3.3791,7.5474 -7.5474,7.5474 -4.1683,0 -7.5474,-3.3791 -7.5474,-7.5474 0,-4.1683 3.3791,-7.5474 7.5474,-7.5474 4.1683,0 7.5474,3.3791 7.5474,7.5474 z" id="path11666" inkscape:connector-curvature="0"/>
|
||||
<path transform="translate(32.767,-949.48)" style="color:#000000" d="m -134.38,309.5 c 0,4.1683 -3.3791,7.5474 -7.5474,7.5474 -4.1683,0 -7.5474,-3.3791 -7.5474,-7.5474 0,-4.1683 3.3791,-7.5474 7.5474,-7.5474 4.1683,0 7.5474,3.3791 7.5474,7.5474 z" id="path11668" inkscape:connector-curvature="0"/>
|
||||
<path transform="translate(16.936,-976.35)" style="color:#000000" d="m -134.38,309.5 c 0,4.1683 -3.3791,7.5474 -7.5474,7.5474 -4.1683,0 -7.5474,-3.3791 -7.5474,-7.5474 0,-4.1683 3.3791,-7.5474 7.5474,-7.5474 4.1683,0 7.5474,3.3791 7.5474,7.5474 z" id="path11670" inkscape:connector-curvature="0"/>
|
||||
<rect x="488.22" y="-443.73001" width="27.691999" height="3" transform="matrix(0.49998488,-0.86603413,0.86603413,0.49998488,0,0)" style="color:#000000" id="rect11672"/>
|
||||
<rect x="613.15997" y="-226.89999" width="27.691999" height="3" transform="matrix(-0.5,-0.86603,-0.86603,0.5,0,0)" style="color:#000000" id="rect11674"/>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
Before Width: | Height: | Size: 11 KiB |
Before Width: | Height: | Size: 20 KiB |
Before Width: | Height: | Size: 14 KiB |
Before Width: | Height: | Size: 1.2 MiB |
@ -1,65 +0,0 @@
|
||||
|
||||
<svg
|
||||
version="1.1"
|
||||
baseProfile="full"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
viewbox="0 0 666 666"
|
||||
width="666"
|
||||
height="666"
|
||||
>
|
||||
<style>
|
||||
#outline {
|
||||
stroke: #111;
|
||||
stroke-width: 31.66235665441778;
|
||||
fill: none;
|
||||
}
|
||||
.dot {
|
||||
fill: #111;
|
||||
}
|
||||
.point {
|
||||
fill: #111;
|
||||
}
|
||||
/*.point:nth-child(odd) {
|
||||
fill: rgb(165, 24, 201);
|
||||
}*/
|
||||
.ray {
|
||||
stroke: #111;
|
||||
stroke-width: 31.66235665441778;
|
||||
}
|
||||
/*.ray:nth-child(even) {
|
||||
stroke: rgb(165, 24, 201);
|
||||
}*/
|
||||
#background {
|
||||
fill: #FCFCFC;
|
||||
stroke: none;
|
||||
}
|
||||
#pupil {
|
||||
fill: rgb(165, 24, 201);
|
||||
}
|
||||
</style>
|
||||
<g transform="translate(333, 333)">
|
||||
<circle id="background" r="333.000000"/>
|
||||
<circle id="outline" r="164.644255"/>
|
||||
<circle id="pupil" r="25.615385"/>
|
||||
|
||||
<line class="ray" x1="250.106874" y1="0.000000" x2="51.230769" y2="0.000000" />
|
||||
<line class="ray" x1="176.852267" y1="176.852267" x2="36.225624" y2="36.225624" />
|
||||
<line class="ray" x1="0.000000" y1="250.106874" x2="0.000000" y2="51.230769" />
|
||||
<line class="ray" x1="-176.852267" y1="176.852267" x2="-36.225624" y2="36.225624" />
|
||||
<line class="ray" x1="-250.106874" y1="0.000000" x2="-51.230769" y2="0.000000" />
|
||||
<line class="ray" x1="-176.852267" y1="-176.852267" x2="-36.225624" y2="-36.225624" />
|
||||
<line class="ray" x1="-0.000000" y1="-250.106874" x2="-0.000000" y2="-51.230769" />
|
||||
<line class="ray" x1="176.852267" y1="-176.852267" x2="36.225624" y2="-36.225624" />
|
||||
|
||||
<path class="point" d="M 264.493552 -52.611039 L 333.000000 0.000000 L 264.493552 52.611039 Z" />
|
||||
<path class="point" d="M 224.226806 149.823562 L 235.466558 235.466558 L 149.823562 224.226806 Z" />
|
||||
<path class="point" d="M 52.611039 264.493552 L 0.000000 333.000000 L -52.611039 264.493552 Z" />
|
||||
<path class="point" d="M -149.823562 224.226806 L -235.466558 235.466558 L -224.226806 149.823562 Z" />
|
||||
<path class="point" d="M -264.493552 52.611039 L -333.000000 0.000000 L -264.493552 -52.611039 Z" />
|
||||
<path class="point" d="M -224.226806 -149.823562 L -235.466558 -235.466558 L -149.823562 -224.226806 Z" />
|
||||
<path class="point" d="M -52.611039 -264.493552 L -0.000000 -333.000000 L 52.611039 -264.493552 Z" />
|
||||
<path class="point" d="M 149.823562 -224.226806 L 235.466558 -235.466558 L 224.226806 -149.823562 Z" />
|
||||
</g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 2.2 KiB |
Before Width: | Height: | Size: 31 KiB |
Before Width: | Height: | Size: 49 KiB |
@ -1,33 +0,0 @@
|
||||
<?xml version="1.0" standalone="no"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20010904//EN"
|
||||
"http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
|
||||
<svg version="1.0" xmlns="http://www.w3.org/2000/svg"
|
||||
width="1280.000000pt" height="1116.000000pt" viewBox="0 0 1280.000000 1116.000000"
|
||||
preserveAspectRatio="xMidYMid meet">
|
||||
<g transform="translate(0.000000,1116.000000) scale(0.100000,-0.100000)"
|
||||
fill="#000000" stroke="none">
|
||||
<path d="M7460 10700 c-144 -18 -243 -62 -336 -151 l-61 -59 -59 15 c-82 21
|
||||
-186 20 -213 -2 -11 -10 -80 -124 -152 -253 -72 -129 -137 -241 -143 -248 -10
|
||||
-11 -35 -4 -132 34 -852 332 -1743 411 -2639 233 -1679 -333 -3061 -1608
|
||||
-3534 -3260 -96 -333 -144 -621 -177 -1055 -17 -220 -17 -243 0 -455 9 -123
|
||||
24 -280 32 -349 101 -828 428 -1614 948 -2285 170 -219 393 -458 591 -635 231
|
||||
-206 417 -344 905 -674 608 -410 1671 -718 2870 -830 398 -38 489 -41 1095
|
||||
-41 621 0 714 4 1141 45 745 73 1481 230 2023 432 808 301 1301 687 1423 1115
|
||||
18 63 22 103 22 203 -1 113 -4 134 -32 221 -111 337 -437 634 -987 900 -313
|
||||
151 -547 235 -1007 364 -38 10 -58 21 -58 31 0 8 27 103 61 212 75 245 132
|
||||
467 165 642 223 1194 -16 2410 -672 3410 -270 412 -630 807 -998 1095 -47 38
|
||||
-86 73 -86 78 0 6 63 122 140 259 77 136 142 259 146 273 13 52 -77 175 -201
|
||||
273 -53 43 -43 57 76 104 152 60 259 81 386 76 199 -8 276 -57 489 -314 148
|
||||
-177 211 -236 305 -284 92 -47 430 -126 663 -155 240 -30 352 -16 542 65 52
|
||||
22 99 38 105 35 16 -11 37 -59 54 -125 22 -89 35 -120 50 -120 15 0 26 32 50
|
||||
145 14 64 24 86 50 112 44 44 90 44 201 -2 88 -37 124 -43 124 -23 0 7 -26 46
|
||||
-58 88 -73 94 -82 110 -82 154 0 50 43 95 139 145 43 22 84 47 90 55 20 24
|
||||
-22 39 -94 34 -91 -8 -164 6 -194 37 -23 22 -26 33 -25 93 0 37 4 100 9 140 7
|
||||
63 6 72 -8 72 -9 0 -41 -31 -71 -68 -75 -94 -110 -122 -153 -122 -48 0 -87 26
|
||||
-161 109 -95 106 -109 95 -72 -54 24 -95 24 -115 6 -159 -20 -48 -69 -67 -186
|
||||
-73 -54 -3 -104 -9 -111 -14 -19 -12 4 -34 62 -60 27 -13 49 -26 49 -31 0 -12
|
||||
-96 -70 -159 -97 -88 -37 -141 -51 -222 -58 -100 -8 -154 6 -312 78 -70 33
|
||||
-130 59 -133 59 -21 0 -199 143 -434 350 -102 89 -198 173 -215 185 -27 21
|
||||
-59 27 -300 54 -315 35 -445 42 -535 31z"/>
|
||||
</g>
|
||||
</svg>
|
Before Width: | Height: | Size: 2.1 KiB |
Before Width: | Height: | Size: 114 KiB |
@ -1 +0,0 @@
|
||||
<svg width="1922" height="400" xmlns="http://www.w3.org/2000/svg"><g fill-rule="nonzero" fill="none"><path d="M156.083 244.045l33.654 33.653c-19.78 18.749-45.942 30.093-75.474 30.093C49.151 307.791.259 252.639.259 184.684c0-67.965 48.638-119.326 113.75-119.326 27.264 0 51.702 9.015 70.896 24.473l-34.127 34.127c-10.031-6.932-22.338-10.879-36.394-10.879-39.457 0-65.61 31.098-65.61 72.288 0 41.181 26.153 74.563 65.61 74.563 16.64 0 30.845-5.933 41.699-15.885z" fill="#8C63FF"/><path fill="#4A4A4A" d="M248.153 220.07l-45.444 45.444-34.162-34.16 45.444-45.446-50.004-50.004 34.162-34.153 49.996 49.996 49.776-49.777 34.162 34.163-49.777 49.775 45.216 45.217-34.152 34.162z"/><path d="M495.593 184.684c0 67.955-48.736 123.107-113.847 123.107-29.559 0-55.781-11.362-75.598-30.137l33.733-33.732c10.958 10.021 25.277 16.008 41.986 16.008 39.457 0 65.199-33.383 65.199-74.563 0-41.19-25.742-72.288-65.199-72.288-14.127 0-26.556 3.991-36.683 11.002l-34.346-34.347c19.116-15.404 43.439-24.376 70.652-24.376 65.113-.001 114.103 51.361 114.103 119.326zM796.37 136.184c-6.547-13.276-17.82-22.03-30.634-22.03-20.219 0-40.402 21.917-40.402 48.901l.14 125.786h-47.265V145.365c-5.322-18.23-18.6-31.141-34.136-31.141-20.219 0-40.263 21.881-40.263 48.875V288.84l-47.265.001V76.15h47.265v17.443c13.996-14.196 33.69-23.134 53.4-23.134 23.257 0 43.72 12.438 55.563 31.257 14.415-18.818 38.563-31.257 62.738-31.257 34.373 0 62.862 25.13 68.122 58.014v160.368l-47.265-.001V136.184h.002zM959.171 155.782v53.96c9.277 25.085 31.089 42.696 56.507 42.696 33.829 0 61.261-31.196 61.261-69.689 0-38.485-27.432-69.681-61.261-69.681-25.435 0-47.246 17.62-56.507 42.714zm0 109.128V400h-47.265V76.15h47.265v24.445c17.61-18.669 41.251-30.091 67.229-30.091 54.503 0 98.678 50.258 98.678 112.244 0 61.995-44.175 112.254-98.678 112.254-25.986.001-49.619-11.422-67.229-30.092zM1358.294 76.15v130.345c0 49.348-39.973 89.348-89.32 89.348-49.347 0-89.234-40-89.234-89.348V76.15h47.265v132.97c0 23.239 18.767 42.084 42.014 42.084 23.246 0 42.013-18.845 42.013-42.084V76.15h47.262zM1466.828 123.415v165.426h-47.265V123.415h-22.756V77.024h22.756V0h47.265v77.024h38.512v46.391zM1580.569 194.312c4.43 31.921 26.583 56.166 58.249 56.166 26.259 0 48.832-16.657 58.836-40.534l38.03 21.821c-17.505 38.03-54.318 64.228-96.971 64.228-59.632 0-104.419-51.213-104.419-114.373 0-63.168 44.865-110.869 104.497-110.869s97.619 47.701 97.619 110.869v12.692h-155.841zm110.478-42.888c-8.866-21.243-27.37-35.16-52.229-35.16-24.848 0-43.842 13.907-53.015 35.16h105.244zM1921.348 219.125c2.556 23.178-7.483 46.984-26.188 62.109-11.3 9.139-27.887 14.171-44.779 14.171-6.494 0-13.041-.744-19.344-2.284-24.998-6.109-45.006-23.781-56.35-49.76l40.778-17.803c5.821 13.33 14.608 21.522 26.127 24.332 11.702 2.862 22.433-.708 25.585-3.256 7.037-5.699 10.853-14.371 9.942-22.651-.472-4.29-2.478-10.109-9.348-13.522-2.521-1.253-4.911-2.434-7.212-3.572-12.35-6.117-23.02-11.396-41.131-21.146-19.604-10.555-31.719-27.527-34.117-47.799-2.275-19.229 4.92-38.87 18.784-51.265 14.976-13.399 34.94-18.687 54.774-14.511 22.705 4.778 42.311 20.962 52.446 43.281l-40.517 18.397c-4.244-9.339-12.324-16.288-21.094-18.134-6.084-1.279-11.449.112-15.948 4.139-2.599 2.319-4.894 7.484-4.253 12.859.656 5.609 4.367 10.266 11.02 13.846 17.443 9.392 27.291 14.275 39.771 20.445 2.32 1.148 4.728 2.337 7.273 3.607 19.128 9.497 31.444 27.187 33.781 48.517z" fill="#4A4A4A"/></g></svg>
|
Before Width: | Height: | Size: 3.3 KiB |
Before Width: | Height: | Size: 81 KiB |
Before Width: | Height: | Size: 174 KiB |
Before Width: | Height: | Size: 70 KiB |
Before Width: | Height: | Size: 246 KiB |
Before Width: | Height: | Size: 21 KiB |
Before Width: | Height: | Size: 93 KiB |
Before Width: | Height: | Size: 34 KiB |
Before Width: | Height: | Size: 238 KiB |
Before Width: | Height: | Size: 46 KiB |
Before Width: | Height: | Size: 29 KiB |
Before Width: | Height: | Size: 76 KiB |
Before Width: | Height: | Size: 15 KiB |
Before Width: | Height: | Size: 100 KiB |
Before Width: | Height: | Size: 73 KiB |
Before Width: | Height: | Size: 78 KiB |
Before Width: | Height: | Size: 103 KiB |
Before Width: | Height: | Size: 107 KiB |
Before Width: | Height: | Size: 16 KiB |
Before Width: | Height: | Size: 11 KiB |
Before Width: | Height: | Size: 175 KiB |
Before Width: | Height: | Size: 46 KiB |
Before Width: | Height: | Size: 103 KiB |
Before Width: | Height: | Size: 12 KiB |
Before Width: | Height: | Size: 27 KiB |
Before Width: | Height: | Size: 8.3 KiB |
Before Width: | Height: | Size: 46 KiB |
Before Width: | Height: | Size: 32 KiB |
Before Width: | Height: | Size: 271 KiB |
Before Width: | Height: | Size: 85 KiB |
Before Width: | Height: | Size: 13 KiB |
Before Width: | Height: | Size: 224 KiB |
Before Width: | Height: | Size: 43 KiB |
Before Width: | Height: | Size: 19 KiB |
Before Width: | Height: | Size: 150 KiB |
Before Width: | Height: | Size: 31 KiB |
Before Width: | Height: | Size: 64 KiB |
Before Width: | Height: | Size: 96 KiB |
Before Width: | Height: | Size: 22 KiB |
Before Width: | Height: | Size: 35 KiB |
Before Width: | Height: | Size: 79 KiB |
Before Width: | Height: | Size: 1.0 MiB |
Before Width: | Height: | Size: 2.8 KiB |
Before Width: | Height: | Size: 110 KiB |
Before Width: | Height: | Size: 104 KiB |
@ -1 +0,0 @@
|
||||
<svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 600 600"><defs><style>.cls-1{fill:#00261b;}.cls-2{fill:#008c62;}.cls-3{fill:#00e6a0;}.cls-4{fill:#fff;}</style></defs><title>Artboard 1</title><rect class="cls-1" width="600" height="600"/><g id="Request_Green_Logo_for_Background" data-name="Request Green Logo for Background"><path class="cls-2" d="M360.36,265.6l93.88-93.53a37.26,37.26,0,0,0,11-26.41L465.39,70a15.18,15.18,0,0,0-4.21-10.43L281.06,239.13A37.38,37.38,0,0,0,281,292l.08.07,127,126.59a37.36,37.36,0,1,0,52.75-52.93Z"/><path class="cls-3" d="M450.69,55.35H167.87c-23,0-39.87,17.28-39.87,40.89V391.4a37.58,37.58,0,0,0,38.06,38.06h0c21,0,38.06-16,38.06-38.06V128.18H392.35l68.83-68.6A14.53,14.53,0,0,0,450.69,55.35Z"/><path class="cls-4" d="M138.57,503.45v22.8H128V465.5h27.54c14.4,0,21.72,6.83,21.72,17.39,0,8.76-6.32,15.15-15.81,16.9a16.09,16.09,0,0,1,6.66,2.24c3.5,2.25,5.33,6.33,7.32,13.32l3.16,10.9H167.36l-2.82-10.74c-2.58-9.89-5-12.06-15.57-12.06Zm0-28.8v21.14h14c9.15,0,14.23-4.16,14.23-10.9,0-6.49-4.08-10.24-13.81-10.24Z"/><path class="cls-4" d="M206.05,527.08c-16.06,0-24.29-10.23-24.29-23.88,0-13.23,9.07-24.47,24-24.47,15.23,0,22.39,10.9,22.39,23.39v3.66H191.91c.83,7.9,5.57,12.65,14,12.65,6.09,0,9.57-2.5,12.31-7.33l8.75,4.75C223,522.42,216.46,527.08,206.05,527.08Zm-14-27.78h25.8c-.42-6.92-4.08-12-12.23-12-7.74,0-12.4,4.49-13.57,12Z"/><path class="cls-4" d="M255.23,479.07c7.57,0,12.65,3.33,15.56,10v-9.4h10.32v64.57H270.63V516.61c-3.08,6.58-8.74,10.24-16.23,10.24-11.07,0-20.06-7.91-20.06-23.64C234.34,487.14,244.58,479.07,255.23,479.07Zm16.31,23.8c0-8.91-4.07-15.4-13.32-15.4-8.65,0-13.23,6.24-13.23,15.56s4.33,15.22,13.23,15.22c9.25,0,13.32-6.48,13.32-15.38Z"/><path class="cls-4" d="M334.2,526.25H323.8v-11c-3.16,7.9-8.91,11.89-16,11.89-11.24,0-16.65-7.49-16.65-18.88V479.65h10.41v25.8c0,7.9,2.75,13,10.57,13,7.15,0,11.57-6.16,11.57-15.9V479.65H334.2Z"/><path class="cls-4" d="M366.65,527.08c-16.06,0-24.3-10.23-24.3-23.88,0-13.23,9.08-24.47,24-24.47,15.22,0,22.38,10.9,22.38,23.39v3.66h-36.2c.83,7.9,5.57,12.65,14,12.65,6.09,0,9.58-2.5,12.32-7.33l8.75,4.75C383.55,522.42,377.05,527.08,366.65,527.08Zm-14-27.78h25.8c-.43-6.92-4.08-12-12.23-12-7.74,0-12.4,4.49-13.57,12Z"/><path class="cls-4" d="M400.85,510.86c3.83,5,8.49,7.66,15.31,7.66,6.41,0,9.07-3.08,9.07-6.32,0-4.75-7.32-5.08-15.64-6.5-8.24-1.25-14.57-4.07-14.57-12.48,0-8.16,6.83-14.65,18.56-14.65,9.49,0,16.15,2.83,21.8,9.49l-8,6.83c-3.57-5.08-8-7.58-14.39-7.58s-8.82,2.91-8.82,6c0,4.16,5.49,4.91,13.23,6.09,8.82,1.33,17.06,3.43,17.06,12.82,0,8.75-7,15.06-18.56,15.06-10.57,0-18.06-3.49-22.64-9.24Z"/><path class="cls-4" d="M472,525.17a18.22,18.22,0,0,1-8.65,1.9c-10.16,0-14.32-5.41-14.32-15.73v-23H438.38v-8.65h10.73v-11.8l9.74-5.82v17.64H472v8.65H458.85v21.8c0,5.83,2.41,8,7,8a14.34,14.34,0,0,0,6.16-1.34Z"/></g></svg>
|
Before Width: | Height: | Size: 2.8 KiB |
Before Width: | Height: | Size: 33 KiB |
Before Width: | Height: | Size: 25 KiB |
Before Width: | Height: | Size: 66 KiB |
Before Width: | Height: | Size: 178 KiB |