Javis OS
Javis OS는 기업가를 돕는 에이전시 AI로, 업무를 지원하고 함께 성장합니다
호텔 기존 기준을 사진 증명과 감독 확인이 있는 정해진 작업으로 구현 PMS 없이 모든 부서 운영
Implement your hotel's existing standards as timed tasks with photo proof and supervisor evidence. Run every department without PMS integration.
비즈니스GitHub @sehejsharm온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
저장소 정보는 아직 수집하지 않았습니다.
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
메이커가 쓴 소개는 위의 한 줄이 전부입니다. 더 자세한 내용은 저장소 README에서 읽을 수 있습니다. 저장소 README ↗
README 전체를 불러오는 중입니다.
README 전문 보기 ↗The marketing site for Mise, a service execution platform for hotels, built by Focus Realm.
Mise is the service execution platform (SEP) for hotels. It implements the SOPs a hotel already has as timed tasks on staff phones, captures photo and supervisor evidence as the work happens, and compounds it into an audit-ready service record. Not an LMS. No PMS integration required.
Stack:
PLAN.md explains the architecture and the reasons behind it.
| Doc | What it's for |
|---|---|
docs/LAUNCH-CHECKLIST.md | Everything to do before and at launch: Vercel, DNS, email, Search Console, open decisions |
docs/EDITING-THE-BLOG.md | Non-technical guide to Keystatic: publishing posts, adding advisors |
docs/SEO-REPORT.md | Generated crawl report: title, H1, keyword placement and word counts per URL |
docs/GEO-TEST.md | Monthly test of whether AI answer engines cite Mise |
docs/BACKLINKS.md | Prioritised authority plan with paste-ready boilerplate |
docs/current-site-inventory.md | Facts carried over from focusrealm.org |
Requirements: Node 20.9+ and pnpm 10 (corepack enable picks the version pinned in package.json).
pnpm install
cp .env.example .env.local # optional: every key has a safe default for local work
pnpm dev # http://localhost:3000
RESEND_API_KEY, form submissions are accepted and logged to the terminal in development, not emailed.| Command | What it does |
|---|---|
pnpm dev | Development server |
pnpm build | Production build. Afterwards it runs, in order:1. the copy lint (banned vocabulary and confidential terms);2. the image check (every founder and advisor has a portrait);3. IndexNow (production only).Any failure fails the build |
pnpm start | Serve the build |
pnpm lint / pnpm typecheck / pnpm format | ESLint, TypeScript, Prettier |
pnpm test:e2e | Playwright:- every route 200s, with one H1, title ≤ 60, description ≤ 158, self-canonical and valid JSON-LD;- no broken internal links;- GA4 exactly once and consent-gated;- the demo form submits;- reduced motion means no scroll-jacking |
pnpm test:visual | Screenshots every sitemap URL at 390/768/1440/1920 px in the site's single light theme, into qa/screenshots/. Also checks horizontal overflow and runs axe (WCAG 2.2 AA) at 390 and 1440. Summarise with node scripts/qa/visual-summary.mjs |
pnpm lhci | Lighthouse CI on six key pages, mobile then desktop.Performance must be ≥ 95; Accessibility, Best Practices and SEO must be 100 |
pnpm seo:report | Regenerates docs/SEO-REPORT.md from the built HTML |
pnpm check:links | Checks every external link in the built pages; --strict also fails on unverifiable ones |
pnpm audit:copy | Positioning audit (scripts/copy-audit.ts, also run in postbuild and CI): fails if housekeeping appears in a title, H1 or meta description outside its own pages, if the homepage over-weights housekeeping, if any demo CTA is a mailto:, or on the vocabulary and confidential-term bans. Writes docs/COPY-AUDIT.md |
pnpm audit:copy:live | The same audit against every URL in the live sitemap → docs/COPY-AUDIT-LIVE.md |
node scripts/verify-live.mjs | Live deployment verification (domain, headers, positioning, CTAs, GA4 and consent, SEO/GEO, OG images, link crawl) → docs/LIVE-VERIFICATION.md. Add to send one real test request through |
/opt/pw-browsers/chromium when it exists. Elsewhere, run pnpm exec playwright install chromium once, or set CHROME_PATH.pnpm build before test:e2e, test:visual, lhci, seo:report or check:links.Every key, with its purpose, is in .env.example. The ones that matter in production:
| Key | Required? | Purpose |
|---|---|---|
NEXT_PUBLIC_SITE_URL | Recommended | Canonical origin (https://misehotel.com) for canonicals, sitemap, OG and schema |
| — | — | GA4 measurement ID G-KVTTR7P7BY is fixed in lib/analytics.ts (no env override); the Search Console token is in app/layout.tsx (GOOGLE_SITE_VERIFICATION can override it) |
NEXT_PUBLIC_CONTACT_EMAIL, NEXT_PUBLIC_CONTACT_PHONE | No | Public contact details, defaults [email protected] and +91 93221 07991 |
NEXT_PUBLIC_BOOKING_URL | No | Cal.com/Calendly URL; embeds the scheduler on /demo |
RESEND_API_KEY, DEMO_INBOX_EMAIL, RESEND_FROM_EMAIL | Yes, for leads | Email delivery for the /demo form, contact form and newsletter. Every demo CTA goes to /demo. Without a key in production, the form shows an error with a prefilled email fallback to NEXT_PUBLIC_CONTACT_EMAIL instead of dropping the lead |
GOOGLE_SITE_VERIFICATION, BING_SITE_VERIFICATION | At launch | Search Console and Bing Webmaster verification meta tags |
INDEXNOW_KEY | At launch | Pings IndexNow with the sitemap on each production build |
KEYSTATIC_GITHUB_CLIENT_ID, KEYSTATIC_GITHUB_CLIENT_SECRET, KEYSTATIC_SECRET, NEXT_PUBLIC_KEYSTATIC_GITHUB_APP_SLUG | For live CMS editing | Keystatic GitHub mode |
BLOG_SHOW_DRAFTS | No | 1 forces drafts on, 0 forces them off. The default is drafts on everywhere except Vercel Production |
NEXT_PUBLIC_* values are baked in at build time, so redeploy after changing them.
sehejsharm/mise into the sehejsharms-projects team.pnpm install) and build command (pnpm build) are detected automatically. Do not override them.claude/tender-turing-pf2ike.main: merge into it, make it the GitHub default branch, and set Project → Settings → Git → Production Branch to main.vercel.json pins the framework and 301-redirects www.misehotel.com to the apex. Security headers (CSP, HSTS and others) are set in next.config.ts.
In Vercel → Project → Settings → Domains, add misehotel.com and www.misehotel.com, with www redirecting to the apex.
At the domain registrar, create the records Vercel shows. Typically:
| Host | Type | Value |
|---|---|---|
@ (apex) | A | 76.76.21.21 |
www | CNAME | cname.vercel-dns.com |
Use the exact values on Vercel's Domains page if they differ, and delete any older apex A/AAAA records.
Alternatively, point the domain's nameservers at Vercel DNS.
Wait for "Valid Configuration" and the TLS certificate (minutes to a few hours).
Confirm:
curl -sI https://www.misehotel.com → 301 to https://misehotel.com/;https://misehotel.com/sitemap.xml lists https://misehotel.com/… URLs.Then follow docs/LAUNCH-CHECKLIST.md §3–5 (email, Search Console, Bing, IndexNow).
Posts, authors, categories and advisors are edited in Keystatic at /keystatic. The full guide is docs/EDITING-THE-BLOG.md.
content/blog/*.mdoc (Markdoc with YAML front matter);content/authors/*.json, content/categories/*.json, content/advisors/*.json.docs/LAUNCH-CHECKLIST.md §6), and each save redeploys.status is draft or published. Drafts render on local and preview builds only, and are excluded from the production sitemap, RSS and listings.lib/links.ts);Quick path (no code):
/keystatic → Advisors → Add.Best-quality path (developer):
assets/raw/advisors/<slug>.jpg.{ group: "advisors", slug, seo: "<name>-advisory-board-mise" } to PEOPLE and a 4:5 focal box to CROPS in scripts/process-images.mjs.pnpm images. It writes AVIF/WebP at 400/800/1200 px and updates lib/images.manifest.json.content/advisors/<slug>.json with "photo": "advisors/<slug>", or set it in Keystatic.pnpm build.Rules:
app/ routes (App Router)
(site)/ every public page, wrapped in header/footer chrome
api/lead/ demo, contact and newsletter intake (zod, honeypot, rate limit, Resend)
keystatic/ CMS UI; API at app/api/keystatic
og/[key]/ static Open Graph PNGs per page
llms.txt/ llms-full.txt/ sitemap.ts robots.ts
components/ ui primitives, site chrome, home sections, page templates, blog, forms, fx
content/ all copy and data: site.ts (brand, founders, nav) + one typed file per page family
lib/ seo, schema (schema-dts), internal-link engine, markdown renderer, blog reader, analytics, consent, motion
scripts/ copy lint, image pipeline and check, IndexNow, SEO report, link check, QA helpers
tests/ e2e (Playwright) and visual QA
docs/ launch, SEO, GEO, backlinks, CMS docs
content/site.ts holds the canonical definition, founders and contact details. Pages, JSON-LD, OG images and llms.txt all read from it.scripts/copy-lint.mjs), run on every build:
lib/analytics.ts is the only caller of gtag. Nothing is sent before consent.--submit-test-lead/demopnpm images | Re-processes portraits and product screenshots from assets/raw/ into AVIF/WebP with blur placeholders |
pnpm analyze | Bundle analyser |