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.ts
file. - 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/guides
directory and reference them instepsData
instepsPageConfig
. - Logo: Place your logo image in
public/images/logo.svg
. - Background: If needed, place a background image in
public/images/background.svg
.
- Set the
basePath
ingeneralConfig
to 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.ts
file 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.