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.
- Production - https://interlace.community/
- Development - https://interlace-community.vercel.app/
- Codebase - https://github.com/rabani-to/interlace.community
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:
@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
The project is bootstraped with NextJs. Styling is done with TailwindCSS. Connectivity is done with @rainbowkit, for backend we use Upstash + Vercel Functions.
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.
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
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.
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
}
- Connection
- Onboarding
- 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. |
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.
- # of Wallets Connected
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
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
- Website
- 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.
Contributors and DAOs can contact one another via chat.
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.
- # of Wallets Connected
- Time to Meaning First Contribution
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.
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.
- 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
Referral system will be used to connect DAOs and contributors fulfilling roles. TBD on how the referral system will work.
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.
- # of Wallets Connected
- Time to Meaning First Contribution
- # of Escrow Contracts
- Aggregated $ in Escrow Contracts
- Escrow contract that allows DAOs and contributor to agree upon terms and contract
- DAO send funds to once contract is agreed upon by both parties to start the contract of βworkβ
- If work is complete and both parties agree that the work is complete, the funds from the contract are sent to the contributor
- If there is a discrepancy
- Interlace steps into to determine who receives the funds or partial amount of the funds
- If work is not complete, then DAO is returned funds.
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.
TBD
- # of Wallets Connected
- Time to Meaning First Contribution
- # of Escrow Contracts
- Aggregated $ in Escrow Contracts
- Number of Verifiers
TBD
TBD
Find more on https://interlace.community.
Follow us on Twitter