Javis OS
Javis OS is an Agentic AI that assists entrepreneurs in business tasks, helping them grow their work.
AI translation
Implement your hotel's existing standards as timed tasks with photo proof and supervisor evidence. Run every department without PMS integration.
BusinessGitHub @sehejsharmOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
Repository information has not been collected yet.
No updates detected yet. GitHub releases will appear here.
The maker's introduction consists of the line above. Read the repository README for more details. Repository README ↗
Loading the full README.
Read the full 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 |