TeachLink is a decentralized platform built for technocrats to share, analyze, and monetize knowledge through collaborative content, blockchain-based tipping, and gamified reputation. This repository contains the frontend codebase built with Next.js (App Router), Tailwind CSS, and integrated with Starknet for seamless Web3 interactions.
TeachLink empowers users to:
- π’ Share knowledge, tutorials, or insights
- π§ Engage in discussions and collaborative learning
- πΈ Earn through on-chain tipping
- π Build reputation with verifiable Web3 credentials
This frontend serves as the main user interface for interacting with TeachLink's decentralized knowledge ecosystem. It supports wallet-based login, markdown post creation, tipping, theming, user profiles, and topic feedsβall while maintaining a seamless Web2.5 user experience.
| Layer | Technology |
|---|---|
| Framework | Next.js (App Router) |
| Styling | Tailwind CSS |
| Web3 | Starknet.js, StarknetKit |
| State Mgmt | React Context / Hooks |
| Markdown | React Markdown + Remark |
| Theming | next-themes |
| Indexing | Apibara (backend) |
| Wallets | Argent X, Braavos |
- π Starknet Wallet Integration β Login and interact using Starknet-compatible wallets
- π§Ύ Markdown-Based Post Editor β Rich, previewable post creation using markdown
- π‘ Tipping System β Send and receive on-chain tips via smart contracts, now with Special Interest Group routing
- π Tip Notarization Service β Proof-backed tip transactions with server-side notarization records
- π§ Email Verification Recovery β Durable verification, resend, and restore flows with server-backed state and backup codes
- π Dark/Light Theme Toggle β Accessible theming using Tailwind CSS
- π Dynamic Routing with App Router β Clean, scalable navigation
- π Profile and Topic Pages β View user-specific content and explore topic-specific posts
- π± Responsive Layout β Fully mobile-ready with modular components
/app /create β Post creation page /post/[id] β View individual post /profile/[user] β User profile /topics/[slug] β Topic feed /components Navbar.tsx β Top navigation bar Sidebar.tsx β Side navigation Editor.tsx β Markdown post editor WalletProvider.tsx β Wallet connection logic /styles globals.css β Tailwind directives
- Clone the repo
git clone https://github.com/teachlink/frontend.git
cd frontend
pnpm install- Set up environment variables
Create a .env.local with:
NEXT_PUBLIC_STARKNET_NETWORK=testnet
NEXT_PUBLIC_INDEXER_API_URL=https://indexer.teachlink.xyz
NEXT_PUBLIC_SITE_URL=https://teachlink.app
# Optional: overrides the verification recovery store location
# EMAIL_VERIFICATION_STORE_PATH=.data/email-verification.json- Run the development server
pnpm run devThe project now uses pnpm workspaces as the monorepo/dependency strategy.
- Evaluated: Nx, Turborepo, pnpm workspaces
- Chosen: pnpm workspaces (lowest migration risk, strict dependency graph, fast installs)
- Single source of truth:
pnpm-lock.yaml+ rootpnpm.overrides - Shared tooling config:
packages/tooling(base ESLint + TypeScript config)
ποΈ Development Milestones β Tailwind CSS Integration
β App Router setup with nested layouts
β Wallet connection via StarknetKit
β Theme toggle and persistence
β Markdown editor with live preview
π§ Topic and profile page rendering
π§ DAO & governance integration post-launch
For detailed tasks, see GitHub Issues
We welcome community contributions!
- Read
CONTRIBUTING.mdbefore opening a PR. - All PRs must include an issue reference in the description (e.g.
Closes #68). - Merges to protected branches require passing CI + approvals.
Guidelines:
- Fork the repo and make your changes in a feature branch
- Before submitting a PR, read the
CONTRIBUTING.mdfile
- Telegram Join our Telegram group for discussions and support
Make sure your PR references the correct issue: Example: Close #3
β Acceptance Criteria for PRs Feature must align with roadmap/issue description
Must include working UI with no console errors
Must use lucide icons for consistent usage throughout the app
Must use Starknet best practices for wallet/contract interactions
Use Tailwind CSS with responsive design
PR title should be clear and reference issue number
β Outcome: A scalable, token-driven learning platform where creators monetize knowledge, learners access premium content, and all users interact securely β powered by Web2 + Web3.
let make our code clean, maintainable and scallable. Keep to Standard
π License MIT Β© 2025 TeachLink DAO