Awesome
Chainblog
A decentralized blogging platform built on top of the Lens Protocol.
- Own your Profile as an NFT.
- Write posts in markdown, store them on IPFS and attach them to your profile NFT inside a mapping.
- View a Personalised Feed of posts from creators you follow.
Tech Stack
-
Next.js: 🐐 React framework for production.
-
TypeScript: 🦕 A better JavaScript.
-
Lens Protocol: 📡 Decentralized social graph for storing data for profiles, posts, comments, mirrors, etc.
-
GraphQL & GraphQL Codegen: 📜 Auto-generate strongly typed types and hooks for your GraphQL queries based on the Lens GraphQL schema. See codegen.yaml for more details.
-
thirdweb: 📦 All things web3.
-
React SDK to connect to and interact with smart contracts in React hooks.
-
Storage to store files on IPFS.
-
UI Components to connect wallets, render content from IPFS, and interact with smart contracts:
-
-
Material UI: 🎨 Because I suck at tailwind.
-
Tanstack (React) Query: 🐶 A powerful, flexible, and extensible data fetching and caching library for React.
- @graphql-codegen/typescript-react-query Auto-generate strongly typed React Query hooks for queries and mutations based on your
.graphql
files. Demo.
- @graphql-codegen/typescript-react-query Auto-generate strongly typed React Query hooks for queries and mutations based on your
Roadmap
MVP
- ✅ Sign in with Lens
- ✅ Create a post
- ✅ View a feed of posts
- ✅ View a feed of posts from creators you follow
- ✅ View a profile
- ✅ View a profile's posts
- ✅ View an individual post
- ✅ Discover profiles
- ✅ Follow a profile
- 🚧 Unfollow a profile (Bugged atm)
- ❌ Collect a post
- ❌ View a post's collection info (price, supply, etc.)
- ✅ Add a reaction
- ✅ View post reactions
- ❌ Comment on a post
- ✅ View post comments
- ✅ Mirror a post
Future
- ✅ Sign in with Lens
- ✅ Create a post
- ❌ Wait for transaction to be indexed
- ✅ View a feed of posts
- ✅ View a feed of posts from creators you follow
- ✅ View a profile
- ✅ View a profile's posts
- ❌
/profile
route - ❌ Edit profile
- ❌ Delete profile
- ❌ View profile's followers
- ❌ View profile's following
- ✅ View an individual post
- ✅ Discover profiles
- ✅ Follow a profile
- ❌ Follow user who has a follow module setup
- 🚧 Unfollow a profile (Bugged atm)
- ❌ Choose which collection module to use on a post
- ❌ Collect a post
- ❌ View a post's collection info (price, supply, etc.)
- ✅ Add a reaction
- ❌ Live updating reaction count
- ✅ View post reactions
- ❌ Comment on a post
- ✅ View post comments
- ❌ Mirror a post
- ❌ View a post's mirrors
- ❌ Hide post
- ❌ Report post
- ❌ Search publications
- ❌ Notifications
More Future
- 🤔 Use dispatcher for all transactions to have gasless transactions
- 🤔 Create Lens Profiles directly from Chainblog
- 🤔 E2EE Messaging using XMTP
- 🤔 Recommended profiles suggestion after following a user
Known Issues
- Default profile is assumed to be set everywhere
- Unfollow is bugged