BLA
BLA는 오픈소스 Blue Defense MCP와 CLI로, 소프트웨어 자산을 자동 AI 리버스 엔지니어링으로부터 보호합니다
Mac에서 파일과 사진을 안전하게 보호하는 실용적인 가이드와 정직한 비교, 그리고 Secure Vault
Practical guides and honest comparisons for keeping files and photos private on a Mac, plus Secure Vault, our encrypted vault app for macOS.
보안GitHub @sam-seedinf온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
저장소 정보는 아직 수집하지 않았습니다.
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
메이커가 쓴 소개는 위의 한 줄이 전부입니다. 더 자세한 내용은 저장소 README에서 읽을 수 있습니다. 저장소 README ↗
README 전체를 불러오는 중입니다.
README 전문 보기 ↗Astro (static) site for Secure Mac App: Mac privacy guides, a directory of apps, free tools, and the Secure Vault for Mac waitlist (a "fake door" until demand is proven). Built from the day-1 setup spec.
npm install
npm run dev # http://localhost:4321
npm run build # astro build + pagefind index → dist/
npm run audit # content rubric report (spec §3.5)
Node ≥ 22.22 (see engines).
| Path | What |
|---|---|
src/content/pages/{en,ja,de}/… | All guides, best-of, compare and alternatives pages (MDX + frontmatter). One file = one URL. |
src/pages/[...slug].astro | Template for every collection page (answer → table → steps → body → vault CTA → FAQ → related) and its JSON-LD |
src/pages/*.astro | Hand-built pages: home, /vault/, indexes, trust pages, the Hidden File Checker tool, 404 |
src/components/ | MacWindow, Steps, Kbd, Callout, CompareTable, AppCard, FakeDoorButton, SubscribeForm, EmailCapture, FAQ, LastUpdated, LangSwitch, Breadcrumbs |
src/scripts/site.ts | Theme toggle, consent, GA4 events, fake-door modal, subscribe forms (tiny, bundled inline) |
api/subscribe.js | Vercel function → Buttondown (tags waitlist-vault, lang-xx, src-<path>) |
src/pages/sitemap-*.xml.ts, llms*.txt.ts, og/ | Generated sitemaps (with hreflang), llms.txt / llms-full.txt, OG images |
public/robots.txt, vercel.json | Crawler rules; headers (HSTS, CSP…), www / alt-domain redirects |
scripts/audit.mjs, scripts/indexnow.mjs | Rubric audit; IndexNow ping |
docs/ | README for the public secure-vault-mac repo; agent-loop runbook |
Create src/content/pages/en/guides/<slug>.mdx. The frontmatter schema is in src/content.config.ts
(title ≤ 60 chars, description ≤ 155 are enforced at build). The URL is the path under en/; ja/ and de/
get a prefix. Link translations by giving them the same path, or an explicit group:.
noindex and excluded from sitemaps/hreflang until a native speaker reviews them.
Flip reviewedLangs in src/lib/i18n.ts (and scripts/audit.mjs) when done.testedOn (guides) and lastChecked (comparisons) are left unset on purpose: the page then makes no
claim that steps were tested or prices verified. Set them only after a human has actually done so.shot: {src, alt} to steps. Real macOS screenshots only; no Apple imagery.npm run audit lists every open item. --strict exits non-zero (used in CI as informational today).See .env.example. Nothing breaks if they're unset: analytics and the consent banner simply don't load, and
/api/subscribe returns 503 until BUTTONDOWN_API_KEY is set.
PUBLIC_GA_ID, PUBLIC_CLARITY_ID: analytics. Consent Mode v2 starts denied for everyone (a static site
can't geolocate EU visitors); Clarity loads only after Accept.BUTTONDOWN_API_KEY: also enable double opt-in in Buttondown → Settings → Subscribing.INDEXNOW_KEY: serves /<key>.txt; run npm run indexnow after each production deploy.vercel.json;
the form handler is a Vercel function; Cloudflare Web Analytics is not used (GA4 + Clarity only).mailto: links rather than a press/listing form._headers / _redirects; equivalents are in vercel.json.