Skip to content

Hash21 — Bitcoin Art Gallery with Lightning & On-Chain Certification#26

Open
warrior-lai wants to merge 3 commits intolacrypta:mainfrom
warrior-lai:add-hash21
Open

Hash21 — Bitcoin Art Gallery with Lightning & On-Chain Certification#26
warrior-lai wants to merge 3 commits intolacrypta:mainfrom
warrior-lai:add-hash21

Conversation

@warrior-lai
Copy link
Copy Markdown

@warrior-lai warrior-lai commented Mar 25, 2026

Hash21

Plataforma de arte soberano sobre Bitcoin. Permanencia para la obra. Soberanía para el artista.

🔗 Links

✅ Features en Producción

  • Zaps NIP-57 — Propinas Lightning con firma Nostr server-side
  • 🌩️ WebLN (Alby) — 1-click payment desde extensión
  • 💳 LNURL-pay — Invoice directo a wallet del artista
  • 🛒 Shop Lightning — Productos con checkout QR, precios en sats
  • 📜 Certificación On-Chain — OpenTimestamps → hash anclado en Bitcoin
  • 🔍 Verificación Pública — Cualquiera puede verificar existencia de obra
  • 👥 Hub de Artistas — Perfiles con bio, links, Lightning Address
  • 🔐 Admin Panel — CRUD completo + gestión de usuarios + roles
  • 🌍 Bilingüe — Español / English

🛠️ Stack

NIP-57 | LNURL-pay | Lightning Address | WebLN | Nostr (kind 9734/9735) | OpenTimestamps | Supabase | Vercel Serverless | Vitest (59 tests)

👥 Equipo

Rol Nombre
Founder & Artist Lai⚡️
AI Dev Ragnar 🪓

Summary by CodeRabbit

Release Notes

  • New Features
    • Added new project to the portfolio: Hash21, featuring backend infrastructure, live demo environment, and public repository access for developers.

@coderabbitai
Copy link
Copy Markdown

coderabbitai bot commented Mar 25, 2026

📝 Walkthrough

Walkthrough

The PR reformats foundations.json from compact to spaced JSON notation (adding spaces after colons and brackets) and appends a new project entry with id "hash21", including backend, demo, tech stack, team, description, and submission metadata dated 2026-03-25.

Changes

Cohort / File(s) Summary
JSON Data Formatting & Project Addition
data/projects/foundations.json
Reformats entire file from compact to readable JSON format (spaces after colons, brackets, and commas). Adds new project object for "hash21" with fields: id, name, repo, backend, demo, tech stack, team, description, status ("submitted"), and submittedAt ("2026-03-25").

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Possibly related PRs

Poem

🐰 Hop hop, a formatting spree!
JSON so neat, spaces three by three!
Hash21 joins the crowd,
Our JSON now proud!

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately describes the main project being added: a Bitcoin art gallery platform called Hash21 with Lightning Network payments and on-chain certification features.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Copy Markdown

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🧹 Nitpick comments (1)
data/projects/foundations.json (1)

426-429: backend is currently not surfaced in the UI.

Line 427 adds useful metadata, but hackathons/foundations.html (Lines 622-680) only renders repo and demo, so backend is silently ignored. Consider rendering a backend link or dropping the field if intentionally unused.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@data/projects/foundations.json` around lines 426 - 429, The JSON "backend"
field in foundations.json is being added but not rendered by the
hackathons/foundations.html template; update the template code that currently
renders only "repo" and "demo" to also conditionally render a "backend" link
(e.g., check item.backend and output an anchor with appropriate label/aria) or
remove the "backend" key from the JSON if you prefer not to display it; ensure
you update the same rendering block that references repo/demo so the backend URL
is surfaced consistently across entries.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@data/projects/foundations.json`:
- Around line 454-459: The _instructions.optionalFields array is missing the
newly introduced "backend" field, causing a contract mismatch; update the JSON
under the _instructions.optionalFields key to include the string "backend"
alongside the existing entries ("repo", "demo", "tech", "submittedAt") so
contributors see that backend is optional—ensure you add the literal "backend"
value to the optionalFields array where optionalFields is defined.

---

Nitpick comments:
In `@data/projects/foundations.json`:
- Around line 426-429: The JSON "backend" field in foundations.json is being
added but not rendered by the hackathons/foundations.html template; update the
template code that currently renders only "repo" and "demo" to also
conditionally render a "backend" link (e.g., check item.backend and output an
anchor with appropriate label/aria) or remove the "backend" key from the JSON if
you prefer not to display it; ensure you update the same rendering block that
references repo/demo so the backend URL is surfaced consistently across entries.

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: e2f3b102-a653-4c81-816a-41972c06d2e1

📥 Commits

Reviewing files that changed from the base of the PR and between 72119f1 and 96ff4b1.

📒 Files selected for processing (1)
  • data/projects/foundations.json

Comment on lines +454 to 459
"optionalFields": [
"repo",
"demo",
"tech",
"submittedAt"
],
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Add backend to documented optional fields.

Line 427 introduces backend, but Lines 454-459 don’t list it under _instructions.optionalFields. This creates a contributor-facing contract mismatch.

🛠 Proposed fix
       "optionalFields": [
          "repo",
+         "backend",
          "demo",
          "tech",
          "submittedAt"
       ],
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
"optionalFields": [
"repo",
"demo",
"tech",
"submittedAt"
],
"optionalFields": [
"repo",
"backend",
"demo",
"tech",
"submittedAt"
],
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@data/projects/foundations.json` around lines 454 - 459, The
_instructions.optionalFields array is missing the newly introduced "backend"
field, causing a contract mismatch; update the JSON under the
_instructions.optionalFields key to include the string "backend" alongside the
existing entries ("repo", "demo", "tech", "submittedAt") so contributors see
that backend is optional—ensure you add the literal "backend" value to the
optionalFields array where optionalFields is defined.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant