36e264f3e3
- Wire admin API into homepage + templates page (ISR 60s, null fallback) - Add src/lib/admin-api.ts with safeFetch helper - Add adminProjectToTemplateItem + adminProjectToCatalogTemplate mappers - Add LogoMark SVG component, replace Sparkles icon in Navbar/Footer/Sidebar - Add public/favicon.svg (SVG brand mark) - Rewrite opengraph-image.tsx with FlatRender branding - Add RTL/Persian font cascade: unlayered [dir=rtl] block forces Vazirmatn - Dashboard Settings page: Profile, Security, Billing, Notifications sections - Add src/lib/supabase/client.ts browser client - Admin API: GET /me, PATCH /profile, POST /change-password endpoints - Admin API DTOs: AdminUserDto, UpdateProfileRequest, ChangePasswordRequest - Admin UI Settings page with TanStack Query + mutations - Add CLAUDE.md + README.md to both repos for new-machine onboarding - Update PROJECT_MEMORY.md with session log - Add appsettings.Development.json.example template
61 lines
2.0 KiB
Markdown
61 lines
2.0 KiB
Markdown
# FlatRender
|
|
|
|
AI-powered video and image creation platform. Create professional videos and images with templates, a drag-and-drop studio, and one-click export.
|
|
|
|
## Products
|
|
|
|
- **Video Maker** — timeline editor, Konva canvas, scene browser, transitions, audio, nexrender export
|
|
- **Image Editor** — Konva canvas, filters, crop, background removal, layer system
|
|
- **Video Trimmer** — ffmpeg.wasm in-browser trim + crop + export
|
|
- **Templates** — browsable marketplace with category sidebar
|
|
|
|
## Quick Start
|
|
|
|
```bash
|
|
npm install
|
|
cp .env.example .env.local # fill in your credentials
|
|
npm run dev # http://localhost:3000
|
|
```
|
|
|
|
## Related Repos
|
|
|
|
| Repo | Path | Purpose |
|
|
|---|---|---|
|
|
| flatrender | `D:\Projects\flatrender` | This repo — Next.js app |
|
|
| flatrender-admin | `D:\Projects\flatrender-admin\admin-api` | .NET 10 Admin API |
|
|
| flatrender-admin | `D:\Projects\flatrender-admin\admin-ui` | React Admin SPA |
|
|
|
|
## Stack
|
|
|
|
- **Next.js 15** App Router · TypeScript · Tailwind CSS · shadcn/ui
|
|
- **Supabase** — auth, database, storage
|
|
- **Stripe** — subscription payments
|
|
- **React-Konva** — canvas editor (video + image)
|
|
- **next-intl** — Persian (default) + English i18n
|
|
- **ffmpeg.wasm** — browser-side video trimming
|
|
- **nexrender** — server-side After Effects rendering
|
|
|
|
## Environment Variables
|
|
|
|
See `.env.example` for the full list. Minimum required to run:
|
|
|
|
```env
|
|
NEXT_PUBLIC_SUPABASE_URL=
|
|
NEXT_PUBLIC_SUPABASE_ANON_KEY=
|
|
```
|
|
|
|
Without Supabase the app runs in mock mode (studio uses localStorage).
|
|
|
|
## Database Migrations
|
|
|
|
Run in order in Supabase SQL Editor:
|
|
1. `supabase/migrations/001_profiles.sql`
|
|
2. `supabase/migrations/002_render_jobs.sql`
|
|
3. `supabase/migrations/003_projects.sql`
|
|
|
|
## Admin Panel
|
|
|
|
The admin panel at `D:\Projects\flatrender-admin` manages templates, categories, and media. When `ADMIN_API_URL=http://localhost:5000` is set, the Next.js app fetches live data from it. Without it, hardcoded fallback data is used.
|
|
|
|
See `CLAUDE.md` for full development guide.
|