[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-759":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":16,"subscribersCount":16,"size":16,"stars1d":16,"stars7d":16,"stars30d":17,"stars90d":16,"forks30d":16,"starsTrendScore":16,"compositeScore":18,"rankGlobal":10,"rankLanguage":10,"license":10,"archived":19,"fork":19,"defaultBranch":20,"hasWiki":19,"hasPages":19,"topics":21,"createdAt":10,"pushedAt":10,"updatedAt":22,"readmeContent":23,"aiSummary":24,"trendingCount":16,"starSnapshotCount":16,"syncStatus":25,"lastSyncTime":26,"discoverSource":27},759,"avnac","akinloluwami\u002Favnac","akinloluwami","Free browser-based design software.","https:\u002F\u002Favnac.design",null,"TypeScript",1454,187,8,3,0,157,19.82,false,"main",[],"2026-06-12 02:00:18","# Avnac\n\nAvnac is a browser-first design editor for posters, layouts, social graphics, and other canvas-based compositions.\n\n\n## Current Product State\n\nAvnac today is strongest around:\n\n- Fast browser-local editing\n- A custom scene editor with direct manipulation controls\n- Files saved in IndexedDB with a dedicated `\u002Ffiles` view\n- JSON import\u002Fexport\n- Legacy file migration into the current editor format\n- Image export as `PNG`, `JPG`, and `WebP`\n- Prompt-driven editing through the Magic panel\n\nThings that are true right now:\n\n- The main editing experience lives in the frontend\n- The app is desktop-first; mobile editing is intentionally blocked\n- File persistence is primarily browser-local today\n- The backend exists, but it is optional for many day-to-day editor tasks\n\n## Editor Capabilities\n\nThe current editor supports:\n\n- Custom-size or preset canvases\n- Text, rectangles, ellipses, polygons, stars, lines, arrows, images, and vector boards\n- Selection, multi-select, marquee select, group\u002Fungroup, reorder, and alignment\n- Resize, rotate, crop, corner radius, blur, opacity, shadows, and background editing\n- Snapping and transform overlays\n- Nested vector-board drawing areas\n- QR code generation\n- JSON file import from the files page\n- Legacy-file conversion prompts before opening older documents\n\n## Architecture Overview\n\n### Frontend\n\nThe frontend is a React + Vite + TypeScript application with TanStack Router and Tailwind CSS.\n\nKey architectural points:\n\n- The editor no longer depends on an external canvas editing runtime for scene manipulation\n- Scene data is modeled in `frontend\u002Fsrc\u002Flib\u002Favnac-scene.ts`\n- Rendering\u002Fexport logic lives in `frontend\u002Fsrc\u002Flib\u002Favnac-scene-render.ts`\n- Low-level geometry, snapping, object transforms, file placement, and related logic live under `frontend\u002Fsrc\u002Fscene-engine\u002Fprimitives`\n- The scene editor UI has been split into smaller modules under `frontend\u002Fsrc\u002Fcomponents\u002Fscene-editor`\n- Shared editor state now uses a small Zustand-backed store in `frontend\u002Fsrc\u002Fcomponents\u002Fscene-editor\u002Feditor-store.tsx`\n\nImportant frontend routes:\n\n- `\u002F` landing page\n- `\u002Ffiles` local files manager\n- `\u002Fcreate` editor\n\n### Backend\n\nThe backend is an Elysia + TypeScript service. It is not required for all local editing workflows, but it is useful for:\n\n- media proxying for export-safe remote images\n- Unsplash search\u002Fdownload flows\n- document and auth-related server routes that exist in the repo\n\nCurrent backend route areas:\n\n- `backend\u002Fsrc\u002Froutes\u002Fmedia.ts`\n- `backend\u002Fsrc\u002Froutes\u002Funsplash.ts`\n- `backend\u002Fsrc\u002Froutes\u002Fdocuments.ts`\n\n## Repository Layout\n\n```text\nfrontend\u002F\n  src\u002F\n    routes\u002F                   App routes like landing, files, and editor\n    components\u002Fscene-editor\u002F  Main editor UI modules, panels, overlays, hooks, store\n    scene-engine\u002Fprimitives\u002F  Geometry, transforms, snapping, object\u002Ffile helpers\n    lib\u002F                      Scene model, render\u002Fexport, storage, previews, utilities\n    __tests__\u002F                Frontend unit\u002Fregression tests\n\nbackend\u002F\n  src\u002F\n    routes\u002F                   Media, Unsplash, and document endpoints\n    plugins\u002F                  Backend plugins such as auth wiring\n    db\u002F                       Database setup and schema\n```\n\n## Persistence and File Handling\n\nAvnac is currently local-first.\n\n- Documents autosave in the browser\n- The files page reads from IndexedDB\n- The editor opens documents by id via `\u002Fcreate?id=...`\n- JSON import\u002Fexport is supported from the files workflow\n- Older saved files are detected and can be migrated from the UI before editing\n\nLegacy migration behavior currently includes:\n\n- a migrate-all prompt on the files page when old files are present\n- a conversion modal when a user clicks an old file\n- a blocking conversion overlay if a user opens or refreshes an old editor URL directly\n\n## Analytics\n\nFrontend analytics use PostHog.\n\n- Root provider setup lives in `frontend\u002Fsrc\u002Froutes\u002F__root.tsx`\n- The tracked event catalog is documented in `frontend\u002F.posthog-events.json`\n\n## Local Development\n\n### Frontend\n\n```bash\ncd frontend\nnpm install\nnpm run dev\n```\n\nRuns on `http:\u002F\u002Flocalhost:3300`.\n\nOptional Hugeicons Pro setup:\n\n- The frontend works without a Hugeicons Pro license. By default, contributors will install only the free icon packages and the app will fall back to free sidebar icons.\n- If you have a Hugeicons Pro license, set `HUGEICONS_NPM_TOKEN` before running `npm install` in `frontend\u002F`. The optional package will install and Vite will automatically switch the sidebar to the pro icon set.\n- Do not expose this token with a `VITE_` prefix. It is only needed at install\u002Fbuild time.\n- In production or CI, builds can still succeed without the token. They will simply use the free fallback icons instead of the pro ones.\n\nExample local setup for licensed installs:\n\n```bash\ncd frontend\nexport HUGEICONS_NPM_TOKEN=your_token_here\nnpm install\n```\n\nUseful frontend scripts:\n\n```bash\ncd frontend\nnpm run dev\nnpm run build\nnpm run preview\nnpm test\n```\n\n### Backend\n\n```bash\ncd backend\nnpm install\ncp .env.example .env\nnpm run dev\n```\n\nRuns on `http:\u002F\u002Flocalhost:3001`.\n\nUseful backend scripts:\n\n```bash\ncd backend\nnpm run dev\nnpm run check\n```\n\n## Backend Notes\n\nThe backend matters most when you are working on remote media, Unsplash flows, or server-backed document\u002Fauth behavior.\n\nIn local development, the frontend can still be the primary focus if you are working on:\n\n- scene editing\n- selection and transform behavior\n- local files\n- legacy migration UX\n- export behavior\n\n## Testing\n\nFrontend regression tests live in `frontend\u002Fsrc\u002F__tests__`.\n\nRight now they cover core areas such as:\n\n- scene parsing and migration detection\n- snapping behavior\n- image\u002Fobject resize behavior\n- vector-board render behavior\n- file placement helpers\n\n## Practical Notes\n\n- If you change media proxy behavior, restart the backend before testing export flows that depend on remote images\n- If you are debugging editor behavior, the frontend is the main source of truth\n- If you are debugging old-file compatibility, start with `frontend\u002Fsrc\u002Flib\u002Favnac-scene.ts` and the files\u002Fcreate routes\n","Avnac 是一个基于浏览器的设计编辑器，适用于海报、布局、社交媒体图形等画布基础的创作。其核心功能包括快速的本地浏览器编辑、自定义场景编辑器、文件保存于IndexedDB、支持多种图像格式导出以及通过Magic面板进行提示驱动编辑。技术上，Avnac前端采用React + Vite + TypeScript构建，利用TanStack Router和Tailwind CSS实现界面，并且拥有自己的场景操作逻辑而不依赖外部库。后端服务则由Elysia + TypeScript提供，主要用于媒体代理、Unsplash图片搜索下载等功能。该项目特别适合需要在桌面环境中进行轻量级设计工作的用户，尤其是那些偏好使用现代Web技术栈的设计师们。",2,"2026-06-01 02:37:11","CREATED_QUERY"]