Gitcoin is GDPR complaint. Learn more in
Gitcoin's Terms & Conditions.
Check out the Issue Explorer
Looking to fund some work? You can submit a new Funded Issue here.
# Readable Web Service
Reading content on the web can sometimes be a noisy experience, with a lot of distractions around the parts you actually want to read.
There are already some tools provided by browsers, services and code libraries to extract the important content from web pages and strip out the unnecessary parts, but not everyone uses them and they are not always available.
It's time to archive some content on the Web in a **readable**, **permanent** and **shareable** way.
The goal of this competition is to build a service that is easy for users to paste a URL into and get back a shareable link that has only the article, blog post, or other primary content in a clean
and pleasant format, with the unnecessary parts removed.
## Helpful Resources
There's a number of existing libraries that will help with building this service. You are free
to use any or none of these or find other similar tools to build the service.
These libraries are listed based on how recently they have had versions published or code committed. You should assess any libraries you use for suitability.
All requirements MUST be met for the entry to be eligible.
### Basic Requirements
- Build an HTTP Service & UI to be hosted and run in the standard way (FaaS, Container, Server, it's your choice), that allows users to paste a URL and have a readable version of the content archived onto the Arweave Permaweb.
- The code must be publicly available on GitHub with an open-source license.
- The service should inform users that they are responsible for the content they archive and they should not archive copyrighted content that they do not own.
### Functional Requirements
- Users are able to paste in a URL and see a preview of the readable content.
- Users are able to publish the readable content to the permaweb and get back a permaweb link.
- The published permaweb content should not link or reference **any** content that is not on the permaweb, for example, any images, if included, must be saved on the permaweb.
- The published permaweb content should contain open graph meta tags, for example, title, description, image, so that posting to social media & messengers shows a preview card of the content.
- The original URL must be included in the tag of the transaction. Other metadata included in tags is a plus.
### Deployment & Running Requirements
- The service should use a wallet stored on the server to post content. This wallet will be funded by donations, so the wallet address should be made public. Arweave can donate some AR to the wallet to keep the service running initially.
- The service should not depend on any third-party APIs that may disappear.
- The service should be deployed and publicly usable on completion of the bounty.
- It should be *reasonably* easy to deploy the service again for another developer.
## Judging Criteria
The entries will be judged on how easy it is to use, how well it works across a range of
content sites, and how readable and useful the output is.
These are not requirements, but ideas which you might like to use to make your entry stand out, or you can think of your own instead.
- Allow different 'profiles', for example, strip down to just text, or to keep most of the article formatting.
- Use multiple methods and have a 'try again' button if the user doesn't like the preview.
- Apply a sentiment analysis library to the extracted text and add the result to a TX tag.
- Archive the original full HTML page (permaified) alongside the readable version.
The most important part of building this service will be the extracting of content in the best way possible, showing the users a preview with a good UX, and making sure that the final result is not using any non-permaweb resources. These are the core goals of the project.
## Arweave Resources
- [Arweave JS SDK](https://github.com/ArweaveTeam/arweave-js)
- [Arweave Developer Guide](https://docs.arweave.org/developers/)
- [Get Arweave Wallet and Tokens](https://tokens.arweave.org/)
HooverD can be configured with a wallet and used as a microservice to post data to the permaweb, without needing to use the Arweave JS SDK, which could be useful for building this service.
You can join us on the [Arweave Developer Discord](https://discord.gg/AhsZfBm) for any technical questions, questions about the bounty, or general chat!
## Submission Process
* Click "Start Work" and start BUIDLing.
* Hack! [Join us on our tech Discord](https://discord.gg/AhsZfBm) if you have any questions.
* Publish a GitHub repo with the code that archives the data, the documentation for the stream and the wallet address used.
## Submission Deadline
January 15th - 11:59PM Eastern Time.
## Winner Announcement