Skip to content
Ekene Ngwudike
All work

[ Product frontend · 01 ]

Boundless

Shared detail pages, workspaces and hackathon tools for a live funding platform

Role
Frontend developer
Type
Funding platform for builders
Year
2025 – now
Stack
Next.js, React, TypeScript, Tailwind CSS, shadcn/ui, TanStack Query, react-hook-form + zod, Vitest
Boundless discover page with a featured bounty banner and a row of bounty cards

[ Overview ]

Boundless is where builders in the Stellar ecosystem find hackathons, bounties, grants and crowdfunding campaigns. I started contributing to the platform's Next.js codebase as an open-source developer in September 2025, and joined the team as a frontend developer in July 2026. 28 merged pull requests so far.

Boundless has four kinds of opportunity (hackathons, bounties, grants and crowdfunding) and each one needs a listing, a detail page and somewhere for organisers and contributors to manage their work. Work is planned as scoped issues against Figma designs and a typed API. I started on that board as an outside contributor and now work from it as part of the team.

The codebase is a large Next.js App Router project with generated OpenAPI types, React Query for data, react-hook-form and zod for forms, and tests in Vitest and Testing Library. Most of my work there is fitting new features into those conventions rather than inventing new ones.

[ My contributions ]

The parts I built, and where to find them.

References are pull request numbers. I built these features; teammates or maintainers reviewed them and sometimes added fixes before merging.

  1. 01Merged

    One detail page for four kinds of opportunity

    Built a shared detail feature used by hackathons, bounties, grants and crowdfunding: thin [slug] routes with loading skeletons, a pillar context, a data hook with a view-model mapper, and a DetailHeader composed from an organiser row, actions menu and participant meta.

    #134
  2. 02Merged

    The Discover landing page

    Cards for each opportunity type, a featured carousel with snap scrolling and keyboard/touch support, a stats banner, and the reusable SectionHeader, PillarSection and PillarFeed pieces with their skeleton and empty states.

    #31 – #41, #55
  3. 03Merged

    Organiser tools: winners, announcements, activity

    A bounty workspace for organisers: a countdown built on useSyncExternalStore to avoid hydration mismatches, a winners table with rank editing that locks once an award is on-chain, an announcement composer, an activity feed with filters, and CSV export.

    #323
  4. 04Merged

    Contributor workspace and workspace switcher

    A ‘My Workspace’ area with projects, submissions, applications and saved items, filters kept in the URL, pagination and optimistic unsave. Plus a switcher between contributor and organiser consoles that reads context from the URL and remembers the last organisation.

    #459, #296
  5. 05Merged

    Hackathon features

    Venue and timezone-aware timelines, a participants panel with team and skills filters and debounced search, a registration flow with organiser questions, project pages with milestones and voting, and submission details as an intercepting-route modal.

    #174, #363, #594, #670, #710, #750

[ The pages ]

In the product.

boundlessfi.xyz
Boundless hackathon detail page with organiser row, timeline, entries count, status and tabs
The shared detail header: organiser, participants, timeline, entries, status, tabs.
boundlessfi.xyz
Boundless discover page showing the featured carousel and Explore Bounties section
Discover: featured carousel, section headers and opportunity cards.
boundlessfi.xyz
Boundless bounty detail page
The same detail feature serving a bounty.

[ Notes ]

  • Boundless's platform repository is private, so PR links aren't public. The earlier public repo (boundlessfi/builders) has my Apollo/GraphQL setup and sponsor review dashboard.
  • Several larger PRs include review commits from teammates. The features were mine; the final polish was shared.

[ Next project ]

Useroutr

Payment infrastructure