Integrate the full Hatch v0.1 product (capture, inspect, SSE, mock, replay,
SQLite store, E2E smoke test) with the migration branch's docs/license
realignment (Apache-2.0 LICENSE, ADR-0002, clean README layout).
This produces a single launch-ready HEAD where the three Show HN demo bullets
are true and the repo carries an Apache-2.0 license.
Conflict resolution:
- cmd/hatch/main.go, cmd/hatch/main_test.go, go.mod: took replay (integrated
chi router + handler routes + deps). Migration's foundation-only main.go
and dep-less go.mod are superseded.
- .gitignore: took replay (narrowed /hatch to avoid matching cmd/hatch/).
- README.md: took migration (clean Repository Layout, Apache-2.0 license
section). Replay's stale "Proprietary — All rights reserved" + apps/packages
layout dropped.
- go.sum: auto-merged.
- brand/, internal/, docs/adrs/0002: brought in from replay / migration as
non-conflicting additions.
Verified on merged HEAD:
- go test ./... — all pass
- go test ./cmd/hatch -run TestSmokeE2E — all 7 phases pass
- docker compose up --build — container runs; healthz/capture/inspect/mock
all 200; mock returns configured status + body + content-type
CTO engineering sign-off for ELF-57: GO on this HEAD.
Co-Authored-By: Paperclip <noreply@paperclip.ing>
v1 brand kit for the Hatch launch (ELF-53).
Files:
brand/wordmark/ - text+mark wordmark (SVG with embedded Inter Bold,
plus PNG exports at 200x60, 400x120, 800x240,
1200x360); light/dark and on-light/on-dark variants
brand/mark/ - the icon alone, in 16/32/48/64/128/192/256/512/1024
brand/favicon/ - favicon.ico (16+32+48) and the 5 required PNG sizes
brand/banner/ - README banner at 1280x640 (+ @2x retina)
brand/og/ - OG image at 1200x630 (+ @2x retina)
docs/brand/usage.md - one-pager on spacing, clear space, do-not rules,
light/dark mode behavior
Concept:
Mark is a rounded square with a horizontal slot — the literal "hatch".
A small "request" indicator drops into the slot. At 16px the slot still
reads; at 512px the proportions hold.
Type:
Inter Bold for the wordmark; JetBrains Mono for the code/tagline accent.
Both SIL OFL 1.1, attributed in docs/brand/usage.md.
Color:
Ink #0A0A0B, Paper #FAFAF9, Accent #F59E0B. No other colors in the kit.
Co-Authored-By: Paperclip <noreply@paperclip.ing>
Adds docs/marketing/community-listening-week1.md per ELF-51.
10 HN threads (requestbin / ngrok / self-hosted / single-binary Go)
with one-line engagement plans and explicit no-go lines.
Reddit half is deferred to ELF-58 because the JSON listing endpoint
was blocked by the network policy at draft time.
Reviewer: Head of Marketing.
Co-Authored-By: Paperclip <noreply@paperclip.ing>
Migration commit for the ELF-15 atomic PR. Realizes the CTO plan in
ELF-13 revision 1 and ADR-0001 (Go + SQLite + stdlib net/http + SSR +
SSE) and the detail choices in ADR-0002 (chi, modernc.org/sqlite, html/
template, stdlib testing, Apache-2.0).
Docs:
- docs/engineering/tech-stack.md rewritten for Go + SQLite + stdlib
net/http + SSR + SSE. Frontend is server-rendered HTML + a little
vanilla JS. Packaging is multi-stage golang -> scratch with an
optional Caddy sidecar. Boring-technology principle kept.
- docs/engineering/first-engineer-role.md rewritten: Go must-have
(stdlib + HTTP fundamentals + SQL + GitHub), TypeScript/Next.js/
Prisma/PostgreSQL moved to nice-to-have or deferred. Tailwind and
monorepo tooling explicitly deferred.
- docs/engineering/onboarding.md: pnpm install / pnpm dev replaced
with go test ./... and go run ./cmd/hatch. New step: read local-dev
and hatch-architecture on day 1.
- docs/engineering/local-dev.md (new): day-to-day commands, where
things live, SQLite tips, troubleshooting. Living doc, engineer owns.
- docs/engineering/hatch-architecture.md (new): component map (http
ServeMux -> handler layer -> store layer; in-process SSE hub),
request lifecycle (Capture / Inspect / Mock / Live update), data
model (endpoints, requests), performance budget, future seams.
- docs/adrs/0002-hatch-detail-stack.md (new): CTO-authored ADR
closing the open choices in ADR-0001 with concrete picks, named
alternatives, and a per-choice rollback path. Router: go-chi/chi.
SQLite driver: modernc.org/sqlite (pure Go, no CGO). Templates:
stdlib html/template + //go:embed. Tests: stdlib testing + httptest.
License: Apache-2.0.
Housekeeping:
- README.md: drop the apps/ and packages/ layout lines (no
monorepo), add local-dev and hatch-architecture pointers, fix
Hatch demo to point at /healthz, switch license line from
'Proprietary' to Apache-2.0 with a LICENSE file pointer.
- CONTRIBUTING.md: code-style section rewritten for Go (gofmt,
go vet, internal/ for pure logic, server-rendered by default);
branch example uses engineer/hatch-* matching the actual workflow.
- LICENSE: full Apache-2.0 text, copyright El Foundation 2026.
Per ADR-0002.
- .gitignore: ignore the pre-built 'hatch' binary, bin/ (per ADR
0002 binary convention), and SQLite files (*.db, *.db-journal,
*.db-wal, *.db-shm).
Out of scope (handled by ELF-17 onwards, not this PR):
- Storage layer implementation (Task B, ELF-17)
- Capture, Inspect, Mock (Tasks 3-6)
- E2E smoke test (Task 8)
Foundation + this commit are the atomic PR. CI is green (go vet,
go test ./... -race, docker build all pass locally; same gates the
GitHub Actions workflow enforces).
Co-Authored-By: Paperclip <noreply@paperclip.ing>
Sets up the engineering baseline for El Foundation before product work begins.
- README.md: project overview and repo layout
- CONTRIBUTING.md: branch naming, PR process, commit style, definition of done
- docs/engineering/tech-stack.md: frontend, backend, and tooling choices with rationale
- docs/engineering/onboarding.md: 30-day onboarding checklist
- docs/adrs/adr-template.md: decision record template
- .github/workflows/ci.yml: markdown lint + placeholder for TypeScript checks
- docs/engineering/first-engineer-role.md: scope, skills, 30-day priorities, hire recommendation
Co-Authored-By: Paperclip <noreply@paperclip.ing>