@@ -13,7 +13,7 @@ The homepage is an interactive world map: each zone is a real, accessible
1313route (Projects, Tools, Articles, About, Lab), not just a visual gimmick.
1414Beyond the map, the site is a standard content/portfolio app — project case
1515studies, a blog, a contact form, and a growing space for developer tools
16- built and open-sourced under the Randy Code brand.
16+ built under the Randy Code brand.
1717
1818## Highlights
1919
@@ -24,8 +24,12 @@ built and open-sourced under the Randy Code brand.
2424 write-ups sourced from the real product, not marketing copy.
2525- ** Articles** (` /articles ` ) — technical write-ups grounded in what was
2626 actually built (e.g. securing a URL analyzer against SSRF), with an RSS feed.
27- - ** Developer tools** (` /tools ` ) — open-source tools built by Randy Code,
28- usable directly from the site.
27+ - ** Developer tools** (` /tools ` ) — five focused tools built by Randy Code
28+ and usable directly from the site (InfraLens, API Studio, Cron Builder,
29+ JSON Studio, MetaLens); InfraLens is the one released under an
30+ open-source license.
31+ - ** PWA** — installable from the browser, with a web app manifest and a
32+ cache-first service worker (` public/sw.js ` ) for offline resilience.
2933
3034## Developer Tools — InfraLens
3135
@@ -35,8 +39,12 @@ public technical signals, summarized into one scored, readable report.
3539
3640It's the first tool integrated natively into Randy Code (migrated from its
3741own standalone repository into ` app/tools/infralens/ ` and ` src/infralens/ ` ).
38- Its original documentation, changelog, and MIT license are preserved under
39- [ ` docs/infralens/ ` ] ( docs/infralens/README.md ) .
42+ Its original docs are preserved under ` docs/infralens/ ` :
43+ [ README] ( docs/infralens/README.md ) ,
44+ [ CHANGELOG] ( docs/infralens/CHANGELOG.md ) ,
45+ [ CONTRIBUTING] ( docs/infralens/CONTRIBUTING.md ) ,
46+ [ SECURITY] ( docs/infralens/SECURITY.md ) , and
47+ [ LICENSE] ( docs/infralens/LICENSE ) .
4048
4149## Tech Stack
4250
6371 projects/ # Project case studies (listing + [slug])
6472 tools/ # Developer tools
6573 infralens/ # InfraLens — native routes (analyze, compare, docs, privacy)
74+ api-studio/ # API Studio — HTTP request client + webhook inspector
6675 cron-builder/ # Cron Builder — visual cron expression editor
6776 json-studio/ # JSON Studio — format, validate and explore JSON
6877 metalens/ # MetaLens — inspect page metadata, OG/Twitter cards, indexing signals
78+ api/api-studio/ # Route Handlers — outbound proxy + webhook ingestion
6979 rss.xml/ # RSS feed
7080 sitemap.ts, robots.ts, manifest.ts, opengraph-image.tsx
7181
7484 components/ # Shared UI (map, layout, shadcn/ui primitives)
7585 lib/ # Content registries, brand tokens, navigation, JSON-LD
7686 infralens/ # InfraLens engine — checks, security/SSRF, DNS, scoring, history
87+ api-studio/ # API Studio engine — request execution, codegen, history, webhooks
7788 cron-builder/ # Cron Builder engine — parsing, validation, next-run calculation
7889 json-studio/ # JSON Studio engine — parsing, formatting, stats, storage
7990 metalens/ # MetaLens engine — HTML parsing, URL resolution, findings
@@ -93,6 +104,18 @@ pnpm dev
93104
94105Open [ http://localhost:3000 ] ( http://localhost:3000 ) .
95106
107+ ### Environment Variables
108+
109+ None are required just to browse the site locally — everything below has a
110+ graceful fallback. Set them in ` .env.local ` to exercise the real behavior:
111+
112+ - ` RESEND_API_KEY ` — sends real email from the contact form; without it,
113+ submissions fail.
114+ - ` CONTACT_EMAIL ` — destination address for contact form submissions.
115+ - ` UPSTASH_REDIS_REST_URL ` , ` UPSTASH_REDIS_REST_TOKEN ` — enable real rate
116+ limiting (InfraLens, MetaLens, contact form, API Studio); without them,
117+ the shared limiter (` src/lib/rate-limit/ ` ) runs allow-all.
118+
96119## Quality Checks
97120
98121``` bash
@@ -102,7 +125,7 @@ pnpm test # Vitest
102125pnpm build # Production build
103126pnpm check # lint + typecheck + test + build — the required local/CI gate
104127
105- pnpm e2e # Playwright — portfolio routes
128+ pnpm e2e # Playwright — everything except InfraLens ( portfolio + API Studio, Cron Builder, JSON Studio, MetaLens)
106129pnpm e2e:infralens # Playwright — InfraLens (rate-limited, single worker)
107130```
108131
0 commit comments