尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證Design badges and certificates with shapes, fonts, patterns and images, version them, and issue them with expiring claim links
翻譯準備中
正在載入完整 README。
檢視完整 README ↗Design a badge or a certificate from a preset, save versions, publish it, and hand it out with claim links that expire
Enamel is the studio half of Sash. You pick one of 60 finished designs, change the words, and you have something worth handing out in about half a minute. Then you publish it and mint a claim link with an expiry and a seat limit, and the people who follow that link hold the badge in their own wallet on sash.neorgon.com.
Everything it makes is a parody credential, and it says so on the artefact itself. The renderer draws a provenance strip into every badge and certificate, in the editor as well as on the export, carrying the origin, the issuing handle and the address a reader can check the credential at. There is no way to switch it off, which is the point.
Live: enamel.neorgon.com
ES modules require an HTTP server (not file://):
make serve # http://localhost:8885
make test # Preset, typography and local-library regression checks
make test-browser # Live studio flows, using the monorepo's Playwright install
There is nothing else to start. Every page names the Convex deployment in a
<meta name="neo-convex-url">, and that deployment belongs to
projects/sash-site/convex/, so a read of a published template works from the
first load.
Browser checks also support BROWSER=firefox or BROWSER=webkit,
STUDIO_URL, ARTIFACT_DIR, and a PLAYWRIGHT_MODULE module path when run
outside the monorepo. Screenshots, PNG/SVG downloads and a sample PDF are
written to /tmp/enamel-studio-checks by default.
Sign-in is the Neorgon Auth Kit, and it does not work on localhost. The
site carries the fleet's production Clerk key, and Clerk refuses a production
key on any origin that is not neorgon.com. The kit settles signed out, so the
editor, the presets, the warnings, the downloads, the public catalogue and every
read of a published template work; anything that writes needs the deployed site.
There is no convex/ folder here. Enamel points a ConvexHttpClient at the
deployment projects/sash-site/convex/ owns and calls the same functions. The
URL is a <meta name="neo-convex-url"> on every page, so the two sites cannot
quietly disagree about it.
enamel-site/
├── index.html # The studio: editor, preview, presets, downloads, publish
├── templates.html # The library, the public catalogue, admin open by id
├── links.html # Claim links and the issuer dashboard
├── 404.html
├── css/
│ ├── style.css # Site styles. Tokens come from the CDN base.css
│ ├── frame.css # Takes a framed page out of view
│ └── neorgon-*.css # Header, footer, beacon, auth and insignia kits, vendored
├── js/
│ ├── app.js # Entry point, one controller per page
│ ├── state.js # The working design, one per kind, and the session
│ ├── fields.js # The editor declared as paths into the design document
│ ├── editor.js # Those fields as controls, and one delegated listener
│ ├── preview.js # The kit draws; this appends what it returns
│ ├── warnings.js # The arc and contrast measurements
│ ├── exporting.js # The PNG and SVG download controls
│ ├── studio.js # index.html
│ ├── library.js # templates.html
│ ├── catalogue.js # The public catalogue on templates.html
│ ├── links.js # links.html
│ ├── art.js # Shrink, upload, attach
│ ├── api.js # The one place this site talks to Convex
│ ├── auth.js # Listens to the Auth Kit for the session
│ ├── frame.js # The notice a framed page shows instead
│ ├── render.js # Shared DOM pieces
│ ├── events.js # The modal shell
│ ├── utils.js # Shared helpers
│ ├── convex.js # Client and function map, shared with Sash
│ ├── insignia/ # The Insignia Kit, vendored. Never edited here
│ └── neorgon-*.js # Header, footer, beacon, DOM and Auth kits, vendored
├── docs/
│ ├── architecture.svg
│ └── shape-catalogue-rules.md
├── favicon.ico # Generated from the hub card, with the rest of the set
├── robots.txt
├── sitemap.xml
├── CNAME
├── Makefile
├── PRODUCT.md
└── README.md