new-term-radar
Daily radar for new AI terms: names of new models, products and repos, caught on X, Hugging Face, GitHub and sitemaps before keyword tools list them.
Ask Xpert AI, Ghandhara Estate's real estate assistant, about buying, selling or renting property in Islamabad and Rawalpindi — houses, plots, apartments, farmhouses and commercial space. Get clear an
Translation pending
MarketingTypeScript · JavaScriptGitHub @itsmeharoon112233-netizenOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
dgfhfhjfh
Translation pending
Taken from the repository README
Loading the full README. The saved excerpt is shown below.
An AI real estate assistant for ghandharaestate.com, powered by Claude.
Visitors ask about buying, selling or renting property in Islamabad and Rawalpindi, get clear streamed
answers, and can send an inquiry to your team with one click.
Built with Next.js 16 (App Router), React 19, TypeScript and Tailwind CSS 4.
Requires Node.js 20.9+.
1. Push this folder to a GitHub repository (.env.local is git-ignored — never commit it).
2. On vercel.com → Add New → Project → import the repo. Framework is detected as Next.js; keep the defaults.
3. In Settings → Environment Variables, add the variabRead the full README ↗An AI real estate assistant for ghandharaestate.com, powered by Claude. Visitors ask about buying, selling or renting property in Islamabad and Rawalpindi, get clear streamed answers, and can send an inquiry to your team with one click.
Built with Next.js 16 (App Router), React 19, TypeScript and Tailwind CSS 4.
Requires Node.js 20.9+.
npm install
cp .env.example .env.local # then put your Claude API key in .env.local
npm run dev # http://localhost:3000
Other scripts:
| Command | What it does |
|---|---|
npm run build | Production build (also type-checks) |
npm start | Run the production build |
npm run typecheck | TypeScript check only |
npm test | Server tests against a mock Claude API (no key needed) |
| Name | Required | Purpose |
|---|---|---|
ANTHROPIC_API_KEY | Yes | One AI key: a Claude key (sk-ant-…, platform.claude.com) or an OpenAI key (sk-…). The app picks the provider from the key. Server-only. |
OPENAI_MODEL | No | Model used with an OpenAI key, default gpt-5.4-mini. |
CLAUDE_MODEL | No | Default claude-sonnet-5-5. Use claude-haiku-4-5-20251001 for lower cost. |
CLAUDE_MAX_TOKENS | No | Max reply length, default 2048. |
LEAD_WEBHOOK_URL | No | Where "Talk to an agent" inquiries are POSTed as JSON (n8n, Zapier, Make, Google Apps Script…). |
EMBED_ALLOWED_ORIGINS | For the embed | Your existing site(s), space-separated: https://ghandharaestate.com https://www.ghandharaestate.com |
NEXT_PUBLIC_SITE_URL | No | Where this app lives, for SEO links, e.g. https://chat.ghandharaestate.com. |
.env.local is git-ignored — never commit it).ANTHROPIC_API_KEY and EMBED_ALLOWED_ORIGINS).chat.ghandharaestate.com and create the CNAME record your DNS provider shows.EMBED_ALLOWED_ORIGINS later, redeploy (it is applied at build time).Once deployed, paste this one line into your site's footer:
<script src="https://YOUR-DEPLOYED-URL/embed.js" defer></script>
Easiest way on WordPress: install the free WPCode plugin → Code Snippets → Header & Footer → paste into Footer → Save.
A green "Chat with Xpert AI" button appears in the bottom corner of every page. The chat loads only when clicked,
so it doesn't slow your site down. Options: data-label="Ask our AI" and data-position="left" on the script tag.
You can also simply link to the app from your menu (e.g. "AI Assistant" → https://chat.ghandharaestate.com).
| To change… | Edit |
|---|---|
| How the AI behaves, business facts, areas served | src/config/ai.ts (SYSTEM_PROMPT, BUSINESS_INFO) |
| Name, tagline, phone/WhatsApp/email, welcome prompts | src/config/site.ts |
| Message length / history limits | src/config/limits.ts |
| Colours (light & dark) | CSS variables at the top of src/app/globals.css |
| Logo | src/components/brand/Logo.tsx and src/app/icon.svg |
The assistant only states business facts that appear in BUSINESS_INFO. It has no live listing data, so it sends
people to your website listings or an agent for specific properties.
src/
app/
api/chat/route.ts POST /api/chat → streams Claude's reply (NDJSON)
api/lead/route.ts POST /api/lead → forwards inquiries to your webhook
layout.tsx fonts, SEO metadata, theme bootstrapping
page.tsx the chat app
robots.ts, sitemap.ts, icon.svg, opengraph-image.tsx
components/
chat/ ChatApp, MessageList, MessageItem, Markdown, CodeBlock, Composer, WelcomeScreen, LeadDialog
layout/ Sidebar (drawer on mobile), ChatHeader
ui/ Icons, Toast, Dialog
theme/ ThemeProvider (light/dark)
config/ site.ts, ai.ts, limits.ts
hooks/ useChat (conversation state + streaming), useAutoScroll
lib/
server/ Claude client + SSE parser, validation, errors, rate limiting, handlers
storage/chat-store.ts chat history storage (swap for a database here)
chat-client.ts browser side of the stream
types/chat.ts
public/embed.js drop-in chat button for other sites
tests/server.test.ts
/api/chat. The server validates it (empty / too-long messages,
role order), trims old history to a budget, and calls the Claude Messages API with streaming.History is saved in each visitor's browser (localStorage): private, no sign-up, no database.
The ChatStore interface in src/lib/storage/chat-store.ts is the single place to change if you later
want accounts and server-side history (e.g. Supabase/Postgres + Auth.js).