Skip to content

rabani-to/interlace.community

Repository files navigation

Interlace Community Platform

InterLace platform is built for decentralized organizations to connect with individual problem solvers. Our goal is to build a contributor marketplace that fosters a connection between DAOs and contributors that embodies transparency and accountability for mission-driven action and fair payment.

Solution

solution

This repository serves to demonstrate how the current workings of the Interlace repo. This repository is in continual development and tracking issues here.

There are a number of subdirectories in the project that represent the moving pieces of the Interlace platform:

Project structure

@types/
β”œβ”€ shared.d.ts     # Shared type definitions for the project
β”œβ”€ globals.d.ts    # ENV and NEXT_PUBLIC definitions
assets/
components/
β”œβ”€ layout/
β”œβ”€ forms/
β”œβ”€ user/
lib/
β”œβ”€ context/
β”œβ”€ hooks/
β”œβ”€ models/
β”œβ”€ services/       # Set of helpers to consume backend services
β”œβ”€ filestack.ts    # File upload configuration and sdk export
β”œβ”€ nanoid.ts       # To generate user profile share hash
β”œβ”€ redis.ts        # Upstash redis configuration
pages/
β”œβ”€ api/            # CRUD API endpoints for app profiles
β”œβ”€ _app.tsx
β”œβ”€ index.tsx
public/
styles/
β”œβ”€ globals.css
.env.example
next.config.js
tailwind.config.js

Stack

The project is bootstraped with NextJs. Styling is done with TailwindCSS. Connectivity is done with @rainbowkit, for backend we use Upstash + Vercel Functions.

Profile Creation and Update

Whenever user wants to create its profile, they must sign the raw definition of their profile object.

const profile = { name: "some name" }
signMessage(JSON.stringify(profile))

// See https://github.com/rabani-to/interlace.community/blob/master/lib/hooks/useSignProfileUpdate.ts for reference

Then in backend we recover the address that signed the raw profile object and fetch it's data.

If remoteData data exists and remoteData.address and recovered address match, we continue to update the profile.

This provides an easy-yet complete solution against one person impersonates another. Or one person sniffs-modifies profile data and signs its profile object.

Database

The project uses a Redis database from Upstash. As a serverless project this is a perfect and clean option.

When a user is created it's json object is key-value stored. At same time a short-id is being generated to the user and it aliases the user address.

Database Key relations:

[address].short -> [shortId]  // set the user shortId
[shortId] -> address          // shortId aliases user address
address -> { profileData }    // user address holds it's Profile data

You can see the implemenation at /lib/redis.ts#L25

Current Features

On the Interlace website, users can do the following:

  • Contributors can create profiles to showcase their mission, values, skills, and other personal attributes.
  • Contributors can easily search and filter DAOs by need or mission. Even find potential roles in their own DAOs.
  • Contributors can connect wallet or utilize magic link
  • Decentralized organizations can fill out a form that lists how potential contributors can help.
  • TBD - Decentralized organizations can easily search and filter contributors by task or skillset. Even find potential contributors in their own communities.
  • TBD - Finally, contributors and DAOs can connect via chat.

Current Data Flow

dataflow

Data Schema

type Experience = {
  role: string
  expertise: string[]
  description: string
  portfolio: string
}

type Preferences = {
  commitment: string
  paymentOptions: string
  hourlyRate: string
  workingTime: string
}

type Details = {
  address: string
  telegram?: string
  twitter?: string
  refCode?: string
  profileImage?: File
}

// Main profile object required for registration
type Profile = Details & Preferences & Experience

type AboutExtras = {
  mission: string
  contribution: string
  whatILookFor: string
}

// Optional definitions user can add after profile is created
type ProfileExtras = {
  headline?: string
  name?: string
  about?: AboutExtras
}

Product Wiki

The problem that the customers have:

  1. Connection
  2. Onboarding
  3. Scoping
Problem DAOs Contributors
Discovery and Connection DAOs have large communities but struggle to enable community members to become contributors. DAOs can find talent through job boards or freelancers, but these individuals may not line up with their mission. No easy way to put yourself out there as a contributor to find DAOs. Most potential contributors put an enormous amount of time in Discord and Telegram to find the right DAO before contributing.
Onboarding It takes hours to get a contributor up to speed with the right information and access rights. Even harder connecting the contributor to the right people in DAO. It takes an immense amount of organization to onboard a contributor. Discords lacks process for members to gain context and information. Making it difficult to get the right information and resources at the right time. Onboarding is typically the major hurdle to adding valuable contributions.
Contribution DAOs struggle to scope out work for contributors. Creating issues due to lack of transparency around roles and responsibilities. Contributors struggle with DAOs paying for their contributions.

Phase 1 - DAO and Skills Profile

Overview:

Our solution to Web3 Discovery:

  • Contributors can create profiles to showcase their mission, values, skills, and other personal attributes.
  • Contributors can easily search and filter DAOs by need or mission. Even find potential roles in their own DAOs.
  • Decentralized organizations can easily search and filter contributors by task or skillset. Even find potential contributors in their own communities.
  • Decentralized organizations can create a profile that lists how potential contributors can help.
  • Finally, contributors and DAOs can connect via chat.

KPIs

  • # of Wallets Connected

V1.0 - Web3 Skills Profile

After setting up their wallet, contributors can build a web3 skills profile that includes:

  • One sentence of what they can contribute
  • Roles they are looking for
  • Portfolio Link
  • Skill Sets
  • List of DAOs they are apart of
  • Industry Interest
  • Preferred Payment Type
  • Mission
  • Values
  • Timezone
  • Commitment Level

Purpose:

Start gathering contributors and building a pipeline of contributors

V1.1 - DAO Profile

After connecting their wallet, DAOs can create a profile that lists how potential contributors can help. Additionally, DAOs are able to list the following attributes about their organization:

  • Overview
  • Mission
  • Vision
  • Values
  • Discord
  • Telegram
  • Twitter
  • Website

V1.2 - Work Marketplace (Browse DAOs Projects and Contributors) πŸ’°

  • Contributors can easily search and filter DAOs by need or mission. Even find potential roles in their own DAOs.
  • Decentralized organizations can easily search and filter contributors by task or skillset.

V1.3 - Connect Via Chat

Contributors and DAOs can contact one another via chat.

Phase 2 - Onboarding and Talent Dashboards

Overview

Our solution to Web3 Onboarding

  • After finding a contributor that a decentralized organization is eager to work with, they can streamline the onboarding process with Interlace.
    • DAOs are able to invite contributors to onboard onto their DAO
    • Provide access links to role specific tools such as Discord, Google Docs, Figma, Github, Vercel, etc.
    • Additionally, onboarding information such as mission, vision, values are shared to contributor to help ensure fit into the culture of the organization
    • Key contacts and work streams are shared with the contributor to enable them in their role
    • Onboarding check list provided for contributor to complete such as sending wallet to HR subDAO, requesting additional access, or completing legal forms
  • Now the DAO has a database of contributors that are actively working and can label them in work streams.

KPIs

  • # of Wallets Connected
  • Time to Meaning First Contribution

V2.0 - POAPs for Contributors and Community (Possible Partnership)

POAPs are to be used by DAOs to β€œlabel” contributors and community members with a Soul Bound Token. This POAP will be displayed on the contributor’s skills profile. This is a stepping stone for Talent Dashboard.

V2.1 - Talent Dashboards for Current Contributors and Community

Once the POAP is attributed to the contributor or community, DAOs are able to get a dashboard of their current contributors and talent in their community.

V2.2 - Onboarding Checklist

  • After finding a contributor that a decentralized organization is eager to work with, they can streamline the onboarding process with Interlace.
    • DAOs are able to invite contributors to onboard onto their DAO
    • Provide access links to role specific tools such as Discord, Google Docs, Figma, Github, Vercel, etc.
    • Additionally, onboarding information such as mission, vision, values are shared to contributor to help ensure fit into the culture of the organization
    • Key contacts and work streams are shared with the contributor to enable them in their role
    • Onboarding check list provided for contributor to complete such as sending wallet to HR subDAO, requesting additional access, or completing legal forms

V2.3 - Referral System

Referral system will be used to connect DAOs and contributors fulfilling roles. TBD on how the referral system will work.

Phase 3 - Escrow Contracts

Overview

Once a decentralized organization finds a suitable contributor for the task and both parties are aligned, interlace built-In automation will kick in, which allows for a seamless task process and payment transparency with our scope of work and escrow contracts.

KPIs

  • # of Wallets Connected
  • Time to Meaning First Contribution
  • # of Escrow Contracts
  • Aggregated $ in Escrow Contracts

V3.0 - Scope and Escrow Contracts πŸ’°

  1. Escrow contract that allows DAOs and contributor to agree upon terms and contract
  2. DAO send funds to once contract is agreed upon by both parties to start the contract of β€œwork”
  3. If work is complete and both parties agree that the work is complete, the funds from the contract are sent to the contributor
  4. If there is a discrepancy
    1. Interlace steps into to determine who receives the funds or partial amount of the funds
  5. If work is not complete, then DAO is returned funds.

V3.1 - Other DAO-Contributor Partnership Integrations

Additionally, we want Interlace to become the go to place for DAOs and contributors for all their working needs. Potential Partnerships and Operation Tools will be integrated to enable this.

Phase 4 - Tinder for DAOs and Proof of Work Verification

Overview

TBD

KPIs

  • # of Wallets Connected
  • Time to Meaning First Contribution
  • # of Escrow Contracts
  • Aggregated $ in Escrow Contracts
  • Number of Verifiers

V4.0 - Proof of Work Decentralized Verification πŸ’°

TBD

V4.1 - Tinder for DAOs

TBD


Find more on https://interlace.community.

Follow us on Twitter