Lindsay Edwards
All projects
In progress

PhotoSweet

Back office for photography businesses, galleries, client delivery and invoicing, with AI culling that pre-sorts the shoot.

Live · Coming soon Repo · Private

Tech stack

Languages
  • C#
  • TypeScript
Frameworks
  • .NET 8
  • React 19
  • Vite
Infra
  • PostgreSQL
  • pgvector
  • Redis
  • Stripe
AI tooling
  • FaceAiSharp
  • ONNX Runtime

PhotoSweet is business management for photographers, not a consumer print store. It covers the part of the job that happens after the shutter: client galleries, delivery, invoicing, scheduling, and the culling pass through two thousand near-identical frames that eats an evening.

What it does#

  • Galleries and delivery. Client-facing galleries with proper delivery workflows, plus invoicing and scheduling for the business side.
  • AI culling. An AI-assisted culling pass that pre-sorts the shoot, so the machine does the squinting and the photographer keeps the taste.
  • Real-world plumbing. Imports from the desktop tools photographers already use, plus half a dozen storage and workflow integrations and Stripe for payments.

Why it matters#

This is my most architecturally strict codebase. It follows Clean Architecture with CQRS across 23 projects, and the layering is not a diagram on a wiki: it is enforced by NetArchTest, so a dependency pointing the wrong way fails the build. Around 2,394 tests back that up, roughly 1,900 on the .NET side and just under 500 on the frontend. Opinionated structure only counts if a computer checks it.

The stack#

.NET 8 with EF Core on PostgreSQL 16 with pgvector, Redis 7 for caching, ONNX Runtime for the on-server ML, and a React 19 TypeScript frontend. It deploys as four containers: API, worker, web, and the data stores.

More projects