This project is a modern inventory & product bundling web app built with SvelteKit, using a clean Hexagonal (Ports & Adapters) architecture.
It integrates with:
src/
βββ lib/
β   βββ core/                     # Business logic (pure, framework-agnostic)
β   β   βββ domain/entities/      # Product, Bundle, User, etc.
β   β   βββ ports/                # Interfaces (DB, Auth, Cloud, etc.)
β   β   βββ use-cases/            # Business logic (register user, add product)
β   β
β   βββ infrastructure/           # Implementations of ports
β   β   βββ db/drizzle/           # Drizzle ORM + schema + repositories
β   β   βββ auth/                 # SessionManager, Argon password hasher
β   β
β   βββ adapters/                 # External 3rd-party clients (e.g. Cloudinary)
β   βββ shared/                   # (Optional) shared logic/helpers (e.g. config, utils)
β
βββ routes/                       # SvelteKit UI layer
π§ Hexagonal Principles Applied β Core is pure β no direct import of SvelteKit, Drizzle, or Cloudinary
β Use-cases are testable β they only depend on ports
β Adapters are swappable β just implement the ports
β Domain-driven β entities are clean and well-typed
π¦ Tech Stack Frontend: SvelteKit (Svelte 5, Runes)
Backend: PostgreSQL via Drizzle ORM
Auth: Argon2 + Session Cookies
Image Upload: Cloudinary
Hosting: Vercel / SSR compatible
π§ Coming Next Check out the GitHub issues to see whatβs being worked on.
β¨ Author Made with πͺ by Kevin Coto @thekoto.dev
You can preview the production build with npm run preview.
To deploy your app, you may need to install an adapter for your target environment.