Onchain Coders Course

Stop Vibing. Start Building Onchain.

Replit locks your code. Loveable caps your scale. Gemini writes code you can't explain. Being a great vibe coder isn't about the best prompts — it's about understanding architecture, structure, and logic so you can build anything, own everything, and ship without a monthly bill burning a hole in your pocket.

Learn the real stack. Own your code. Build on Base.

Enrollment20 of 20 seats left

Payment on Base · Seat locked on-chain · USDC only

// hooks/useUSDCPayment.ts
import { useWriteContract } from 'wagmi'
import { parseUnits } from 'viem'
import { USDC_ADDRESS, USDC_ABI } from '@/contracts'

export function useUSDCPayment() {
  const { writeContractAsync } = useWriteContract()

  async function pay(to: `0x${string}`, usdcAmt: number) {
    const amount = parseUnits(String(usdcAmt), 6)
    return writeContractAsync({
      address: USDC_ADDRESS,
      abi: USDC_ABI,
      functionName: 'transfer',
      args: [to, amount],
    })
  }

  return { pay }
}
Next.js 16Wagmi v2ViemBaseReown AppKitMongoDBIPFS

Your Instructor

Justin Taylor — Mr. Web3

Justin Taylor

Mr-Web3

United States · Base Chain

dbro.base.ethbasebuilder002.base.eth

Full Stack & Blockchain Developer. Base Bound.

8+ years building on-chain — from mining and EIP standards to production dApps, DeFi protocols, RWAs, and Mini Apps. I've been building on Base since before mainnet launched and have shipped everything from custom DEXs and staking systems to Farcaster Mini Apps and AI-powered agents. Now I'm teaching the exact stack I use every day.

8+ years in blockchain — mining, protocols, EIP standards
Building on Base since the pre-launch ETH Denver 2023 sessions
4× ETH Denver builder & SporkDAO member
Brought 8 IRL companies onchain to Base (2025–2026)
Built one of the first documented Hybrid Web Apps in Base docs
Lead dev: DRVN LABO · BasedBuster · Wattsun AI
Teaching blockchain dev at Stanford in LA & virtual workshops
Open source contributor — Wagmi, Hardhat, Mini App tooling

Currently Building

DRVN LABO

@DRVNLabo

Car culture RWA platform — digital ownership on Base.

BasedBuster Coin

@BasedBusterCoin

Community token ecosystem deployed on Base.

Wattsun AI

@Wattsun_ai

AI-powered tools for onchain builders.

“I've built on Base from day one. This course is everything I wish I had when I started — the real tools, the real structure, the real mental models. No Replit. No subscriptions. Just code you own and understand.”

— Justin Taylor, @JTBuilds_

Why This Course Is Different

Built for builders who learn by doing, not by watching.

Real Code, Real Projects

No slides-only lectures. Every session involves writing and deploying code you understand end-to-end.

Full-Stack Web3

From Solidity contracts to React frontends — you'll learn the entire onchain stack used by top builders.

Live on Base

All projects deploy to Base mainnet or Sepolia. You leave with real, shareable work on a real chain.

Small Cohort, High Signal

Only 20 seats. More direct access, tighter community, and faster learning than any 1,000-person bootcamp.

Who Is This Course For?

We keep the cohort tight on purpose. This is built for a specific builder.

This is for you if…

  • Vibe coders ready to understand what they're actually building
  • Frontend devs who want to add onchain superpowers to their apps
  • Web2 developers curious about blockchain development
  • NFT / DeFi enthusiasts who want to stop relying on templates
  • Creative builders who want to ship with low monthly overhead
  • Beginners serious about putting in the work (skill level 0–5 welcome)

This is NOT for you if…

  • People looking for a get-rich-quick scheme
  • Those who are not serious about putting in the work
  • Those who are not willing to learn something new
  • Those who won't show up live or engage with the material or classmates
  • Experienced senior blockchain engineers (this isn't advanced research) but you could learn something new!

What You'll Learn

A practical, no-fluff curriculum. No subscriptions, no vendor lock-in — just the stack professionals actually use, taught live with real projects deployed on Base.

Frontend Stack

The UI layer — from routing to reusable components.

3 topics

Next.js 16 (App Router)

File-based routing, server components, API routes, layouts.

React + TypeScript

Component architecture, hooks, and typed props that actually make sense.

Tailwind CSS

Utility-first styling — build beautiful UIs without fighting CSS.

Web3 & Onchain

Connect wallets, read contracts, write transactions — on Base.

4 topics

Wagmi + Viem

The modern Web3 stack. Type-safe contract reads, writes, and receipt watching.

Reown AppKit

Multi-wallet connection with one import. WalletConnect under the hood.

Solidity Basics

Write and deploy your first real smart contracts on Base Sepolia.

Building on Base

Base chain ID, RPC, USDC contract, gas handling, BaseScan verification.

Dev Environment

The tools that make you 10× faster — and free.

6 topics

Cursor IDE

AI-native coding. Rules, context files, and agents that actually help.

MCP Servers

Extend Cursor with docs, Stripe, Neynar, and Base tooling via config.

NGROK Tunneling

Expose localhost for wallet callbacks, webhooks, and mobile testing.

Package Managers

npm vs pnpm vs yarn — lockfiles, workspaces, and why it matters.

Node.js

Runtime fundamentals every frontend builder needs to stop guessing at.

Reading Docs

The most underrated skill. How to find answers without asking AI first.

Ship & Protect

Get to production and keep it there.

6 topics

Vercel Deployment

Zero-config deploys, env vars, preview URLs, and domain config.

Testing Strategies

Unit, integration, and onchain tests. Confidence before you ship.

Security Practices

Battle-hardened patterns to protect user funds and your contracts.

Build Low-Cost

High-quality free tools and creative workflows that don't drain your wallet.

Domain Config & Connections

Connect custom domains to Vercel, manage DNS records, and wire up subdomains.

Free SSL Certs & HTTPS

Provision SSL via Let's Encrypt, enforce HTTPS, and build user trust from day one.

Solidity Smart Contract — Reviewed Live in Class

We break down every line together — types, memory, mappings, structs, and gas.

// SPDX-License-Identifier: MIT
pragma solidity 0.8.18; // This is the solidity version we are using ( // these two line allows us to make a comment in our code)

// Basic Types: boolean, uint, int, address, bytes

contract SimpleStorage {

    // If you create a variable outside of a function which is then global is automatically assigned to a storage variable that is why we just call memeory
    // In the add Person function for the string vs calldata by default with no visablity type it's internal
    uint256 myFavoriteNumber; // No value set so it will = 0 this is technically a global variable it's declared outside a function

    // This is an global array in Solidity
    uint256[] listOfFavoriteNumbers; // global variable no values yet so default is = 0

    // Person public myFriend = Person({favoriteNumber: 7, name: "Bob"}); Not the way to do it cuz this is fixed data and you may have many friends

    // We will create an array of the people in this case our friends
    // Example if you added a 3 in the array then this would be a static arrary which can now only have a maximum size of 3 arrays
    // Person[3] public listOfPeople // This is a static array
    Person[] public listOfPeople; // Which again this is a global dynamic variable default = [] blank array

    // Right now we can add many friends to our listOfPeople of people array but if we had to call the retrieve to find out lets
    // say BOBS favorite number we would ahve to type 0,1,2 or 3 indexing to find t hat well there is so there has to be a better way
    // We will use mapping  type in solidity using keys similar to a dictionary
    mapping(string => uint256) public nameToFavoriteNumber;

    // uint256[] listOffavoriteNumbers; we can create our own types in solidity by using a struct
    struct Person{
        uint256 favoriteNumber;
        string name;
    }

    // This function chnages the state of the contarct globa variable so it requires a transaction whicj cost gas
    function store(uint256 _favoriteNumber) public {
        myFavoriteNumber = _favoriteNumber;
    }

    // A function marked view or pure does not need to change the state of the contract so it does not need to send a transaction
    // View reads from the state of the global variable myFavoriteNumber
    // Returns keyword after view will return the value of the function.
    function retrieve() public view returns(uint256) {
        return myFavoriteNumber;
    }

    // Understanding memory within solidity on EVM, calldata memory and storage
    // calldata and memory are temp they will only exist for the function of the call the one time we call the function
    // Now we need to create a function that will allow us to add people our friends to the listOfPeople of people array
    // The difference between calldata and memory variable can be changed can be manipulated
    // If you pass a temp calldata variable it can not modified
    // Storage is permanent variables that can be modified
    // Strings is memory of bytes
    function addPerson(string memory _name, uint256 _favoriteNumber) public {
        // Now here we will add a push function so we can push a new person into the listOfPeople array
        listOfPeople.push(Person(_favoriteNumber, _name));
        // Now in this addPerson function we will also add the person to our mapping
        nameToFavoriteNumber[_name] = _favoriteNumber;
    }

}

Solidity docs:

CheatsheetTypes Reference

Your Project. Your Structure. Your Rules.

We build this together, live — and you leave owning every file.

your-onchain-app/
├── src/
│   ├── app/
│   │   ├── api/
│   │   │   ├── payments/verify/    # POST — on-chain tx verification
│   │   │   ├── registrations/      # GET + POST — public list + enroll
│   │   │   ├── seats/              # GET — live seat count
│   │   │   └── upload/profile-image/ # POST — IPFS upload gate
│   │   ├── layout.tsx              # Root layout + providers
│   │   └── page.tsx                # Landing page
│   ├── components/         # UI, sections, web3 widgets
│   ├── contracts/
│   │   └── deployedContracts.ts  # ABIs + addresses
│   ├── hooks/
│   │   ├── useUSDCPayment.ts     # Wagmi write hook
│   │   ├── useJTBBalance.ts      # ERC-20 read hook
│   │   └── useSeatsAvailable.ts  # Live seat polling
│   └── lib/
│       ├── viem.ts              # Base public client
│       ├── mongodb.ts            # Connection singleton
│       └── validators.ts         # Zod schemas
└── next.config.ts

MCP servers let your AI agent access live docs, APIs, and chain data directly inside Cursor — without copy-pasting.

The Power of Live Learning

Pre-recorded courses have a 95% dropout rate. Live cohorts don't.

Live Sessions

Code alongside the instructor in real time. Ask questions as they come up, not days later.

Direct Feedback

Your code gets reviewed. Your questions get answered. No lurking allowed.

Recorded for Replay

Miss a session? Recordings are available so you never fall behind.

Evolving Curriculum

Web3 moves fast. The course content is updated to reflect the current best tools and practices.

What You Get

Your $150 USDC gets you more than most $1,000 bootcamps.

Access to all live sessions + recordings
Source code for every project built in class
A fully deployed onchain app on Base
Private cohort community channel
Direct instructor access during sessions
Your IPFS-hosted profile on the class page
A shareable seat NFT-style badge (future)
Curriculum updates for the next 6 months
Access to curated free tool stack used in production
Certificate of completion (onchain-signed)

Course Schedule

3 Months. Live. Every Weekend.

July 18 – October 18, 2026  ·  Saturdays, Sundays & Wednesday homework

Saturday — Live Session 11am–6pm EST
Sunday — Live Session 10am–2pm EST
Wednesday — Homework Released (1 hr)

July 2026

Sun
Mon
Tue
Wed
Thu
Fri
Sat
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
1 / 4

13

Saturday Sessions

13

Sunday Sessions

12

Homework Drops

All times Eastern (EST/EDT). Sessions are recorded — never miss a class.

Simple Pricing

One price. No upsells. No monthly fees.

$150USDC

One-time payment on Base. Seat reserved immediately on confirmation.

  • All live sessions + recordings
  • Private cohort community
  • Full source code access
  • 6-month curriculum updates
  • Certificate of completion
Seats taken0 / 20
Reserve My Seat Now

Needs a crypto wallet + USDC on Base. $JTB holders may qualify for a discount.

Token Holder Perk

$JTB Holder Discount

JTBuilds·$JTB·Justin's Development Coin

Hold the required $JTB balance in your connected wallet and unlock a lower seat price — automatically applied at checkout.

Learn more about the ecosystem at jtbuilds.dev

Required

1,000

$JTB

Your Price

$100

USDC

You Save

$50

USDC

Connect to Check Eligibility

Connect your wallet to instantly see if you hold enough $JTB for the discount.

JTBuilds ($JTB) — Justin's Development Coin · Balance checked at wallet connection · Standard price $150 USDC

Reserve Your Seat

Fill out the form below and pay $ 150 USDC on Base to lock in your spot. $JTB holders get a discount — connect your wallet to check.

Connect your wallet to check your $JTB balance and reserve your seat.

Your Future Classmates

0 of 20 seats filled. Real builders. Real wallets.

Student Reviews

What Classmates Are Saying

Reviews are written by verified course members only — one per wallet.

Frequently Asked Questions