Commit Graph

77 Commits

Author SHA1 Message Date
Dorian
39feb722f5 Fix PWA installation for Brave/Android - Complete rewrite
Critical fixes for PWA installation:
1.  Use proper Vite PWA registration with virtual:pwa-register
2.  Simplified manifest.json (removed verbose name, fixed orientation)
3.  Added 'any maskable' dual-purpose icon for better compatibility
4.  Removed crossorigin from manifest link (causes issues)
5.  Simplified start_url to just '/'
6.  Added msapplication-TileColor meta tag
7.  Set injectRegister: 'auto' in Vite config
8.  Use public/manifest.json directly instead of generating

This should now work on Brave Browser Android with proper 'Install App' prompt.
Test: Clear site data, visit site, should see install prompt within 30 seconds.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-03 00:26:31 +00:00
Dorian
c32a4f80e5 Make splash logo responsive - 200px mobile, 400px desktop
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-03 00:17:26 +00:00
Dorian
5ebb3e20f9 Add heavily staggered border drawing animation
Draw sequence (cascading):
- 0.0s: Top left block starts
- 0.2s: Top right block
- 0.4s: Center circle
- 0.6s: Diagonal 1
- 0.8s: Diagonal 2
- 1.0s: Diagonal 3
- 1.2s: Diagonal 4
- 1.4s: Bottom left block
- 1.6s: Bottom center block
- 1.8s: Bottom right block

Undraw mirrors this in perfect reverse!
Creates a beautiful cascading effect.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-03 00:15:26 +00:00
Dorian
33eb672b36 Slow down background fade out to 1.5s
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-03 00:13:00 +00:00
Dorian
8f1db67c61 Reverse undraw animation - mirror of draw sequence
Changes:
- Fills disappear in reverse order (last-in, first-out)
- Strokes undraw using reverse dasharray animation
- Diagonals undraw with reverse 0.3s stagger
- Circle undraws slower (2s) like it drew
- Background still fades out smoothly after undraw completes

Animation now perfectly mirrors itself!

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-03 00:12:36 +00:00
Dorian
8b5b7297d3 Add SplashIntro import to Browse.vue
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-03 00:11:28 +00:00
Dorian
896e5d3ced Add splash intro animation with logo
Animation Sequence (5 seconds total):
1. Borders draw (0-1.5s): Stroke dasharray animation
2. Fills appear (1.2-2.1s): Staggered opacity fade-in for each shape
3. Hold (2.1-3s): Logo fully visible
4. Undraw (3-4.5s): Scale down + fade out
5. Reveal (4.5-5s): Interface fades in

Features:
- Black background (#0a0a0a)
- SVG stroke-dasharray for border drawing effect
- Staggered fill animations for depth
- Center circle draws slower for emphasis
- Scale + fade undraw effect
- Fixed z-index: 9999 overlay
- Smooth transition when removing splash

Draft implementation ready for refinement!

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-03 00:11:08 +00:00
Dorian
d44878bae6 Make Play button fill more transparent for better glass effect
- Reduce opacity from 0.95 to 0.85 (85% transparent)
- Hover state: 0.95 for subtle feedback
- More glassmorphic appearance with background showing through
- Better matches design system glass aesthetic

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-03 00:08:25 +00:00
Dorian
db6d058a49 Fix light mode Play button gradient border visibility
- Change gradient from white/light-gray to darker gray tones
- Old: rgba(255,255,255,0.8) → rgba(200,200,200,0.3) (too subtle)
- New: rgba(100,100,100,0.4) → rgba(50,50,50,0.2) (visible)
- Creates subtle dark outline that's visible on white button
- Matches design system glassmorphism with proper gradient borders

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-03 00:08:00 +00:00
Dorian
d4b2d67a0c Show profile name on mobile header without dropdown
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-03 00:05:56 +00:00
Dorian
f170fd6625 Add profile dropdown and move nav to left with 40px gap
Header Layout Changes:
- Move navigation buttons next to logo on left side (40px gap)
- Remove centered navigation positioning
- Add profile dropdown after search on right side

Profile Dropdown Features:
- Shows user avatar, name 'Dorian', and chevron icon
- Glassmorphic dropdown menu with our button styles
- Menu items: Profile, Settings, Sign Out
- Icons for each menu item
- Smooth slide-down animation
- Click outside to close
- Desktop only (hidden on mobile)
- Uses same glass effect as nav buttons

Responsive:
- Mobile shows simple avatar without dropdown
- Search button hidden on mobile
- Nav stays in mobile bottom bar

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-03 00:05:22 +00:00
Dorian
0031456f4e Fix Android PWA installation - add proper web app instead of shortcut
Android PWA Requirements:
- Add mobile-web-app-capable meta tag for Android
- Add application-name meta tag
- Add prefer_related_applications: false to manifest
- Add explicit icon sizes (192x192, 512x512) for both any and maskable
- Add orientation: any for flexible display
- Add lang and dir to manifest for proper localization
- Add ?source=pwa to start_url for analytics
- Add crossorigin="use-credentials" to manifest link
- Add proper service worker registration in main.ts
- Add vite-plugin-pwa/client types to env.d.ts

This ensures Android recognizes it as a full PWA instead of creating a shortcut

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-03 00:03:00 +00:00
Dorian
91dd58c0b2 Update Play and More Info buttons with glassmorphism styles
- Add hero-play-button with light mode glass effect (white background)
- Add hero-info-button with dark mode glass effect
- Apply gradient borders with ::before pseudo-elements
- Add hover animations with translateY and enhanced shadows
- Responsive padding: 10px/28px mobile, 12px/32px desktop
- Match nav button styling with proper backdrop blur and inset highlights

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-03 00:01:33 +00:00
Dorian
6e9f4f1f8e Change mobile side margins to 16px (px-4)
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-02 23:56:38 +00:00
Dorian
176a37be30 Fix banner backdrop fallback path to use public folder
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-02 23:55:06 +00:00
Dorian
a57bd11bd0 Fix banner backdrop image path for production
- Move god-bless-bitcoin-backdrop.jpg to public/images/ folder
- Update content store to use /images/ path instead of /assets/images/
- Files in public/ are served directly in production builds
- Fixes broken banner image on production server

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-02 23:52:49 +00:00
Dorian
6ade69d477 Update logos and improve film title styling
- Update app-icon.svg with new gradient strokes and circle element
- Update logo.svg with matching design improvements and gradient borders
- Increase film title size to 20px (text-xl) with bold weight on desktop
- Keep 16px (text-base) with semibold weight on mobile for better proportions

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-02 23:50:53 +00:00
Dorian
93403375d3 Fix TypeScript build errors for Docker deployment
- Add ImportMeta and ImportMetaEnv type declarations to env.d.ts
- Fix typo: INDEEHHUB_API → INDEEDHUB_API in indeeHubApi.ts
- Fix nostr-tools Filter type usage in subscribeToContent
- Remove unused Filter import and userPrivkey parameter
- Increase Workbox maximumFileSizeToCacheInBytes to 10MB for large images
- Build now succeeds with 43 precached entries (81.98 MB)

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-02 23:47:45 +00:00
Dorian
3f3849e76f Add Docker deployment support and PWA enhancements
- Add Dockerfile with multi-stage build (Node.js + Nginx)
- Add docker-compose.yml for Portainer stack deployment on port 7777
- Add nginx.conf with PWA support, gzip compression, and security headers
- Add .dockerignore for optimized Docker builds
- Add DEPLOYMENT.md with comprehensive deployment guide
- Configure Vite PWA plugin with service worker and offline support
- Add PWA manifest.json with app icons and shortcuts
- Enhance logo.svg with iOS-style glass effects (filters, gradients, highlights)
- Add app-icon.svg for PWA installation
- Update mobile nav with glassmorphic active tab styling
- Fix mobile tab bar layout shift issues with flex-1 and consistent sizing
- Update index.html with PWA meta tags and Apple-specific settings
- Add health check endpoint at /health for container monitoring

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-02 23:43:42 +00:00
Dorian
90c55883f2 feat: enhance styling and layout for improved user experience
- Added custom fonts 'Blade Knight' and 'Coligra' for a unique aesthetic
- Updated background color and styling for body and app components
- Improved content card design with glass morphism effects and hover states
- Enhanced mobile navigation with a floating glass effect and updated button styles
- Adjusted header layout for better responsiveness and visual appeal

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-02 23:18:35 +00:00
Dorian
ea03167da8 feat: enhance layout and styling of content rows and header
- Updated content card width from 140/180px to 200/280px for improved visibility
- Changed image class to use 'object-contain' and added background color for better aesthetics
- Introduced a gradient background for the header with dynamic styles based on scroll position
- Added new CSS classes for header gradient effects and improved backdrop filter for a modern look

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-02 22:46:45 +00:00
Dorian
b5c6901372 feat: improve content card sizing and spacing
- Reduced card width from 200/280px to 140/180px
- Increased gap between cards from 8px to 32px (gap-8)
- Added vertical padding (py-4) to content rows
- Made title text smaller and responsive
- Hide description on mobile for cleaner look

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-02 22:35:17 +00:00
Dorian
2269100dfb feat: use downloaded local images for all films
- Updated film data to use 21 locally downloaded images
- All posters and backdrops now served from /public/images/films/
- No external CDN dependencies for core films
- Includes Bitcoin docs, dramas, and independent films
- Images: webp, png, jpeg formats (optimized)

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-02 22:34:00 +00:00
Dorian
8b8d5f7b0f feat: add downloaded film images
- Downloaded 15 film posters and backdrops from CloudFront CDN
- Updated film data to use local images where available
- Remaining films still use CDN URLs
- Images saved in public/images/films/ directory

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-02 22:33:00 +00:00
Dorian
92d6943cb3 feat: integrate real IndeeHub film data with CDN images
- Replaced placeholder content with 20 real IndeeHub films
- All films now use IndeeHub's CloudFront CDN for images
- Added actual film titles, descriptions, and metadata
- Reduced hero section height (60vh/65vh) for better fold usage
- Content starts higher on page with more visible films

Films include:
- Bitcoin documentaries: God Bless Bitcoin, Bitcoiners, Hard Money
- Dramas: The Things We Carry, Kismet, Clemont, Bender
- Economics: Bitcoin: End of Money, Menger Notes, Housing Bubble
- Plus shorts and independent films

Images served from d1yvaqj97q119b.cloudfront.net

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-02 22:26:50 +00:00
Dorian
f8abd42329 feat: transparent header and image download scripts
- Made header transparent on scroll for premium Netflix-style look
- Added browser console script to download all IndeeHub images
- Created Python script for batch image downloading
- Added shell script for curl-based downloads

The header now starts fully transparent and transitions to semi-transparent
black with blur when scrolling, creating a floating navigation effect.

Download scripts will extract all film posters, backdrops, and metadata
from IndeeHub.studio screening room.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-02 22:23:17 +00:00
Dorian
0bb1bcc5f9 Initial commit: IndeeHub decentralized streaming platform
Built a complete Netflix-style streaming interface for IndeeHub's decentralized media platform with real film content.

Features:
- Vue 3 + TypeScript + Vite setup with hot module reloading
- Netflix-inspired UI with hero section and horizontal scrolling content rows
- Glass morphism design system with custom Tailwind configuration
- 20+ real IndeeHub films organized into 6 categories (Bitcoin, Documentaries, Drama, etc.)
- Full-featured video player component with custom controls
- Mobile-responsive design with bottom navigation
- Nostr integration ready (nostr-tools, relay pool, NIP-71 support)
- Pinia state management for content
- MCP tools configured (Filesystem, Memory, Nostr, Puppeteer)

Components:
- Browse.vue: Main streaming interface with hero and content rows
- ContentRow.vue: Horizontal scrolling film cards with navigation arrows
- VideoPlayer.vue: Custom video player with play/pause, seek, volume, fullscreen
- MobileNav.vue: Bottom tab navigation for mobile devices

Tech Stack:
- Frontend: Vue 3 (Composition API), TypeScript
- Build: Vite 7
- Styling: Tailwind CSS with custom theme
- State: Pinia 3
- Router: Vue Router 4.6
- Protocol: Nostr (nostr-tools 2.22)

Design:
- 4px grid spacing system
- Glass morphism UI components
- Netflix-style hero section with featured content
- Smooth animations and hover effects
- Mobile-first responsive breakpoints
- Dark theme with custom color palette

Content:
- 20+ IndeeHub films with titles, descriptions, categories
- Bitcoin documentaries: God Bless Bitcoin, Dirty Coin, Searching for Satoshi
- Independent films and documentaries
- Working Unsplash CDN images for thumbnails and backdrops

Ready for deployment to Umbrel, Start9, and Archy nodes.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-02 22:19:47 +00:00