Nebuloom is a local-first wallpaper studio for abstract wallpapers built from gradients, shapes, and grain. This repository is a small workspace: apps/ holds runnable applications, packages/ holds reusable code, and the root coordinates shared commands and workspace configuration.
apps/web exists because it is the runnable SvelteKit application in the workspace.
apps/is for applications you can run, preview, and deploy.packages/is for reusable code that should stay independent from any one frontend.
Today Nebuloom only has one app, but the folder still clarifies that the frontend is an application, not the whole repository.
Nebuloom currently ships a curated catalog of 24 preset starting points across four visual families. Presets are intentionally treated as recipes, not locked templates: the engine defines the starting composition, and the studio lets you swap palette, format, seed, and tuning controls on top.
Put these concerns in apps/web:
- routes and page composition
- Svelte components and UI styling
- Svelte stores and browser state
- local persistence such as
localStorage
Put these concerns in packages/wallpaper-engine:
- preset, palette, and format definitions
- preset family taxonomy and curated starting recipes
- shared types
- deterministic scene generation from a seed
- canvas rendering
- raster export helpers
If code can be reused by another app or should stay UI-free, it belongs in packages/wallpaper-engine.
The dependency direction is intentionally one-way:
apps/web -> packages/wallpaper-engine
apps/web may depend on @nebuloom/wallpaper-engine.
packages/wallpaper-engine must not depend on app code, Svelte stores, routes, or browser persistence.
Use the root workspace commands:
vp install
vp run dev
vp run check
vp run test
vp run buildThe examples above assume vp is available globally. If it is not installed globally in your shell, use the local binary instead:
./node_modules/.bin/vp run check
./node_modules/.bin/vp run testapps/web: Nebuloom's SvelteKit frontend, including the landing page, studio UI, and local persistence.packages/wallpaper-engine: the framework-agnostic engine package for presets, scene generation, rendering, and export helpers.
See docs/architecture.md for placement rules and examples.