iArt.ai
AI 모션 그래픽 소프트웨어, 누구나 사용할 수 있는 After Effects 대안, 텍스트 프롬프트로 몇 분 안에 애니메이션·설명 영상 제작
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
Dispatch is a personal newspaper for the web. It merges news headlines, movie recommendations and social posts into one feed shaped by the topics you choose. You can reorder the feed by dragging, save favorites, search everything at once, and watch new posts arrive live. Built with Next.js 16, React 19, TypeScript, Redux Toolkit with RTK Query, and Tailwind CSS v4. • Live demo: https://content-dashboard-three-omega.vercel.app • Demo video: add the link here after recording [README 설치·사용 부분 발췌] Getting started You need Node.js 20.9 or newer. Open http://localhost:3000.README 전문 보기 ↗
Dispatch is a personal newspaper for the web. It merges news headlines, movie recommendations and social posts into one feed shaped by the topics you choose. You can reorder the feed by dragging, save favorites, search everything at once, and watch new posts arrive live.
Built with Next.js 16, React 19, TypeScript, Redux Toolkit with RTK Query, and Tailwind CSS v4.
| Area | What you get |
|---|---|
| Personalized feed | News, movies and posts from your chosen categories, merged round-robin into one feed. Filter by source. |
| Recommendations | Movie picks follow your categories and are boosted by the genres of movies you favorite. |
| Social posts | A mock social network you can filter by category, #hashtag or @handle. Followed hashtags join your feed. |
| Real-time | New posts stream in over Server-Sent Events and appear in a "Just in" strip, with a live status badge. |
| Infinite scroll | More stories load as you scroll. A "Load more" button does the same for keyboard users. |
| Drag and drop | Reorder feed cards and favorites with a mouse, touch or the keyboard. Screen readers announce each step. The order is saved. |
| Search | Search-as-you-type across all sources, debounced, with the query kept in the URL. Press / to jump to search. |
| Trending | The most popular items per category, laid out like a newspaper's ranked lists. |
| Favorites | Save anything with the heart. Favorites keep a snapshot, so they survive after a story leaves the feed. |
| Settings | Choose categories, sources, followed hashtags and the interface language. |
| Account | Mock sign-in with a profile you can edit: name, bio and avatar colour. |
| Dark mode | Follows your system by default, remembers your choice, and never flashes the wrong theme. |
| Languages | English and Hindi interface. |
Without API keys, the app uses built-in sample stories and labels them "Demo data", so it always works.
You need Node.js 20.9 or newer.
npm install
cp .env.example .env.local # optional: add API keys
npm run dev
Open http://localhost:3000.
| Variable | Where to get it | Without it |
|---|---|---|
NEWS_API_KEY | https://newsapi.org/register (free developer plan) | Sample headlines |
TMDB_API_KEY | https://www.themoviedb.org/settings/api (v3 "API Key") | Sample movies |
USE_MOCK_DATA | Set to true to force sample data everywhere | Live data when keys exist |
STREAM_INTERVAL_MS | Milliseconds between live posts, default 20000 | 20 seconds |
Keys are read only on the server. Nothing uses the NEXT_PUBLIC_ prefix, so no key can reach the browser.
NewsAPI note: the free developer plan only accepts requests from
localhost. On a deployed site NewsAPI refuses the request, and the app falls back to sample news on its own. TMDB works everywhere.
| Command | What it does |
|---|---|
npm run dev | Development server |
npm run build / npm start | Production build and server |
npm run lint | ESLint, including import order |
npm run typecheck | Generates route types, then runs tsc |
npm test | Unit and integration tests (Jest) |
npm run test:coverage | The same, with a coverage report |
npm run test:e2e | Builds the app and runs the Playwright browser tests |
npm run validate | Lint, typecheck and unit tests together |
The first browser test run needs a browser download: npx playwright install chromium.
Browser Next.js server (route handlers)
─────── ───────────────────────────────
React components /api/news ─▶ NewsAPI ─┐
│ read state /api/movies ─▶ TMDB ─┼─▶ normalized ContentItem[]
▼ /api/social ─▶ mock │ (sample data on any failure)
Redux store ─── RTK Query ── fetch ──────▶ /api/trending │
├ preferences ─┐ /api/search ───────────────┘
├ favorites ├─▶ localStorage /api/stream ─▶ Server-Sent Events (live posts)
├ feed order │ (validated on load)
└ auth ────────┘
ContentItem type. Provider responses are
validated too, and any failure (bad key, rate limit, timeout, odd data) falls back to sample data.
Responses are cached for five minutes to protect the NewsAPI limit of 100 requests a day.The full design, with the reasoning behind each choice, is in docs/ARCHITECTURE.md.
src/
├─ app/ Routes only: pages, layouts, loading and error screens, API route handlers
├─ features/ One folder per feature: feed, favorites, preferences, search, trending, auth
├─ components/ Shared UI: layout shell, content cards and grids, small UI primitives
├─ services/ RTK Query API definition
├─ store/ Store setup, typed hooks, persistence, hydration helpers
├─ server/ Server-only code: env validation, providers, sources, sample data
├─ i18n/ Translations (English and Hindi) and helpers
├─ hooks/, lib/ Small shared hooks and utilities
└─ types/ The shared ContentItem type
tests/
├─ e2e/ Playwright browser and accessibility tests
├─ msw/ Network mocks for Jest
└─ utils/, fixtures/, mocks/
Reorder. The brief suggests those
two. React DnD has no keyboard support and its HTML5 backend ignores touch. Reorder handles one
axis only, not a responsive grid, and it is not keyboard accessible either. dnd-kit supports
mouse, touch and keyboard, and it announces each step to screen readers. Motion (Framer Motion)
still drives the page transitions and live-post animations.noopener noreferrer, only https links are
rendered, and basic security headers are set.TMDB_API_KEY (and NEWS_API_KEY if you like) under Project, then Settings, then
Environment Variables.