首页搜索条件(地区、类型、买/租、预算)通过查询参数传递到 /listings 结果页
NestFind — Next.js 企业官网模板
作者 intellectwithvivek
NestFind 是一个基于 Next.js 的房地产网站模板,使用 VivekUI 组件库构建,包含房源列表、筛选、对比、价格趋势图与 EMI 计算器,全部数据为虚构示例。
看看你的网站会是什么样
浏览真实页面截图,比较内容排版与手机效果。点击下方缩略图切换,放大查看整页细节。
全部页面与视图 2
截图用于了解视觉与布局,交互效果请以实际项目为准。
值得关注的模板亮点
从已有项目资料中,快速了解它的特点。
结果页支持价格、地区、类型、卧室、八项设施、关键词与现房等累积筛选,并可切换卡片网格与可排序对比表
每个房源页包含五年单价趋势折线图与按等额本息计算的 EMI 计算器,并用饼图拆分本金与利息
按路由生成 Metadata、canonical、OG/Twitter 卡片,并提供 sitemap、robots、manifest 与构建时 OG 图片
输出 RealEstateListing、ItemList、RealEstateAgent、SoftwareSourceCode、FAQPage、BreadcrumbList 等 JSON-LD
房源、地区、经纪人、FAQ 与站点配置集中在 data/ 与 lib/site.ts 五个文件中,便于替换演示数据
模板详细介绍
NestFind 是一个面向房地产场景的 Next.js 网站模板,完全使用 VivekUI 组件库搭建,采用 MIT 许可发布。仓库说明中明确:站点上的 18 条班加罗尔房源、价格、经纪人、评分与评论全部为虚构内容,属于可替换的演示数据。
模板包含首页搜索(地区下拉、类型选择、买/租切换、预算滑块),搜索结果页会读取查询参数;结果页提供价格区间、地区、类型、卧室数、八项配套设施、关键词与现房开关等累积筛选条件,并可在卡片网格与可排序对比表之间切换。每个房源详情页包含图库、标签页、五年单价折线图与 EMI 计算器(三个滑块,按等额本息计算并拆分本金与利息)。
站点在 SEO 与结构化数据方面做了较多工作:按路由生成 Metadata、canonical、Open Graph 与 Twitter 卡片,提供 sitemap、robots、manifest 与构建时生成的 OG 图片,并输出 RealEstateListing、ItemList、RealEstateAgent、SoftwareSourceCode、FAQPage、BreadcrumbList 等 JSON-LD。仓库还声明了无障碍方面的处理,包括每页单一 h1、可见焦点、尊重 reduced-motion、24px 触控目标,以及为图表提供数据表格。
使用限制:模板与 VivekUI 组件库绑定,仓库说明指出按原样使用必须依赖该库;演示图片来自 Unsplash 与 i.pravatar.cc,通过 URL 引用并在 next.config.ts 中列入允许列表,替换为自有 CDN 需调整 remotePatterns。除 /listings 因读取 searchParams 而服务端渲染外,其余页面(含 18 个房源页)在构建时预渲染。仓库要求 Node.js 20.9 及以上。
适合你的项目吗?
适用场景
- 需要一个可直接替换数据的房地产展示站点骨架,用于快速搭建房源列表与详情页
- 想参考 Next.js App Router 下如何组织筛选、对比表、图表与结构化数据
- 希望以单一组件库(VivekUI)完成整站界面,而不引入 Tailwind、shadcn 或 MUI
- 需要为房源类页面准备 SEO 元数据、站点地图与 JSON-LD 结构化数据的实现示例
适合人群
- 熟悉 Next.js 与 TypeScript、希望以模板起步的开发者
- 需要房地产或房产中介类展示站点的个人或小团队
- 想研究 VivekUI 组件库在完整项目中使用方式的开发者
上手与定制指南
结合仓库当前版本的说明,按下面的资料检查内容、配置与运行要求。
- 1
克隆仓库后执行 npm install 与 npm run dev,本地默认地址为 http://localhost:3000
- 2
需要 Node.js 20.9 及以上版本,仓库建议使用 22 LTS
- 3
部署前修改 lib/site.ts 中的 SITE_URL,canonical、sitemap、OG 图片与 JSON-LD 的 @id 均由此生成
- 4
模板无环境变量、数据库与 API 密钥;除 /listings 外均为静态或构建时预渲染
- 5
演示图片来自 Unsplash 与 i.pravatar.cc,替换为自有图源时需同步修改 next.config.ts 的 remotePatterns
授权与来源资料
使用条件与限制
免费使用 · 保留许可声明本次收录的是公开仓库中采用 MIT 许可的免费版本;免费范围为该版本代码,不代表外部服务或第三方素材免费。
使用时需要遵守
- 允许免费使用、修改、商用和分发该版本代码。
- 分发代码副本或实质性部分时,保留原作者版权声明和完整 MIT 许可声明。
- 代码按现状提供;担保与责任限制以原许可证及适用法律为准。
额外费用与待核对事项
- 按原样使用该模板必须依赖 VivekUI 组件库(@the_viveksingh/vivek-ui),整站界面由该库的 47 个组件与 2 个图表构成,无法在不引入该依赖的情况下直接使用。
- 演示图片通过 URL 引用 Unsplash 与 i.pravatar.cc,并在 next.config.ts 中列入允许列表;替换为自有图源需修改 remotePatterns,且这些第三方图片资源本身不在 MIT 代码许可范围内。
- 运行环境要求 Node.js 20.9 及以上(建议 22 LTS),低于该版本无法运行。
- 模板本身无需环境变量、数据库或 API 密钥;但部署前必须修改 lib/site.ts 中的 SITE_URL,否则 canonical、sitemap、OG 图片与 JSON-LD 的 @id 仍指向原域名。
- 演示图片、字体、图标及其他第三方素材需按各自许可核对,不能仅凭代码的 MIT 许可判断。
- 域名、托管、数据库、支付或 AI 等外部服务可能另外收费。
查看原文依据
Permission is hereby granted, free of charge
许可证原文
To use this template as-is, yes — it is the whole point of the project.
README 原文
Unsplash and i.pravatar.cc, referenced by URL and allow-listed in
README 原文
**Requires Node.js 20.9+** (22 LTS recommended) — Next.js 16 will not run on older.
README 原文
https://github.com/intellectwithvivek/NestFind/blob/main/LICENSEhttps://github.com/intellectwithvivek/NestFind/blob/main/README.mdNo environment variables, no database, no API keys. The site is fully static apart
README 原文
DeepSeek 根据仓库许可证和 README 整理 ·2026-10-02。结果仅覆盖已读取资料,依赖、图片、字体及后续条款变更以各自原文为准。
项目核对记录与介绍依据
模板资料
- 来源平台
- GitHub
- 资料与维护参考分
- 资料较完整 · 83 / 100
- 技术栈
- Next.js · React
- 网站类型
- 企业官网
这个分数如何计算
本站按许可资料(最高30分)、演示链接(12分)、预览图(10分)、Star数(15分)、记录的维护时间(15分)、描述完整度(8分)、功能记录(5分)和分类资料(5分)计算。它不是代码、安全或性能测试,也不是 Google 评分;有链接不代表已实测可用。
这个项目需要核对什么
- 记录的仓库更新时间
- 2026-08-29
- 截图检查日期
- 2026-10-02
已收录演示链接。请用你的内容与屏幕尺寸检查;有演示不代表表单、认证或支付已经可用。
目录记录的主要技术栈是 Next.js。请通过依赖清单和锁文件核对实际版本与托管要求。这些说明基于收录资料,不代表代码审计或部署实测。
查看具体选型方法 →介绍的制作与核对状态
介绍由 AI 辅助整理目录与仓库资料。仓库作者不等于这篇介绍的审核者。
已完成服务器许可规则与 AI 来源核对;未经过人工编辑审核。
查看当时使用的来源资料
SHA-256: 3bd0faf2d994c8bde3b2c7c8bd27715d175b4d0cd481ff23a4d9b1437cef0f3c
2026-10-02T07:22:43.865Z
来源文件 / 仓库<div align="center">
<img src="app/icon.svg" alt="" width="76" height="76">
# NestFind
**A free, open-source real estate website template for Next.js 16 — built entirely with [VivekUI](https://ui.vivekkumarsingh.in).**
[](https://nestfind.vivekkumarsingh.in)
[](https://nextjs.org)
[](https://react.dev)
[](https://www.typescriptlang.org)
[](https://www.npmjs.com/package/@the_viveksingh/vivek-ui)
[](#why-this-exists)
[](LICENSE)
### [**View the live demo →**](https://nestfind.vivekkumarsingh.in)
[](https://nestfind.vivekkumarsingh.in)
</div>
---
## Contents
[Why this exists](#why-this-exists) ·
[What you get](#what-you-get) ·
[Quick start](#quick-start) ·
[Deploy](#deploy) ·
[Make it yours](#make-it-yours) ·
[Project structure](#project-structure) ·
[SEO and AEO](#seo-and-aeo) ·
[Accessibility](#accessibility) ·
[Components used](#components-used) ·
[FAQ](#faq) ·
[Licence](#licence)
---
## Why this exists
Component libraries are usually demonstrated with a button page and a form page. That
proves nothing about whether you can finish a product with one.
NestFind is the counter-argument: a complete property marketplace — **18 fictional
Bengaluru listings**, locality price trends, a live EMI calculator, a side-by-side
comparison table, six agents — assembled from **one package with zero runtime
dependencies**.
No Tailwind. No shadcn. No MUI. No CSS-in-JS. No charting library. One `npm install`,
two CSS imports, and roughly 600 lines of custom CSS for the identity.
Everything on this site is invented. It is a template, so the data is there to be
replaced.
## What you get
| | |
|---|---|
| **Search that carries through** | Locality combobox, type select, Buy/Rent toggle and a budget slider on the homepage; the query string is read back by `/listings` |
| **A filter rail that means it** | Price range, locality, type, bedrooms, eight amenities, free keywords and a ready-to-move switch — every filter is cumulative |
| **Grid or Compare** | A tab flips results between cards and one sortable `DataTable` comparing area, ₹/sq ft, upkeep, possession and furnishing |
| **Locality price trends** | A `LineChart` on every listing page — ₹/sq ft across five years, with the change since 2021 written out in a sentence, not left as homework |
| **A live EMI calculator** | Three sliders → the standard reducing-balance instalment, counted up, with a `PieChart` splitting principal from interest |
| **Real SEO** | Metadata API per route, `sitemap.ts`, `robots.ts`, `manifest.ts`, canonicals, a generated OG image, and six kinds of JSON-LD |
| **AEO** | An FAQ answered honestly plus `public/llms.txt` for answer engines |
| **Accessible** | One `h1` per page, visible focus, reduced motion respected, 24px touch targets, zero axe violations in both themes |
| **Responsive** | Verified with no horizontal overflow from 320px to 1920px on every route |
| **Light and dark** | `ThemeProvider` with an anti-flash script inlined in `<head>` |
## Quick start
```bash
git clone https://github.com/intellectwithvivek/NestFind.git
cd NestFind
npm install
npm run dev
```
Open <http://localhost:3000>.
**Requires Node.js 20.9+** (22 LTS recommended) — Next.js 16 will not run on older.
| Script | What it does |
|---|---|
| `npm run dev` | Development server (Turbopack) |
| `npm run build` | Production build — all 18 listing pages prerender |
| `npm start` | Serve the production build |
| `npm run lint` | ESLint |
## Deploy
[](https://vercel.com/new/clone?repository-url=https%3A%2F%2Fgithub.com%2Fintellectwithvivek%2FNestFind&project-name=nestfind&repository-name=nestfind)
**Before you deploy, change one line.** `SITE_URL` in [`lib/site.ts`](lib/site.ts) is
what `metadataBase`, every canonical URL, the sitemap, the OG image URLs and every
JSON-LD `@id` are built from. Point it at your domain and the whole site follows.
```ts
// lib/site.ts
export const SITE_URL = 'https://your-domain.com'
```
No environment variables, no database, no API keys. The site is fully static apart
from `/listings`, which is server-rendered so it can read the search query.
## Make it yours
Everything you would normally have to hunt for lives in five files:
| File | What it holds |
|---|---|
| [`data/listings.ts`](data/listings.ts) | The 18 properties — price, specs, amenities, copy, photos |
| [`data/localities.ts`](data/localities.ts) | Twelve localities and the five-year ₹/sq ft series each chart plots |
| [`data/agents.ts`](data/agents.ts) | Six agents |
| [`data/faqs.ts`](data/faqs.ts) | FAQ copy, which is also the source for the `FAQPage` JSON-LD |
| [`lib/site.ts`](lib/site.ts) | Domain, name, description, repository links, UTM helper |
### Theming
The accent colour, the blueprint grid and the tabular-figure price styling are CSS
custom properties at the top of [`app/globals.css`](app/globals.css):
```css
:root {
--vk-color-primary: #1257c9; /* the accent, everywhere */
--nf-grid-fine: rgb(18 87 201 / 0.07); /* the blueprint grid */
--nf-grid-bold: rgb(18 87 201 / 0.13);
}
```
Change `--vk-color-primary` and the whole site follows. Every VivekUI selector is
wrapped in `:where()`, so a single flat class of yours wins with no `!important`
anywhere in this repository.
### The logo
One drawing on a 32-unit grid — a gable sheltering a cradle — used in five places:
| File | Where it shows up |
|---|---|
| [`components/logo.tsx`](components/logo.tsx) | Header and footer, inline SVG |
| [`app/icon.svg`](app/icon.svg) | Browser tab, `sizes="any"` |
| `app/favicon.ico` | 16 / 32 / 48 px, for Windows and older browsers |
| `app/apple-icon.png` | 180×180, opaque — iOS rounds it itself |
| [`app/opengraph-image.tsx`](app/opengraph-image.tsx) | Social card, inlined as a data URI |
The roof is a filled triangle rather than a stroked chevron on purpose: a stroked roof
and the cradle below it land less than a pixel apart at 16px, where anti-aliasing welds
them into a ring. `--nf-logo-tile` and `--nf-logo-ink` recolour the mark.
## Project structure
```
app/
layout.tsx root layout, theme script, site-wide metadata
page.tsx homepage
listings/page.tsx results — filters, grid/compare, pagination
listings/[slug]/ one property — gallery, tabs, price chart, EMI
agents/page.tsx six agents
built-with/page.tsx every section mapped to its component
opengraph-image.tsx social card, generated at build time
icon.svg · favicon.ico · apple-icon.png
sitemap.ts · robots.ts · manifest.ts
not-found.tsx
components/ cards, filter rail, charts, EMI calculator, logo, nav
data/ listings, localities, agents, FAQs, component map
lib/ formatting, the EMI formula, JSON-LD builders, site config
public/llms.txt attribution and facts for answer engines
```
## SEO and AEO
Everything is generated from the data — nothing is hand-maintained, so nothing drifts.
**Per route:** a unique `<title>` and description via the Metadata API, a canonical
URL, Open Graph and Twitter cards, and exactly one `<h1>`.
**Site-wide:** [`app/sitemap.ts`](app/sitemap.ts) emits all 22 URLs (four static routes
plus every listing) at `/sitemap.xml`; [`app/robots.ts`](app/robots.ts) points at it;
[`app/manifest.ts`](app/manifest.ts) carries the icons and theme colour.
**Structured data** — six types, all built in [`lib/jsonld.ts`](lib/jsonld.ts):
| Schema | Where |
|---|---|
| `RealEstateListing` + `Residence`/`Place` + `Offer` | Each listing page |
| `ItemList` | `/listings` and `/agents` |
| `RealEstateAgent` | `/agents`, and as the seller on each listing |
| `SoftwareSourceCode` | `/built-with` |
| `FAQPage` | Homepage |
| `BreadcrumbList` + `WebSite` | Every page |
**AEO.** The FAQ answers are plain strings used for both the rendered page and the
`FAQPage` JSON-LD, so a crawler and a visitor can never be told different things.
[`public/llms.txt`](public/llms.txt) states plainly that the listings are fictional,
explains the EMI formula, and lists the structured data the site publishes.
## Accessibility
Verified, not asserted:
- **Zero axe violations** (WCAG 2.1 A and AA) across five pages in both themes
- One `h1` per page; headings keep a correct outline via `level` / `size` separation
- Every image has meaningful `alt` text derived from the frame and the property
- Touch targets meet the 24px minimum (WCAG 2.5.8), including the sliders
- Visible focus rings; `prefers-reduced-motion` respected throughout
- Charts publish a real `<table>` of their numbers for screen readers
- No horizontal scrolling at any width from 320px up
## Components used
**47 components and 2 charts**, all from `@the_viveksingh/vivek-ui`. The
[`/built-with`](https://nestfind.vivekkumarsingh.in/built-with) page maps every one of
them to the section it builds, each linked to its documentation.
```bash
npm i @the_viveksingh/vivek-ui
```
[Docs](https://ui.vivekkumarsingh.in/docs?utm_source=vivekui-template&utm_campaign=realestate&utm_medium=readme)
· [npm](https://www.npmjs.com/package/@the_viveksingh/vivek-ui)
· [GitHub](https://github.com/intellectwithvivek/vivek_UI)
· [Vivek Kumar Singh](https://vivekkumarsingh.in/?utm_source=vivekui-template&utm_campaign=realestate&utm_medium=readme)
## FAQ
**Are the listings real?**
No. Every property, price, agent, rating and review is invented. This is a template.
**Can I use this commercially?**
Yes. MIT licensed, free for any use. The footer credit is removable.
**Do I have to use VivekUI?**
To use this template as-is, yes — it is the whole point of the project. It is one
dependency with zero runtime dependencies of its own.
**Where do the images come from?**
Unsplash and i.pravatar.cc, referenced by URL and allow-listed in
[`next.config.ts`](next.config.ts). Swap the `remotePatterns` for your own CDN.
**Why is `/listings` server-rendered when everything else is static?**
It reads `searchParams` so the homepage search can hand it a locality and a budget.
Everything else, including all 18 listing pages, is prerendered at build time.
## Contributing
Issues and pull requests are welcome — bug reports especially. If you build something
with this, a link back is appreciated but not required.
## Licence
[MIT](LICENSE) © 2026 Vivek Kumar Singh. Free forever, for any use, commercial
included.
A ⭐ on [VivekUI](https://github.com/intellectwithvivek/vivek_UI) is appreciated if the
component library saved you time.
---
<div align="center">
**[Live demo](https://nestfind.vivekkumarsingh.in)** ·
**[Clone this template](https://github.com/intellectwithvivek/NestFind)** ·
**[Built with VivekUI](https://nestfind.vivekkumarsingh.in/built-with)**
*Every property, price, agent and review on this site is fictional.*
</div>
看看同类模板
对比同技术栈与用途的模板,找到更适合的视觉与内容结构。

SaaS-Boilerplate
🚀🎉📚 SaaS Boilerplate built with Next.js + Tailwind CSS + Shadcn UI + TypeScript. ⚡️ Full-stack React applic…
Next.js · SaaS

Next-JS-Landing-Page-Starter-Template
🚀 Free NextJS Landing Page Template written in Tailwind CSS 3 and TypeScript ⚡️ Made with developer experienc…
Next.js · 企业官网

next-saas-starter
⚡️ Free Next.js responsive landing page template for SaaS products made using JAMStack architecture.
Next.js · SaaS

startup-nextjs
Startup is free Next.js template for SaaS startups comes with all the essential pages, components, and section…
Next.js · SaaS

shadcn-landing-page
New design 🎉 Nextjs + Shadcn + TypeScript + Tailwind. Landing page template ease-to-use
Next.js · 企业官网

shadcn-dashboard-landing-template
Accelerate your development with a sleek, open-source admin dashboard and landing page built on Vite-React, Ne…
Next.js · 后台
