Next.jsReactHTMLCorporate Website

seminar — Next.js Business Template

By tailthemes

Seminar is an MIT-licensed Next.js online course template from tailthemes, also available as a separate hand-written plain HTML static version, aimed at course sites taught in cohorts.

Explore the design

Compare the page layouts and mobile experience. Open any screenshot for a closer look.

3 previews
Desktop homepage1 / 3
Desktop captureTop of page

Actual screenshot captured by the server browser.

All pages & views 3

Screenshots show visual appearance; interactive behavior may differ.

Recorded 2026-10-01View source

What stands out

A quick read of the recorded project description.

01

The same repository provides a Next.js project and a hand-compiled plain HTML static version, both sharing src/theme.css design tokens

02

Includes 7 routes and 39 single-file components, covering the course catalog, course page, course workspace, studio, and mentors page

03

Light and dark modes are switched via a class on the root element; colors, radii, shadows, and the type scale are defined by 68 design tokens

04

Self-hosted Instrument Sans, Karla, and Spline Sans Mono fonts, each accompanied by its own OFL license text

05

Apart from React and Next.js, the only dependency is lucide-react; it also includes 4 agent skill files under .claude/skills/

Template Details

Seminar is a website template for an online course theme. The repository contains two versions: a Next.js project under src/, and a plain HTML site under html/dist/ that requires no build step and can be uploaded to any static host. The HTML version is hand-compiled from Nunjucks sources under html/src/; it is not exported from React, but both versions share the same src/theme.css design tokens.

The template covers several pages along the learner path: a course catalog, a course page with schedule and description, a course workspace, a studio for storing works in progress, and a mentors page, for a total of 7 routes (/, /courses, /course, /lesson, /studio, /mentors, /components), split into 39 single-file components.

For appearance, it offers light and dark modes, switched by a class on the root element. Both sets of values are defined in the tokens in src/theme.css; it does not use dark: utility classes and does not read the operating system setting. The fonts are self-hosted Instrument Sans, Karla, and Spline Sans Mono, each accompanied by its own SIL Open Font License 1.1 license text.

Usage constraints: the project is bun-first; build:html and preview:html call bun directly, so building and previewing the HTML version requires bun to be installed. npm can handle installation and starting development, but cannot replace those two scripts. The repository is generated from the author's own source, and the maintainer explicitly does not accept pull requests; patches will be overwritten by the next release, so submitting an issue is recommended instead. The images in the template were generated by the author and are covered by the MIT license, while the fonts are used under their respective OFL licenses.

Next.jsReactHTMLCorporate Website

Is it right for your project?

Use Cases

  • Building an online course site taught in cohorts or sessions
  • Needing to deliver both a buildable React project and a directly uploadable static HTML output
  • Wanting to reskin colors, radii, shadows, and fonts by editing a single token file
  • Preparing light and dark appearances for a course site without relying on the system theme setting

Suitable For

  • Course creators who teach in cohorts and need to show course schedules and mentor information
  • Developers who want to freely modify, use commercially, and redistribute under the MIT license
  • Scenarios that need a no-build-step static version for simple static hosting
  • Teams willing to use bun to build and preview the HTML version

Getting started & customization

Use these recorded setup notes alongside the repository instructions for your chosen version.

  1. 1

    Install dependencies with bun install, start the development server with bun dev, and visit http://localhost:3000

  2. 2

    The build and preview scripts for the HTML version call bun directly, so bun must be installed first; npm cannot replace these two scripts

  3. 3

    After editing the Nunjucks sources under html/src/, run bun run build:html, then preview at http://localhost:4173 with bun run preview:html

  4. 4

    When reskinning, change only the token values in src/theme.css and keep the token names; both versions will update in sync, with no need to modify src/components/

  5. 5

    The repository is generated from the author's own source and does not accept pull requests; please submit issues instead

Read repository instructions

License & source material

Usage conditions & limitations

Free to use · keep license notice

This 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 external services or third-party assets are free.

Must comply with when using

  • You may use, modify, use commercially, and distribute the code of this version for free.
  • 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

  • The build and preview scripts for the HTML version call bun directly, so bun must be installed; npm can only handle installation and starting development, and cannot replace build:html and preview:html.
  • The repository is generated from the author's own source and does not accept pull requests; merged patches will be overwritten by the next release, so submitting an issue is recommended instead. Forks remain available under the MIT license.
  • The three self-hosted fonts are licensed under the SIL Open Font License 1.1 and are not covered by the MIT license; when distributing, retain the OFL license text next to each font in src/fonts/.
  • 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

Permission is hereby granted, free of charge

Original License Text

The project is bun first, and that is a real constraint rather than a preference: `npm install` and `npm run dev` work, but `build:html` and `preview:html` invoke `bun` directly, so the HTML edition needs it installed either way.

Original README

This repository is generated from our own source, so a patch merged here is overwritten by the next release. Open an issue instead and the fix lands upstream, then comes back in the next version.

Original README

The typefaces are not ours to relicense. Instrument Sans, Karla and Spline Sans Mono ship under the SIL Open Font License 1.1. Each family's license text sits verbatim beside its `.woff2` file in [`src/fonts/`](src/fonts). Keep those files with the fonts and you are within terms.

Original README
https://github.com/tailthemes/seminar/blob/main/LICENSEhttps://github.com/tailthemes/seminar/blob/main/README.md

Compiled by DeepSeek based on repository license and README ·2026-10-01. 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 · React · HTML
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-09-17
Screenshot last checked
2026-10-01

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.

Automatically checked against source and license rules; no manual editorial review.

Inspect the recorded source material

SHA-256: 279115c4e88f1c2d22217286de8fc67242c49e863459e32dde1ccbdd2367318a

2026-10-01T15:24:54.190Z

Source file / repository
<p align="center">
  <img src=".github/banner.png" alt="Seminar, a online course template for Next.js from tailthemes.com" width="100%">
</p>

<p align="center">
  <a href="LICENSE"><img alt="License: MIT" src="https://img.shields.io/badge/license-MIT-4ADE80?style=flat-square&labelColor=0B0D10"></a>
  <img alt="Version 1.4.0" src="https://img.shields.io/badge/version-1.4.0-1C2126?style=flat-square&labelColor=0B0D10">
  <img alt="Tailwind CSS v4" src="https://img.shields.io/badge/Tailwind_CSS-v4-1C2126?style=flat-square&labelColor=0B0D10">
  <img alt="Next.js 15" src="https://img.shields.io/badge/Next.js-15-1C2126?style=flat-square&labelColor=0B0D10">
  <img alt="TypeScript" src="https://img.shields.io/badge/TypeScript-strict-1C2126?style=flat-square&labelColor=0B0D10">
</p>

# Seminar: online course template for Next.js

Seminar is an online course template for Next.js, MIT licensed, for creators who teach in cohorts rather than selling recordings.

It covers the whole path a learner walks: a catalog, a course page with its schedule and its promises, a lesson workspace, a studio where work in progress goes, and the mentors who read it.

Two editions ship in this repository: a Next.js 15 project in `src/`, and an independently written static site in `html/dist/` that runs with no build step.

[Live demo](https://tailthemes.com/preview/seminar?utm_source=github&utm_medium=readme&utm_campaign=seminar) · [Seminar on tailthemes.com](https://tailthemes.com/themes/seminar?utm_source=github&utm_medium=readme&utm_campaign=seminar)

## Light and dark

![Seminar in light mode](.github/seminar-light.png)

![Seminar in dark mode](.github/seminar-dark.png)

The mode is one class on the root element, and both sides of it are tokens in `src/theme.css`. There are no `dark:` utilities to keep in sync, and nothing reads the operating system setting behind your back.

## Quickstart

```sh
bun install
bun dev
```

Then open http://localhost:3000.

The project is bun first, and that is a real constraint rather than a preference: `npm install` and `npm run dev` work, but `build:html` and `preview:html` invoke `bun` directly, so the HTML edition needs it installed either way.

## What's inside

- **7 routes**: `/`, `/courses`, `/course`, `/lesson`, `/studio`, `/mentors`, `/components`
- **39 components**, one file each, every one named in `theme.json`
- **68 design tokens**, each with a dark counterpart, all in `src/theme.css`
- **7 compiled HTML pages** in `html/dist/`, deployable as static files
- **4 agent skills** in `.claude/skills/`: `add-page`, `add-section`, `check-quality`, `rebrand`
- **3 typefaces** self hosted in `src/fonts/`: Instrument Sans, Karla and Spline Sans Mono
- **1 dependency beyond React and Next.js**: `lucide-react`
- `AGENTS.md`, the file map and invariants, written for the agent in your editor

## Rebrand in one file

Every colour, radius, shadow and type step is a token in `src/theme.css`. Change the values, keep the names, and both editions follow. Nothing under `src/components/` needs an edit.

Agents get the procedure in writing: point yours at `.claude/skills/rebrand`.

## The HTML edition

`html/dist/` is the compiled site: 7 pages, one stylesheet, local fonts, local images, one vanilla script. Upload the folder to any static host. No Node, no framework, no build.

Its source is Nunjucks under `html/src/`. After editing it:

```sh
bun run build:html
bun run preview:html   # http://localhost:4173
```

The HTML edition is written by hand, not exported from React. It imports the same `src/theme.css`, so one token table serves both editions.

## Issues welcome, pull requests closed

This repository is generated from our own source, so a patch merged here is overwritten by the next release. Open an issue instead and the fix lands upstream, then comes back in the next version. Forking is open, which is what the MIT grant is for.

## License

The theme is [MIT licensed](LICENSE). Use it in commercial work, modify it, ship it, resell what you build with it. No attribution required.

The typefaces are not ours to relicense. Instrument Sans, Karla and Spline Sans Mono ship under the SIL Open Font License 1.1. Each family's license text sits verbatim beside its `.woff2` file in [`src/fonts/`](src/fonts). Keep those files with the fonts and you are within terms.

Every image in the theme was generated by us and is covered by the MIT grant. No stock photography has ever entered a tailthemes.com theme.

## More themes

[Seminar's page](https://tailthemes.com/themes/seminar?utm_source=github&utm_medium=readme&utm_campaign=seminar) has the full preview, the changelog and the download. [The catalog](https://tailthemes.com/templates?utm_source=github&utm_medium=readme&utm_campaign=seminar) has the rest: 3 more free themes and the paid ones, all built the same way.
Report a correction

Explore similar templates

Compare previews and descriptions within the same stack and category.