Development Update — 2026-08-27

by Jamie

Development Update — 2026-08-27

Share

Overview: Where Development Is Heading

The backend repo is currently focused on bug fixes, new features. Several fixes are landing to stabilize the existing flows. New feature work is progressing in parallel. Recent commit subjects include: Fix ipfs.io rate limiting: serialize requests, detect 504 lockout, cache duplicate CID fetches; Add chainWatch backfill mode (-u/-u-dry/-full): rewrite inline base64 + ipfs/http images to CDN, normalize CID URLs, per-chain + ipfs.io rate limits, per-minute stats; remove unused routes from server.js and update imports; Merge remote-tracking branch 'origin/refactor2026' into refactor2026; fix: use = instead of LIKE for numeric for_coll_id in nftMetaById. The work is tightening the foundation before more blockchain-facing features ship.

Overview: Where Development Is Heading

Recent frontend development is focused on refining collection page experiences, with major investments in performance optimizations, SEO metadata accuracy, and robust multi-chain, multi-locale sitemap generation. The team is also eliminating client-side hydration inefficiencies to reduce redundant data refetches, while aligning frontend collection data handling with backend contracts to standardize chain and slug resolution across the app.

Project Direction — Both repos are converging on a stable, production-ready NFT marketplace. The backend is hardening core systems while the frontend improves architecture and user experience.

Backend Commits

e4ccc9b 2026-08-26 02:53:59
Fix ipfs.io rate limiting: serialize requests, detect 504 lockout, cache duplicate CID fetches

eaba5d4 2026-08-26 00:30:07
Add chainWatch backfill mode (-u/-u-dry/-full): rewrite inline base64 + ipfs/http images to CDN, normalize CID URLs, per-chain + ipfs.io rate limits, per-minute stats

63692a2 2026-08-25 03:55:20
remove unused routes from server.js and update imports

f149a44 2026-08-25 03:54:09
Merge remote-tracking branch 'origin/refactor2026' into refactor2026

601a398 2026-08-25 02:04:42
fix:
use = instead of LIKE for numeric for_coll_id in nftMetaById

02ce78b 2026-08-25 02:03:42
fix:
use = instead of LIKE for numeric for_coll_id in nftMetaById

e2fe3de 2026-08-25 01:24:33
remove unused routes from server.js and update imports

fcb4dbe 2026-08-24 01:52:41
Separate blockscout cache by chainId in newmeta and gitignore newmeta

0cb9b26 2026-08-24 01:10:51
test(nft): drop unsupported 'order' field from nftMetaById validation tests

d198115 2026-08-24 01:10:21
fix(nft): correct slug resolution in nftMetaById

6519a0a 2026-08-24 00:59:48
feat(nft): accept canonicalName + chainName (slug) in nftMetaById

1776276 2026-08-23 18:51:26
fix(getCollections): apply net filter — number has no .length

9fa19e6 2026-08-23 18:15:03
feat(collInfo): accept canonicalName+chainName or contractAddress+chainName

5bb7844 2026-08-23 18:14:54
feat:
add canonicalName column and backfill helper

f538183 2026-08-23 00:37:26
fix:
preserve null query params, store contract names, remove 1000 cap, normalize new input format, pass db/tokenType into ingestContracts, update existing collections rows, fetch metadata fallback, use null-preserving token pagination serializer

61dac6c 2026-08-22 20:25:30
feat(chainWatch): show canonical signature names on stdout NFT lines

9364571 2026-08-22 20:13:02
feat(db): add signatures table for chainWatch learned selectors

c2e7e43 2026-08-22 20:12:37
feat(chainWatch): persist learned signatures to MySQL signatures table

b6c58c8 2026-08-22 18:36:17
fix(db): widen collections.totalSupply to BIGINT UNSIGNED

b1148e0 2026-08-22 18:36:08
fix(chainWatch): make DB writes non-fatal; log full SQL + values on failure

6f55254 2026-08-22 18:27:28
feat(chainWatch): gate imports on known NFT func selectors + event topics

96fd0fb 2026-08-22 18:14:22
fix(chainWatch): snapshot loop index in subscribe goroutine (nil-pointer panic on startup)

19f9bfa 2026-08-22 18:05:23
feat(chainWatch): add crash handling + retry totalSupply + ipfs.io gateway

78cd2a1 2026-08-22 17:40:52
docs(chainWatch): track clean crash-handling as an open task in AGENTS.md

4f49917 2026-08-22 17:39:58
docs(chainWatch): add AGENTS.md capturing current watcher state

Frontend Commits

83b209def 2026-08-24 23:07:24
commit/push latest sitemaps

2c2c511d0 2026-08-24 04:14:50
fix(client): rewrite non-locale URL on hydration to prevent redirect refetch

f6ecdb7e2 2026-08-24 03:48:57
fix(sitemap): keep locale variants in static sitemap, simplify renderer

ce51cd942 2026-08-24 03:45:45
feat(sitemap): split collection sitemaps per chain, use JSON chainData

981f0b103 2026-08-24 00:59:57
perf(collection): parallelize loader fetches for all slug types via backend slug resolution

1dfaae4c5 2026-08-24 00:53:15
perf(collection): parallelize loader fetches for numeric collection slugs

9bb215065 2026-08-24 00:46:54
fix(collection): trust loader-provided NFTs to avoid redundant initial refetch

7d7a7021d 2026-08-24 00:41:33
fix(collection): pass resolved numeric collection id, not slug, to searchNFTs

0a3616a76 2026-08-23 22:15:53
fix(collection): improve breadcrumb chain label and valid JSON-LD SEO data

8fddb0e10 2026-08-23 22:11:48
fix:
restore breadcrumb JSON-LD on collection pages

6a64c4c45 2026-08-23 21:49:53
chore:
update sitemaps, style.css, and add favicon

259b07185 2026-08-23 21:48:04
feat(ssr): hydrate loader and API responses from SSR into client

bc29dffcf 2026-08-23 21:36:19
fix(metadata): include chain segment in collection breadcrumb JSON-LD

a6e692ec6 2026-08-23 21:26:26
fix(metadata): add collection breadcrumb JSON-LD and fix SSR metadata emission

f784722ad 2026-08-23 21:11:21
fix(metadata): emit dynamic page metadata in SSR and add collection breadcrumb JSON-LD

d25af4ecc 2026-08-23 18:41:09
feat:
branch collInfo lookup by slug type in collection// route

a10ea3fd4 2026-08-23 18:36:24
feat:
align getCollectionInfo API with backend collInfo contract

33fc1046d 2026-08-23 18:20:55
fix:
slugify chain segment in collection card links

ae92bc1c5 2026-08-23 18:16:07
fix:
use chain + canonicalName collection links in SecCollectionList

be4888fb2 2026-08-23 16:44:23
chore:
set collections page size to 24 and rebuild sitemaps

e1d10faba 2026-08-23 16:42:25
chore:
increase collections page size to 26

a21629d11 2026-08-23 16:40:44
fix:
pass chainId to search backend and update pagination UI

7e482eb7d 2026-08-23 16:23:08
chore:
add TODO.md and wire it into AGENTS.md conventions

3ca396c80 2026-08-20 17:09:39
chore:
update Monad testnet/mainnet chain data from official docs/RPC

09a7de22e 2026-08-20 01:18:56
feat:
expose mariadb on 0.0.0.0 with firewall allowlist for tailscale0 and lo