filecoin-project / devgrants

👟 Apply for a Filecoin devgrant. Help build the Filecoin ecosystem!
Other
371 stars 308 forks source link

[Restructured] Open Grant Proposal: Portrait #511

Closed ryanshahine closed 2 years ago

ryanshahine commented 2 years ago

Open Grant Proposal: Portrait

Name of Project: Portrait

Proposal Category: app-dev

Proposer: ryanshahine and giliamverheide

Technical Sponsor: Ongoing dev-grant: Issue 354

Do you agree to open source all work you do on behalf of this RFP and dual-license under MIT and APACHE2 licenses?: Yes, but under GNU AGPLv3 as discussed.

Project Description

The purpose of this document is to request a restructuring of the current Open Dev Grant for the open-source development, design and research by Portrait, with the core objective to add significant value to the Filecoin ecosystem. In this document we will elaborate on challenges which require restructured funding.

Portrait is the first open-source web page builder, allowing people to turn their blockchain address into a website. Portrait provides cryptographic proofs that verify the ownership and history of web pages designed on the platform. And Portrait web pages are automatically pinned to IPFS and Filecoin, allowing the sites to be secure and resilient by design. - Filecoin Foundation (Dev Grant Spotlight: Portrait)

Portrait aims to contribute to a pro-privacy and censorship-resistant web. As these are sensitive topics, we consider those topics to be in conjunction with the reputation and success of Portrait. This led to abstaining from any form of investments or funding, in exchange for equity or direct influence on the project.

Portrait is driven by the idea of building a better web, a long-term vision. For this reason, we are requesting additional funding solely from the Filecoin Foundation. We believe that Portrait adds value to the Filecoin ecosystem and the Filecoin ecosystem adds value to Portrait: a bilateral relationship with shared fundamentals.

Value

📌ㅤThe core motivation behind the request for additional funding is to build a product which lasts. We are investing in a research-based and validated user experience.

The need for rescheduling boils down to two main factors:

  1. During the initial grant proposal, we allocated an eight hour workload per team member, per week. Since March, we have shifted to a full-time workload creating the opportunity to invest more time on development, design and research, for the sake of building the best version of Portrait.
  2. Our team designed an eight-month roadmap while Portrait was the outcome of a one month hackathon, this resulted in an estimation of assumption-based milestones. As the team got further into research and development, we learned that many milestones needed to be set up differently.

This should be seen as an extension of the value stated in the approved dev-grant. The benefits of extending the grant lies in building for longevity. This argument in favour of extending the grant may also be seen as an imposed risk. To clarify this argument you may find visuals of the legacy user interface and the upcoming user interface below, to see what kind of level we are aiming for.

Deliverables

🛠️ㅤWe are building out in the open. Follow our progress and complete roadmap through GitHub projects.

The Web3 ecosystem develops rapidly. As of now, Portrait is the first of its kind: something to take advantage of. As of March 2022, the Portrait team has shifted from working eight hours a week to a full-time commitment.

Previously completed and approved deliverables

Q4 2021

Full details: November | December

Summary - Rebranding - Blockforge to Portrait - Visual Identity - Landing page - Codebase - Initiated legacy front-end and backend - Backend implementation Filecoin deal status - Research into Decentralized Attestation Providers - Migration + security - Migration from Blockforge to Portrait - Codebase migration to team repository - Migration domain, email, notion, api - Research Web3 onboarding providers - Design direction user onboarding - Hardware / server - On-site installation hardware server - Setting up 14 TB storage IPFS node in RAID 1 - Phase out Infura, implement own node - Meetings with Maven11 and Polygon - Research revenue streams - First implementation proofs in UI

Q1 2022

Full details: January | February

Summary - Low-fidelity UI sketches new design direction - High-fidelity UI sketches new design direction - Themes prototypes - Continuation hardware setup - Database architecture research - Postbox encryption Proof-of-concept: peer-to-peer messaging with client-side encryption - Postbox decentralized storage research/PoC with Tableland (Textile) - Added Filecoin storage proof to UI (low-level PoC) - Magic (Ethereum w/ e-mail) onboarding Proof-of-concept - ENS domain implementation proof-of-concept - Rewriting database architecture (90%) - Rewriting back-end architecture from hackathon legacy code-base (50%) - API Documentation

Deliverables: in-depth

Design

As presented during the December ‘21 check-in, we are refining the overall design direction of Portrait: focusing primarily on censorship-resistance and pro-privacy, whereas Blockforge (pre-Portrait) emphasized on being a highly-customizable website builder.

The core arguments for adjusting our design direction are:

  1. The customizable website builder market is highly competitive with market leaders such as Squarespace and Shopify. With our current capacity, it is not likely that Portrait will dominate or compete within the space as of now.
  2. A censorship-resistant, decentralized, accessible and verifiable website is the primary need we provide for our users. Highly-customizable content is a secondary value.
  3. By adopting platform-wide user-interface themes, we aim for increased brand recognition and user experience.

During the January ‘22 and February ‘22 check-ins we showcased updated user-interface propositions. The low-level framework is being transitioned into a component-based standard which will then be used for production.

With this new direction, all elements and components need to be considered and designed individually in multiple contexts and with multiple themes: i.e. a single component requires nine designs when a scenario of three viewports and three themes is considered. With each additional theme and styling option we provide for our users, the workload to realise every component increases exponentially.

In addition, we are implementing a peer-to-peer encrypted messaging protocol named Postbox in conjunction with our censorship-resistance and pro-privacy design direction built on top of Waku known for the implementation by Status and WalletConnect V2.

Research

Because the team has shifted to a full-time dedication, there is more room for researching the ethical implications of the Filecoin ecosystem and Portrait. Research topics such as governing illegal content, pseudo-anonymous data analytics and peer-to-peer encrypted messaging are now within reach. Where our research into peer-to-peer messaging lead to Postbox, we aim to study new ways of improving and substantiating Portrait and the Filecoin ecosystem by means of verifiable and censorship-resistant content and governance. All developments and research will be published under Apache/MIT or GNU AGPLv3 depending on the repository.

Development

The research and design elements will be translated into a web app. The overall development is closely correlated to the design and research developments and will also be published under Apache/MIT or GNU AGPLv3 depending on the repository. For example, portrait-ipfs-authentication is published under MIT as there is no direct relation to the main application of Portrait. Front-end and back-end repositories will be published under GNU AGPLv3.

Final deliverables

  1. Portrait
    • Open-source software published under GNU AGPLv3
    • Implementation of all roadmap objectives (see Development Roadmap)
  2. Document on findings of closed beta programme results and research in correlation with Filecoin's ecosystem.

Development Roadmap

📒ㅤOur legacy roadmap may be viewed here.

We opted for one week sprints, in which we can divide our workload and measure performance in a shorter timeframe. Our sprints are publicly accessible through GitHub projects, anyone may track the progression of Portrait.

Roadmap

Our roadmap is designed in GitHub projects. For archiving purposes we added two mirrors to the roadmap. Once a week, milestones are assigned to the dedicated sprint. The intend of this roadmap is to be completely finished at the end of June 2022.

Live version: GitHub projects Archived version: Mirror 1 -- Mirror 2 (IPFS)

Total Budget Requested

The remainder of the original grant from March 2022 - June 2022 is €35.067. With the current challenges and objectives we request an additional €81.683 in funding, for a total of €116.750.

The requested budget from March - June in this proposal, serves as a replacement for the originally approved budget for that same period in #354.

The budget is categorized into nine topics, as seen in the table below. These topics collectively consist of ~110 individual deliverables which are tracked through GitHub. A set of deliverables will be assigned to weekly sprints every last business day of the week, with the end goal of realizing all deliverables divided equally throughout a period of four months.

We consider a 7% overhead for all nine categories, which is calculated by taking 7% of the total costs of all nine categories, excluding the base costs. This will cover unexpected development and research costs.

Base costs are subjected to the remainder of our previously approved grant with the exception of all team member compensations. In general, base costs will cover most license fees, subscriptions, hardware, power bills, compensation for open-source contributors, promotional costs and server maintenance.

March ‘22 April ‘22 May ‘22 June ‘22 Total
Frontend development €6.037,50 €6.037,50 €6.037,50 €6.037,50 €24.150
Backend development €2.062,50 €2.062,50 €2.062,50 €2.062,50 €8.250
Database architecture €525 €525 €525 €525 €2.100
Server development €900 €900 €900 €900 €3.600
Research €3.918,75 €3.918,75 €3.918,75 €3.918,75 €15.675
Design €5.268,75 €5.268,75 €5.268,75 €5.268,75 €21.075
Marketing €1.950 €1.950 €1.950 €1.950 €7.800
Organisational €1.575 €1.575 €1.575 €1.575 €6.300
Legal €1.987,50 €1.987,50 €1.987,50 €1.987,50 €7.950
Overhead €1.695,75 €1.695,75 €1.695,75 €1.695,75 €6.783
Base costs €3.266,75 €3.266,75 €3.266,75 €3.266,75 €13.067
Total €29.187,50 €29.187,50 €29.187,50 €29.187,50 €116.750

Maintenance and Upgrade Plans

Team

Team Members

The Portrait team has been working together on several projects for over 8 years.

Ryan Shahine ryan@portrait.gg Back-end engineer + architecture design + research

Giliam Verheide giliam@portrait.gg Front-end lead + UI/UX

Team Member LinkedIn Profiles

Giliam Verheide - https://www.linkedin.com/in/giliam-verheide/ Ryan Shahine - https://www.read.cv/ryanshahine

Team Website

https://portrait.gg

Relevant Experience

The Filecoin Foundation has approved every milestone of our ongoing grant to date.

Portrait received the runner-up prize for Browsers3000. The Portrait team also built Nebary for HackFS, HackFS was running at the same time as Browsers3000.

Team code repositories

Some repositories may be set to private. Please reach out to us if access is needed.

https://github.com/portraitgg

Additional Information

ErinOCon commented 2 years ago

Hi @ryanshahine, thank you for this submission! Once the remaining milestones have been restructured according to the current budget and funds are fully expended, we can consider additional funding. To discuss milestone amendments, please reach out my email.

Please do not hesitate to be in touch with any questions.