Skip to content

[Frontend] Build Production-Grade Webhook Setup Dashboard (Admin/Organizer Panel) #17

@abhishek-nexgen-dev

Description

@abhishek-nexgen-dev

We need to build a frontend dashboard for organizers/admins where they can:

Create webhooks
Select events
Manage secrets
Enable/disable webhooks
Test webhooks
View delivery logs
Retry failed deliveries

👉 This UI connects to backend webhook system (setup + delivery)


🎯 Goals

Frontend must be:

  • Clean & intuitive (SaaS-level UX)
  • Secure (no secret leaks)
  • Scalable (handle many webhooks/logs)
  • Responsive (desktop + tablet)
  • Production-ready

🧱 PAGES & FEATURES


1️⃣ WEBHOOK LIST PAGE


Route

/dashboard/webhooks

Features

  • List all webhooks

  • Show:

    • name
    • URL (masked)
    • events count
    • status (active/inactive)
    • last delivery status

UI Actions

  • toggle enable/disable
  • edit webhook
  • delete webhook
  • open details page

Table Example

Name | URL | Events | Status | Last Delivery | Actions


2️⃣ CREATE WEBHOOK PAGE


Route

/dashboard/webhooks/create

Form Fields

Webhook Name
Webhook URL
Select Events (multi-select)
Secret (optional)
Permissions (optional)

Event Selector

Options:

member.created
member.activated
event.created
hackathon.created
github.push
github.pr.opened

Validation

  • URL must be valid HTTPS
  • show inline errors
  • prevent submit if invalid

UX

  • loading state
  • success message
  • redirect after create


3️⃣ EDIT WEBHOOK PAGE


Route

/dashboard/webhooks/:id/edit

Features

  • pre-filled form
  • update webhook
  • rotate secret


4️⃣ WEBHOOK DETAILS PAGE


Route

/dashboard/webhooks/:id

Show

  • webhook info
  • subscribed events
  • status
  • secret (masked)


5️⃣ DELIVERY LOGS PAGE


Route

/dashboard/webhooks/:id/logs

Features

  • list all deliveries

  • filter by:

    • success / failed
    • event type

Show

event
status
timestamp
response code

Actions

  • retry failed delivery
  • view payload
  • view response


6️⃣ TEST WEBHOOK FEATURE


Button

Test Webhook

Flow

click test
→ call API
→ show success/failure


🧠 STATE MANAGEMENT


Recommended

  • React Query (TanStack Query)
  • React Hook Form
  • Zod validation

Data Flow

API → fetch → store → UI render


⚙️ API INTEGRATION


Endpoints

GET /api/v1/webhooks
POST /api/v1/webhooks
PATCH /api/v1/webhooks/:id
DELETE /api/v1/webhooks/:id
POST /api/v1/webhooks/:id/test
GET /api/v1/webhooks/:id/logs


🔐 SECURITY (FRONTEND)


Secret Handling

  • never show full secret
  • mask like:
********abcd

Prevent

  • XSS
  • unsafe input rendering


🎨 UI / UX REQUIREMENTS


Must Have

  • loading states
  • error states
  • empty state
  • confirmation dialogs (delete)

UI Style

  • clean SaaS design
  • card + table layout
  • responsive design


🧪 TESTING


Unit

  • form validation
  • UI components

Integration

  • API calls
  • create/edit flow

Edge Cases

empty list
API failure
slow network
invalid input


📊 OBSERVABILITY (Frontend)


Track:

form errors
API failures
user actions


⚡ PERFORMANCE


  • lazy load pages
  • pagination for logs
  • debounce input


🌍 ACCESS CONTROL


Only allow:

CommunityOwner
Admin
Organizer


📦 FOLDER STRUCTURE


/pages/webhooks
/components/webhooks
/services/webhook.api.js
/hooks
/utils


🧨 EDGE CASES


invalid webhook URL
large logs list
retry spam
secret exposure


✅ ACCEPTANCE CRITERIA


✔ Webhook list page works
✔ Create webhook works
✔ Edit webhook works
✔ Delete webhook works
✔ Test webhook works
✔ Logs page works
✔ Retry delivery works
✔ Secure secret handling
✔ Responsive UI
✔ Fully tested


🔥 FINAL SUMMARY

This frontend should feel like:

Stripe / GitHub webhook dashboard

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions