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.