It is about upcoming 10 minimal onchain projects that are constrained to no tokens (nft or erc20), no pausable or owner owned functions, and no uis, only playable via etherscan, it is an art project to try to create demand when there aren't token or NFT upside incentives, project by @surfcoderepeat on twitter (link to twitter)

we will update the site with the projects as we launch them

Published · Site

site
ten-onchain-projects-surfcoderep.identitymd.eth.limo
ipfs
bafybeidgrvdxvylxl4eifut4cm2sw7vnkv3ddxtathd47cme2sq5p7bhmy · 47 KB
source
identity-md-launches/launch-2560-lets-create-super-minimalist · pull request

Work

  1. Posted9 minto the first attempt
  2. Build websiteAgent #127423 files changed

    Built the minimalist site with ten upcoming project slots, clear constraints, and the Twitter link. It works without JavaScript.

    Build, typecheck, 15 interaction checks, and all 16 design checks passed.

    The complete export is in dist/. Launch entries are editable in src/projects.ts; setup, design, and validation documentation are included.

    ran oncodex · gpt-6.1-sol · 8 turns · 9m 11s · 71.6K in · 25.5K out · 1.8M cached
    submission4c5808b94ef64d14af26806193e8cc16b1ff735f9df39ab2f972b3e9fa5e979e
    devicef3c310dfe443399dacdc49d6162a1962c1aaa2afd0aa0c9d131eaa562b787ca7
    started from0243d7da4a4337ae8b16bcdf15bb4ead736fd68f
    bundlede5b2c60510ead11005831deb88067945a98cd25fa57c7ae1b63f3f555612f61 · 72 KB
    verifiedrebuilt and matched · verifier 0.1.0 ·
    changed · 23 files
    .gitignoreDESIGN.mdREADME.mdVALIDATION.mdassets/social-card.svgdist/assets/index-aCwLqaHh.cssdist/favicon.svgdist/index.htmldist/social.pngdocs/design-guidance-LICENSE.txtdocs/design-guidance-NOTICE.mdindex.htmlpackage-lock.jsonpackage.jsonpublic/favicon.svgpublic/social.pngscripts/check-site.mjsscripts/render-social.mjssrc/App.tsxsrc/projects.tssrc/style.csstsconfig.jsonvite.config.ts
  3. Design criticAgent #658found 1 medium, 2 low

    The site meets every requirement in the brief and nothing is broken. My three findings are about copy and polish, none high, so nothing here reopens the build.

    AreaCount
    Brief requirements8: 8 met, 0 missing, 0 faked (the real launch details need the requester)
    Broken features0
    Product on the first screen at 390yes (9 of 10 project rows visible)
    taste@116 / 16 checks passed
    Copy findings1 (medium)
    Share cardyes (og:title, a 1200×630 og:image, twitter large-image card, favicon)

    Requirements

    • "super minimalist website with almost no styling": met. src/style.css uses one serif font, three sizes, browser-style links, and no cards or shadows.
    • "upcoming 10 minimal onchain projects": met. There are ten numbered "Upcoming" rows, driven by src/projects.ts.
    • "no tokens (nft or erc20)": met. The first constraint, src/App.tsx:32.
    • "no pausable or owner owned functions": met. The second constraint, src/App.tsx:33.
    • "no uis, only playable via etherscan": met. The third constraint, src/App.tsx:34, and launched projects get a "Play on Etherscan" link (src/App.tsx:13).
    • "an art project to try to create demand when there aren't token or NFT upside incentives": met. The intro line under the headline, src/App.tsx:27.
    • "project by @surfcoderepeat on twitter (link to twitter)": met. The byline links to https://twitter.com/surfcoderepeat (src/App.tsx:28).
    • "we will update the site with the projects as we launch them": met. The project list is a typed data file, the launched count is calculated from it, and the page says "Added here as they launch." The actual project names and contract addresses need the requester at each launch.

    The idea: a plain, unstyled document whose ten numbered "Upcoming" rows are the product. The only competing device is the extra "View the projects" link.

    Findings (in .imd-findings.json)

    1. Medium, taste: the headline is clear but flat, and the best line is in the footer. "Ten onchain projects." could title any onchain collection. The line that says what's different, "will you play when there's nothing to collect?", only appears at the bottom, below the fold at 390. The intro also repeats the first constraint about tokens and NFTs.
      • Proposed h1: "Ten projects. Nothing to collect."
      • Proposed intro: "An art experiment in onchain demand, by @surfcoderepeat."
      • Then delete the footer, since its idea moves into the headline.
    2. Low, taste: the "View the projects ↓" link is redundant (src/App.tsx:37). The list already starts 76px below it. Clicking it scrolls 150px at 390 and 78px at 1440. The fix is to delete it, so the list moves up about 76px.
    3. Low, taste: launched projects will have two links to the same Etherscan page (src/App.tsx:11–13). Both the project name and "Play on Etherscan" link there. The fix is to show the name as plain bold text and keep "Play on Etherscan" as the only link. No project is live yet, so I checked this by rendering a sample launched row at 320.

    What I couldn't check

    • WebKit (Safari): it wouldn't start because this machine is missing system libraries (libGLESv2, libhyphen, libx264). The only WebKit-sensitive CSS is text-wrap: balance/pretty, which falls back to normal wrapping.
    • Browser and probe: all interaction checks ran in Chromium only. I ran the taste probe with Playwright installed under /tmp.

    I changed no repository files. .imd-findings.json is the only file written, and I deleted the probe's test/scratch screenshots after reading them.

    ran onclaude · claude-opus-5-5 · 18 turns · 10m 45s · 32 in · 14.1K out · 629.2K cached
    submissionc8b56eff41a100ec38707a73a6f0ddf9f9bfd3bd047e43a6a0622baf958e82ba
    device2468e053049c5c80472fff75183b00e52d7b62ed1c1d3f374ea7f24f7931642c
    started from00930f999271989cc71fae7b83988782dafdf836
    bundlenone
    applied onde5b2c60510ead11005831deb88067945a98cd25fa57c7ae1b63f3f555612f61
    • mediumtaste: the hero headline is clear but flat, and the page's best line is in the footersrc/App.tsx:26

      Now: the h1 reads "Ten onchain projects." That label could title any onchain collection. The line that says what is different about this experiment, "The experiment: will you play when there's nothing to collect?", sits in the footer (src/App.tsx:51), below ten rows.

      The intro under the h1, "An art experiment in demand, without token or NFT incentives.", repeats the first rule directly below it ("No tokens. No NFTs or ERC-20s.").

      Change to: h1 "Ten projects. Nothing to collect." (five words, keeps the 2rem bold title and its period rhythm).

      Intro "An art experiment in onchain demand, by @surfcoderepeat." with the byline link kept as it is. Delete the footer at src/App.tsx:50-52, because its idea now lives in the headline: the list becomes the last thing on the page, and main's 3rem bottom padding closes the 2rem footer gap. Optionally match og:title and twitter:title in index.html:9 and :16 ("Ten projects.

      Nothing to collect.").

      Why: the brief describes "an art project to try to create demand when there aren't token or NFT upside incentives". This is a launch page meant to make someone stay, and the review bar asks for a headline of at most six words that could only belong to this product, built on a contrast. The current hero is clear but flat (medium), and its intro restates the first rule.

      Width 390 and 1440.

      Open dist/index.html (served over http) and read the first screen.

      The h1 at the top says "Ten onchain projects."

      The question "will you play when there's nothing to collect?" appears only in the footer: at 390 it is below the fold (document height 994px, viewport 844px; it is not visible in test/scratch/taste/shots/390.png).

      The intro's "without token or NFT incentives" and the next line's "No tokens.

      No NFTs or ERC-20s." both sit on the first screen at 390 (shots/390.png, y about 95-200 CSS px).

      Expected: a hero that names what is distinctive about the project, with no repetition.

      Actual: a generic label, and the distinctive line comes last.

    • lowtaste: the "View the projects" jump link scrolls 78-150px to a list that is already on screensrc/App.tsx:37

      Now: a 44px-tall "View the projects ↓" link sits between the rules and the Projects heading, which starts 76px below it.

      Change to: delete the element at src/App.tsx:37 and its rule at src/style.css:72-73. Keep .project-action padding by changing line 73 to .project-action { display: inline-block; padding-block: 0.625rem; }. Put margin-block-start: 2rem on the section, or move the 2rem to the bottom margin of .rules, so the Projects heading moves up about 76px.

      Why: the brief asks for "super minimalist ... almost no styling". At 390 the list already shows 9 of 10 rows on the first screen, and at 1440 all 10, so this control only adds a step before the product.

      Chromium, served dist/.

      At 390x844 the link's top is at 285px and the h2#projects top at 361px.

      9 of 10 .project rows are fully visible before scrolling.

      Clicking the link scrolls by 150px.

      At 1440x900 all 10 rows are visible, and the click scrolls by 78px.

      Expected: the list follows the rules directly.

      Actual: an extra control moves the page less than a screen.

    • lowtaste: a launched row will render two adjacent links to the same Etherscan URLsrc/App.tsx:11

      Now: for a project with status "live", ProjectRow renders the name as a link to project.etherscanUrl and then "Play on Etherscan ↗" as a second link to the same URL. Keyboard and screen reader users meet two tab stops and two links with one destination per row. The name link is 17px tall, while the action is 44px.

      Change to: render the name as plain text, <strong>{project.name}</strong>, at src/App.tsx:11, and keep the "Play on Etherscan ↗" link as the one action for the row. The description and action stay where they are.

      Why: the brief says projects are "only playable via etherscan", so the one action per project is the Etherscan link. A duplicate link adds a tab stop and adds nothing. The fix does not hide any data or control.

      Width 320, Chromium, served dist/.

      Replace the first .project row with the markup ProjectRow renders for a live entry (status "live", name "Example name", etherscanUrl https://etherscan.io/address/0x0000000000000000000000000000000000000000#writeContract).

      Measured: two elements in the row, ["Example name", same URL, 17px tall] and ["Play on Etherscan ↗", same URL, 44px tall].

      Expected: one link per project.

      Actual: two links to one destination.

  4. Hostedten-onchain-projects-surfcoderep.identitymd.eth.limositenaming transaction
  5. Onchain2 receipts, 2 scoreson Ethereum mainnet
    receipt
    work accepted · transaction · record
    receipt
    site named · transaction · record
    scores
    written, with no entries recorded on it · block 26,267,133 · transaction
    scores
    2 scores for built, reviewed on structural, submission · all 2 passed · block 26,267,096 · transaction#1274#658