Development Update — 2026-09-16

by Jamie

Development Update — 2026-09-16

Share

Overview: Where Development Is Heading

The backend is prioritizing enhancements to NFT metadata and collection lookup functionality, with recent work adding support for canonical collection names, optimizing database queries for nftMetaById listings, and backfilling related canonicalName data across existing collection records. Alongside these feature improvements, the team is also hardening core infrastructure reliability, including fixes for IPFS rate limiting, a new chainWatch backfill mode to rewrite legacy inline asset URLs to a CDN, cleanup of unused server routes, and fixes for the binUpload endpoint.

Overview: Where Development Is Heading

The frontend repo is currently focused on two core development priorities: refining mobile navigation user experience and cutting redundant network requests to improve performance. Recent work includes polishing mobile nav interactions (including collapse behavior, alignment, transitions, and dropdown styling) alongside optimizations that reuse grid metadata and pre-populate collection image srcs with CDN cache URLs to eliminate unnecessary backend and CDN fetches, with minor cleanup of unused shell components and build artifacts also in progress.

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

0186d78 2026-09-14 00:25:25
perf:
add composite (for_coll_id, auctionID) index for nftMetaById listings order

3f24e1f 2026-09-14 00:00:34
add X-STN-SERVEDBY header to responses from 404 handler

5ddf977 2026-09-11 07:59:31
fix binUpload

ab23cec 2026-09-11 06:49:59
fix:
skip Joi validation on /binupload multipart route

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

Frontend Commits

2bf8246fb 2026-09-14 10:18:55
chore:
remove preloader shell from index.html

728d644d3 2026-09-14 10:18:07
chore:
regenerate sitemap index timestamps (build artifact)

244c28071 2026-09-14 09:13:39
feat:
SSR prepopulates collection grid img src with CDN cache URL

2ef330778 2026-09-14 09:03:23
feat:
SSR prepopulates collection card img src with CDN cache URL

6d2a502f9 2026-09-13 23:27:30
perf:
reuse grid metadata in item modal to skip backend fetch

7b5ba168a 2026-09-13 23:16:42
fix:
clicking outside the open mobile nav panel collapses it

e029cd8b3 2026-09-13 23:05:54
fix:
collapse mobile nav panel when an item or sub-item is selected

3ea57eee5 2026-09-13 22:59:57
perf:
reuse grid image URL in item modal to avoid duplicate CDN fetch

dec994c51 2026-09-13 22:52:47
feat:
fade+slide transition on mobile nav show/hide

d6882e7e9 2026-09-13 22:50:51
fix:
mobile nav top offset calc(var(--header-height) - 20px)

dafef3132 2026-09-13 22:49:27
fix:
mobile nav panel drops just below burger, right edges aligned

07a5e35b6 2026-09-13 22:44:57
refactor:
remove dead sidenav-toggler li from SecNavItem

c0a8211a3 2026-09-13 22:37:43
fix:
right-align caret on mobile nav items with submenus

ee6cb32e1 2026-09-13 22:37:05
fix:
left-align text in mobile nav dropdown items

dcb9d560b 2026-09-13 22:36:25
fix:
mobile nav items fill full panel width

517c0cf3c 2026-09-13 22:35:03
docs:
AGENTS.md — local CSS is source of truth; document nav-dropdown-mobile scoping rule

18be5819d 2026-09-13 22:33:50
fix:
center mobile nav items; sub-menus pop out as floating dropdowns

07656b659 2026-09-13 22:32:05
fix:
nav-dropdown-mobile height fits content instead of full viewport

87dc6156e 2026-09-13 22:30:17
fix:
drop overflow-y from mobile nav panel so it sizes to content

9089d6b1e 2026-09-13 22:29:48
fix:
mobile nav sub-items collapsed by default; right-aligned full-width rows

d5bb2cdef 2026-09-13 22:25:33
fix:
raise mobile header stacking context so nav-dropdown-mobile overlay clears the floating footer

350c90cf0 2026-09-13 22:24:41
feat:
dedicated nav-dropdown-mobile style for mobile main nav

b76a849d3 2026-09-13 22:22:13
fix:
mobile navbar drop-menu overlay with position:fixed + !important

95c2c8fa4 2026-09-13 22:20:05
fix:
make #mainNavbar a flex row on desktop so right nav group is inline and pinned right

e4be015fd 2026-09-13 22:14:27
fix:
desktop nav right-aligned; mobile nav uses nav-dropdown-item overlay