Commit Graph
35 Commits
Author SHA1 Message Date
dependabot[bot] 5ad01d620d chore(deps): bump next in the npm_and_yarn group across 1 directory
Bumps the npm_and_yarn group with 1 update in the / directory: [next](https://github.com/vercel/next.js).


Updates `next` from 16.2.6 to 16.2.11
- [Release notes](https://github.com/vercel/next.js/releases)
- [Commits](https://github.com/vercel/next.js/compare/v16.2.6...v16.2.11)

---
updated-dependencies:
- dependency-name: next
  dependency-version: 16.2.11
  dependency-type: direct:production
  dependency-group: npm_and_yarn
...

Signed-off-by: dependabot[bot] <[email protected]>
2026-07-25 10:20:37 +00:00
yusufipk bac6af0ded fix(deps): bump sharp to 0.35.3 for the libvips CVE fixes
sharp < 0.35.0 ships libvips 1.2.4, which carries CVE-2026-33327,
CVE-2026-33328, CVE-2026-35590 and CVE-2026-35591 (Dependabot #21).
0.35.3 bundles libvips 1.3.2 (8.18.3).

next 16.2.6 still declares sharp ^0.34.5 as an optional dependency, so a
plain bump left a nested vulnerable copy under node_modules/next that the
image optimizer would resolve first. The overrides entry pins a single
sharp across the tree; it can go once next ships >= 16.3 with sharp ^0.35.
2026-07-25 17:15:30 +07:00
yusufipk cebdf23b38 fix(security): bump nodemailer to 9.0.1
Resolves the high-severity advisory (dependabot #20) where the
message-level raw option bypassed disableFileAccess/disableUrlAccess,
enabling arbitrary file read and SSRF. We only use the standard
createTransport/sendMail API, so the major bump is non-breaking.
2026-06-27 13:38:07 +02:00
yusufipk 52e4169db2 feat: add project bulk download and bulk video delete
Add a "Download project" / "Download selected" flow that builds a
server-side manifest of downloadable media, plus a selection mode with
bulk delete for project videos.

Gate viewer downloads behind a new project allowDownloads setting
(default off, opt-in). Admins can always download; enabling on a public
project allows anonymous visitors to download. Enforce the setting on
every download surface (manifest, version, asset, watch, video routes)
via canDownloadProjectMedia.

Add rate limits for the manifest endpoint, host allowlisting for direct
download URLs, and configurable file/byte caps.

Closes #16
Closes #19
2026-06-27 13:24:05 +02:00
yusufipk 4bf6e821af feat: enable S3 video uploads and update related configurations
- Added support for self-hosted S3 video uploads with new environment variables: OPENFRAME_ENABLE_S3_VIDEO_UPLOADS and OPENFRAME_MAX_VIDEO_UPLOAD_BYTES.
- Updated .env.example and .env.docker.example to reflect new configuration options.
- Enhanced Content Security Policy to include origins for S3-compatible storage.
- Updated dependencies for AWS SDK to support new features.
- Refactored upload logic to accommodate both Bunny and S3 upload providers.
- Updated documentation to clarify the usage of direct uploads and S3 configurations.
- Closes #11
2026-05-27 17:04:39 +02:00
dependabot[bot] 1dcbb78b22 chore(deps): bump next in the npm_and_yarn group across 1 directory
Bumps the npm_and_yarn group with 1 update in the / directory: [next](https://github.com/vercel/next.js).


Updates `next` from 16.2.3 to 16.2.6
- [Release notes](https://github.com/vercel/next.js/releases)
- [Changelog](https://github.com/vercel/next.js/blob/canary/release.js)
- [Commits](https://github.com/vercel/next.js/compare/v16.2.3...v16.2.6)

---
updated-dependencies:
- dependency-name: next
  dependency-version: 16.2.6
  dependency-type: direct:production
  dependency-group: npm_and_yarn
...

Signed-off-by: dependabot[bot] <[email protected]>
2026-05-12 23:06:01 +00:00
Enes Köksal 3cfea40fbd refactor: eslint and prettier conflict will be resolved and formatted 2026-04-23 17:05:43 +03:00
Enes Köksal 385b61f29b chore: add husky, commitlint, lint-staged, editorconfig and prettier 2026-04-17 22:54:05 +03:00
Yusuf İpek c457971ff5 chore: update dependencies to latest versions
- upgraded @aws-sdk/client-s3 from ^3.985.0 to ^3.1029.0
- upgraded next from 16.1.6 to 16.2.3
- upgraded nodemailer from ^8.0.1 to ^8.0.5
2026-04-10 22:41:05 +03:00
Yusuf İpek 4ba7521a38 feat(auth): implement OAuth login with Google and GitHub, add Prisma adapter for user management 2026-04-10 22:23:13 +03:00
Yusuf İpek e97d60cf36 feat(docker): add Docker support with configuration files and entrypoint scripts 2026-04-09 15:54:03 +03:00
Yusuf İpek 6f22b0bf8b feat(billing): integrate Stripe for subscription management and billing access
- Added billing-related fields to the User model in the database.
- Implemented functions for managing billing access, including trial periods and subscription statuses.
- Created new billing utility functions for Stripe integration.
- Updated onboarding page to include billing overview and workspace creation eligibility.
- Enhanced route access checks to require billing access for certain actions.
- Implemented cleanup scripts for expired billing workspaces and associated media.
- Updated header component to conditionally show app navigation based on billing access.
- Added new migrations for billing-related database changes.
2026-04-08 17:50:40 +03:00
Yusuf İpek 53f7c326df feat: add sharp dependency to enhance image processing capabilities 2026-02-26 15:34:40 +03:00
Yusuf İpek 3522c3da30 feat(video-page): enhance Bunny asset handling and playback features
- Added support for tracking Bunny asset readiness and processing states.
- Implemented thumbnail loading error handling and retry logic for Bunny assets.
- Introduced a "Ready to play" indicator for Bunny assets.
- Enhanced Bunny preview player with playback speed and quality selection options.
- Improved state management for video playback, including resuming playback after source switches.
- Updated package.json to streamline database setup commands.
2026-02-26 11:48:21 +03:00
Yusuf İpek bb43a07234 refactor(db): move rate-limit extras into Prisma migration and remove db-extras script 2026-02-26 10:40:36 +03:00
Yusuf İpek fa51847aa4 feat(storage): add shared R2 media proxy and orphan cleanup tooling for R2/Bunny 2026-02-24 17:02:54 +03:00
Yusuf İpek d15e5192ac chore: clean up lint/type issues and tighten comment media URL validation 2026-02-23 16:06:43 +03:00
Yusuf İpek f224b0a8a1 feat(landing): redesign homepage with GSAP-driven landing page and new showcase assets 2026-02-22 15:53:53 +03:00
Yusuf İpek 47f12b38fa chore: remove unused dependencies and delete unused combobox demo components 2026-02-22 13:42:52 +03:00
Yusuf İpek e30b4a5b19 feat: harden Bunny upload flow, migrate Bunny playback to hls.js, and add Bunny storage admin stats 2026-02-22 13:03:45 +03:00
Yusuf İpek 0f24bcfe6c feat: Implement direct video file uploads via Bunny.net and TUS protocol, adding a new API route and UI for file selection. 2026-02-22 09:55:08 +03:00
Yusuf İpek a8711db0ad build(deps): add radix-ui dependency 2026-02-14 17:26:18 +03:00
Yusuf İpek ea21d173b2 perf(config): improve performance with image optimization, caching headers, and build optimizations
- Add AVIF and WebP image formats for optimized delivery
- Configure cache headers for static assets (images, icons, SVGs)
- Enable server minification and optimize package imports
- Disable poweredByHeader and enable compression
- Remove unused radix-ui dependency
2026-02-14 17:15:35 +03:00
Yusuf İpek 1c7ee70815 feat(optimizations): adds memoization for performance optimization
Add currentUserName to video API responses and session for display in comments. Also adds memoization for performance optimization and implements Page Visibility API to pause comment polling when tab is hidden.
2026-02-14 16:21:52 +03:00
Yusuf İpek d42db4484b feat: add radix-ui dependency 2026-02-10 14:11:40 +03:00
Yusuf İpek b22fd1476f feat: optimize bundle size and improve image loading
- Unify video page components into single VideoPageContent component
  - Reduces ~2300 lines of duplicated code between dashboard and watch pages
  - Uses mode prop ('dashboard' | 'watch') to handle differences

- Move shadcn to devDependencies (CLI tool, not needed at runtime)

- Remove radix-ui meta-package (components already imported individually)

- Replace <img> tags with next/image for automatic optimization
  - Add remotePatterns config for YouTube, Vimeo, Unsplash domains
  - Update video-card.tsx, videos/new/page.tsx, component-example.tsx

- Add next/dynamic for KeyboardShortcutsModal (lazy load on demand)
2026-02-10 14:08:52 +03:00
Yusuf İpek 49c3ac61ea refactor: Add explicit types for workspace and project member checks 2026-02-07 17:28:46 +03:00
Yusuf İpek d01c2247b5 refactor: Simplify project type mapping in WorkspacePage 2026-02-07 17:21:44 +03:00
Yusuf İpek eef03a970c refactor: Refine workspace project types
- Explicitly type `project` in `WorkspacePage`
- Add `typecheck` script to `package.json`
- Improve type safety and development experience
2026-02-07 17:13:32 +03:00
Yusuf İpek 669f6fa9d2 feat: Add optimistic UI for video comments
- Implement optimistic updates for comment creation, deletion, resolution, tag, and content changes
- Enhance user experience by providing immediate feedback for comment actions
- Integrate `sonner` toasts for success and error notifications
- Improve video data fetching error handling and logging
- Refine active video version selection logic for robustness
- Simplify video detail not-found page, removing dynamic project link
2026-02-07 16:21:15 +03:00
Yusuf İpek 88dcf9514c feat: Introduce guest access for video viewing, implement user notification settings via email and Telegram, and add rate limiting infrastructure. 2026-02-07 13:56:26 +03:00
Yusuf İpek 296c5257a7 feat: implement R2 audio file management and rate limiting enhancements
- Add R2 client setup and audio upload functionality in lib/r2.ts.
- Create audio file cleanup functions in lib/r2-cleanup.ts to delete voice files associated with videos, projects, and workspaces.
- Enhance rate limiting in lib/rate-limit.ts with new action-specific limits and improved IP validation.
- Introduce a unified rate limit check function that returns a 429 response when limits are exceeded.
- Update package.json to include the AWS SDK for S3.
2026-02-07 12:27:40 +03:00
Yusuf İpek 5b436fff2d feat: Implement secure email/password authentication with user registration, API rate limiting, and dynamic homepage navigation. 2026-02-07 06:43:09 +03:00
Yusuf İpek d38e8b8749 feat: Implement core API routes for managing projects, videos, versions, and comments, including database seeding. 2026-02-07 06:18:30 +03:00
Yusuf İpek 264392c2ec chore(init): scaffold OpenFrame — Next.js + Bun + shadcn
Initialize OpenFrame project with core scaffold and UI foundation.

- Project scaffold: Next.js 16.1 (App Router) + Bun runtime
- UI: shadcn/ui + TailwindCSS; landing, dashboard, project, and auth UIs
- Video support: provider abstraction (YouTube first), video player page with timestamped comments and custom timeline
- Auth & DB: NextAuth skeleton and Prisma schema (Postgres) included
- UX: dark-mode toggle, full-width layouts, comments sidebar, video route moved to /watch/[videoId]
- Dev: added YouTube iframe integration, custom controls, and TypeScript types
- Next steps: DB migrations, API routes (CRUD), real data wiring, voice-recording & sharing
2026-02-05 22:11:20 +03:00