Skip to content

Feature/plan 1 foundation#1

Merged
mayur-tolexo merged 21 commits into
mainfrom
feature/plan-1-foundation
May 23, 2026
Merged

Feature/plan 1 foundation#1
mayur-tolexo merged 21 commits into
mainfrom
feature/plan-1-foundation

Conversation

@mayur-tolexo

Copy link
Copy Markdown
Owner

No description provided.

Captures the agreed shoplit v1 design after brainstorming:
- creator accounts (Google + phone OTP); viewers stay anonymous
- two link types: /c/{slug} cart pages and /p/{slug} single-product redirects
- live carts (URL always reflects latest)
- all outbound clicks redirected through shoplit with affiliate tag injected
- three deployable units: shoplit-api, shoplit-redirect, shoplit-web
- Postgres schema, Redis caching, click drain worker
- MVP scope only; social/discovery/wishlist/reviews deferred to v2
17 bite-sized tasks: bootstrap the go module, schema migrations,
postgres + redis wiring, both shoplit-api and shoplit-redirect
binaries with /health, golangci-lint and github actions ci.

Outcome of plan 1: deployable empty skeletons. Auth and business
logic live in subsequent plans (2: auth, 3: carts, 4: redirect,
5: frontend + deploy).
Fix .gitignore binary patterns to use rooted paths (/shoplit-api,
/shoplit-redirect) so the cmd/shoplit-api source directory is not
inadvertently ignored.
- Add .golangci.yml with govet, errcheck, staticcheck, unused, ineffassign,
  gosimple, gofmt, goimports, misspell; errcheck excluded in _test.go files
- Add .github/workflows/ci.yml with test and lint jobs
- Bump golangci-lint to v1.64.8 (v1.59.1 incompatible with Go 1.26.2)
- Remove deprecated middleware.RealIP from both binaries (SA1019 / GHSA spoofing)
All direct imports (chi, pgx, testify, testcontainers, etc.) were
incorrectly marked // indirect in go.mod; tidy promotes them and
adds the missing go.sum hashes required by the Go toolchain.
- CI: bump go-version to 1.26 to match go.mod toolchain
- config: remove `required` tag from DBDSNReadOnly so shoplit-api can
  start without it; shoplit-redirect now validates the DSN itself
- Makefile: bump MIGRATE_VERSION to v4.19.1 to match the runtime lib
- config_test: use t.Setenv (auto-restoring) instead of os.Unsetenv to
  avoid leaking unset env vars into adjacent tests
@mayur-tolexo
mayur-tolexo merged commit fe119aa into main May 23, 2026
1 of 2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant