Fund Me Demo
ArchivedApril 1, 2020
A first Ethereum smart contract application — a crowdfunding "Fund Me" dApp built while following Dapp University by Gregory. An introduction to blockchain development, Solidity, and the world of decentralized applications.
Purpose
Built a Fund Me smart contract as a first foray into Ethereum development. Followed Gregory's Dapp University YouTube channel to learn Solidity, smart contract deployment, and how dApps interact with the blockchain. The "Fund Me" pattern — users send ETH to a contract, the owner can withdraw — is the "Hello World" of blockchain development.
Stack
What I Learned
- A smart contract is code that lives on the blockchain — once deployed, it runs exactly as written, enforced by the network, not by any single server. The "Fund Me" contract is simple: it accepts ETH from any address, tracks how much each funder sent, and lets the owner withdraw. But the implications are radical: no bank, no payment processor, no intermediary. Just code and consensus.
- Solidity is the primary language for Ethereum smart contracts. It looks like JavaScript but behaves very differently — every operation costs gas (computation fees paid in ETH), storage is expensive, and mistakes are permanent because deployed contracts cannot be edited. This forces a level of care and upfront design that most web development does not require.
- The development stack for dApps: Solidity for the contract, Truffle for compilation and deployment tooling, Ganache for a local blockchain simulator (so you do not spend real ETH while testing), Web3.js for the JavaScript bridge between your frontend and the blockchain, and MetaMask as the browser wallet that signs transactions. Gregory's Dapp University walked through this full stack clearly.
- Gas is the fundamental concept that makes blockchain development different from traditional development. Every computation, every storage write, every byte of data costs gas. Gas is priced in gwei (fractions of ETH) and fluctuates with network demand. This means your code's efficiency is not just a performance concern — it is a direct cost to your users. Optimizing gas usage is the equivalent of optimizing cloud compute bills, but at the per-function-call level.
- The "Fund Me" contract pattern teaches key Solidity concepts: payable functions (functions that can receive ETH), msg.sender and msg.value (the caller's address and the amount they sent), mappings (key-value stores on-chain), require statements (condition checks that revert the transaction if they fail), and the withdraw pattern (the owner pulls funds rather than the contract pushing them, which prevents reentrancy attacks).
- Dapp University by Gregory was the right entry point — his tutorials build real projects from scratch, explaining not just the what but the why. For anyone starting blockchain development, a project-based YouTube tutorial is still the fastest on-ramp. The documentation is dense. A human walking you through it is invaluable.
Key Insights
- Blockchain development is regular software development with one critical difference: immutability. In web development, you can deploy a fix in minutes. In smart contract development, a deployed contract is permanent. Bugs are permanent. Exploits are permanent. This is why smart contract auditing is an entire industry — the cost of a mistake is not downtime, it is lost funds that cannot be recovered.
- The crowdfunding use case (Fund Me) is blockchain's clearest value proposition: trustless coordination. Normally, crowdfunding requires a platform (Kickstarter, GoFundMe) that holds funds, takes a cut, and enforces rules. A smart contract does the same thing without the intermediary — the rules are in the code, enforcement is by the network, and nobody can change the terms after deployment. Whether this tradeoff (trustless but rigid) is worth it depends on the context.
- The crypto ecosystem moves fast and breaks things — literally. Since this project, the tooling has evolved significantly: Hardhat replaced Truffle as the dominant development framework, ethers.js largely replaced Web3.js, and Ethereum moved from proof-of-work to proof-of-stake (The Merge, September 2022). The fundamentals of Solidity and smart contract design remain the same, but the surrounding infrastructure has matured considerably.
- For the Potatuhs ecosystem, blockchain experience informs the XRPL trader project and any future tokenized merchandise or loyalty programs. Understanding smart contracts at the code level — not just the marketing level — is what separates builders from speculators in the crypto space.
This post was composed through a conversation between Brett Owers and Claude Code (Anthropic). The content reflects Brett's recollection of each project and the lessons drawn from it. Some details may be approximate or omitted — the purpose is to paint an honest picture of a software engineer's development over time, not to serve as a precise historical record.