Commit Graph

53 Commits

Author SHA1 Message Date
Nikita
271840ba34 Refactor metadata field in GlideCanvasItem schema to be a JSON string
- Changed metadata from a record of strings to a nullable JSON string
- Updated schema to reflect the new data type for metadata
2025-12-25 08:14:29 -08:00
Nikita
9c90b7db8d Add a new "test-jazz-stream" task to flow.toml for testing live stream recording flow, including setup instructions and verification steps.
Update CommentBox component to handle image uploads with validation, preview, and progress tracking, and to manage comments with Jazz container initialization.
2025-12-25 05:04:43 -08:00
Nikita
15432a69b5 Add GlideCanvasItem schema, update viewer data structure, and integrate Glide route and API endpoints for managing canvas items 2025-12-25 03:42:57 -08:00
Nikita
490e608d11 . 2025-12-25 03:03:26 -08:00
Nikita
f2b3f705eb Update profile update to set 'updatedAt' as a Date object; simplify preferences state by removing unused variables; change default theme to 'Dark'; update settings labels and descriptions for clarity; modify sign-out button text; revise billing features list. 2025-12-25 03:02:14 -08:00
Nikita
18f4a3bf71 Update profile API to handle bio, website, and image fields; enhance profile UI with avatar, bio, and website inputs; fetch full profile data on component mount for better state management. 2025-12-25 02:43:16 -08:00
Nikita
205c38d0ee Add database schema updates for user profile fields and streams, seed initial data, and extend components with streaming settings and profile fields. 2025-12-25 00:41:00 -08:00
Nikita
3509b91c08 Add ProfileSidebar component for user profile display and update route to use it 2025-12-24 23:36:11 -08:00
Nikita
50bf16cd6e Update environment variable name for Cloudflare live input UID and refactor StreamPage to fetch HLS URL from API
- Rename `CLOUDFLARE_STREAM_NIKIV_VIDEO_ID` to `CLOUDFLARE_LIVE_INPUT_UID` in env.d.ts
- Remove hardcoded `LIVE_INPUT_UID` constant from `$username.tsx`
- Add `hlsUrl` state and update it based on API response in `$username.tsx`
- Modify stream playback logic to use `hlsUrl` for nikiv user
- Fetch HLS URL from server-side API and update state accordingly
- Update `check-hls.ts` to derive HLS URL dynamically from environment variables
- Remove `CLOUDFLARE_LIVE_INPUT_UID` from `wrangler.jsonc` environment variables
2025-12-24 23:32:50 -08:00
Nikita
b2c94ea623 Update hardcoded Cloudflare Stream UID to a constant and remove dynamic HLS URL updates 2025-12-24 23:26:36 -08:00
Nikita
ca8af44c72 Update environment typings and stream handling for dynamic HLS URL
- Add `CLOUDFLARE_STREAM_NIKIV_VIDEO_ID` to environment variables
- Refactor `$username.tsx` to initialize stream data with default HLS URL
- Implement dynamic HLS URL update based on API response for Nikiv stream
- Modify `/api/check-hls` route to use environment variable for video ID
- Ensure HLS URL updates trigger stream data refresh in client
- Update `wrangler.jsonc` to include `CLOUDFLARE_STREAM_NIKIV_VIDEO_ID` in env vars
2025-12-24 23:17:59 -08:00
Nikita
78a4be3104 Remove commented-out code related to watch time tracking and authentication gating from $username.tsx for cleaner, more maintainable code. 2025-12-24 20:21:56 -08:00
Nikita
797311eeba Improve VideoPlayer event handling and streamline viewer count sync
- Add a `callReady` function to ensure `onReady` is called only once
- Attach `canplay` event listener for native HLS support to trigger `onReady`
- Call `onReady` immediately after manifest parsing for HLS streams
- Simplify `useStreamViewers` hook to skip viewer count sync for user "nikiv"
- Silently handle errors during viewer count synchronization to avoid unnecessary logs
2025-12-24 19:54:00 -08:00
Nikita
559d6dc635 Update pnpm lock with new dependencies and add flow test project with setup, dev, and test scripts 2025-12-24 19:52:54 -08:00
Nikita
9b535249bc Remove unused code related to the free preview countdown banner in StreamPage component 2025-12-24 19:38:34 -08:00
Nikita
e4a15b9c29 Add LiveNowSidebar component for live status notification and integrate it into relevant pages 2025-12-24 19:19:25 -08:00
Nikita
bc84274304 Update setup script to improve environment variable management and secrets handling. 2025-12-24 19:13:20 -08:00
Nikita
3141241626 Improve VideoPlayer to notify when ready and update StreamPage to handle player readiness and connection state 2025-12-24 19:06:58 -08:00
Nikita
0aa68c9ae8 Improve HLS playlist live check logic to correctly identify master playlists and live streams 2025-12-24 18:56:39 -08:00
Nikita
7e480305c4 Add API route to check HLS stream status and integrate server-side HLS validation in StreamPage component 2025-12-24 18:52:46 -08:00
Nikita
7c678b3110 Fix HLS live check to handle fetch errors and improve polling logic 2025-12-24 18:49:49 -08:00
Nikita
03362955f0 Implement free preview timer with localStorage persistence and UI indicator 2025-12-24 18:48:03 -08:00
Nikita
ba34ab4363 Add debug logs for stream status and HLS fetch process 2025-12-24 18:34:54 -08:00
Nikita
2d3d7e0185 Refactor stream status fetch to use local API proxy; add /api/stream-status route; update Stripe config references; modify checkout to use proPriceId; adjust fetch URLs in landing page. 2025-12-24 18:18:19 -08:00
Nikita
157f9a69d8 Add live stream status indicator to landing page and sidebar 2025-12-24 18:12:35 -08:00
Nikita
49c86a8034 Implement dashboard with user session, URL management, and access control 2025-12-24 18:08:54 -08:00
Nikita
dc3112bb3e Update auth page header and description for clarity and consistency 2025-12-24 17:55:42 -08:00
Nikita
fcc3d9eedf Update flow.toml to add environment management tasks and improve index.tsx by removing commented-out gallery code and adjusting hero section height 2025-12-24 17:36:17 -08:00
Nikita
f81affe448 Improve billing and access control by adding creator subscription check; update route components to enforce user authentication before viewing streams and replays. 2025-12-24 17:14:01 -08:00
Nikita
9d7ea0ada1 Update Stripe setup instructions and add new creator economy API routes
- Clarify instructions for creator-specific pricing and setup
- Remove outdated Stripe Price ID prompt from setup script
- Add API route definitions for `/api/creator/tiers`, `/api/creator/subscribe`, and `/api/creator/$username/access`
- Register new routes in route tree for API access
- Update documentation to reflect new endpoints and instructions
2025-12-24 16:58:43 -08:00
Nikita
f7009b161c Add Stripe setup and verification tasks to flow.toml; update database schema with creator economy tables for subscriptions, tiers, products, and payouts. 2025-12-24 16:55:11 -08:00
Nikita
cf4a43779e Implement setup task for worker admin environment and add new database schema and snapshot files 2025-12-24 16:31:01 -08:00
Nikita
26fa0b0ec9 Add URL management schema, route, and related updates for URLs feature 2025-12-24 15:10:38 -08:00
Nikita
7f6f7d2f37 Add stream_replays table, related schema, and API endpoints for managing stream replays 2025-12-23 23:20:22 -08:00
Nikita
1bb0450d02 Add links to social media and GitHub in LandingPage for better navigation 2025-12-23 18:17:28 -08:00
Nikita
9e62068359 Improve HLS live detection and state management in StreamPage component
- Add `hlsLive` state to track if HLS playlist is live
- Implement `isHlsPlaylistLive` function to determine playlist status
- Reset `hlsLive` before fetching new manifest
- Update fetch logic to set `hlsLive` based on playlist analysis
- Refine live status checks to consider HLS playlist state
- Adjust rendering conditions to use `isActuallyLive` for consistency
2025-12-23 14:41:42 -08:00
Nikita
9233104381 Implement soft fullscreen mode with timeout handling in VideoPlayer component; update fullscreen state management and styling accordingly. 2025-12-23 14:25:07 -08:00
Nikita
937f13581e Fix Spotify now playing text and link rendering in StreamPage component 2025-12-23 14:16:48 -08:00
Nikita
15b92cc16b Improve fullscreen support for CloudflareStreamPlayer and VideoPlayer components
- Add missing `webkitallowfullscreen` attribute in CloudflareStreamPlayer
- Enhance VideoPlayer to detect iOS devices and use `webkitEnterFullscreen` when available
- Adjust fullscreen state setting to account for WebKit-specific fullscreen elements
2025-12-23 14:07:53 -08:00
Nikita
4a6b510a5e Update production setup docs with new Spotify secret; enhance video components for fullscreen handling; add Spotify now-playing API module. 2025-12-23 13:54:34 -08:00
Nikita
244aa9324a Add cross-browser fullscreen handling and event listeners to VideoPlayer component 2025-12-23 12:31:55 -08:00
Nikita
93bd99f9ed Implement WebRTC URL resolution and update stream playback logic across components and API routes 2025-12-23 11:32:08 -08:00
Nikita
f45c28f941 fix: remove obsolete commit checkpoints file; update WebRTCPlayer for error handling; improve stream fallback logic in StreamPage 2025-12-22 11:47:17 -08:00
Nikita
2a98dd1d0b Update stream playback configuration to include WebRTC support and conditionally render WebRTC player in stream page. 2025-12-21 18:37:46 -08:00
Nikita
3d6709e5c5 Update commit checkpoints with new timestamp and session ID; modify stream placeholder to display "stream soon" and adjust link text based on username. 2025-12-21 18:36:03 -08:00
Nikita
01102c6817 Add WebRTC playback support: implement WebRTCPlayer component, update schema, database, playback types, and API endpoints to handle webrtc_url field and streaming logic 2025-12-21 18:34:06 -08:00
Nikita
b9927d9807 Update stream capture frame rate to 60 FPS and adjust encoding settings; increase audio bitrate to 256k for better quality. 2025-12-21 18:15:28 -08:00
Nikita
7d24993b08 Update commit checkpoints, add API route for stream viewers, and synchronize viewer count to database 2025-12-21 15:20:30 -08:00
Nikita
e37e89dc4d Update streaming placeholder to display a link for 'nikiv' and a message for others 2025-12-21 15:15:14 -08:00
Nikita
f188310411 Add real-time viewer count component and integrate it into stream page; update presence tracking logic with Jazz. 2025-12-21 15:12:32 -08:00