Content pfp
Content
@
0 reply
0 recast
0 reaction

Darryl Yeo 🛠️ pfp
Darryl Yeo 🛠️
@darrylyeo
In 2024, I continued to solo-build @blockhead (/blockhead), an open-source interface for tracking onchain assets, exploring EVM chains and browsing web3 protocols! Feature highlights: • 15 new user-swappable data sources in Preferences • NFT valuations in Portfolio • EIP-6963 wallet discovery • Apps and app views filterable by network • experimental dynamic OpenGraph images and Farcaster Frames (v1) • indexer/algorithm-agnostic @farcaster client using @airstack.eth @neynar @openrank @pinata @mod • infinite scrolling • icons in dropdown menus • /eas schema and attestation explorer • real-time block height visualizations for EVM chains in Explorer • @moxie.eth auction, order and subject explorer • transaction traces, input data and summaries in Explorer • linked ENSIP references in @ensdomains explorer • price feeds and historical price charts in Explorer / Apps • most content sections retrofitted to be collapsible • improved wallet connection management https://blockhead.info
2 replies
5 recasts
14 reactions

Darryl Yeo 🛠️ pfp
Darryl Yeo 🛠️
@darrylyeo
The year was also not without opportunities to stretch frameworks to their limits and test new state-of-the-art tools across the JavaScript and TypeScript ecosystem! Technical highlights: • 1378 atomic Git commits • extended SvelteKit’s server and routing functionality to handle Farcaster Frames v1 endpoints and generate OpenGraph images using `satori` and `resvg` (eventually forming the basis of skiffle.dev) • adopted `gql.tada` (gql-tada.0no.co) for generating type-safe GraphQL queries in TypeScript (replacing houdinigraphql.com) • adopted `dotenvx` (dotenvx.com) for secure and portable deployment-agnostic environment variables (allowing me to bypass Netlify’s size limits) • adopted `oazapfts` and then `openapi-typescript` for generating TypeScript REST API clients from OpenAPI / Swagger schemas (much leaner codegen footprint compared to `swagger-typescript-api`)
1 reply
1 recast
2 reactions

Darryl Yeo 🛠️ pfp
Darryl Yeo 🛠️
@darrylyeo
It may not look like much on the outside, but I also took on some monumental refactoring and migration work behind the scenes to pave way for some new and exciting features! Codebase maintenance highlights: • migrated from SvelteKit v1 → v2 • migrated @viem public clients to use tree-shakable actions • rewrote lots of CSS in terms of nested rules • improved custom container auto-sizing and layout transitions • fixed navigation issues with custom SvelteKit route parameter binding logic • deprecated old components/code from previous hackathon experiments • organized API clients, TypeScript types and data normalization logic into a consistent file structure • migrated all queries to use TanStack Query, lazy-loaded Vite imports, pagination and client-side caching • added new fields and retroactively implemented queries for each data vertical using existing APIs for maximum redundancy • migrated most state management from Svelte v4 stores → v5 state https://github.com/darrylyeo/blockhead
1 reply
1 recast
3 reactions