AI chatbot based on Google Gemini 2.0 Flash, supports automatic Norwegian and English language detection, and can hand off to a human agent on Telegram
afro-hair-salon-website — Next.js Admin dashboard Template
By therealodineye
A Next.js 14 production website template for Constance's Hair Art, including an AI chatbot, online booking, Google Calendar sync, Instagram feed, admin panel, and a Markdown-based knowledge base, using SQLite/Prisma for data storage and deployed via Docker Compose.
Explore the design
Compare the page layouts and mobile experience. Open any screenshot for a closer look.
Actual screenshot captured by the server browser.
All pages & views 3
Screenshots show visual appearance; interactive behavior may differ.
What stands out
A quick read of the recorded project description.
Online booking system with email confirmation and two-way sync via Google Calendar API
Admin panel at /admin, password must be changed immediately after first login
RAG knowledge base driven by Markdown files under /data, editable and hot-updatable via docker cp without a full rebuild
Tech stack includes Next.js 14 App Router, TypeScript, Tailwind CSS, SQLite/Prisma 7, NextAuth.js v4
Deployed via Docker Compose, site runs on port 8081, credentials stored in a gitignored .env
Template Details
This repository is the private production website for Constance's Hair Art, an African hair salon in Stavanger, Norway, and it also publishes an open-source template without credentials. The README states the tech stack is Next.js 14 (App Router), TypeScript, Tailwind CSS, SQLite (via Prisma 7), NextAuth.js v4, Google Gemini 2.0 Flash, Telegram Bot API, Nodemailer (Gmail SMTP), Google Calendar API, and containerized with Docker and Docker Compose. Features include: an AI chatbot with automatic Norwegian and English language detection that can hand off conversations to a human agent on Telegram; an online booking system with email confirmation; two-way Google Calendar sync; Instagram feed integration; an admin panel at /admin; and a Markdown RAG knowledge base at /data. The README also mentions rate limiting, security response headers, and httpOnly session cookies.
For deployment, the README provides commands: docker compose up -d --build to build and start, docker compose restart to restart, and docker logs hair-art -f to view logs, and notes the site runs on port 8081. All credentials go in a gitignored .env, and you can refer to .env.example to fill in the required variables. The Telegram Webhook must be registered once via curl after deployment or domain changes, and support staff can reply to customers in Telegram using /reply <session-id-8-chars>. The knowledge base can be edited directly in /data under services.md, prices.md, faq.md, opening_hours.md, contact.md, and a single file can be hot-updated via docker cp without a full rebuild. Local development steps are npm install, copy .env.example to .env and fill it in, npx prisma migrate dev, npm run db:seed, npm run dev. The admin panel is at /admin, and the password should be changed immediately after first login.
The README does not provide information on performance, scalability, test coverage, browser compatibility, or production readiness, nor does it list specific dependency version numbers (beyond the major versions of frameworks and libraries). The preview screenshots only demonstrate that desktop and mobile pages exist, not specific functionality.
Is it right for your project?
Use Cases
- Building a website for an African hair salon with online booking and AI customer service
- Scenarios where issues the chatbot cannot handle need to be handed off to a human agent on Telegram
- Wanting to maintain knowledge base content such as services, prices, and FAQs in Markdown files to avoid code changes
- Salons or studios that need to sync bookings two-way with Google Calendar
- Deploying a Next.js application on your own server using Docker Compose
Suitable For
- Developers familiar with Next.js, TypeScript, and Docker
- Salons or service businesses that need booking, AI customer service, and human handoff features
- Operations teams that want to maintain knowledge base content in Markdown and reduce code changes
- Businesses that need to sync bookings to Google Calendar
Getting started & customization
Use these recorded setup notes alongside the repository instructions for your chosen version.
- 1
Local development: npm install, copy .env.example to .env and fill it in, run npx prisma migrate dev, npm run db:seed, npm run dev
- 2
Deployment: docker compose up -d --build to build and start, docker compose restart to restart, docker logs hair-art -f to view logs, site runs on port 8081
- 3
All credentials go in .env (already gitignored), refer to .env.example to fill in the required variables
- 4
After deployment or domain changes, register the Telegram Webhook via curl, and set secret_token and allowed_updates
- 5
After modifying Markdown files under /data for the knowledge base, you can update a single file via docker cp without a full rebuild; change the admin panel password immediately after first login
License & source material
Usage conditions & limitations
Free to use · keep license noticeThis listing covers the free version under the MIT license in the public repository; the free scope is the code of that version and does not imply that external services or third-party assets are free.
Must comply with when using
- Free use, modification, commercial use, and distribution of this version's code are permitted.
- When distributing copies or substantial portions of the code, retain the original author's copyright notice and the full MIT license notice.
- The code is provided as-is; warranties and limitations of liability are governed by the original license and applicable law.
Additional costs & items to verify
- Demo images, fonts, icons, and other third-party assets must be checked against their respective licenses and cannot be judged solely by the code's MIT license.
- External services such as domain, hosting, database, payment, or AI may incur additional charges.
- All credentials must be placed in the .env file, which is gitignored and will not be committed to the repository; you must prepare and fill in the required environment variables yourself.
- Refer to .env.example to fill in the required environment variables; without these credentials, the application will not run properly.
- After deployment or domain changes, you must register the Telegram Webhook via curl to use the human handoff feature.
- Change the default admin password immediately after first login to the admin panel.
- For local development, copy .env.example to .env and fill in actual values.
View Original Text Basis
Permission is hereby granted, free of charge
Original License Text
All credentials are in `.env` (gitignored — never committed).
Original README
Copy `.env.example` for reference on required variables.
Original README
Register once after deploy or domain change:
Original README
Change password immediately after first login.
Original README
https://github.com/therealodineye/afro-hair-salon-website/blob/main/LICENSEhttps://github.com/therealodineye/afro-hair-salon-website/blob/main/README.mdcp .env.example .env # fill in values
Original README
Compiled by DeepSeek based on repository license and README ·2026-10-14. Results only cover the materials read; dependencies, images, fonts, and subsequent term changes are subject to their respective original texts.
Project checks & description sources
Template Information
- Source platforms
- GitHub
- Documentation and maintenance reference score
- More documented · 80 / 100
- Technologies
- Next.js · React
- Website type
- Admin dashboard
How this score is calculated
Our heuristic uses license records (up to 30), a demo link (12), a preview (10), stars (15), recorded maintenance (15), description completeness (8), feature records (5) and classification data (5). It is not a code, security or performance test, or a Google score. A link does not establish tested functionality.
What to verify for this project
- Repository update recorded
- 2026-09-08
- Screenshot last checked
- 2026-10-14
A demo link is listed. Check it with your own content and viewport sizes; its presence does not confirm that forms, authentication or payments work.
The catalog identifies Next.js as the primary stack. Check the actual dependency manifest and lockfile for versions and hosting requirements. These notes use recorded metadata, not a code audit or a deployment test.
Use a selection guide →How this description was prepared
AI-assisted description based on catalog records and repository material. Repository authors are not automatically the reviewers of this description.
Review declaration: codex-user-requested-batch-review-20261015 · 2026-10-15
Inspect the recorded source material
SHA-256: e04c0d97092c8b43d97da47d31e8313549af173eb505d3bce6625dd98c588240
2026-10-14T19:03:12.542Z
Source file / repository# Constance's Hair Art — Production Website > **Live site:** [constancehairart.com](https://constancehairart.com) Private production repository for **Constance's Hair Art** — a premium African hair salon in Stavanger, Norway. **Developed by [TheRealOdinEYE](https://github.com/TheRealOdinEYE)** > Public open-source template (no credentials): [afro-hair-salon-website](https://github.com/therealodineye/afro-hair-salon-website) --- ## Stack | Layer | Technology | |---|---| | Framework | Next.js 14 (App Router) | | Language | TypeScript | | Styling | Tailwind CSS | | Database | SQLite via Prisma 7 | | Auth | NextAuth.js v4 | | AI Chatbot | Google Gemini 2.0 Flash | | Human Handoff | Telegram Bot API | | Email | Nodemailer (Gmail SMTP) | | Calendar | Google Calendar API | | Container | Docker + Docker Compose | --- ## Features - AI chatbot (Norwegian + English auto-detect) with human handoff to Telegram - Online booking system with email confirmations - Google Calendar two-way sync - Instagram feed integration - Admin panel at `/admin` - RAG knowledge base (markdown files in `/data`) - Rate limiting, security headers, httpOnly session cookies --- ## Deployment ```bash # Build and start docker compose up -d --build # Restart without rebuild docker compose restart # View logs docker logs hair-art -f ``` Site runs on **port 8081**. --- ## Environment All credentials are in `.env` (gitignored — never committed). Copy `.env.example` for reference on required variables. --- ## Telegram Webhook Register once after deploy or domain change: ```bash curl -X POST "https://api.telegram.org/bot<TOKEN>/setWebhook" \ -d "url=https://constancehairart.com/api/chat/telegram-webhook" \ -d "secret_token=<TELEGRAM_WEBHOOK_SECRET>" \ -d "allowed_updates=[\"message\"]" ``` Reply to customers from Telegram: ``` /reply <session-id-8-chars> Your message here ``` --- ## Knowledge Base Edit markdown files in `/data` — no code changes needed: | File | Contents | |---|---| | `data/services.md` | Services and descriptions | | `data/prices.md` | Pricing table | | `data/faq.md` | FAQ (Norwegian + English) | | `data/opening_hours.md` | Hours and booking policy | | `data/contact.md` | Address and directions | Apply changes without full rebuild: ```bash docker cp data/services.md hair-art:/app/data/services.md ``` --- ## Admin Panel URL: `/admin` Change password immediately after first login. --- ## Local Development ```bash npm install cp .env.example .env # fill in values npx prisma migrate dev npm run db:seed npm run dev ``` --- ## License MIT © [TheRealOdinEYE](https://github.com/TheRealOdinEYE)
Explore similar templates
Compare previews and descriptions within the same stack and category.

next-shadcn-dashboard-starter
An MIT-licensed admin dashboard starter built with Next.js 16, shadcn/ui, Tailwind CSS v4, and TypeScript.
Next.js · Admin dashboard

Studio Admin · Radix UI
Studio Admin is an admin dashboard template built with Next.js 16, TypeScript, Tailwind CSS v4, and Shadcn UI.
Next.js · Admin dashboard

free-nextjs-admin-dashboard
A free, open-source admin dashboard template built on Next.js 16, React 19, TypeScript, and Tailwind CSS v4. It provides a collapsible sidebar, charts, tables, authentication forms, modals, dropdowns, and dark mode, with internationalization and RTL support since version 2.4.0.
Next.js · Admin dashboard

materio-mui-nextjs-admin-template-free
Materio Free is a Next.js admin dashboard template based on App Router and MUI, integrating Tailwind CSS and available in TypeScript and JavaScript versions.
Next.js · Admin dashboard

nextjs-postgres-nextauth-tailwindcss-template
A Vercel-maintained Next.js App Router admin dashboard starter with Auth.js GitHub OAuth, Postgres, Tailwind CSS, and Shadcn UI, plus a sample products table, seed endpoint, and CRUD interface.
Next.js · Admin dashboard

shadcn-dashboard-landing-template
An open-source admin dashboard and marketing landing page template built on shadcn/ui and Tailwind CSS, with both Vite + React and Next.js versions in one repository.
Next.js · Admin dashboard
