This project is a fully configurable Next.js application designed to run customer workshops. It features a main overview page and a step-by-step guide page, all managed through a single configuration file.
Live example can be found here
- Configurable workshop content: Adjust all workshop details directly from the
src/config.tsfile. - Two main pages:
- Main page: Overview of the workshop, including key CTAs.
- Steps page: Detailed step-by-step guide for the workshop.
- Step completion tracking: Saves progress in local storage, allowing users to continue where they left off, even after a page refresh.
- GitHub Pages deployment: Preconfigured to deploy the app to GitHub Pages via GitHub Actions.
All configuration is managed via the src/config.ts file. Here’s an overview of the settings:
basePath: The base path for the app, used for GitHub Pages deployment. Set this to your repository name.companyName: Your company name, used for the footer text.
export const generalConfig: GeneralConfig = {
companyName: "your-company-name",
basePath: "/your-repo-name"
};discordLink: Link to your Discord server for support (optional).navbarButtonText: Text for the main CTA button in the navbar.navbarButtonLink: URL for the main CTA button in the navbar.logoLink: URL for the logo link in the navbar.
export const navBarConfig: NavBarConfig = {
discordLink: "https://discord.gg/your-discord-link",
navbarButtonText: "Login",
navbarButtonLink: "https://your-cta-link.com",
logoLink: "https://your-company-link.com"
};mainTitle,subTitle,heroText,heroButtonText,heroButtonLink: Configure the main hero section of the workshop overview page.workshopSummarySteps: Summary steps that describe the workshop flow.
export const mainPageConfig: MainPageConfig = {
mainTitle: "Your Workshop Title",
subTitle: "Your Workshop Subtitle",
heroText: "Your hero text goes here.",
heroButtonText: "Get Started",
heroButtonLink: "https://your-cta-link.com",
workshopSummarySteps: [
{ title: "Step 1", text: "Description of step 1." },
// Add more steps as needed
],
};stepsData: Define the steps for the workshop, including titles and corresponding markdown files.prerequisites: List of prerequisites needed before starting the workshop.
export const stepsPageConfig: StepsPageConfig = {
stepsData: [
{ id: 1, title: "Step 1: Setup", file: "step1.md" },
// Add more steps as needed
],
prerequisites: [
{ text: "Basic JavaScript knowledge" },
// Add more prerequisites as needed
],
};- Main Page: The overview page, located at the base path (e.g.,
/your-repo-name). - Steps Page: The workshop guide, located at
/your-repo-name/steps.
- Workshop Steps: Add your markdown files under the
src/guidesdirectory and reference them instepsDatainstepsPageConfig. - Logo: Place your logo image in
public/images/logo.svg. - Background: If needed, place a background image in
public/images/background.svg.
- Set the
basePathingeneralConfigto your GitHub repository name. - Push the project to your GitHub repository.
- Configure GitHub Pages to use "GitHub Actions" as the source for building and deploying.
- Clone this repository:
git clone https://github.com/your-username/your-repo-name.git
- Install dependencies:
npm install
- Configure the project:
Adjust the
src/config.tsfile as needed. - Start the development server:
npm run dev
- Build the project for production:
npm run build
- Deploy to GitHub Pages: Push the code to your repository and set the GitHub Pages source to "GitHub Actions."
This project is licensed under the MIT License.


