Free browser-based design software.
1,564
stars
696
commits
TypeScript
primary language
May 11, 2026
updated
Avnac is a browser-first design editor for posters, layouts, social graphics, and other canvas-based compositions.
Avnac today is strongest around:
/files viewPNG, JPG, and WebPThings that are true right now:
The current editor supports:
The frontend is a React + Vite + TypeScript application with TanStack Router and Tailwind CSS.
Key architectural points:
frontend/src/lib/avnac-scene.tsfrontend/src/lib/avnac-scene-render.tsfrontend/src/scene-engine/primitivesfrontend/src/components/scene-editorfrontend/src/components/scene-editor/editor-store.tsxImportant frontend routes:
/ landing page/files local files manager/create editorThe backend is an Elysia + TypeScript service. It is not required for all local editing workflows, but it is useful for:
Current backend route areas:
backend/src/routes/media.tsbackend/src/routes/unsplash.tsbackend/src/routes/documents.tsfrontend/
src/
routes/ App routes like landing, files, and editor
components/scene-editor/ Main editor UI modules, panels, overlays, hooks, store
scene-engine/primitives/ Geometry, transforms, snapping, object/file helpers
lib/ Scene model, render/export, storage, previews, utilities
__tests__/ Frontend unit/regression tests
backend/
src/
routes/ Media, Unsplash, and document endpoints
plugins/ Backend plugins such as auth wiring
db/ Database setup and schema
Avnac is currently local-first.
/create?id=...Legacy migration behavior currently includes:
Frontend analytics use PostHog.
frontend/src/routes/__root.tsxfrontend/.posthog-events.jsoncd frontend
npm install
npm run dev
Runs on http://localhost:3300.
Optional Hugeicons Pro setup:
HUGEICONS_NPM_TOKEN before running npm install in frontend/. The optional package will install and Vite will automatically switch the sidebar to the pro icon set.VITE_ prefix. It is only needed at install/build time.Example local setup for licensed installs:
cd frontend
export HUGEICONS_NPM_TOKEN=your_token_here
npm install
Useful frontend scripts:
cd frontend
npm run dev
npm run build
npm run preview
npm test
cd backend
npm install
cp .env.example .env
npm run dev
Runs on http://localhost:3001.
Useful backend scripts:
cd backend
npm run dev
npm run check
The backend matters most when you are working on remote media, Unsplash flows, or server-backed document/auth behavior.
In local development, the frontend can still be the primary focus if you are working on:
Frontend regression tests live in frontend/src/__tests__.
Right now they cover core areas such as:
frontend/src/lib/avnac-scene.ts and the files/create routesThis project is licensed under the GNU Affero General Public License v3.0 only. See LICENSE.
TypeScript
96.3%
CSS
3.1%
Free browser-based design software.
1,564
stars
696
commits
TypeScript
primary language
May 11, 2026
updated
Avnac is a browser-first design editor for posters, layouts, social graphics, and other canvas-based compositions.
Avnac today is strongest around:
/files viewPNG, JPG, and WebPThings that are true right now:
The current editor supports:
The frontend is a React + Vite + TypeScript application with TanStack Router and Tailwind CSS.
Key architectural points:
frontend/src/lib/avnac-scene.tsfrontend/src/lib/avnac-scene-render.tsfrontend/src/scene-engine/primitivesfrontend/src/components/scene-editorfrontend/src/components/scene-editor/editor-store.tsxImportant frontend routes:
/ landing page/files local files manager/create editorThe backend is an Elysia + TypeScript service. It is not required for all local editing workflows, but it is useful for:
Current backend route areas:
backend/src/routes/media.tsbackend/src/routes/unsplash.tsbackend/src/routes/documents.tsfrontend/
src/
routes/ App routes like landing, files, and editor
components/scene-editor/ Main editor UI modules, panels, overlays, hooks, store
scene-engine/primitives/ Geometry, transforms, snapping, object/file helpers
lib/ Scene model, render/export, storage, previews, utilities
__tests__/ Frontend unit/regression tests
backend/
src/
routes/ Media, Unsplash, and document endpoints
plugins/ Backend plugins such as auth wiring
db/ Database setup and schema
Avnac is currently local-first.
/create?id=...Legacy migration behavior currently includes:
Frontend analytics use PostHog.
frontend/src/routes/__root.tsxfrontend/.posthog-events.jsoncd frontend
npm install
npm run dev
Runs on http://localhost:3300.
Optional Hugeicons Pro setup:
HUGEICONS_NPM_TOKEN before running npm install in frontend/. The optional package will install and Vite will automatically switch the sidebar to the pro icon set.VITE_ prefix. It is only needed at install/build time.Example local setup for licensed installs:
cd frontend
export HUGEICONS_NPM_TOKEN=your_token_here
npm install
Useful frontend scripts:
cd frontend
npm run dev
npm run build
npm run preview
npm test
cd backend
npm install
cp .env.example .env
npm run dev
Runs on http://localhost:3001.
Useful backend scripts:
cd backend
npm run dev
npm run check
The backend matters most when you are working on remote media, Unsplash flows, or server-backed document/auth behavior.
In local development, the frontend can still be the primary focus if you are working on:
Frontend regression tests live in frontend/src/__tests__.
Right now they cover core areas such as:
frontend/src/lib/avnac-scene.ts and the files/create routesThis project is licensed under the GNU Affero General Public License v3.0 only. See LICENSE.
TypeScript
96.3%
CSS
3.1%