Skip to content

1cbyc/thought-ledger

Repository files navigation

Thought Ledger

(asked ai to write this for me atp, i suck at this readme thing)

A decentralized social platform for sharing thoughts and quotes on the Ethereum blockchain. Every thought is stored immutably, ensuring true ownership and censorship resistance.


Author: Isaac Emmanuel

Features

  • Post thoughts/quotes to the blockchain (Ethereum Goerli testnet)
  • Pay a small fee per post (configurable by contract owner)
  • All posts are public, immutable, and attributed to the sender's wallet
  • Owner can withdraw accumulated funds
  • Modern, responsive frontend (React + Vite)
  • MetaMask wallet integration

Tech Stack

  • Smart Contract: Solidity, Hardhat, OpenZeppelin
  • Frontend: React 18, Vite, Ethers.js, TypeScript
  • Network: Goerli testnet (Ethereum)
  • Deployment: Cloudflare Pages or cPanel

Getting Started

Prerequisites

  • Node.js (v18+ recommended)
  • npm or yarn
  • MetaMask wallet

Smart Contract

  1. Install dependencies:
    npm install
  2. Compile contracts:
    npm run compile
  3. Run tests:
    npm test
  4. Deploy to Goerli:
    • Set up .env with GOERLI_URL, PRIVATE_KEY, and ETHERSCAN_API_KEY.
    • Deploy:
      npm run deploy:goerli

Frontend

  1. Go to the client directory:
    cd client
  2. Install dependencies:
    npm install
  3. Start the dev server:
    npm run dev

Deployment

  • Cloudflare Pages: Deploy the client/dist folder as a static site.
  • cPanel: Upload the client/dist build to your public_html or equivalent directory.

Documentation

  • Development Phases: See docs/what-next.md
  • Interview/Explanation: See docs/explanation.md

License

MIT


Project by Isaac Emmanuel