Give your agent a wallet you control.
에이전트가 일회용 카드나 기계 결제 프로토콜로 온라인 결제하고, 모든 요청을 직접 승인
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기메이커가 쓴 소개는 위의 한 줄이 전부입니다. 더 자세한 내용은 저장소 README에서 읽을 수 있습니다. 저장소 README ↗
README 전체를 불러오는 중입니다.
README 전문 보기 ↗A fast, SEO-first EMI calculator for Indian borrowers. Astro (static output) + Tailwind CSS 4 + one small Preact island. 84 pages are generated at build time from data and one pure calculation module. No server, no database, no cookies.
| Command | What it does |
|---|---|
npm run dev | Dev server on http://localhost:4321 |
npm run build | Production build into dist/ (about 30 s; most of it is the 83 OG images) |
npm run verify | Checks dist/ the way a crawler sees it (see below). Run after every build. |
npm test | 421 unit tests (Vitest): maths, formatting, URL state, generated copy, SEO helpers |
npm run serve | Serves dist/ like Vercel does (clean URLs, Brotli, cache headers) on http://localhost:4400 |
npm run preview | Astro's own preview server (no compression, so use serve for performance numbers) |
Node 22.12 or newer is required (Astro 7).
src/config.ts (SITE_URL, SITE_NAME, SITE_TAGLINE). This is the only place the domain is written; robots.txt, the sitemap, canonicals, JSON-LD and OG images all read it.CONTACT_EMAIL in src/config.ts. It is empty on purpose, and the About and Privacy pages only show a contact line when it is set.src/pages/privacy-policy.astro and disclaimer.astro are sensible starting text, not legal advice. Have a qualified person review them, and update LEGAL_UPDATED in src/config.ts when they change.src/
config.ts domain, brand, contact, legal date
data/ loanTypes.ts amounts.ts tenures.ts faqs.ts nav.ts routes.ts
lib/
emi.ts pure maths: EMI, schedules, prepayment, comparison, effective rate
format.ts Indian number formatting, "50L"/"1.5cr" parsing, amount in words
calc-state.ts calculator state, slider scales, URL (de)serialisation, CSV
insights.ts plain-English summaries of prepayment/comparison results
content*.ts builds each page's copy from templates + emi.ts (never hand-typed numbers)
seo.ts og.ts og-image.ts titles, canonicals, JSON-LD, social images
components/ Calculator.tsx (the island), charts, table, FAQ, header/footer...
directives/paint.js `client:paint`: hydrate after first paint (or on first touch)
pages/ home, loan types, amounts, amount+tenure, support pages, 404, og/, robots.txt
scripts/ verify-dist.mjs serve-dist.mjs subset-font.py
vercel.json clean URLs, cache headers, one rewrite (see Deploying)
src/data/loanTypes.ts (defaults, typical ranges, lead, tips, one unique FAQ). Its page, sitemap entry, OG image and footer link appear automatically.amounts in src/data/amounts.ts (and to comboAmountSlugs for tenure pages). If its slug contains a dot, add a rewrite to vercel.json; npm run verify tells you.{placeholders}. fill() throws on an unknown placeholder, and the tests fail if two pages end up with the same title, first paragraph or FAQ answer.npm test enforces: titles at most 60 characters and descriptions at most 155 (without truncation), 300–600 words of prose per page, 5–7 FAQs, 6–8 valid internal links, unique titles/H1s/first paragraphs/FAQ answers across all pages, and no policy rates, tax limits or bank names in the copy.npm run verify enforces on the built HTML: one H1, no heading jumps, absolute canonicals, JSON-LD that parses and matches the visible FAQs and breadcrumbs exactly, OG images that exist, a sitemap that equals the set of canonical URLs, robots.txt, no broken internal links, unique ids and landmark names, focusable scroll regions, and vercel.json consistency.Measured with Lighthouse (mobile profile, simulated slow 4G, 4x CPU slowdown) against npm run serve:
Performance 98–100, Accessibility 100, Best Practices 100, SEO 100 on every page type; LCP about 1.1 s; CLS 0.000;
TBT at most 12 ms; JS on a calculator page about 19 KB gzipped (budget 40 KB).
What keeps it fast:
client:paint after the first paint (or immediately on first touch).scripts/subset-font.py.content-visibility: auto; the 360-row month-wise schedule renders only the rows in view (median interaction cost 43 ms instead of 117 ms, worst case 63 ms instead of 377 ms at 4x CPU slowdown)..gitignore is included):
git init
git add .
git commit -m "EMI calculator"
git branch -M main
git remote add origin <your-repo-url>
git push -u origin main
npm run build, Output Directory dist, Install Command npm install.
Use Node 22.x or newer (Project Settings → General → Node.js Version).SITE_URL in src/config.ts to your real domain before the production deploy, commit and push.vercel.json is already set up, so no further configuration is needed:
cleanUrls and trailingSlash: false serve /50-lakh-loan-emi for the built 50-lakh-loan-emi.html, matching the canonical URLs./_astro/* and /fonts/*; one-day caching for /og/*; HTML is revalidated on each request./1.5-crore-loan-emi (its file name contains a dot)./1.5-crore-loan-emi, /about, a made-up URL (should show the custom 404), and /50-lakh-loan-emi.html (should redirect to the clean URL).https://<your-domain>/sitemap-index.xml.lastmod date in the sitemap is the build time of every page, which is accurate because every deploy regenerates all pages.