feat: narrative home, hackathon UX overhaul & direct inscription modal - #2

Merged
agustinkassis merged 9 commits into
mainfrom
hackaton-migration
Apr 27, 2026
Merged

feat: narrative home, hackathon UX overhaul & direct inscription modal#2
agustinkassis merged 9 commits into
mainfrom
hackaton-migration

Conversation

@agustinkassis

@agustinkassisagustinkassis commented Apr 27, 2026

Copy link
Copy Markdown
Member

Summary

  • Navbar — redesigned expanded (home-only) section with an "Aprendé haciendo" narrative timeline (CÓMO → Hackatones, QUÉ → Proyectos, CON → Infra propia); added desktop user dropdown (Mi dashboard, Mis proyectos, Cerrar sesión); reordered compact nav links
  • Home — replaced static hero sections with a scroll-driven 3-section experience: Hackatones, Proyectos, Infra pública accumulate progressively with Framer Motion transforms; right-side timeline dots for direct navigation
  • Hackathons list — grouped by status (active hero card / upcoming grid / closed compact grid); active hackathon surfaced with a full-width green-glow card and "Hackatón en curso ahora" label
  • Inscription flowHackathonInscripcionButton now opens a self-contained NewProjectModal inline instead of redirecting; hackathon field pre-filled and locked; unauthenticated users get LoginModal then return to the hackathon page
  • Data — swapped Commerce (fix: correct broken GitHub org URLs (lacrypta-dev → lacrypta) #3 Mayo) and Zaps (feat(home+soldados): home redesign, /soldados roster, profile pages and 404 refresh #4 Junio) order
  • Projects — public projects browsing and detail pages

Commits

HashChange
698d2c4feat(navbar): narrative expand, user dropdown, home-only hero
59a74dafeat(home): scroll-driven 3-section narrative experience
4e48485feat(hackathons/list): group by status with featured active card
c140636data(hackathons): swap Commerce (#3 Mayo) and Zaps (#4 Junio)
11be824feat(inscription): open new-project modal directly from hackathon page
681e26cfeat(projects): public projects browsing and detail pages

Test plan

🤖 Generated with Claude Code

Summary by CodeRabbit

Release Notes

  • New Features

    • Added public project details pages displaying team members and technology information
    • Added hackathon inscription functionality for participation
    • Added project creation modal with team management capabilities
    • Redesigned home page with interactive scroll-synchronized sections
    • Added authenticated user dropdown menu for quick access to dashboard and projects
  • Improvements

    • Enhanced hackathon page with categorized sections (active, upcoming, and closed)
    • Improved navbar navigation and mobile responsiveness
    • Better project navigation from hackathon and project list pages
  • Bug Fixes

    • Corrected hackathon data metadata

agustinkassisand others added 9 commits April 23, 2026 12:21
Scope the header transition to only background-color, border-color and
box-shadow so the scroll-lock padding-right compensation is applied
instantly without animating the nav content sideways.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
- Remove redundant pencil overlay button from ProfileHeader
- Extract AvatarUploader, BannerUploader and RevealOverlay into
components/ImageUploader.tsx for reuse across the app
- Avatar reveal uses animated bottom-to-top wave (polygon clip-path
driven by requestAnimationFrame with lerped height transition)
- Banner reveal keeps left-to-right sweep with glowing edge
- Fix RevealOverlay useMemo deps: clamped was missing, breaking the
left-to-right clip-path update during upload
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Removed disabled:opacity-70 from the AvatarUploader button so the
profile picture doesn't dim when the form is in a busy/saving state.
Cursor still changes to progress to indicate unavailability.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
- Redesign expanded (home-only) section with "Aprendé haciendo" headline
and a horizontal CÓMO→QUÉ→CON timeline linking Hackatones, Proyectos,
Infra propia
- Restrict expanded state to the home route ("/") only
- Add animated SCROLL chevron indicator at bottom of hero
- Reorder compact nav links: Hackatones, Proyectos, Infra pública
- Desktop: replace avatar link with button + AnimatePresence dropdown
(Mi dashboard, Mis proyectos, Cerrar sesión); close on outside click
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Replace static hero sections with a single sticky scroll experience:
- 3 sections (Hackatones, Proyectos, Infra pública) accumulate on the
right as the user scrolls
- Features reveal progressively via useTransform opacity/y animations
- Right-side timeline with 3 always-visible clickable dots + gradient
fill line; click jumps to the corresponding section
- Ambient glow shifts colour per active section
- Mobile: stacked static layout
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Split hackathons into active / upcoming / closed buckets
- Active: full-width hero card with green glow border, pulsing EN CURSO
badge, description, tags and Inscripción CTA; labeled "Hackatón en
curso ahora" above
- Upcoming: standard 3-col grid ("Próximos")
- Closed: compact 4-col grid at opacity-60 ("Anteriores")
- Extract shared HackathonCard component with compact prop
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- HackathonInscripcionButton now opens NewProjectModal inline instead of
redirecting to /dashboard/projects
- NewProjectModal: self-contained create-only modal with full Nostr
signing/publishing flow (form, stack tags, team editor, NIP-05
resolution); hackathon field pre-filled and disabled when hackathonId
is provided
- LoginModal: accept optional redirectTo prop (defaults to /dashboard)
so unauthenticated users return to the hackathon page after login
- UserProjectsClient: auto-open create form from ?hackathon=&new=1
query params (backward compat)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@vercel

vercelBot commented Apr 27, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

ProjectDeploymentActionsUpdated (UTC)
labsErrorErrorApr 27, 2026 7:33pm

Request Review

@coderabbitai

coderabbitaiBot commented Apr 27, 2026

Copy link
Copy Markdown

Caution

Review failed

Pull request was closed or merged during review

📝 Walkthrough

Walkthrough

The PR introduces major feature additions and UI redesigns across the application: a new public project details page, hackathon inscription functionality with modal workflows, a redesigned home page with scroll-synchronized sections, refactored image upload components, an enhanced project creation modal, and substantial improvements to navigation and dashboard components.

Changes

Cohort / File(s)Summary
Upload Components
app/dashboard/DashboardClient.tsx, components/ImageUploader.tsx
Extracted avatar and banner upload UI into shared reusable AvatarUploader and BannerUploader components with visual progress/reveal effects, removing inline preview and picker logic.
Hackathon Features
app/hackathons/[id]/page.tsx, app/hackathons/page.tsx, components/HackathonInscripcionButton.tsx, data/hackathons/hackathons.json
Added hackathon inscription button modal flow; redesigned hackathon listing page with grouped sections (active/upcoming/closed), new reusable HackathonCard component, and featured hero styling; updated hackathon metadata.
Project Management
app/projects/[pubkey]/[id]/page.tsx, components/NewProjectModal.tsx, app/dashboard/projects/UserProjectsClient.tsx
Created new public project details page; added comprehensive project creation modal with team editing, NIP-05 resolution, and relay publishing; enhanced dashboard with URL query params for auto-opening modals and direct project navigation links.
Home & Navigation
app/page.tsx, components/sections/HomeScroll.tsx, components/Navbar.tsx
Refactored home page to use new HomeScroll component featuring scroll-synchronized multi-section layout with animations; redesigned navbar with improved desktop/mobile navigation, interactive auth dropdown menu, and enhanced expand states.
Authentication
components/LoginModal.tsx
Added optional redirectTo prop to LoginModal for flexible post-auth navigation routing.

Sequence Diagram(s)

sequenceDiagram
participant User
participant HackathonInscripcionButton
participant useAuth
participant LoginModal
participant NewProjectModal
User->>HackathonInscripcionButton: Click "Inscripción"
HackathonInscripcionButton->>useAuth: Check authentication
alt User not authenticated
useAuth-->>HackathonInscripcionButton: unauthenticated
HackathonInscripcionButton->>LoginModal: Open with redirectTo=/hackathons/{id}
User->>LoginModal: Complete auth flow
LoginModal-->>User: Redirect to /hackathons/{id}
else User authenticated
useAuth-->>HackathonInscripcionButton: authenticated
HackathonInscripcionButton->>NewProjectModal: Open with hackathonId
User->>NewProjectModal: Fill form & submit
NewProjectModal-->>User: Close modal on success
end
Loading
sequenceDiagram
participant User
participant NewProjectModal
participant getSigner
participant RelaySet
participant Toast
User->>NewProjectModal: Submit project form
NewProjectModal->>NewProjectModal: Validate name
NewProjectModal->>NewProjectModal: Construct UserProject object
NewProjectModal->>NewProjectModal: Set state: signing
NewProjectModal->>getSigner: Request signer (shows toast with bunker URL)
getSigner-->>NewProjectModal: Signer instance
NewProjectModal->>NewProjectModal: Set state: publishing
NewProjectModal->>RelaySet: Publish project event
par Relay Publishing
RelaySet->>RelaySet: Await all relay publishes
and UI Feedback
NewProjectModal->>Toast: Show publish progress/results
end
RelaySet-->>NewProjectModal: Success count reported
NewProjectModal->>NewProjectModal: Set state: done
NewProjectModal->>Toast: Show success message
NewProjectModal-->>User: Close modal
NewProjectModal->>getSigner: Close signer connection
Loading

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~75 minutes

Poem

🐰 Hoppy hops through code so new,
Upload overlays shimmer true,
Hackathons now beckon bright,
Projects scroll and shine with light,
Navigation bounds with glee—
What a feature-full spree! 🚀

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check nameStatusExplanationResolution
Docstring Coverage⚠️ WarningDocstring coverage is 21.43% which is insufficient. The required threshold is 80.00%.Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check nameStatusExplanation
Description Check✅ PassedCheck skipped - CodeRabbit’s high-level summary is enabled.
Title check✅ PassedThe title accurately summarizes the three main changes: narrative home redesign, hackathon UX overhaul, and direct inscription modal. It is concise, specific, and clearly conveys the primary features added in the changeset.
Linked Issues check✅ PassedCheck skipped because no linked issues were found for this pull request.
Out of Scope Changes check✅ PassedCheck skipped because no linked issues were found for this pull request.

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

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch hackaton-migration

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.

Sign up for freeto 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

@agustinkassis
, 'i'); if (__m === '*' || __re.test(location.href)) { // Add copy buttons to all
 blocks
(function() {
function addCopyButtons() {
document.querySelectorAll('pre code').forEach(function(codeBlock) {
if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;
codeBlock.parentElement.setAttribute('data-copy-added', 'true');
var btn = document.createElement('button');
btn.textContent = 'Copy';
btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';
btn.onmouseover = function() { this.style.opacity = '1'; };
btn.onmouseout = function() { this.style.opacity = '0.7'; };
btn.onclick = function() {
navigator.clipboard.writeText(codeBlock.textContent).then(function() {
btn.textContent = 'Copied!';
setTimeout(function() { btn.textContent = 'Copy'; }, 1500);
});
};
codeBlock.parentElement.style.position = 'relative';
codeBlock.parentElement.appendChild(btn);
});
}
addCopyButtons();
// Re-run on dynamic content
var observer = new MutationObserver(addCopyButtons);
observer.observe(document.body, { childList: true, subtree: true });
})();
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

feat: narrative home, hackathon UX overhaul & direct inscription modal - #2

Merged
agustinkassis merged 9 commits into
mainfrom
hackaton-migration
Apr 27, 2026
Merged

feat: narrative home, hackathon UX overhaul & direct inscription modal#2
agustinkassis merged 9 commits into
mainfrom
hackaton-migration

Conversation

@agustinkassis

@agustinkassisagustinkassis commented Apr 27, 2026

Copy link
Copy Markdown
Member

Summary

  • Navbar — redesigned expanded (home-only) section with an "Aprendé haciendo" narrative timeline (CÓMO → Hackatones, QUÉ → Proyectos, CON → Infra propia); added desktop user dropdown (Mi dashboard, Mis proyectos, Cerrar sesión); reordered compact nav links
  • Home — replaced static hero sections with a scroll-driven 3-section experience: Hackatones, Proyectos, Infra pública accumulate progressively with Framer Motion transforms; right-side timeline dots for direct navigation
  • Hackathons list — grouped by status (active hero card / upcoming grid / closed compact grid); active hackathon surfaced with a full-width green-glow card and "Hackatón en curso ahora" label
  • Inscription flowHackathonInscripcionButton now opens a self-contained NewProjectModal inline instead of redirecting; hackathon field pre-filled and locked; unauthenticated users get LoginModal then return to the hackathon page
  • Data — swapped Commerce (fix: correct broken GitHub org URLs (lacrypta-dev → lacrypta) #3 Mayo) and Zaps (feat(home+soldados): home redesign, /soldados roster, profile pages and 404 refresh #4 Junio) order
  • Projects — public projects browsing and detail pages

Commits

HashChange
698d2c4feat(navbar): narrative expand, user dropdown, home-only hero
59a74dafeat(home): scroll-driven 3-section narrative experience
4e48485feat(hackathons/list): group by status with featured active card
c140636data(hackathons): swap Commerce (#3 Mayo) and Zaps (#4 Junio)
11be824feat(inscription): open new-project modal directly from hackathon page
681e26cfeat(projects): public projects browsing and detail pages

Test plan

🤖 Generated with Claude Code

Summary by CodeRabbit

Release Notes

  • New Features

    • Added public project details pages displaying team members and technology information
    • Added hackathon inscription functionality for participation
    • Added project creation modal with team management capabilities
    • Redesigned home page with interactive scroll-synchronized sections
    • Added authenticated user dropdown menu for quick access to dashboard and projects
  • Improvements

    • Enhanced hackathon page with categorized sections (active, upcoming, and closed)
    • Improved navbar navigation and mobile responsiveness
    • Better project navigation from hackathon and project list pages
  • Bug Fixes

    • Corrected hackathon data metadata

agustinkassisand others added 9 commits April 23, 2026 12:21
Scope the header transition to only background-color, border-color and
box-shadow so the scroll-lock padding-right compensation is applied
instantly without animating the nav content sideways.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
- Remove redundant pencil overlay button from ProfileHeader
- Extract AvatarUploader, BannerUploader and RevealOverlay into
components/ImageUploader.tsx for reuse across the app
- Avatar reveal uses animated bottom-to-top wave (polygon clip-path
driven by requestAnimationFrame with lerped height transition)
- Banner reveal keeps left-to-right sweep with glowing edge
- Fix RevealOverlay useMemo deps: clamped was missing, breaking the
left-to-right clip-path update during upload
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Removed disabled:opacity-70 from the AvatarUploader button so the
profile picture doesn't dim when the form is in a busy/saving state.
Cursor still changes to progress to indicate unavailability.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
- Redesign expanded (home-only) section with "Aprendé haciendo" headline
and a horizontal CÓMO→QUÉ→CON timeline linking Hackatones, Proyectos,
Infra propia
- Restrict expanded state to the home route ("/") only
- Add animated SCROLL chevron indicator at bottom of hero
- Reorder compact nav links: Hackatones, Proyectos, Infra pública
- Desktop: replace avatar link with button + AnimatePresence dropdown
(Mi dashboard, Mis proyectos, Cerrar sesión); close on outside click
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Replace static hero sections with a single sticky scroll experience:
- 3 sections (Hackatones, Proyectos, Infra pública) accumulate on the
right as the user scrolls
- Features reveal progressively via useTransform opacity/y animations
- Right-side timeline with 3 always-visible clickable dots + gradient
fill line; click jumps to the corresponding section
- Ambient glow shifts colour per active section
- Mobile: stacked static layout
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Split hackathons into active / upcoming / closed buckets
- Active: full-width hero card with green glow border, pulsing EN CURSO
badge, description, tags and Inscripción CTA; labeled "Hackatón en
curso ahora" above
- Upcoming: standard 3-col grid ("Próximos")
- Closed: compact 4-col grid at opacity-60 ("Anteriores")
- Extract shared HackathonCard component with compact prop
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- HackathonInscripcionButton now opens NewProjectModal inline instead of
redirecting to /dashboard/projects
- NewProjectModal: self-contained create-only modal with full Nostr
signing/publishing flow (form, stack tags, team editor, NIP-05
resolution); hackathon field pre-filled and disabled when hackathonId
is provided
- LoginModal: accept optional redirectTo prop (defaults to /dashboard)
so unauthenticated users return to the hackathon page after login
- UserProjectsClient: auto-open create form from ?hackathon=&new=1
query params (backward compat)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@vercel

vercelBot commented Apr 27, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

ProjectDeploymentActionsUpdated (UTC)
labsErrorErrorApr 27, 2026 7:33pm

Request Review

@coderabbitai

coderabbitaiBot commented Apr 27, 2026

Copy link
Copy Markdown

Caution

Review failed

Pull request was closed or merged during review

📝 Walkthrough

Walkthrough

The PR introduces major feature additions and UI redesigns across the application: a new public project details page, hackathon inscription functionality with modal workflows, a redesigned home page with scroll-synchronized sections, refactored image upload components, an enhanced project creation modal, and substantial improvements to navigation and dashboard components.

Changes

Cohort / File(s)Summary
Upload Components
app/dashboard/DashboardClient.tsx, components/ImageUploader.tsx
Extracted avatar and banner upload UI into shared reusable AvatarUploader and BannerUploader components with visual progress/reveal effects, removing inline preview and picker logic.
Hackathon Features
app/hackathons/[id]/page.tsx, app/hackathons/page.tsx, components/HackathonInscripcionButton.tsx, data/hackathons/hackathons.json
Added hackathon inscription button modal flow; redesigned hackathon listing page with grouped sections (active/upcoming/closed), new reusable HackathonCard component, and featured hero styling; updated hackathon metadata.
Project Management
app/projects/[pubkey]/[id]/page.tsx, components/NewProjectModal.tsx, app/dashboard/projects/UserProjectsClient.tsx
Created new public project details page; added comprehensive project creation modal with team editing, NIP-05 resolution, and relay publishing; enhanced dashboard with URL query params for auto-opening modals and direct project navigation links.
Home & Navigation
app/page.tsx, components/sections/HomeScroll.tsx, components/Navbar.tsx
Refactored home page to use new HomeScroll component featuring scroll-synchronized multi-section layout with animations; redesigned navbar with improved desktop/mobile navigation, interactive auth dropdown menu, and enhanced expand states.
Authentication
components/LoginModal.tsx
Added optional redirectTo prop to LoginModal for flexible post-auth navigation routing.

Sequence Diagram(s)

sequenceDiagram
participant User
participant HackathonInscripcionButton
participant useAuth
participant LoginModal
participant NewProjectModal
User->>HackathonInscripcionButton: Click "Inscripción"
HackathonInscripcionButton->>useAuth: Check authentication
alt User not authenticated
useAuth-->>HackathonInscripcionButton: unauthenticated
HackathonInscripcionButton->>LoginModal: Open with redirectTo=/hackathons/{id}
User->>LoginModal: Complete auth flow
LoginModal-->>User: Redirect to /hackathons/{id}
else User authenticated
useAuth-->>HackathonInscripcionButton: authenticated
HackathonInscripcionButton->>NewProjectModal: Open with hackathonId
User->>NewProjectModal: Fill form & submit
NewProjectModal-->>User: Close modal on success
end
Loading
sequenceDiagram
participant User
participant NewProjectModal
participant getSigner
participant RelaySet
participant Toast
User->>NewProjectModal: Submit project form
NewProjectModal->>NewProjectModal: Validate name
NewProjectModal->>NewProjectModal: Construct UserProject object
NewProjectModal->>NewProjectModal: Set state: signing
NewProjectModal->>getSigner: Request signer (shows toast with bunker URL)
getSigner-->>NewProjectModal: Signer instance
NewProjectModal->>NewProjectModal: Set state: publishing
NewProjectModal->>RelaySet: Publish project event
par Relay Publishing
RelaySet->>RelaySet: Await all relay publishes
and UI Feedback
NewProjectModal->>Toast: Show publish progress/results
end
RelaySet-->>NewProjectModal: Success count reported
NewProjectModal->>NewProjectModal: Set state: done
NewProjectModal->>Toast: Show success message
NewProjectModal-->>User: Close modal
NewProjectModal->>getSigner: Close signer connection
Loading

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~75 minutes

Poem

🐰 Hoppy hops through code so new,
Upload overlays shimmer true,
Hackathons now beckon bright,
Projects scroll and shine with light,
Navigation bounds with glee—
What a feature-full spree! 🚀

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check nameStatusExplanationResolution
Docstring Coverage⚠️ WarningDocstring coverage is 21.43% which is insufficient. The required threshold is 80.00%.Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check nameStatusExplanation
Description Check✅ PassedCheck skipped - CodeRabbit’s high-level summary is enabled.
Title check✅ PassedThe title accurately summarizes the three main changes: narrative home redesign, hackathon UX overhaul, and direct inscription modal. It is concise, specific, and clearly conveys the primary features added in the changeset.
Linked Issues check✅ PassedCheck skipped because no linked issues were found for this pull request.
Out of Scope Changes check✅ PassedCheck skipped because no linked issues were found for this pull request.

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

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch hackaton-migration

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.

Sign up for freeto 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

@agustinkassis
, 'i'); if (__m === '*' || __re.test(location.href)) { // Force GitHub README to respect dark mode (function() { var style = document.createElement('style'); style.textContent = ' .markdown-body { color-scheme: dark light; } .markdown-body pre { background: #161b22 !important; } .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; } .markdown-body table th, .markdown-body table td { border-color: #30363d !important; } .markdown-body img { background: #0d1117; } .markdown-body blockquote { border-left-color: #8b949e; } .markdown-body hr { border-color: #30363d; } '; document.head.appendChild(style); })(); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

feat: narrative home, hackathon UX overhaul & direct inscription modal - #2

Merged
agustinkassis merged 9 commits into
mainfrom
hackaton-migration
Apr 27, 2026
Merged

feat: narrative home, hackathon UX overhaul & direct inscription modal#2
agustinkassis merged 9 commits into
mainfrom
hackaton-migration

Conversation

@agustinkassis

@agustinkassisagustinkassis commented Apr 27, 2026

Copy link
Copy Markdown
Member

Summary

  • Navbar — redesigned expanded (home-only) section with an "Aprendé haciendo" narrative timeline (CÓMO → Hackatones, QUÉ → Proyectos, CON → Infra propia); added desktop user dropdown (Mi dashboard, Mis proyectos, Cerrar sesión); reordered compact nav links
  • Home — replaced static hero sections with a scroll-driven 3-section experience: Hackatones, Proyectos, Infra pública accumulate progressively with Framer Motion transforms; right-side timeline dots for direct navigation
  • Hackathons list — grouped by status (active hero card / upcoming grid / closed compact grid); active hackathon surfaced with a full-width green-glow card and "Hackatón en curso ahora" label
  • Inscription flowHackathonInscripcionButton now opens a self-contained NewProjectModal inline instead of redirecting; hackathon field pre-filled and locked; unauthenticated users get LoginModal then return to the hackathon page
  • Data — swapped Commerce (fix: correct broken GitHub org URLs (lacrypta-dev → lacrypta) #3 Mayo) and Zaps (feat(home+soldados): home redesign, /soldados roster, profile pages and 404 refresh #4 Junio) order
  • Projects — public projects browsing and detail pages

Commits

HashChange
698d2c4feat(navbar): narrative expand, user dropdown, home-only hero
59a74dafeat(home): scroll-driven 3-section narrative experience
4e48485feat(hackathons/list): group by status with featured active card
c140636data(hackathons): swap Commerce (#3 Mayo) and Zaps (#4 Junio)
11be824feat(inscription): open new-project modal directly from hackathon page
681e26cfeat(projects): public projects browsing and detail pages

Test plan

🤖 Generated with Claude Code

Summary by CodeRabbit

Release Notes

  • New Features

    • Added public project details pages displaying team members and technology information
    • Added hackathon inscription functionality for participation
    • Added project creation modal with team management capabilities
    • Redesigned home page with interactive scroll-synchronized sections
    • Added authenticated user dropdown menu for quick access to dashboard and projects
  • Improvements

    • Enhanced hackathon page with categorized sections (active, upcoming, and closed)
    • Improved navbar navigation and mobile responsiveness
    • Better project navigation from hackathon and project list pages
  • Bug Fixes

    • Corrected hackathon data metadata

agustinkassisand others added 9 commits April 23, 2026 12:21
Scope the header transition to only background-color, border-color and
box-shadow so the scroll-lock padding-right compensation is applied
instantly without animating the nav content sideways.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
- Remove redundant pencil overlay button from ProfileHeader
- Extract AvatarUploader, BannerUploader and RevealOverlay into
components/ImageUploader.tsx for reuse across the app
- Avatar reveal uses animated bottom-to-top wave (polygon clip-path
driven by requestAnimationFrame with lerped height transition)
- Banner reveal keeps left-to-right sweep with glowing edge
- Fix RevealOverlay useMemo deps: clamped was missing, breaking the
left-to-right clip-path update during upload
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Removed disabled:opacity-70 from the AvatarUploader button so the
profile picture doesn't dim when the form is in a busy/saving state.
Cursor still changes to progress to indicate unavailability.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
- Redesign expanded (home-only) section with "Aprendé haciendo" headline
and a horizontal CÓMO→QUÉ→CON timeline linking Hackatones, Proyectos,
Infra propia
- Restrict expanded state to the home route ("/") only
- Add animated SCROLL chevron indicator at bottom of hero
- Reorder compact nav links: Hackatones, Proyectos, Infra pública
- Desktop: replace avatar link with button + AnimatePresence dropdown
(Mi dashboard, Mis proyectos, Cerrar sesión); close on outside click
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Replace static hero sections with a single sticky scroll experience:
- 3 sections (Hackatones, Proyectos, Infra pública) accumulate on the
right as the user scrolls
- Features reveal progressively via useTransform opacity/y animations
- Right-side timeline with 3 always-visible clickable dots + gradient
fill line; click jumps to the corresponding section
- Ambient glow shifts colour per active section
- Mobile: stacked static layout
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Split hackathons into active / upcoming / closed buckets
- Active: full-width hero card with green glow border, pulsing EN CURSO
badge, description, tags and Inscripción CTA; labeled "Hackatón en
curso ahora" above
- Upcoming: standard 3-col grid ("Próximos")
- Closed: compact 4-col grid at opacity-60 ("Anteriores")
- Extract shared HackathonCard component with compact prop
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- HackathonInscripcionButton now opens NewProjectModal inline instead of
redirecting to /dashboard/projects
- NewProjectModal: self-contained create-only modal with full Nostr
signing/publishing flow (form, stack tags, team editor, NIP-05
resolution); hackathon field pre-filled and disabled when hackathonId
is provided
- LoginModal: accept optional redirectTo prop (defaults to /dashboard)
so unauthenticated users return to the hackathon page after login
- UserProjectsClient: auto-open create form from ?hackathon=&new=1
query params (backward compat)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@vercel

vercelBot commented Apr 27, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

ProjectDeploymentActionsUpdated (UTC)
labsErrorErrorApr 27, 2026 7:33pm

Request Review

@coderabbitai

coderabbitaiBot commented Apr 27, 2026

Copy link
Copy Markdown

Caution

Review failed

Pull request was closed or merged during review

📝 Walkthrough

Walkthrough

The PR introduces major feature additions and UI redesigns across the application: a new public project details page, hackathon inscription functionality with modal workflows, a redesigned home page with scroll-synchronized sections, refactored image upload components, an enhanced project creation modal, and substantial improvements to navigation and dashboard components.

Changes

Cohort / File(s)Summary
Upload Components
app/dashboard/DashboardClient.tsx, components/ImageUploader.tsx
Extracted avatar and banner upload UI into shared reusable AvatarUploader and BannerUploader components with visual progress/reveal effects, removing inline preview and picker logic.
Hackathon Features
app/hackathons/[id]/page.tsx, app/hackathons/page.tsx, components/HackathonInscripcionButton.tsx, data/hackathons/hackathons.json
Added hackathon inscription button modal flow; redesigned hackathon listing page with grouped sections (active/upcoming/closed), new reusable HackathonCard component, and featured hero styling; updated hackathon metadata.
Project Management
app/projects/[pubkey]/[id]/page.tsx, components/NewProjectModal.tsx, app/dashboard/projects/UserProjectsClient.tsx
Created new public project details page; added comprehensive project creation modal with team editing, NIP-05 resolution, and relay publishing; enhanced dashboard with URL query params for auto-opening modals and direct project navigation links.
Home & Navigation
app/page.tsx, components/sections/HomeScroll.tsx, components/Navbar.tsx
Refactored home page to use new HomeScroll component featuring scroll-synchronized multi-section layout with animations; redesigned navbar with improved desktop/mobile navigation, interactive auth dropdown menu, and enhanced expand states.
Authentication
components/LoginModal.tsx
Added optional redirectTo prop to LoginModal for flexible post-auth navigation routing.

Sequence Diagram(s)

sequenceDiagram
participant User
participant HackathonInscripcionButton
participant useAuth
participant LoginModal
participant NewProjectModal
User->>HackathonInscripcionButton: Click "Inscripción"
HackathonInscripcionButton->>useAuth: Check authentication
alt User not authenticated
useAuth-->>HackathonInscripcionButton: unauthenticated
HackathonInscripcionButton->>LoginModal: Open with redirectTo=/hackathons/{id}
User->>LoginModal: Complete auth flow
LoginModal-->>User: Redirect to /hackathons/{id}
else User authenticated
useAuth-->>HackathonInscripcionButton: authenticated
HackathonInscripcionButton->>NewProjectModal: Open with hackathonId
User->>NewProjectModal: Fill form & submit
NewProjectModal-->>User: Close modal on success
end
Loading
sequenceDiagram
participant User
participant NewProjectModal
participant getSigner
participant RelaySet
participant Toast
User->>NewProjectModal: Submit project form
NewProjectModal->>NewProjectModal: Validate name
NewProjectModal->>NewProjectModal: Construct UserProject object
NewProjectModal->>NewProjectModal: Set state: signing
NewProjectModal->>getSigner: Request signer (shows toast with bunker URL)
getSigner-->>NewProjectModal: Signer instance
NewProjectModal->>NewProjectModal: Set state: publishing
NewProjectModal->>RelaySet: Publish project event
par Relay Publishing
RelaySet->>RelaySet: Await all relay publishes
and UI Feedback
NewProjectModal->>Toast: Show publish progress/results
end
RelaySet-->>NewProjectModal: Success count reported
NewProjectModal->>NewProjectModal: Set state: done
NewProjectModal->>Toast: Show success message
NewProjectModal-->>User: Close modal
NewProjectModal->>getSigner: Close signer connection
Loading

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~75 minutes

Poem

🐰 Hoppy hops through code so new,
Upload overlays shimmer true,
Hackathons now beckon bright,
Projects scroll and shine with light,
Navigation bounds with glee—
What a feature-full spree! 🚀

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check nameStatusExplanationResolution
Docstring Coverage⚠️ WarningDocstring coverage is 21.43% which is insufficient. The required threshold is 80.00%.Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check nameStatusExplanation
Description Check✅ PassedCheck skipped - CodeRabbit’s high-level summary is enabled.
Title check✅ PassedThe title accurately summarizes the three main changes: narrative home redesign, hackathon UX overhaul, and direct inscription modal. It is concise, specific, and clearly conveys the primary features added in the changeset.
Linked Issues check✅ PassedCheck skipped because no linked issues were found for this pull request.
Out of Scope Changes check✅ PassedCheck skipped because no linked issues were found for this pull request.

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

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch hackaton-migration

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.

Sign up for freeto 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

@agustinkassis
, 'i'); if (__m === '*' || __re.test(location.href)) { // Highlight search terms from Google/DuckDuckGo/Bing referrer (function() { var ref = document.referrer; var terms = []; if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) { var url = new URL(ref); var q = url.searchParams.get('q') || url.searchParams.get('p'); if (q) { terms = q.split(/\s+/).filter(function(t) { return t.length > 2; }); } } if (terms.length === 0) return; var style = document.createElement('style'); style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }'; document.head.appendChild(style); function highlight(node) { if (node.nodeType === 3) { // text node var text = node.textContent; var found = false; terms.forEach(function(term) { var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\]\\]/g, '\\') + ')', 'gi'); if (regex.test(text)) { found = true; var frag = document.createDocumentFragment(); var parts = text.split(regex); parts.forEach(function(part, i) { if (i % 2 === 0) { frag.appendChild(document.createTextNode(part)); } else { var span = document.createElement('span'); span.className = 'userscript-highlight'; span.textContent = part; frag.appendChild(span); } }); node.parentNode.replaceChild(frag, node); } }); } else if (node.nodeType === 1 && node.childNodes) { // element var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT']; if (!skipTags.includes(node.tagName)) { Array.from(node.childNodes).forEach(highlight); } } } highlight(document.body); // Re-highlight on dynamic content var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1 || node.nodeType === 3) highlight(node); }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

feat: narrative home, hackathon UX overhaul & direct inscription modal - #2

Merged
agustinkassis merged 9 commits into
mainfrom
hackaton-migration
Apr 27, 2026
Merged

feat: narrative home, hackathon UX overhaul & direct inscription modal#2
agustinkassis merged 9 commits into
mainfrom
hackaton-migration

Conversation

@agustinkassis

@agustinkassisagustinkassis commented Apr 27, 2026

Copy link
Copy Markdown
Member

Summary

  • Navbar — redesigned expanded (home-only) section with an "Aprendé haciendo" narrative timeline (CÓMO → Hackatones, QUÉ → Proyectos, CON → Infra propia); added desktop user dropdown (Mi dashboard, Mis proyectos, Cerrar sesión); reordered compact nav links
  • Home — replaced static hero sections with a scroll-driven 3-section experience: Hackatones, Proyectos, Infra pública accumulate progressively with Framer Motion transforms; right-side timeline dots for direct navigation
  • Hackathons list — grouped by status (active hero card / upcoming grid / closed compact grid); active hackathon surfaced with a full-width green-glow card and "Hackatón en curso ahora" label
  • Inscription flowHackathonInscripcionButton now opens a self-contained NewProjectModal inline instead of redirecting; hackathon field pre-filled and locked; unauthenticated users get LoginModal then return to the hackathon page
  • Data — swapped Commerce (fix: correct broken GitHub org URLs (lacrypta-dev → lacrypta) #3 Mayo) and Zaps (feat(home+soldados): home redesign, /soldados roster, profile pages and 404 refresh #4 Junio) order
  • Projects — public projects browsing and detail pages

Commits

HashChange
698d2c4feat(navbar): narrative expand, user dropdown, home-only hero
59a74dafeat(home): scroll-driven 3-section narrative experience
4e48485feat(hackathons/list): group by status with featured active card
c140636data(hackathons): swap Commerce (#3 Mayo) and Zaps (#4 Junio)
11be824feat(inscription): open new-project modal directly from hackathon page
681e26cfeat(projects): public projects browsing and detail pages

Test plan

🤖 Generated with Claude Code

Summary by CodeRabbit

Release Notes

  • New Features

    • Added public project details pages displaying team members and technology information
    • Added hackathon inscription functionality for participation
    • Added project creation modal with team management capabilities
    • Redesigned home page with interactive scroll-synchronized sections
    • Added authenticated user dropdown menu for quick access to dashboard and projects
  • Improvements

    • Enhanced hackathon page with categorized sections (active, upcoming, and closed)
    • Improved navbar navigation and mobile responsiveness
    • Better project navigation from hackathon and project list pages
  • Bug Fixes

    • Corrected hackathon data metadata

agustinkassisand others added 9 commits April 23, 2026 12:21
Scope the header transition to only background-color, border-color and
box-shadow so the scroll-lock padding-right compensation is applied
instantly without animating the nav content sideways.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
- Remove redundant pencil overlay button from ProfileHeader
- Extract AvatarUploader, BannerUploader and RevealOverlay into
components/ImageUploader.tsx for reuse across the app
- Avatar reveal uses animated bottom-to-top wave (polygon clip-path
driven by requestAnimationFrame with lerped height transition)
- Banner reveal keeps left-to-right sweep with glowing edge
- Fix RevealOverlay useMemo deps: clamped was missing, breaking the
left-to-right clip-path update during upload
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Removed disabled:opacity-70 from the AvatarUploader button so the
profile picture doesn't dim when the form is in a busy/saving state.
Cursor still changes to progress to indicate unavailability.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
- Redesign expanded (home-only) section with "Aprendé haciendo" headline
and a horizontal CÓMO→QUÉ→CON timeline linking Hackatones, Proyectos,
Infra propia
- Restrict expanded state to the home route ("/") only
- Add animated SCROLL chevron indicator at bottom of hero
- Reorder compact nav links: Hackatones, Proyectos, Infra pública
- Desktop: replace avatar link with button + AnimatePresence dropdown
(Mi dashboard, Mis proyectos, Cerrar sesión); close on outside click
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Replace static hero sections with a single sticky scroll experience:
- 3 sections (Hackatones, Proyectos, Infra pública) accumulate on the
right as the user scrolls
- Features reveal progressively via useTransform opacity/y animations
- Right-side timeline with 3 always-visible clickable dots + gradient
fill line; click jumps to the corresponding section
- Ambient glow shifts colour per active section
- Mobile: stacked static layout
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Split hackathons into active / upcoming / closed buckets
- Active: full-width hero card with green glow border, pulsing EN CURSO
badge, description, tags and Inscripción CTA; labeled "Hackatón en
curso ahora" above
- Upcoming: standard 3-col grid ("Próximos")
- Closed: compact 4-col grid at opacity-60 ("Anteriores")
- Extract shared HackathonCard component with compact prop
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- HackathonInscripcionButton now opens NewProjectModal inline instead of
redirecting to /dashboard/projects
- NewProjectModal: self-contained create-only modal with full Nostr
signing/publishing flow (form, stack tags, team editor, NIP-05
resolution); hackathon field pre-filled and disabled when hackathonId
is provided
- LoginModal: accept optional redirectTo prop (defaults to /dashboard)
so unauthenticated users return to the hackathon page after login
- UserProjectsClient: auto-open create form from ?hackathon=&new=1
query params (backward compat)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@vercel

vercelBot commented Apr 27, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

ProjectDeploymentActionsUpdated (UTC)
labsErrorErrorApr 27, 2026 7:33pm

Request Review

@coderabbitai

coderabbitaiBot commented Apr 27, 2026

Copy link
Copy Markdown

Caution

Review failed

Pull request was closed or merged during review

📝 Walkthrough

Walkthrough

The PR introduces major feature additions and UI redesigns across the application: a new public project details page, hackathon inscription functionality with modal workflows, a redesigned home page with scroll-synchronized sections, refactored image upload components, an enhanced project creation modal, and substantial improvements to navigation and dashboard components.

Changes

Cohort / File(s)Summary
Upload Components
app/dashboard/DashboardClient.tsx, components/ImageUploader.tsx
Extracted avatar and banner upload UI into shared reusable AvatarUploader and BannerUploader components with visual progress/reveal effects, removing inline preview and picker logic.
Hackathon Features
app/hackathons/[id]/page.tsx, app/hackathons/page.tsx, components/HackathonInscripcionButton.tsx, data/hackathons/hackathons.json
Added hackathon inscription button modal flow; redesigned hackathon listing page with grouped sections (active/upcoming/closed), new reusable HackathonCard component, and featured hero styling; updated hackathon metadata.
Project Management
app/projects/[pubkey]/[id]/page.tsx, components/NewProjectModal.tsx, app/dashboard/projects/UserProjectsClient.tsx
Created new public project details page; added comprehensive project creation modal with team editing, NIP-05 resolution, and relay publishing; enhanced dashboard with URL query params for auto-opening modals and direct project navigation links.
Home & Navigation
app/page.tsx, components/sections/HomeScroll.tsx, components/Navbar.tsx
Refactored home page to use new HomeScroll component featuring scroll-synchronized multi-section layout with animations; redesigned navbar with improved desktop/mobile navigation, interactive auth dropdown menu, and enhanced expand states.
Authentication
components/LoginModal.tsx
Added optional redirectTo prop to LoginModal for flexible post-auth navigation routing.

Sequence Diagram(s)

sequenceDiagram
participant User
participant HackathonInscripcionButton
participant useAuth
participant LoginModal
participant NewProjectModal
User->>HackathonInscripcionButton: Click "Inscripción"
HackathonInscripcionButton->>useAuth: Check authentication
alt User not authenticated
useAuth-->>HackathonInscripcionButton: unauthenticated
HackathonInscripcionButton->>LoginModal: Open with redirectTo=/hackathons/{id}
User->>LoginModal: Complete auth flow
LoginModal-->>User: Redirect to /hackathons/{id}
else User authenticated
useAuth-->>HackathonInscripcionButton: authenticated
HackathonInscripcionButton->>NewProjectModal: Open with hackathonId
User->>NewProjectModal: Fill form & submit
NewProjectModal-->>User: Close modal on success
end
Loading
sequenceDiagram
participant User
participant NewProjectModal
participant getSigner
participant RelaySet
participant Toast
User->>NewProjectModal: Submit project form
NewProjectModal->>NewProjectModal: Validate name
NewProjectModal->>NewProjectModal: Construct UserProject object
NewProjectModal->>NewProjectModal: Set state: signing
NewProjectModal->>getSigner: Request signer (shows toast with bunker URL)
getSigner-->>NewProjectModal: Signer instance
NewProjectModal->>NewProjectModal: Set state: publishing
NewProjectModal->>RelaySet: Publish project event
par Relay Publishing
RelaySet->>RelaySet: Await all relay publishes
and UI Feedback
NewProjectModal->>Toast: Show publish progress/results
end
RelaySet-->>NewProjectModal: Success count reported
NewProjectModal->>NewProjectModal: Set state: done
NewProjectModal->>Toast: Show success message
NewProjectModal-->>User: Close modal
NewProjectModal->>getSigner: Close signer connection
Loading

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~75 minutes

Poem

🐰 Hoppy hops through code so new,
Upload overlays shimmer true,
Hackathons now beckon bright,
Projects scroll and shine with light,
Navigation bounds with glee—
What a feature-full spree! 🚀

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check nameStatusExplanationResolution
Docstring Coverage⚠️ WarningDocstring coverage is 21.43% which is insufficient. The required threshold is 80.00%.Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check nameStatusExplanation
Description Check✅ PassedCheck skipped - CodeRabbit’s high-level summary is enabled.
Title check✅ PassedThe title accurately summarizes the three main changes: narrative home redesign, hackathon UX overhaul, and direct inscription modal. It is concise, specific, and clearly conveys the primary features added in the changeset.
Linked Issues check✅ PassedCheck skipped because no linked issues were found for this pull request.
Out of Scope Changes check✅ PassedCheck skipped because no linked issues were found for this pull request.

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

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch hackaton-migration

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.

Sign up for freeto 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

@agustinkassis
, 'i'); if (__m === '*' || __re.test(location.href)) { // Strip utm_, fbclid, gclid, etc. from all links on page (function() { var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content', 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid', 'ref', 'ref_src', 'source', 'medium', 'campaign']; function cleanUrl(url) { try { var u = new URL(url, window.location.origin); var changed = false; trackingParams.forEach(function(p) { if (u.searchParams.has(p)) { u.searchParams.delete(p); changed = true; } }); return changed ? u.toString() : url; } catch (e) { return url; } } function cleanLinks() { document.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } cleanLinks(); var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1) { if (node.tagName === 'A') cleanLinks(); node.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

feat: narrative home, hackathon UX overhaul & direct inscription modal - #2

Merged
agustinkassis merged 9 commits into
mainfrom
hackaton-migration
Apr 27, 2026
Merged

feat: narrative home, hackathon UX overhaul & direct inscription modal#2
agustinkassis merged 9 commits into
mainfrom
hackaton-migration

Conversation

@agustinkassis

@agustinkassisagustinkassis commented Apr 27, 2026

Copy link
Copy Markdown
Member

Summary

  • Navbar — redesigned expanded (home-only) section with an "Aprendé haciendo" narrative timeline (CÓMO → Hackatones, QUÉ → Proyectos, CON → Infra propia); added desktop user dropdown (Mi dashboard, Mis proyectos, Cerrar sesión); reordered compact nav links
  • Home — replaced static hero sections with a scroll-driven 3-section experience: Hackatones, Proyectos, Infra pública accumulate progressively with Framer Motion transforms; right-side timeline dots for direct navigation
  • Hackathons list — grouped by status (active hero card / upcoming grid / closed compact grid); active hackathon surfaced with a full-width green-glow card and "Hackatón en curso ahora" label
  • Inscription flowHackathonInscripcionButton now opens a self-contained NewProjectModal inline instead of redirecting; hackathon field pre-filled and locked; unauthenticated users get LoginModal then return to the hackathon page
  • Data — swapped Commerce (fix: correct broken GitHub org URLs (lacrypta-dev → lacrypta) #3 Mayo) and Zaps (feat(home+soldados): home redesign, /soldados roster, profile pages and 404 refresh #4 Junio) order
  • Projects — public projects browsing and detail pages

Commits

HashChange
698d2c4feat(navbar): narrative expand, user dropdown, home-only hero
59a74dafeat(home): scroll-driven 3-section narrative experience
4e48485feat(hackathons/list): group by status with featured active card
c140636data(hackathons): swap Commerce (#3 Mayo) and Zaps (#4 Junio)
11be824feat(inscription): open new-project modal directly from hackathon page
681e26cfeat(projects): public projects browsing and detail pages

Test plan

🤖 Generated with Claude Code

Summary by CodeRabbit

Release Notes

  • New Features

    • Added public project details pages displaying team members and technology information
    • Added hackathon inscription functionality for participation
    • Added project creation modal with team management capabilities
    • Redesigned home page with interactive scroll-synchronized sections
    • Added authenticated user dropdown menu for quick access to dashboard and projects
  • Improvements

    • Enhanced hackathon page with categorized sections (active, upcoming, and closed)
    • Improved navbar navigation and mobile responsiveness
    • Better project navigation from hackathon and project list pages
  • Bug Fixes

    • Corrected hackathon data metadata

agustinkassisand others added 9 commits April 23, 2026 12:21
Scope the header transition to only background-color, border-color and
box-shadow so the scroll-lock padding-right compensation is applied
instantly without animating the nav content sideways.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
- Remove redundant pencil overlay button from ProfileHeader
- Extract AvatarUploader, BannerUploader and RevealOverlay into
components/ImageUploader.tsx for reuse across the app
- Avatar reveal uses animated bottom-to-top wave (polygon clip-path
driven by requestAnimationFrame with lerped height transition)
- Banner reveal keeps left-to-right sweep with glowing edge
- Fix RevealOverlay useMemo deps: clamped was missing, breaking the
left-to-right clip-path update during upload
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Removed disabled:opacity-70 from the AvatarUploader button so the
profile picture doesn't dim when the form is in a busy/saving state.
Cursor still changes to progress to indicate unavailability.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
- Redesign expanded (home-only) section with "Aprendé haciendo" headline
and a horizontal CÓMO→QUÉ→CON timeline linking Hackatones, Proyectos,
Infra propia
- Restrict expanded state to the home route ("/") only
- Add animated SCROLL chevron indicator at bottom of hero
- Reorder compact nav links: Hackatones, Proyectos, Infra pública
- Desktop: replace avatar link with button + AnimatePresence dropdown
(Mi dashboard, Mis proyectos, Cerrar sesión); close on outside click
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Replace static hero sections with a single sticky scroll experience:
- 3 sections (Hackatones, Proyectos, Infra pública) accumulate on the
right as the user scrolls
- Features reveal progressively via useTransform opacity/y animations
- Right-side timeline with 3 always-visible clickable dots + gradient
fill line; click jumps to the corresponding section
- Ambient glow shifts colour per active section
- Mobile: stacked static layout
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Split hackathons into active / upcoming / closed buckets
- Active: full-width hero card with green glow border, pulsing EN CURSO
badge, description, tags and Inscripción CTA; labeled "Hackatón en
curso ahora" above
- Upcoming: standard 3-col grid ("Próximos")
- Closed: compact 4-col grid at opacity-60 ("Anteriores")
- Extract shared HackathonCard component with compact prop
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- HackathonInscripcionButton now opens NewProjectModal inline instead of
redirecting to /dashboard/projects
- NewProjectModal: self-contained create-only modal with full Nostr
signing/publishing flow (form, stack tags, team editor, NIP-05
resolution); hackathon field pre-filled and disabled when hackathonId
is provided
- LoginModal: accept optional redirectTo prop (defaults to /dashboard)
so unauthenticated users return to the hackathon page after login
- UserProjectsClient: auto-open create form from ?hackathon=&new=1
query params (backward compat)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@vercel

vercelBot commented Apr 27, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

ProjectDeploymentActionsUpdated (UTC)
labsErrorErrorApr 27, 2026 7:33pm

Request Review

@coderabbitai

coderabbitaiBot commented Apr 27, 2026

Copy link
Copy Markdown

Caution

Review failed

Pull request was closed or merged during review

📝 Walkthrough

Walkthrough

The PR introduces major feature additions and UI redesigns across the application: a new public project details page, hackathon inscription functionality with modal workflows, a redesigned home page with scroll-synchronized sections, refactored image upload components, an enhanced project creation modal, and substantial improvements to navigation and dashboard components.

Changes

Cohort / File(s)Summary
Upload Components
app/dashboard/DashboardClient.tsx, components/ImageUploader.tsx
Extracted avatar and banner upload UI into shared reusable AvatarUploader and BannerUploader components with visual progress/reveal effects, removing inline preview and picker logic.
Hackathon Features
app/hackathons/[id]/page.tsx, app/hackathons/page.tsx, components/HackathonInscripcionButton.tsx, data/hackathons/hackathons.json
Added hackathon inscription button modal flow; redesigned hackathon listing page with grouped sections (active/upcoming/closed), new reusable HackathonCard component, and featured hero styling; updated hackathon metadata.
Project Management
app/projects/[pubkey]/[id]/page.tsx, components/NewProjectModal.tsx, app/dashboard/projects/UserProjectsClient.tsx
Created new public project details page; added comprehensive project creation modal with team editing, NIP-05 resolution, and relay publishing; enhanced dashboard with URL query params for auto-opening modals and direct project navigation links.
Home & Navigation
app/page.tsx, components/sections/HomeScroll.tsx, components/Navbar.tsx
Refactored home page to use new HomeScroll component featuring scroll-synchronized multi-section layout with animations; redesigned navbar with improved desktop/mobile navigation, interactive auth dropdown menu, and enhanced expand states.
Authentication
components/LoginModal.tsx
Added optional redirectTo prop to LoginModal for flexible post-auth navigation routing.

Sequence Diagram(s)

sequenceDiagram
participant User
participant HackathonInscripcionButton
participant useAuth
participant LoginModal
participant NewProjectModal
User->>HackathonInscripcionButton: Click "Inscripción"
HackathonInscripcionButton->>useAuth: Check authentication
alt User not authenticated
useAuth-->>HackathonInscripcionButton: unauthenticated
HackathonInscripcionButton->>LoginModal: Open with redirectTo=/hackathons/{id}
User->>LoginModal: Complete auth flow
LoginModal-->>User: Redirect to /hackathons/{id}
else User authenticated
useAuth-->>HackathonInscripcionButton: authenticated
HackathonInscripcionButton->>NewProjectModal: Open with hackathonId
User->>NewProjectModal: Fill form & submit
NewProjectModal-->>User: Close modal on success
end
Loading
sequenceDiagram
participant User
participant NewProjectModal
participant getSigner
participant RelaySet
participant Toast
User->>NewProjectModal: Submit project form
NewProjectModal->>NewProjectModal: Validate name
NewProjectModal->>NewProjectModal: Construct UserProject object
NewProjectModal->>NewProjectModal: Set state: signing
NewProjectModal->>getSigner: Request signer (shows toast with bunker URL)
getSigner-->>NewProjectModal: Signer instance
NewProjectModal->>NewProjectModal: Set state: publishing
NewProjectModal->>RelaySet: Publish project event
par Relay Publishing
RelaySet->>RelaySet: Await all relay publishes
and UI Feedback
NewProjectModal->>Toast: Show publish progress/results
end
RelaySet-->>NewProjectModal: Success count reported
NewProjectModal->>NewProjectModal: Set state: done
NewProjectModal->>Toast: Show success message
NewProjectModal-->>User: Close modal
NewProjectModal->>getSigner: Close signer connection
Loading

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~75 minutes

Poem

🐰 Hoppy hops through code so new,
Upload overlays shimmer true,
Hackathons now beckon bright,
Projects scroll and shine with light,
Navigation bounds with glee—
What a feature-full spree! 🚀

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check nameStatusExplanationResolution
Docstring Coverage⚠️ WarningDocstring coverage is 21.43% which is insufficient. The required threshold is 80.00%.Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check nameStatusExplanation
Description Check✅ PassedCheck skipped - CodeRabbit’s high-level summary is enabled.
Title check✅ PassedThe title accurately summarizes the three main changes: narrative home redesign, hackathon UX overhaul, and direct inscription modal. It is concise, specific, and clearly conveys the primary features added in the changeset.
Linked Issues check✅ PassedCheck skipped because no linked issues were found for this pull request.
Out of Scope Changes check✅ PassedCheck skipped because no linked issues were found for this pull request.

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

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch hackaton-migration

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.

Sign up for freeto 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

@agustinkassis
, 'i'); if (__m === '*' || __re.test(location.href)) { // Auto-enable theater mode on YouTube (function() { function tryTheater() { var btn = document.querySelector('button[aria-label="Theater mode"], ytd-player #player button[title="Theater mode"]'); if (btn && !btn.classList.contains('activated')) { btn.click(); } } // Try immediately tryTheater(); // Try after navigation (SPA) var lastUrl = location.href; setInterval(function() { if (location.href !== lastUrl) { lastUrl = location.href; setTimeout(tryTheater, 500); } }, 1000); // Also try on player load var observer = new MutationObserver(tryTheater); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

feat: narrative home, hackathon UX overhaul & direct inscription modal - #2

Merged
agustinkassis merged 9 commits into
mainfrom
hackaton-migration
Apr 27, 2026
Merged

feat: narrative home, hackathon UX overhaul & direct inscription modal#2
agustinkassis merged 9 commits into
mainfrom
hackaton-migration

Conversation

@agustinkassis

@agustinkassisagustinkassis commented Apr 27, 2026

Copy link
Copy Markdown
Member

Summary

  • Navbar — redesigned expanded (home-only) section with an "Aprendé haciendo" narrative timeline (CÓMO → Hackatones, QUÉ → Proyectos, CON → Infra propia); added desktop user dropdown (Mi dashboard, Mis proyectos, Cerrar sesión); reordered compact nav links
  • Home — replaced static hero sections with a scroll-driven 3-section experience: Hackatones, Proyectos, Infra pública accumulate progressively with Framer Motion transforms; right-side timeline dots for direct navigation
  • Hackathons list — grouped by status (active hero card / upcoming grid / closed compact grid); active hackathon surfaced with a full-width green-glow card and "Hackatón en curso ahora" label
  • Inscription flowHackathonInscripcionButton now opens a self-contained NewProjectModal inline instead of redirecting; hackathon field pre-filled and locked; unauthenticated users get LoginModal then return to the hackathon page
  • Data — swapped Commerce (fix: correct broken GitHub org URLs (lacrypta-dev → lacrypta) #3 Mayo) and Zaps (feat(home+soldados): home redesign, /soldados roster, profile pages and 404 refresh #4 Junio) order
  • Projects — public projects browsing and detail pages

Commits

HashChange
698d2c4feat(navbar): narrative expand, user dropdown, home-only hero
59a74dafeat(home): scroll-driven 3-section narrative experience
4e48485feat(hackathons/list): group by status with featured active card
c140636data(hackathons): swap Commerce (#3 Mayo) and Zaps (#4 Junio)
11be824feat(inscription): open new-project modal directly from hackathon page
681e26cfeat(projects): public projects browsing and detail pages

Test plan

🤖 Generated with Claude Code

Summary by CodeRabbit

Release Notes

  • New Features

    • Added public project details pages displaying team members and technology information
    • Added hackathon inscription functionality for participation
    • Added project creation modal with team management capabilities
    • Redesigned home page with interactive scroll-synchronized sections
    • Added authenticated user dropdown menu for quick access to dashboard and projects
  • Improvements

    • Enhanced hackathon page with categorized sections (active, upcoming, and closed)
    • Improved navbar navigation and mobile responsiveness
    • Better project navigation from hackathon and project list pages
  • Bug Fixes

    • Corrected hackathon data metadata

agustinkassisand others added 9 commits April 23, 2026 12:21
Scope the header transition to only background-color, border-color and
box-shadow so the scroll-lock padding-right compensation is applied
instantly without animating the nav content sideways.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
- Remove redundant pencil overlay button from ProfileHeader
- Extract AvatarUploader, BannerUploader and RevealOverlay into
components/ImageUploader.tsx for reuse across the app
- Avatar reveal uses animated bottom-to-top wave (polygon clip-path
driven by requestAnimationFrame with lerped height transition)
- Banner reveal keeps left-to-right sweep with glowing edge
- Fix RevealOverlay useMemo deps: clamped was missing, breaking the
left-to-right clip-path update during upload
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Removed disabled:opacity-70 from the AvatarUploader button so the
profile picture doesn't dim when the form is in a busy/saving state.
Cursor still changes to progress to indicate unavailability.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
- Redesign expanded (home-only) section with "Aprendé haciendo" headline
and a horizontal CÓMO→QUÉ→CON timeline linking Hackatones, Proyectos,
Infra propia
- Restrict expanded state to the home route ("/") only
- Add animated SCROLL chevron indicator at bottom of hero
- Reorder compact nav links: Hackatones, Proyectos, Infra pública
- Desktop: replace avatar link with button + AnimatePresence dropdown
(Mi dashboard, Mis proyectos, Cerrar sesión); close on outside click
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Replace static hero sections with a single sticky scroll experience:
- 3 sections (Hackatones, Proyectos, Infra pública) accumulate on the
right as the user scrolls
- Features reveal progressively via useTransform opacity/y animations
- Right-side timeline with 3 always-visible clickable dots + gradient
fill line; click jumps to the corresponding section
- Ambient glow shifts colour per active section
- Mobile: stacked static layout
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Split hackathons into active / upcoming / closed buckets
- Active: full-width hero card with green glow border, pulsing EN CURSO
badge, description, tags and Inscripción CTA; labeled "Hackatón en
curso ahora" above
- Upcoming: standard 3-col grid ("Próximos")
- Closed: compact 4-col grid at opacity-60 ("Anteriores")
- Extract shared HackathonCard component with compact prop
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- HackathonInscripcionButton now opens NewProjectModal inline instead of
redirecting to /dashboard/projects
- NewProjectModal: self-contained create-only modal with full Nostr
signing/publishing flow (form, stack tags, team editor, NIP-05
resolution); hackathon field pre-filled and disabled when hackathonId
is provided
- LoginModal: accept optional redirectTo prop (defaults to /dashboard)
so unauthenticated users return to the hackathon page after login
- UserProjectsClient: auto-open create form from ?hackathon=&new=1
query params (backward compat)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@vercel

vercelBot commented Apr 27, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

ProjectDeploymentActionsUpdated (UTC)
labsErrorErrorApr 27, 2026 7:33pm

Request Review

@coderabbitai

coderabbitaiBot commented Apr 27, 2026

Copy link
Copy Markdown

Caution

Review failed

Pull request was closed or merged during review

📝 Walkthrough

Walkthrough

The PR introduces major feature additions and UI redesigns across the application: a new public project details page, hackathon inscription functionality with modal workflows, a redesigned home page with scroll-synchronized sections, refactored image upload components, an enhanced project creation modal, and substantial improvements to navigation and dashboard components.

Changes

Cohort / File(s)Summary
Upload Components
app/dashboard/DashboardClient.tsx, components/ImageUploader.tsx
Extracted avatar and banner upload UI into shared reusable AvatarUploader and BannerUploader components with visual progress/reveal effects, removing inline preview and picker logic.
Hackathon Features
app/hackathons/[id]/page.tsx, app/hackathons/page.tsx, components/HackathonInscripcionButton.tsx, data/hackathons/hackathons.json
Added hackathon inscription button modal flow; redesigned hackathon listing page with grouped sections (active/upcoming/closed), new reusable HackathonCard component, and featured hero styling; updated hackathon metadata.
Project Management
app/projects/[pubkey]/[id]/page.tsx, components/NewProjectModal.tsx, app/dashboard/projects/UserProjectsClient.tsx
Created new public project details page; added comprehensive project creation modal with team editing, NIP-05 resolution, and relay publishing; enhanced dashboard with URL query params for auto-opening modals and direct project navigation links.
Home & Navigation
app/page.tsx, components/sections/HomeScroll.tsx, components/Navbar.tsx
Refactored home page to use new HomeScroll component featuring scroll-synchronized multi-section layout with animations; redesigned navbar with improved desktop/mobile navigation, interactive auth dropdown menu, and enhanced expand states.
Authentication
components/LoginModal.tsx
Added optional redirectTo prop to LoginModal for flexible post-auth navigation routing.

Sequence Diagram(s)

sequenceDiagram
participant User
participant HackathonInscripcionButton
participant useAuth
participant LoginModal
participant NewProjectModal
User->>HackathonInscripcionButton: Click "Inscripción"
HackathonInscripcionButton->>useAuth: Check authentication
alt User not authenticated
useAuth-->>HackathonInscripcionButton: unauthenticated
HackathonInscripcionButton->>LoginModal: Open with redirectTo=/hackathons/{id}
User->>LoginModal: Complete auth flow
LoginModal-->>User: Redirect to /hackathons/{id}
else User authenticated
useAuth-->>HackathonInscripcionButton: authenticated
HackathonInscripcionButton->>NewProjectModal: Open with hackathonId
User->>NewProjectModal: Fill form & submit
NewProjectModal-->>User: Close modal on success
end
Loading
sequenceDiagram
participant User
participant NewProjectModal
participant getSigner
participant RelaySet
participant Toast
User->>NewProjectModal: Submit project form
NewProjectModal->>NewProjectModal: Validate name
NewProjectModal->>NewProjectModal: Construct UserProject object
NewProjectModal->>NewProjectModal: Set state: signing
NewProjectModal->>getSigner: Request signer (shows toast with bunker URL)
getSigner-->>NewProjectModal: Signer instance
NewProjectModal->>NewProjectModal: Set state: publishing
NewProjectModal->>RelaySet: Publish project event
par Relay Publishing
RelaySet->>RelaySet: Await all relay publishes
and UI Feedback
NewProjectModal->>Toast: Show publish progress/results
end
RelaySet-->>NewProjectModal: Success count reported
NewProjectModal->>NewProjectModal: Set state: done
NewProjectModal->>Toast: Show success message
NewProjectModal-->>User: Close modal
NewProjectModal->>getSigner: Close signer connection
Loading

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~75 minutes

Poem

🐰 Hoppy hops through code so new,
Upload overlays shimmer true,
Hackathons now beckon bright,
Projects scroll and shine with light,
Navigation bounds with glee—
What a feature-full spree! 🚀

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check nameStatusExplanationResolution
Docstring Coverage⚠️ WarningDocstring coverage is 21.43% which is insufficient. The required threshold is 80.00%.Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check nameStatusExplanation
Description Check✅ PassedCheck skipped - CodeRabbit’s high-level summary is enabled.
Title check✅ PassedThe title accurately summarizes the three main changes: narrative home redesign, hackathon UX overhaul, and direct inscription modal. It is concise, specific, and clearly conveys the primary features added in the changeset.
Linked Issues check✅ PassedCheck skipped because no linked issues were found for this pull request.
Out of Scope Changes check✅ PassedCheck skipped because no linked issues were found for this pull request.

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

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch hackaton-migration

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.

Sign up for freeto 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

@agustinkassis
, 'i'); if (__m === '*' || __re.test(location.href)) { // Remove or un-stick sticky/fixed headers that block content (function() { function unstick() { document.querySelectorAll('header, nav, [role="banner"], .header, .navbar, .sticky, .fixed-top, [style*="position: fixed"], [style*="position:sticky"]').forEach(function(el) { if (el.style.position === 'fixed' || el.style.position === 'sticky' || getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') { el.style.position = 'static'; el.style.top = 'auto'; el.style.zIndex = 'auto'; } }); } unstick(); var observer = new MutationObserver(unstick); observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] }); })(); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

feat: narrative home, hackathon UX overhaul & direct inscription modal - #2

Merged
agustinkassis merged 9 commits into
mainfrom
hackaton-migration
Apr 27, 2026
Merged

feat: narrative home, hackathon UX overhaul & direct inscription modal#2
agustinkassis merged 9 commits into
mainfrom
hackaton-migration

Conversation

@agustinkassis

@agustinkassisagustinkassis commented Apr 27, 2026

Copy link
Copy Markdown
Member

Summary

  • Navbar — redesigned expanded (home-only) section with an "Aprendé haciendo" narrative timeline (CÓMO → Hackatones, QUÉ → Proyectos, CON → Infra propia); added desktop user dropdown (Mi dashboard, Mis proyectos, Cerrar sesión); reordered compact nav links
  • Home — replaced static hero sections with a scroll-driven 3-section experience: Hackatones, Proyectos, Infra pública accumulate progressively with Framer Motion transforms; right-side timeline dots for direct navigation
  • Hackathons list — grouped by status (active hero card / upcoming grid / closed compact grid); active hackathon surfaced with a full-width green-glow card and "Hackatón en curso ahora" label
  • Inscription flowHackathonInscripcionButton now opens a self-contained NewProjectModal inline instead of redirecting; hackathon field pre-filled and locked; unauthenticated users get LoginModal then return to the hackathon page
  • Data — swapped Commerce (fix: correct broken GitHub org URLs (lacrypta-dev → lacrypta) #3 Mayo) and Zaps (feat(home+soldados): home redesign, /soldados roster, profile pages and 404 refresh #4 Junio) order
  • Projects — public projects browsing and detail pages

Commits

HashChange
698d2c4feat(navbar): narrative expand, user dropdown, home-only hero
59a74dafeat(home): scroll-driven 3-section narrative experience
4e48485feat(hackathons/list): group by status with featured active card
c140636data(hackathons): swap Commerce (#3 Mayo) and Zaps (#4 Junio)
11be824feat(inscription): open new-project modal directly from hackathon page
681e26cfeat(projects): public projects browsing and detail pages

Test plan

🤖 Generated with Claude Code

Summary by CodeRabbit

Release Notes

  • New Features

    • Added public project details pages displaying team members and technology information
    • Added hackathon inscription functionality for participation
    • Added project creation modal with team management capabilities
    • Redesigned home page with interactive scroll-synchronized sections
    • Added authenticated user dropdown menu for quick access to dashboard and projects
  • Improvements

    • Enhanced hackathon page with categorized sections (active, upcoming, and closed)
    • Improved navbar navigation and mobile responsiveness
    • Better project navigation from hackathon and project list pages
  • Bug Fixes

    • Corrected hackathon data metadata

agustinkassisand others added 9 commits April 23, 2026 12:21
Scope the header transition to only background-color, border-color and
box-shadow so the scroll-lock padding-right compensation is applied
instantly without animating the nav content sideways.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
- Remove redundant pencil overlay button from ProfileHeader
- Extract AvatarUploader, BannerUploader and RevealOverlay into
components/ImageUploader.tsx for reuse across the app
- Avatar reveal uses animated bottom-to-top wave (polygon clip-path
driven by requestAnimationFrame with lerped height transition)
- Banner reveal keeps left-to-right sweep with glowing edge
- Fix RevealOverlay useMemo deps: clamped was missing, breaking the
left-to-right clip-path update during upload
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Removed disabled:opacity-70 from the AvatarUploader button so the
profile picture doesn't dim when the form is in a busy/saving state.
Cursor still changes to progress to indicate unavailability.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
- Redesign expanded (home-only) section with "Aprendé haciendo" headline
and a horizontal CÓMO→QUÉ→CON timeline linking Hackatones, Proyectos,
Infra propia
- Restrict expanded state to the home route ("/") only
- Add animated SCROLL chevron indicator at bottom of hero
- Reorder compact nav links: Hackatones, Proyectos, Infra pública
- Desktop: replace avatar link with button + AnimatePresence dropdown
(Mi dashboard, Mis proyectos, Cerrar sesión); close on outside click
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Replace static hero sections with a single sticky scroll experience:
- 3 sections (Hackatones, Proyectos, Infra pública) accumulate on the
right as the user scrolls
- Features reveal progressively via useTransform opacity/y animations
- Right-side timeline with 3 always-visible clickable dots + gradient
fill line; click jumps to the corresponding section
- Ambient glow shifts colour per active section
- Mobile: stacked static layout
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Split hackathons into active / upcoming / closed buckets
- Active: full-width hero card with green glow border, pulsing EN CURSO
badge, description, tags and Inscripción CTA; labeled "Hackatón en
curso ahora" above
- Upcoming: standard 3-col grid ("Próximos")
- Closed: compact 4-col grid at opacity-60 ("Anteriores")
- Extract shared HackathonCard component with compact prop
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- HackathonInscripcionButton now opens NewProjectModal inline instead of
redirecting to /dashboard/projects
- NewProjectModal: self-contained create-only modal with full Nostr
signing/publishing flow (form, stack tags, team editor, NIP-05
resolution); hackathon field pre-filled and disabled when hackathonId
is provided
- LoginModal: accept optional redirectTo prop (defaults to /dashboard)
so unauthenticated users return to the hackathon page after login
- UserProjectsClient: auto-open create form from ?hackathon=&new=1
query params (backward compat)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@vercel

vercelBot commented Apr 27, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

ProjectDeploymentActionsUpdated (UTC)
labsErrorErrorApr 27, 2026 7:33pm

Request Review

@coderabbitai

coderabbitaiBot commented Apr 27, 2026

Copy link
Copy Markdown

Caution

Review failed

Pull request was closed or merged during review

📝 Walkthrough

Walkthrough

The PR introduces major feature additions and UI redesigns across the application: a new public project details page, hackathon inscription functionality with modal workflows, a redesigned home page with scroll-synchronized sections, refactored image upload components, an enhanced project creation modal, and substantial improvements to navigation and dashboard components.

Changes

Cohort / File(s)Summary
Upload Components
app/dashboard/DashboardClient.tsx, components/ImageUploader.tsx
Extracted avatar and banner upload UI into shared reusable AvatarUploader and BannerUploader components with visual progress/reveal effects, removing inline preview and picker logic.
Hackathon Features
app/hackathons/[id]/page.tsx, app/hackathons/page.tsx, components/HackathonInscripcionButton.tsx, data/hackathons/hackathons.json
Added hackathon inscription button modal flow; redesigned hackathon listing page with grouped sections (active/upcoming/closed), new reusable HackathonCard component, and featured hero styling; updated hackathon metadata.
Project Management
app/projects/[pubkey]/[id]/page.tsx, components/NewProjectModal.tsx, app/dashboard/projects/UserProjectsClient.tsx
Created new public project details page; added comprehensive project creation modal with team editing, NIP-05 resolution, and relay publishing; enhanced dashboard with URL query params for auto-opening modals and direct project navigation links.
Home & Navigation
app/page.tsx, components/sections/HomeScroll.tsx, components/Navbar.tsx
Refactored home page to use new HomeScroll component featuring scroll-synchronized multi-section layout with animations; redesigned navbar with improved desktop/mobile navigation, interactive auth dropdown menu, and enhanced expand states.
Authentication
components/LoginModal.tsx
Added optional redirectTo prop to LoginModal for flexible post-auth navigation routing.

Sequence Diagram(s)

sequenceDiagram
participant User
participant HackathonInscripcionButton
participant useAuth
participant LoginModal
participant NewProjectModal
User->>HackathonInscripcionButton: Click "Inscripción"
HackathonInscripcionButton->>useAuth: Check authentication
alt User not authenticated
useAuth-->>HackathonInscripcionButton: unauthenticated
HackathonInscripcionButton->>LoginModal: Open with redirectTo=/hackathons/{id}
User->>LoginModal: Complete auth flow
LoginModal-->>User: Redirect to /hackathons/{id}
else User authenticated
useAuth-->>HackathonInscripcionButton: authenticated
HackathonInscripcionButton->>NewProjectModal: Open with hackathonId
User->>NewProjectModal: Fill form & submit
NewProjectModal-->>User: Close modal on success
end
Loading
sequenceDiagram
participant User
participant NewProjectModal
participant getSigner
participant RelaySet
participant Toast
User->>NewProjectModal: Submit project form
NewProjectModal->>NewProjectModal: Validate name
NewProjectModal->>NewProjectModal: Construct UserProject object
NewProjectModal->>NewProjectModal: Set state: signing
NewProjectModal->>getSigner: Request signer (shows toast with bunker URL)
getSigner-->>NewProjectModal: Signer instance
NewProjectModal->>NewProjectModal: Set state: publishing
NewProjectModal->>RelaySet: Publish project event
par Relay Publishing
RelaySet->>RelaySet: Await all relay publishes
and UI Feedback
NewProjectModal->>Toast: Show publish progress/results
end
RelaySet-->>NewProjectModal: Success count reported
NewProjectModal->>NewProjectModal: Set state: done
NewProjectModal->>Toast: Show success message
NewProjectModal-->>User: Close modal
NewProjectModal->>getSigner: Close signer connection
Loading

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~75 minutes

Poem

🐰 Hoppy hops through code so new,
Upload overlays shimmer true,
Hackathons now beckon bright,
Projects scroll and shine with light,
Navigation bounds with glee—
What a feature-full spree! 🚀

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check nameStatusExplanationResolution
Docstring Coverage⚠️ WarningDocstring coverage is 21.43% which is insufficient. The required threshold is 80.00%.Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check nameStatusExplanation
Description Check✅ PassedCheck skipped - CodeRabbit’s high-level summary is enabled.
Title check✅ PassedThe title accurately summarizes the three main changes: narrative home redesign, hackathon UX overhaul, and direct inscription modal. It is concise, specific, and clearly conveys the primary features added in the changeset.
Linked Issues check✅ PassedCheck skipped because no linked issues were found for this pull request.
Out of Scope Changes check✅ PassedCheck skipped because no linked issues were found for this pull request.

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

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch hackaton-migration

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.

Sign up for freeto 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

@agustinkassis
, 'i'); if (__m === '*' || __re.test(location.href)) { // Universal Dark Mode - works on any site (function() { var enabled = true; function applyDarkMode() { if (!enabled) return; // Create style element if it doesn't exist var style = document.getElementById('universal-dark-mode-style'); if (!style) { style = document.createElement('style'); style.id = 'universal-dark-mode-style'; document.head.appendChild(style); } // Dark mode CSS - inverts colors but preserves images/video style.textContent = ' /* Invert everything except media */ html { filter: invert(1) hue-rotate(180deg) !important; background: #1a1a2e !important; } /* Restore images, videos, iframes, canvas */ img, video, iframe, canvas, svg, picture, [style*="background-image"] { filter: invert(1) hue-rotate(180deg) !important; } /* Preserve specific elements that should not be inverted */ .no-dark-mode, .no-dark-mode *, [data-theme="light"], [data-theme="light"], .ace_editor, .ace_editor *, .CodeMirror, .CodeMirror *, .monaco-editor, .monaco-editor *, .markdown-body pre, .markdown-body pre *, .highlight, .highlight *, pre code, pre code * { filter: none !important; } /* Fix common UI elements */ .modal, .popup, .dropdown-menu, .tooltip, .popover { filter: invert(1) hue-rotate(180deg) !important; background: #2d2d44 !important; border-color: #444 !important; } /* Scrollbars */ ::-webkit-scrollbar { background: #1a1a2e !important; } ::-webkit-scrollbar-thumb { background: #444 !important; } ::-webkit-scrollbar-thumb:hover { background: #555 !important; } /* Selection */ ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; } ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; } '; } function removeDarkMode() { var style = document.getElementById('universal-dark-mode-style'); if (style) style.remove(); } // Toggle with Alt+Shift+D document.addEventListener('keydown', function(e) { if (e.altKey && e.shiftKey && e.key === 'D') { e.preventDefault(); enabled = !enabled; if (enabled) { applyDarkMode(); console.log('[Universal Dark Mode] Enabled'); } else { removeDarkMode(); console.log('[Universal Dark Mode] Disabled'); } } }); // Apply on load applyDarkMode(); // Re-apply on dynamic content var observer = new MutationObserver(function(mutations) { if (enabled && !document.getElementById('universal-dark-mode-style')) { applyDarkMode(); } }); observer.observe(document.head, { childList: true }); console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle'); })(); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

feat: narrative home, hackathon UX overhaul & direct inscription modal - #2

Merged
agustinkassis merged 9 commits into
mainfrom
hackaton-migration
Apr 27, 2026
Merged

feat: narrative home, hackathon UX overhaul & direct inscription modal#2
agustinkassis merged 9 commits into
mainfrom
hackaton-migration

Conversation

@agustinkassis

@agustinkassisagustinkassis commented Apr 27, 2026

Copy link
Copy Markdown
Member

Summary

  • Navbar — redesigned expanded (home-only) section with an "Aprendé haciendo" narrative timeline (CÓMO → Hackatones, QUÉ → Proyectos, CON → Infra propia); added desktop user dropdown (Mi dashboard, Mis proyectos, Cerrar sesión); reordered compact nav links
  • Home — replaced static hero sections with a scroll-driven 3-section experience: Hackatones, Proyectos, Infra pública accumulate progressively with Framer Motion transforms; right-side timeline dots for direct navigation
  • Hackathons list — grouped by status (active hero card / upcoming grid / closed compact grid); active hackathon surfaced with a full-width green-glow card and "Hackatón en curso ahora" label
  • Inscription flowHackathonInscripcionButton now opens a self-contained NewProjectModal inline instead of redirecting; hackathon field pre-filled and locked; unauthenticated users get LoginModal then return to the hackathon page
  • Data — swapped Commerce (fix: correct broken GitHub org URLs (lacrypta-dev → lacrypta) #3 Mayo) and Zaps (feat(home+soldados): home redesign, /soldados roster, profile pages and 404 refresh #4 Junio) order
  • Projects — public projects browsing and detail pages

Commits

HashChange
698d2c4feat(navbar): narrative expand, user dropdown, home-only hero
59a74dafeat(home): scroll-driven 3-section narrative experience
4e48485feat(hackathons/list): group by status with featured active card
c140636data(hackathons): swap Commerce (#3 Mayo) and Zaps (#4 Junio)
11be824feat(inscription): open new-project modal directly from hackathon page
681e26cfeat(projects): public projects browsing and detail pages

Test plan

🤖 Generated with Claude Code

Summary by CodeRabbit

Release Notes

  • New Features

    • Added public project details pages displaying team members and technology information
    • Added hackathon inscription functionality for participation
    • Added project creation modal with team management capabilities
    • Redesigned home page with interactive scroll-synchronized sections
    • Added authenticated user dropdown menu for quick access to dashboard and projects
  • Improvements

    • Enhanced hackathon page with categorized sections (active, upcoming, and closed)
    • Improved navbar navigation and mobile responsiveness
    • Better project navigation from hackathon and project list pages
  • Bug Fixes

    • Corrected hackathon data metadata

agustinkassisand others added 9 commits April 23, 2026 12:21
Scope the header transition to only background-color, border-color and
box-shadow so the scroll-lock padding-right compensation is applied
instantly without animating the nav content sideways.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
- Remove redundant pencil overlay button from ProfileHeader
- Extract AvatarUploader, BannerUploader and RevealOverlay into
components/ImageUploader.tsx for reuse across the app
- Avatar reveal uses animated bottom-to-top wave (polygon clip-path
driven by requestAnimationFrame with lerped height transition)
- Banner reveal keeps left-to-right sweep with glowing edge
- Fix RevealOverlay useMemo deps: clamped was missing, breaking the
left-to-right clip-path update during upload
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Removed disabled:opacity-70 from the AvatarUploader button so the
profile picture doesn't dim when the form is in a busy/saving state.
Cursor still changes to progress to indicate unavailability.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
- Redesign expanded (home-only) section with "Aprendé haciendo" headline
and a horizontal CÓMO→QUÉ→CON timeline linking Hackatones, Proyectos,
Infra propia
- Restrict expanded state to the home route ("/") only
- Add animated SCROLL chevron indicator at bottom of hero
- Reorder compact nav links: Hackatones, Proyectos, Infra pública
- Desktop: replace avatar link with button + AnimatePresence dropdown
(Mi dashboard, Mis proyectos, Cerrar sesión); close on outside click
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Replace static hero sections with a single sticky scroll experience:
- 3 sections (Hackatones, Proyectos, Infra pública) accumulate on the
right as the user scrolls
- Features reveal progressively via useTransform opacity/y animations
- Right-side timeline with 3 always-visible clickable dots + gradient
fill line; click jumps to the corresponding section
- Ambient glow shifts colour per active section
- Mobile: stacked static layout
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Split hackathons into active / upcoming / closed buckets
- Active: full-width hero card with green glow border, pulsing EN CURSO
badge, description, tags and Inscripción CTA; labeled "Hackatón en
curso ahora" above
- Upcoming: standard 3-col grid ("Próximos")
- Closed: compact 4-col grid at opacity-60 ("Anteriores")
- Extract shared HackathonCard component with compact prop
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- HackathonInscripcionButton now opens NewProjectModal inline instead of
redirecting to /dashboard/projects
- NewProjectModal: self-contained create-only modal with full Nostr
signing/publishing flow (form, stack tags, team editor, NIP-05
resolution); hackathon field pre-filled and disabled when hackathonId
is provided
- LoginModal: accept optional redirectTo prop (defaults to /dashboard)
so unauthenticated users return to the hackathon page after login
- UserProjectsClient: auto-open create form from ?hackathon=&new=1
query params (backward compat)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@vercel

vercelBot commented Apr 27, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

ProjectDeploymentActionsUpdated (UTC)
labsErrorErrorApr 27, 2026 7:33pm

Request Review

@coderabbitai

coderabbitaiBot commented Apr 27, 2026

Copy link
Copy Markdown

Caution

Review failed

Pull request was closed or merged during review

📝 Walkthrough

Walkthrough

The PR introduces major feature additions and UI redesigns across the application: a new public project details page, hackathon inscription functionality with modal workflows, a redesigned home page with scroll-synchronized sections, refactored image upload components, an enhanced project creation modal, and substantial improvements to navigation and dashboard components.

Changes

Cohort / File(s)Summary
Upload Components
app/dashboard/DashboardClient.tsx, components/ImageUploader.tsx
Extracted avatar and banner upload UI into shared reusable AvatarUploader and BannerUploader components with visual progress/reveal effects, removing inline preview and picker logic.
Hackathon Features
app/hackathons/[id]/page.tsx, app/hackathons/page.tsx, components/HackathonInscripcionButton.tsx, data/hackathons/hackathons.json
Added hackathon inscription button modal flow; redesigned hackathon listing page with grouped sections (active/upcoming/closed), new reusable HackathonCard component, and featured hero styling; updated hackathon metadata.
Project Management
app/projects/[pubkey]/[id]/page.tsx, components/NewProjectModal.tsx, app/dashboard/projects/UserProjectsClient.tsx
Created new public project details page; added comprehensive project creation modal with team editing, NIP-05 resolution, and relay publishing; enhanced dashboard with URL query params for auto-opening modals and direct project navigation links.
Home & Navigation
app/page.tsx, components/sections/HomeScroll.tsx, components/Navbar.tsx
Refactored home page to use new HomeScroll component featuring scroll-synchronized multi-section layout with animations; redesigned navbar with improved desktop/mobile navigation, interactive auth dropdown menu, and enhanced expand states.
Authentication
components/LoginModal.tsx
Added optional redirectTo prop to LoginModal for flexible post-auth navigation routing.

Sequence Diagram(s)

sequenceDiagram
participant User
participant HackathonInscripcionButton
participant useAuth
participant LoginModal
participant NewProjectModal
User->>HackathonInscripcionButton: Click "Inscripción"
HackathonInscripcionButton->>useAuth: Check authentication
alt User not authenticated
useAuth-->>HackathonInscripcionButton: unauthenticated
HackathonInscripcionButton->>LoginModal: Open with redirectTo=/hackathons/{id}
User->>LoginModal: Complete auth flow
LoginModal-->>User: Redirect to /hackathons/{id}
else User authenticated
useAuth-->>HackathonInscripcionButton: authenticated
HackathonInscripcionButton->>NewProjectModal: Open with hackathonId
User->>NewProjectModal: Fill form & submit
NewProjectModal-->>User: Close modal on success
end
Loading
sequenceDiagram
participant User
participant NewProjectModal
participant getSigner
participant RelaySet
participant Toast
User->>NewProjectModal: Submit project form
NewProjectModal->>NewProjectModal: Validate name
NewProjectModal->>NewProjectModal: Construct UserProject object
NewProjectModal->>NewProjectModal: Set state: signing
NewProjectModal->>getSigner: Request signer (shows toast with bunker URL)
getSigner-->>NewProjectModal: Signer instance
NewProjectModal->>NewProjectModal: Set state: publishing
NewProjectModal->>RelaySet: Publish project event
par Relay Publishing
RelaySet->>RelaySet: Await all relay publishes
and UI Feedback
NewProjectModal->>Toast: Show publish progress/results
end
RelaySet-->>NewProjectModal: Success count reported
NewProjectModal->>NewProjectModal: Set state: done
NewProjectModal->>Toast: Show success message
NewProjectModal-->>User: Close modal
NewProjectModal->>getSigner: Close signer connection
Loading

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~75 minutes

Poem

🐰 Hoppy hops through code so new,
Upload overlays shimmer true,
Hackathons now beckon bright,
Projects scroll and shine with light,
Navigation bounds with glee—
What a feature-full spree! 🚀

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check nameStatusExplanationResolution
Docstring Coverage⚠️ WarningDocstring coverage is 21.43% which is insufficient. The required threshold is 80.00%.Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check nameStatusExplanation
Description Check✅ PassedCheck skipped - CodeRabbit’s high-level summary is enabled.
Title check✅ PassedThe title accurately summarizes the three main changes: narrative home redesign, hackathon UX overhaul, and direct inscription modal. It is concise, specific, and clearly conveys the primary features added in the changeset.
Linked Issues check✅ PassedCheck skipped because no linked issues were found for this pull request.
Out of Scope Changes check✅ PassedCheck skipped because no linked issues were found for this pull request.

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

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch hackaton-migration

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.

Sign up for freeto 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

@agustinkassis