Migrated from a static multi-file HTML + jQuery template to a Next.js App Router single-page application
lava_landing_page_nextjs — Next.js Business Template
By jadogeri
Migrates TemplateMo's Lava Landing Page static template into a single-page application based on the Next.js App Router, deployed to GitHub Pages via static export.
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 2
Screenshots show visual appearance; interactive behavior may differ.
What stands out
A quick read of the recorded project description.
Uses output: 'export' to generate static HTML export output
Interaction logic is managed with React Hooks such as useState and useEffect
Retains the Bootstrap v4 grid and the template's own CSS, font, and image assets
Automatically builds and publishes to GitHub Pages via .github/workflows/deploy.yml
The README documents handling of hydration whitespace conflicts, navigation script conflicts, and subpath resource 404s
Template Details
This repository rewrites the Lava Landing Page template, originally composed of multiple HTML files and jQuery, as a Next.js App Router single-page application: the page is split into modular React components, interactions are managed by functional Hooks such as useState and useEffect, and styling continues to use the Bootstrap v4 grid and the template's own assets. The build uses Next's output: 'export' static export, and the output is published to GitHub Pages through a GitHub Actions workflow. The README documents three types of issues encountered during the migration and how they were handled: a hydration error in React 19 caused by whitespace between root tags, a conflict between the jQuery smooth-scroll script in custom.js and the dropdown navigation, and resource 404s caused by deployment under a subpath; these were resolved by adjusting the tag formatting in layout.tsx, changing the dropdown container to a button controlled by React state, and setting basePath, respectively. Under the project root, lava/ is the application subdirectory, and the original template archive is also included. The README does not describe testing, performance metrics, or deployment methods other than GitHub Pages.
Is it right for your project?
Use Cases
- Want to study how to rewrite a traditional jQuery static template into a Next.js component structure
- Need a landing page example that can be statically exported and deployed to GitHub Pages
- Need a reference for setting basePath and .nojekyll when deploying under a subpath
- Need to understand troubleshooting approaches for hydration errors caused by whitespace in root layout tags under React 19
Suitable For
- Developers familiar with React and Next.js basics who want to reference the template migration process
- Static site projects that need to use GitHub Pages as the hosting method
- Those who want to learn how to replace jQuery-controlled dropdown navigation with React state
Getting started & customization
Use these recorded setup notes alongside the repository instructions for your chosen version.
- 1
First clone the repository, then enter the lava/ subdirectory and run npm install and npm run dev; the local preview address is http://localhost:3000/
- 2
Build with npm run build; the static export output is located in the lava/out directory
- 3
The GitHub Actions workflow runs under the ./lava directory by default and uploads ./lava/out as the Pages artifact
- 4
When deploying under a subpath, configure basePath in next.config.ts and keep public/.nojekyll to skip Jekyll processing
License & source material
Usage conditions & limitations
Free to use · keep license noticeThis entry covers the free version under the MIT license in the public repository; the free scope is the code of this version and does not mean 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 complete 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 domains, hosting, databases, payments, or AI may incur separate charges.
View Original Text Basis
https://github.com/jadogeri/lava_landing_page_nextjs/blob/main/LICENSE.mdhttps://github.com/jadogeri/lava_landing_page_nextjs/blob/main/README.mdPermission is hereby granted, free of charge
Original License Text
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 · 88 / 100
- Technologies
- Next.js · HTML · React
- Website type
- Corporate Website
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-05-13
- 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: 4a088606f162e625787c64b2a92b1e18568832169fb5450f5a712dfe12ea8239
2026-10-14T19:13:02.825Z
Source file / repository# 🚀 Lava Landing Page – Modernized with Next.js
**Author:** Joseph Adogeri
**Version:** 1.0
**Date:** April 26, 2026
<div align="center">
<img src="https://blog.logrocket.com/wp-content/uploads/2021/01/Screen-Shot-2021-01-28-at-10.58.42-AM.png" alt="NextJS Logo" width="400">
</div>
<!-- Production Infrastructure Badges -->
[Deployment - Live Web Application](https://jadogeri.github.io/lava_landing_page_nextjs/)
[Code Repository - GitHub](https://github.com/jadogeri/lava_landing_page_nextjs)
### 🌐 [Interactive Interface Live on GitHub Pages](https://jadogeri.github.io/lava_landing_page_nextjs/)
---
## 📄 Description
This repository presents a fully modernized transformation of the classic **Lava Landing Page** template. Originally authored as a static, multi-file HTML configuration backed by heavy jQuery frameworks, this codebase completely migrates the architecture into a single-page application (SPA) environment built on **Next.js 15 (App Router)**.
By decoupling presentation layouts into modular React components, replacing broken template asset routing with environment variables, and utilizing automated GitHub Actions pipelines, this website compiles natively into clean, highly optimized static assets deployed straight through GitHub Pages.
## Acknowledgments
This website template was derived from the [Lava Landing Page](https://templatemo.com/tm-540-lava-landing-page) template by [TemplateMo](https://templatemo.com).
---
## 📍 Table of Contents
* [🛠 Tech Stack Architecture](#-tech-stack-architecture)
* [📦 Local Environment Setup](#-local-environment-setup)
* [🤖 Automated Deployment Pipeline](#-automated-deployment-pipeline)
* [🧠 Post-Mortem Technical Challenges & Breaks](#-post-mortem-technical-challenges--breaks)
* [📄 Project Directory Layout Map](#-project-directory-layout-map)
* [📜 Open-Source Licensing](#-open-source-licensing)
---
## 🛠 Tech Stack Architecture
* **Application Framework:** [Next.js 15](https://nextjs.org) (Utilizing App Router layout structures).
* **Compilation Execution:** Native Static HTML Exports via Next `output: 'export'` configuration settings.
* **Interactivity Management:** Functional React Tree Hooks (`useState`, `useEffect`) executing dynamic client-side evaluations to prevent layout conflicts.
* **Styling & Structure:** Native integration of clean Bootstrap v4 grid columns and custom template asset wrappers.
* **Automated Continuous Deployment:** GitHub Actions pipeline checking dependencies and publishing to GitHub Pages.
---
## 📦 Local Environment Setup
Initialize your system components and execute local development previews via your primary CLI:
```bash
# 1. Clone your target repository files down locally
git clone github.com
cd lava_landing_page_nextjs
# 2. Step inside the application sub-workspace container
cd lava
# 3. Download the exact required module tracking files
npm install
# 4. Spin up your automated compilation watcher thread
npm run dev
```
👉 *Your localized Next.js staging page will establish an operational listener at: `http://localhost:3000/`*
---
## 🤖 Automated Deployment Pipeline
The workflow logic inside `.github/workflows/deploy.yml` completely automates the tracking of source changes pushed to your repository. It intercepts modifications, dives into your subfolder directory, triggers a static build run, and updates the live GitHub Pages servers:
```yaml
# Inside .github/workflows/deploy.yml
defaults:
run:
working-directory: ./lava # Restricts code processes directly to your inner directory
steps:
- name: Checkout Source Code
uses: actions/checkout@v4
- name: Compile and Export Static HTML
run: npm run build # Outputs clean flat assets into an inner /out directory
- name: Upload Build Artifacts
uses: actions/upload-pages-artifact@v3
with:
path: ./lava/out # Deploys directly to the target public domain endpoint URL
```
---
## 🧠 Post-Mortem Technical Challenges & Breaks
### **Whitespace Hydration Node Conflicts**
* **The Problem:** React 19 rules threw critical runtime failures because the formatter injected unexpected space characters or hidden line breaks between structural root tags (`<html>`, `<head>`, and `<body>`).
* **The Fix:** Re-aligned structural syntax markers flush against each other (e.g., `><head>`) within your core `layout.tsx` wrapper to isolate properties cleanly without structural parsing issues.
### **Legacy Navigation Script Collisions**
* **The Problem:** Template script structures inside `custom.js` attached smooth-scrolling animation layers onto **every single link**. Clicking the nav dropdown caused fatal errors (`Cannot read properties of undefined (reading 'top')`) because empty path hashes returned undefined layout calculations.
* **The Fix:** Converted dropdown containers into strict `<button>` components. This bypasses jQuery anchor listener criteria completely, letting React state (`useState`) control menus securely without crashing runtime processes.
### **Production Asset 404 Resolution**
* **The Problem:** Standard slash shortcuts (`/assets/`) broke when deploying to production because the site serves from a subfolder (`/lava_landing_page_nextjs/`) rather than a domain root.
* **The Fix:** Configured a persistent `basePath` rule inside your `next.config.ts` mapping framework, and updated source paths to evaluate using clean context variable strings.
---
## 📄 Project Directory Layout Map
```text
📂 lava_landing_page_nextjs/ (Workspace Root)
├── 📂 .github/workflows/
│ └── 📄 deploy.yml # 🚀 Automated GitHub Actions CI/CD Pipeline Configuration
├── 📂 lava/ # 🌐 APPLICATION SUBFOLDER WORKSPACE (Next.js Application Root)
│ ├── 📂 app/
│ │ ├── 📄 globals.css # Global CSS Framework System Overrides
│ │ ├── 📄 layout.tsx # Root Structural Layout (Asset Scripts & Link Engine Injection)
│ │ └── 📄 page.tsx # React Component Workspace Migration of the Lava Template
│ ├── 📂 public/
│ │ ├── 📄 .nojekyll # Instructs GitHub to bypass processing engines for _next subfolders
│ │ └── 📂 assets/ # Native template assets (css, fonts, images, custom scripts)
│ ├── 📄 next.config.ts # Static Compiler Target Logic & Subfolder BasePath Mapping Rules
│ └── 📄 package.json # Node Module Tracking & Dependency Framework Scripts
├── 📄 templatemo_540_lava_landing_page.zip # Historical Template Backup Archive File Source
└── 📄 README.md # Complete System Technical Documentation Mapping
```
---
## 📜 Open-Source Licensing
All foundational resource blocks and original script codes contained within this workspace are distributed under the **MIT License Rules**. You are free to modify, duplicate, and push additions according to standard usage profiles.
Explore similar templates
Compare previews and descriptions within the same stack and category.

SaaS-Boilerplate
SaaS-Boilerplate is an open-source SaaS starter template built with Next.js App Router, React 19, TypeScript, Tailwind CSS, and Shadcn UI.
Next.js · SaaS

Next-JS-Landing-Page-Starter-Template
A free Next.js landing page starter template written in Tailwind CSS and TypeScript, featuring built-in navbar, hero, features, CTA banner, and footer sections.
Next.js · Corporate Website

next-saas-starter
A free Next.js SaaS marketing landing page template from Blazity, using static generation and styled-components with no extra UI library.
Next.js · SaaS

startup-nextjs
Startup is a free, MIT-licensed Next.js template from NextJSTemplates for SaaS startups and corporate landing pages.
Next.js · SaaS

shadcn-landing-page
A Next.js landing page template built with Shadcn, TypeScript, and Tailwind, converted from a Shadcn-Vue version. It includes sections such as Navbar, mobile Sidebar, Hero, Pricing, FAQ, and Footer, and highlights responsive design, navigation, and dark mode.
Next.js · Corporate Website

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
