Next.jsReact企业官网

wanderly — Next.js 企业官网模板

作者 intellectwithvivek

Wanderly 是一个基于 Next.js 的免费旅行网站模板,面向精品旅行社,内置六条线路的行程、气候图表与预订相关页面。

看看你的网站会是什么样

浏览真实页面截图,比较内容排版与手机效果。点击下方缩略图切换,放大查看整页细节。

2 个预览视图
桌面端首页1 / 2
桌面端截图首屏预览

由服务器浏览器实际访问页面后截取。

全部页面与视图 2

截图用于了解视觉与布局,交互效果请以实际项目为准。

采集于 2026-10-02查看来源

值得关注的模板亮点

从已有项目资料中,快速了解它的特点。

01

六条线路均配有逐日行程时间线、包含与不包含清单、出发日历和十二个月气候数据

02

目的地页使用行内 SVG 折线图与柱状图展示月均高温和降雨量,并附屏幕阅读器可读的数据表

03

统一的登机牌票根视觉母题,以约四十行 CSS 实现,复用于首页、目的地索引、优惠轮播和搜索结果

04

每个路由静态预渲染,首页按小时重新验证以保持倒计时更新

05

内置 Metadata API、sitemap、robots、llms.txt 以及 TravelAgency、TouristTrip、FAQPage 等结构化数据

06

数据集中在 data/trips.ts、data/site.ts、data/faq.ts 等文件,替换内容无需改动组件

模板详细介绍

Wanderly 是一个用 Next.js 构建的旅行网站模板,定位为精品旅行社的完整站点,而非只有占位文案的落地页。它围绕六条虚构线路(巴厘岛、圣托里尼、京都、瑞士阿尔卑斯、拉达克、冰岛)组织内容,每条线路都配有九天或十天的逐日行程、包含与不包含项目清单、出发日历,以及十二个月的气候数据。

界面基于 VivekUI 组件库搭建,项目自身没有引入 Tailwind、图表库或图标包,图表由组件库以行内 SVG 在服务端渲染,并附带供屏幕阅读器使用的隐藏数据表。路由包括首页、目的地列表、六个预渲染的目的地详情页、行程规划页、built-with 页和 404,另生成 sitemap.xml、robots.txt 与 llms.txt。首页按小时重新验证,以保持优惠倒计时更新。

SEO 与结构化数据是模板的一部分:每个路由通过 Metadata API 设置 metadataBase、canonical、Open Graph 与 Twitter 卡片,并输出 TravelAgency、WebSite、TouristTrip、BreadcrumbList 和 FAQPage 等 schema。无障碍方面声明符合 WCAG AA,包括每页一个 h1、跳转链接、可见焦点环、尊重 prefers-reduced-motion,以及为图片提供替代文本。

使用限制:仓库采用 MIT 许可,免费范围是该版本代码,允许使用、修改、商用和分发,但分发时需保留版权与许可声明。演示图片来自 Unsplash 并以热链接方式引用,头像来自 i.pravatar.cc,这些第三方素材需按各自许可核对。模板中的公司、线路、价格和评论均为虚构。

Next.js企业官网

适合你的项目吗?

适用场景

  • 为精品旅行社或定制旅行品牌搭建展示六条左右线路的官网
  • 需要逐日行程、出发日期和气候参考信息的旅行产品详情页
  • 希望以少量依赖实现服务端渲染图表与结构化数据的 Next.js 项目
  • 作为学习 Next.js 路由、SEO 元数据与结构化数据组织的参考站点

适合人群

  • 经营小型旅行线路、需要现成内容结构的旅行社
  • 熟悉 Next.js 与 TypeScript、希望直接替换数据文件的前端开发者
  • 需要可商用 MIT 许可模板的个人或团队项目
  • 关注 WCAG AA 无障碍与结构化数据实践的网站构建者

上手与定制指南

结合仓库当前版本的说明,按下面的资料检查内容、配置与运行要求。

  1. 1

    需要 Node.js 20.9 或更高版本,推荐使用 22 LTS

  2. 2

    克隆仓库后执行 npm install 与 npm run dev,无需填写配置文件或运行 CLI

  3. 3

    部署前在 data/site.ts 中设置 SITE.url,canonical、Open Graph、sitemap 与 JSON-LD 会随之更新

  4. 4

    线路文案、价格、行程、气候与照片在 data/trips.ts 中修改,FAQ 文案在 data/faq.ts 中修改

  5. 5

    演示图片来自 Unsplash 且为热链接,头像来自 i.pravatar.cc,商用前需自行核对第三方素材许可

查看仓库使用说明

授权与来源资料

使用条件与限制

免费使用 · 保留许可声明

本次收录的是公开仓库中采用 MIT 许可的免费版本;免费范围为该版本代码,不代表外部服务或第三方素材免费。

使用时需要遵守

  • 允许免费使用、修改、商用和分发该版本代码。
  • 分发代码副本或实质性部分时,保留原作者版权声明和完整 MIT 许可声明。
  • 代码按现状提供;担保与责任限制以原许可证及适用法律为准。

额外费用与待核对事项

  • 演示图片、字体、图标及其他第三方素材需按各自许可核对,不能仅凭代码的 MIT 许可判断。
  • 域名、托管、数据库、支付或 AI 等外部服务可能另外收费。
  • 演示照片来自 Unsplash 并按 Unsplash 许可热链接引用、不再分发;头像来自 i.pravatar.cc。这些第三方素材不随 MIT 代码许可一并授权,商用前需自行核对各自许可。
  • 模板中的公司、线路、价格与评论均为虚构内容,上线前必须替换为真实信息,不能直接作为真实旅行社的对外内容使用。
查看原文依据

Permission is hereby granted, free of charge

许可证原文

Photographs are from [Unsplash](https://unsplash.com) under the Unsplash licence and are hot-linked, not redistributed. Avatars are from [i.pravatar.cc](https://i.pravatar.cc).

README 原文

Wanderly is a fictional company; the trips, prices and reviews are invented.

README 原文
https://github.com/intellectwithvivek/wanderly/blob/main/LICENSEhttps://github.com/intellectwithvivek/wanderly/blob/main/README.md

DeepSeek 根据仓库许可证和 README 整理 ·2026-10-04。结果仅覆盖已读取资料,依赖、图片、字体及后续条款变更以各自原文为准。

项目核对记录与介绍依据

模板资料

来源平台
GitHub
资料与维护参考分
资料较完整 · 83 / 100
技术栈
Next.js · React
网站类型
企业官网
这个分数如何计算

本站按许可资料(最高30分)、演示链接(12分)、预览图(10分)、Star数(15分)、记录的维护时间(15分)、描述完整度(8分)、功能记录(5分)和分类资料(5分)计算。它不是代码、安全或性能测试,也不是 Google 评分;有链接不代表已实测可用。

这个项目需要核对什么

记录的仓库更新时间
2026-08-29
截图检查日期
2026-10-04

已收录演示链接。请用你的内容与屏幕尺寸检查;有演示不代表表单、认证或支付已经可用。

目录记录的主要技术栈是 Next.js。请通过依赖清单和锁文件核对实际版本与托管要求。这些说明基于收录资料,不代表代码审计或部署实测。

查看具体选型方法 →

介绍的制作与核对状态

介绍由 AI 辅助整理目录与仓库资料。仓库作者不等于这篇介绍的审核者。

审核声明: codex-user-requested-batch-review-20261017 · 2026-10-16

查看当时使用的来源资料

SHA-256: 6d8f25939af2c867ba4bc18358f4db02535c2d56393b6f059bd0954c59fc792c

2026-10-04T08:39:34.687Z

来源文件 / 仓库
<div align="center">

# Wanderly — a free travel website template for Next.js

**Six trips. Day-by-day itinerary timelines. Real month-by-month climate charts.
No chart library, no Tailwind, no config.**

[![Next.js](https://img.shields.io/badge/Next.js-16.3-black?logo=next.js)](https://nextjs.org)
[![React](https://img.shields.io/badge/React-19-087ea4?logo=react&logoColor=white)](https://react.dev)
[![TypeScript](https://img.shields.io/badge/TypeScript-5-3178c6?logo=typescript&logoColor=white)](https://www.typescriptlang.org)
[![VivekUI](https://img.shields.io/npm/v/@the_viveksingh/vivek-ui?color=047857&label=VivekUI)](https://www.npmjs.com/package/@the_viveksingh/vivek-ui)
[![runtime deps](https://img.shields.io/badge/runtime%20deps-0-047857)](#what-is-not-in-this-project)
[![licence](https://img.shields.io/badge/licence-MIT-047857)](LICENSE)

### [**Live demo →**](https://wanderly.vivekkumarsingh.in) &nbsp;·&nbsp; [**Documentation →**](DOCUMENTATION.md) &nbsp;·&nbsp; [**Use this template →**](https://github.com/intellectwithvivek/wanderly/generate)

[![The Wanderly homepage](public/screenshot.jpg)](https://wanderly.vivekkumarsingh.in)

</div>

---

Wanderly is a complete, production-quality website for a boutique tour operator selling
six curated trips — Bali, Santorini, Kyoto, the Swiss Alps, Ladakh and Iceland. It is not
a landing page with lorem ipsum in it: every trip has a real nine-or-ten-day itinerary, an
inclusions and exclusions list, a departure calendar, and twelve months of climate data.

The whole interface is built with **[VivekUI](https://ui.vivekkumarsingh.in/docs?utm_source=vivekui-template&utm_campaign=travel&utm_medium=readme)**,
a free React component library with **zero runtime dependencies**.

## Why this exists

**To show what VivekUI can actually build.** A component library is easy to demo with a
button and a modal, and much harder to demo with a whole site — a booking flow, an
itinerary timeline, live countdowns, real charts, a filterable planner, dark mode and
structured data — without reaching for Tailwind halfway through. Wanderly is that
demonstration: every visible element is a VivekUI component, and the entire custom
stylesheet is one file.

**To save you the first two weeks.** Most tour and travel sites need the same pieces: a
catalogue, a detail page with an itinerary, a comparison table, a booking form, and enough
SEO to be found. They are built here, wired together, and verified in a browser. Clone it,
swap `data/trips.ts`, ship it.

📖 **[Read the full documentation →](DOCUMENTATION.md)** — data model, theming, the ticket
motif, SEO and AEO, deployment, and recipes.

## What makes it different

**The trip pages tell you when to go.** Every destination page carries two charts — average
daily high by month, and rainfall by month — plus a one-line verdict naming the months.
They are `LineChart` and `BarChart` from VivekUI: pure inline SVG, rendered on the server,
with a visually hidden data table for screen readers. **There is no charting dependency in
this project.**

[![The best-time-to-visit charts](public/screenshot-charts.jpg)](https://wanderly.vivekkumarsingh.in/destinations/bali#best-time)

**One motif, used consistently.** Every trip appears as a boarding-pass ticket stub: a mono
route strip (`LIS ✈ DPS`), a perforated tear line, and a semicircle punched out of each
side. It is about forty lines of CSS in `app/globals.css` — two `radial-gradient` masks
composited together — and it is the same component on the homepage, the destinations index,
the deals carousel and the search results.

**The itinerary is the money shot.** `Timeline`, with the day number in the marker and the
night's accommodation and meals as badges under each day.

## Quick start

Requires **Node.js 20.9+** (22 LTS recommended).

```bash
git clone https://github.com/intellectwithvivek/wanderly.git
cd wanderly
npm install
npm run dev
```

Open <http://localhost:3000>. That is the whole setup — there is no config file to fill in,
no CLI to run, and no design tokens to generate.

```bash
npm run build      # production build
npm run start      # serve the build
npm run lint       # eslint
npm run typecheck  # tsc --noEmit
```

## Deploy

[![Deploy with Vercel](https://vercel.com/button)](https://vercel.com/new/clone?repository-url=https%3A%2F%2Fgithub.com%2Fintellectwithvivek%2Fwanderly&project-name=wanderly&repository-name=wanderly)

Then set your own domain in one place — `SITE.url` in [`data/site.ts`](data/site.ts) — and
the canonicals, Open Graph tags, sitemap and JSON-LD all follow.

## Making it yours

| To change | Edit |
|---|---|
| The trips — copy, prices, itineraries, climate, photos | [`data/trips.ts`](data/trips.ts) |
| Site name, domain, nav, promotion links | [`data/site.ts`](data/site.ts) |
| FAQ copy (feeds the page **and** the FAQPage schema from one string) | [`data/faq.ts`](data/faq.ts) |
| Structured data | [`data/schema.ts`](data/schema.ts) |
| The accent colour and the ticket motif | [`app/globals.css`](app/globals.css) |

The accent is seven custom properties. Change these and every component follows, because
every value in VivekUI is a CSS custom property:

```css
:root {
  --vk-color-primary: #047857;        /* emerald 700 */
  --vk-color-primary-hover: #065f46;
  --vk-color-primary-subtle: #ecfdf5;
  /* … */
}
```

## What is in the box

**Routes** — `/` · `/destinations` · `/destinations/[slug]` (6 prerendered) · `/plan` ·
`/built-with` · a 404 · `sitemap.xml` · `robots.txt` · `llms.txt`

Every route is statically prerendered. The homepage revalidates hourly so the offer
countdowns stay live.

**SEO** — Metadata API per route with `metadataBase`, canonicals, Open Graph and Twitter
cards; `app/sitemap.ts` and `app/robots.ts` generated from the catalogue; exactly one `<h1>`
per page; server components by default.

**Structured data** — `TravelAgency` and `WebSite` on the homepage, `TouristTrip` with
`itinerary` and `offers` on each trip page, plus `BreadcrumbList` and `FAQPage`. Only
properties the types actually define, so it validates clean.

**AEO** — an FAQ block whose answers are the same strings as the FAQPage schema, and a
[`public/llms.txt`](public/llms.txt) with the trips, the prices and the attribution.

**Accessibility** — WCAG AA. One `h1` per page, no skipped heading levels, a skip link as
the first tab stop, visible 2px focus rings, `prefers-reduced-motion` honoured (the marquee
stops rather than slowing), every image with real alt text, and the charts backed by data
tables. Verified in a real browser: zero console errors, and no horizontal overflow at
390px or 1440px.

## What is not in this project

The dependency list is the point:

- **No** Tailwind, PostCSS plugin, or build-time CSS pipeline
- **No** Radix, CVA or clsx
- **No** Recharts, Chart.js, D3 or canvas — the charts are VivekUI
- **No** Emotion or styled-components, so no runtime style computation
- **No** icon package — the star rating and status glyphs are CSS

```
dependencies: next, react, react-dom, @the_viveksingh/vivek-ui
```

See [`/built-with`](https://wanderly.vivekkumarsingh.in/built-with) for every component used,
deep-linked to its documentation.

## Documentation

| | |
|---|---|
| [**DOCUMENTATION.md**](DOCUMENTATION.md) | The full guide — data model, theming, charts, SEO, AEO, deployment, recipes |
| [`/built-with`](https://wanderly.vivekkumarsingh.in/built-with) | Live component map: every section → the component that builds it |
| [`public/llms.txt`](public/llms.txt) | The machine-readable brief for answer engines |
| [VivekUI docs](https://ui.vivekkumarsingh.in/docs?utm_source=vivekui-template&utm_campaign=travel&utm_medium=readme) | The library itself |

## Powered by VivekUI

Built with ❤️ using VivekUI — **91 React components · 6 SVG charts · zero runtime
dependencies.** One install, one CSS import, no config.

```bash
npm i @the_viveksingh/vivek-ui
```

[Documentation](https://ui.vivekkumarsingh.in/docs?utm_source=vivekui-template&utm_campaign=travel&utm_medium=readme)
· [Components](https://ui.vivekkumarsingh.in/docs/components?utm_source=vivekui-template&utm_campaign=travel&utm_medium=readme)
· [Charts](https://ui.vivekkumarsingh.in/docs/charts?utm_source=vivekui-template&utm_campaign=travel&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=travel&utm_medium=readme)

## Licence

[MIT](LICENSE). Use it for anything, commercial included.

The VivekUI credit in the footer is **removable** — it is one component,
[`components/site-footer.tsx`](components/site-footer.tsx). A ⭐ on
[the library](https://github.com/intellectwithvivek/vivek_UI) is appreciated instead.

Photographs are from [Unsplash](https://unsplash.com) under the Unsplash licence and are
hot-linked, not redistributed. Avatars are from [i.pravatar.cc](https://i.pravatar.cc).
Wanderly is a fictional company; the trips, prices and reviews are invented.
反馈内容错误

看看同类模板

对比同技术栈与用途的模板,找到更适合的视觉与内容结构。