A web developer and creator building things on the internet and sharing what I figure out.
Guides and tutorials I've written.
12/3/2025
I sync my vault to GitHub, but the problem with that is everything can only be 100% private or 100% public. I found a slick way around this so I can use one vault for everything.
3/26/2025
In this guide, we will learn how to upload files on-chain using Solana, Irys, and TypeScript.
3/18/2025
I've added a config pattern and CLI for detecting the current OS and syncing configs based on the environment.
Docker at its core is a tool for organizing virtual machines. In this guide I go over how I use it for developing and hosting all my projects.
6/29/2023
A super small Svelte app with a companion Cloudflare worker as a backend when you need it. It's kinda like Sveltekit, but more modular and less guided.
4/24/2023
Compile a Svelte project to a single index.html file.
3/22/2023
I am new to this framework and Rust so DYOR, what do I know. But, I've experimented with a lot of state shapes in web dev using meta frameworks like SvelteKit and lately the closest thing to what I've wanted is tRPC + Tanstack Query + tRPC/Tanstack Adapter.
12/3/2022
Full-stack SvelteKit example project showing "Sign in With Solana" patterns. - Use Solana wallet adapter & connect to wallet. - Request time-sensitive message from the backend. - Sign message using wallet. - Verify signature.
10/4/2022
I figured out how to make an interactive HTML NFT game that's playable on [@exchgART](https://x.com/exchgART). Here's what I learned and how you can build one too!
A collection of projects I've worked on.
10/2/2025
Developed jobs board with AI candidate screening and external integrations.
10/2/2024
A user profiles protocol stored on Arweave, verified on Solana via compressed NFTs.
Lead development of cross-app authentication and user profiles that supported 150k accounts.
3/1/2024
Decentralized on-chain documentation suitable for any project. Content is stored for eternity on Arweave and verified on Solana using Metaplex cNFTs. Users are their own creators and own 100% of their data.
1/6/2024
On-chain directory of Solana developers.
7/16/2023
Created a Discord community where developers can ask questions and share what they're working on during our live show n tells. We have ~3k+ members in Discord and 1.5k+ on Twitter.
6/12/2023
A free cNFT dispenser in celebration of NYC Solana Hacker House and presented on demo day.
4/2/2023
Mint a compressed NFT for free without a wallet using Solana and TipLink. Users are able to design an "OPOS Outlier" and mint it as a cNFT via Gmail-based claiming. The art and attributes were created by Web3 artists and brands.
6/3/2022
Human-readable Solana blockchain explorer built with SvelteKit. Built for Grizzlython hackathon.
3/2/2022
Calculate Merkle Tree For example, run "npx cnfts calculate 8" to view tree configs that work with max proof 8.
Create a TipLink wallet on the fly by running `npx gibwallet`
A Discord bot developed for The 76 Devs community. The bot supports tracking the price of solana, verifying users, and distributing devnet SOL to those who request it by running `!gibsol`.
Generate a Solana wallet and email the credentials to someone. Perfect for those times when you need a one off wallet with keys auto backed up. I used this for making a wallet for my toddler so I can send him NFTs.
1/2/2022
Solana Terminal, an NFT explorer and utilities. Link your wallet and Discord, listen to music NFTs, render HTML NFTs, view your artwork, query NFTs by creator and more.
6/8/2021
A framework built on [XState](https://xstate.js.org/docs/about/concepts.html) that provides bite sized snacks for developing with state machine machines. 🍕 aims to increase state machine adoption in modern day web apps by providing a suite of tools and plugins to inspire development and new ways of thinking.
NFT Art experiments.
11/7/2023
Use the arrow keys to walk through Amsterdam. Click through photos I took while there and interact with certain items.
7/22/2023
Moments captured during my trip to NYC.
11/13/2022
A minesweeper like game in an NFT. Available to play on ExchangeArt.
The Game of Life, is a cellular automaton devised by the British mathematician John Horton Conway in 1970. It is a zero-player game, meaning that its evolution is determined by its initial state, requiring no further input. One interacts with the Game of Life by creating an initial configuration and observing how it evolves.
It takes true values to see the color.
11/8/2022
Audio systems are go. Lofi playback is confirmed.
10/26/2022
Eventually arriving at a solution, stepping 8 bits at a time.
6/8/2022
When you think of a fix for that bug while trying to fall asleep.
Code snippets and snacks.
import { createSession, invalidateSession } from "./session"; import { SESSION_COOKIE, SESSION_EXPIRATION_SECONDS } from
3/2/2025
OAuth and session management patterns for SvelteKit.
const hash = (text) => { let hash = 5381; let index = text.length; while (index) { hash = (hash *
2/2/2025
This is Daniel J. Bernstein's popular 'times 33' hash function
// Encryption utils import crypto from 'crypto'; export const hash = (secret: string) => crypto.createHash('sha512').up
1/2/2025
Class for handling encrypting/decrypting strings.
<script lang="ts"> import { WalletModal, getShowConnectWallet, getWallets, hideConnectWallet
Upload files on-chain using Irys and Sveltekit.
// 2FA utils import QRCode from 'qrcode'; import speakeasy from 'speakeasy'; export const generateSecret = async () =>
Utility for implementing and verifying OTPs.
<script lang="ts"> import { onMount } from 'svelte'; import { init } from '$lib/wagmi'; onMount(init); </script> <s
11/13/2024
Add "Connect Ethereum Wallet" to a SvelteKit app.
import { ALL_DEPTH_SIZE_PAIRS, getConcurrentMerkleTreeAccountSize, } from "@solana/spl-account-compression"; import
6/7/2023
Utility for calculating merkle tree size config when setting up a Solana compressed NFT project.
// Fetchable pattern used for all requests type Fetchable<T> = { isFetched: boolean; isLoading: boolean; data: nul
Invalid Date
Typed request handler for React that manages its own state.
// to use this script" // via the solana cli run "solana-keygen new -o upload.json" // fund the solana wallet // fund th
Script for uploading a directory on-chain using Irys.