Context
Beepy is a notification platform that relays events to users across devices via API/Webhooks (and integrations like Zapier) so teams can get alerted anywhere. beepy.io
Summary
I contributed to the initial release of Beepy’s web application, building TypeScript-based React screens and wiring the UI to back-end endpoints. I set up a Redux-driven data flow that acted as a clean API bridge between the front end and the application’s endpoints, and I implemented client-side routing for a seamless navigation experience. The product triggers alerts (including IoT scenarios) via webhooks, and my work ensured those triggers and fetch/update cycles were surfaced consistently in the UI.
Role & Contributions
TypeScript + React UI: Built reusable components (lists, detail views, forms) for channel setup, notification rules, and delivery status.
Redux state & API bridge: Designed slices/actions for auth, channels, notifications, and templates; standardized HTTP requests (request/fulfilled/error) and normalized responses for predictable state.
Endpoint integration: Connected front-end flows to REST endpoints (create/update channels, manage members, test sends, retrieve histories), with loading/error handling and optimistic updates where appropriate.
Routing & app structure: Implemented route layout and guarded routes (public/authenticated), keeping navigation stable across refreshes and deep links.
Webhook-driven UX hooks: Exposed UI affordances to register webhooks and verify payloads; surfaced delivery results/health checks to users.
DX touches: Light conventions for folder structure, type definitions for API payloads, and small utilities for date/number formatting to keep the UI consistent.
What the app does (at a glance)
Triggers notifications via API/Webhooks (e.g., from IoT or other systems) and fans them out to channel members/devices.
Channel & member management with simple flows to add recipients and test deliveries.
Templated notifications (daily/weekly), with basic status/history views in the UI.
This description reflects my work on the initial versions of the web application.
Later updates were handled by the team; I did not have an active role after the early release.
If you’d like, I can trim this into a short “card blurb” or expand it into a case study with screenshots and a simple sequence diagram of the Redux/API flow.