Next.jsReactDocumentation

skyl_docs — Next.js Documentation Template

By BAGOMBEKA-JOB-DEV

The official documentation site for SKYL, built on Next.js 15 App Router, split into Learn and Reference reading paths, with content written in MDX and accompanied by Go code snippet compilation checks and link checking.

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-05View source

What stands out

A quick read of the recorded project description.

01

Dual-track content structure with Learn and Reference, respectively for sequential reading and per-symbol lookup

02

160 MDX pages, paired with an MDX component vocabulary and page templates defined in the repository

03

check:snippets places Go code blocks marked verify into a separate package and type-checks them against a local skyl checkout

04

check:links verifies consistency among sidebar entries, page files, and internal links

05

Build output is a static out/ directory, deployable to static hosts such as nginx, S3, Netlify, Vercel, and Cloudflare Pages

06

Table data is extracted from Go source code into src/data/ and rendered by page components rather than written by hand

Template Details

This is the documentation site for SKYL (a library that provides a unified Go interface for multiple AI models). The site uses the Next.js 15 App Router, and its main content consists of 160 MDX pages organized into two paths: Learn (narrative, read-in-order) and Reference (one page per symbol), sharing a set of page templates and an MDX component vocabulary.

In terms of content structure, sidebars are defined under src/sidebars/, and page files are placed at corresponding paths under src/content/; at build time, check:links verifies that the two are consistent. Table data comes from src/data/, extracted from Go source code to avoid factual drift caused by manual maintenance. The 166 Markdown files under public/md/ are generated from MDX by a prebuild script and should not be edited by hand.

For quality assurance, the repository provides a verify script that chains lint, type checking, unit tests, build, link checking, Go snippet compilation, and end-to-end tests. Among these, check:snippets places Go code blocks marked as verify into a separate package, points to a local skyl checkout via replace, and performs type checking; if Go or the skyl checkout is missing, it skips and prints a notice. The build output is a static export in the out/ directory, deployable to any static host; SITE_URL is used to generate canonical links, the sitemap, and robots.

Limitations and notes: the documentation content is licensed under CC BY 4.0, the code under Apache-2.0, and third-party assets require separate license verification; site deployment and gateway deployment are separate matters, with gateway deployment in the skyl_infrastructure repository.

Next.jsReactDocumentation

Is it right for your project?

Use Cases

  • Building or maintaining the official documentation site for the SKYL Go library
  • Documentation projects that need to provide both a tutorial-style reading path and an API symbol reference
  • Documentation engineering that aims to unify page templates through MDX components and a data layer, reducing factual drift
  • Scenarios where CI verifies that documentation code snippets compile and that links and sidebars are consistent

Suitable For

  • Teams maintaining Go library documentation who want verifiable code examples
  • Developers building static documentation sites with Next.js App Router and MDX
  • Projects that need to deploy the documentation site as a purely static artifact without relying on a Node runtime

Getting started & customization

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

  1. 1

    Run npm install to install dependencies, and npm run dev to start the local development server (default http://localhost:3000)

  2. 2

    npm run verify chains lint, type checking, unit tests, build, link checking, Go snippet compilation, and end-to-end tests

  3. 3

    check:snippets requires a local Go toolchain and a skyl checkout; you can specify the path with --skyl, and it will skip with a notice if missing

  4. 4

    Set SITE_URL to the site's actual origin at build time, otherwise it falls back to http://localhost:3000

  5. 5

    Markdown under public/md/ is generated from MDX by prebuild; to change content, edit the MDX source files in src/content/

Read repository instructions

License & source material

Usage conditions & limitations

Free to use · keep license notice

This entry covers the free version in the public repository under the Apache-2.0 license; 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 are permitted; the Apache-2.0 license must be included when distributing.
  • Modified files must be prominently marked as changed, and relevant copyright, patent, trademark, and attribution notices must be retained.
  • If the original project includes a NOTICE file, applicable attribution notices in it must be retained when distributing derivative works.
  • The license includes an applicable contributor patent grant; initiating patent litigation as described in the license terminates that patent grant, and no trademark rights are granted.
  • 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; they cannot be judged solely by the code's Apache-2.0 license.
  • External services such as domains, hosting, databases, payments, or AI may incur separate charges.
  • Documentation content is licensed under CC BY 4.0, which differs from the code's Apache-2.0; reusing the site's documentation text requires complying with CC BY 4.0 conditions such as attribution.
  • check:snippets requires a local Go toolchain and a checkout of the skyl library, pointing to the local skyl checkout via replace for type checking; if Go or the skyl checkout is missing, it skips rather than fails.
  • Running snippet verification requires specifying the local skyl repository path via --skyl, i.e., it depends on an external repository checkout and cannot be completed with this repository alone.
  • When publishing the site, the SITE_URL environment variable must be set; otherwise canonical links, the sitemap, and robots fall back to http://localhost:3000, which is unsuitable for a formal release.
  • This site covers only the documentation site itself; gateway deployment belongs to another repository, skyl_infrastructure, and is outside the scope of this template.
  • Markdown under public/md/ is generated at build time and committed; manual edits will be overwritten on the next build, so content should be edited in the MDX source files under src/content/.
View Original Text Basis

no-charge, royalty-free, irrevocable copyright license

Original License Text

Documentation is CC BY 4.0; skyl itself is Apache 2.0.

Original README

`npm run check:snippets` | **Every `verify` Go snippet compiles against the real library**

Original README

node scripts/check-snippets.mjs --skyl ../skyl

Original README

Set `SITE_URL` to the origin the site will be served from.

Original README

Deploying the *gateway* is a different problem and lives elsewhere — see [skyl_infrastructure](https://github.com/BAGOMBEKA-JOB-DEV/skyl_infrastructure).

Original README

`public/md/` holds 166 committed `.md` files. They are **generated** from the MDX by `prebuild`, so a hand edit survives exactly until the next `npm run build` and then disappears with no diff to explain it. Edit the MDX.

Original README
https://github.com/BAGOMBEKA-JOB-DEV/skyl_docs/blob/main/LICENSEhttps://github.com/BAGOMBEKA-JOB-DEV/skyl_docs/blob/main/README.md

Compiled by DeepSeek based on repository license and README ·2026-10-05. 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
Website type
Documentation
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-10-05
Screenshot last checked
2026-10-05

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: [email protected] · 2026-10-05

Inspect the recorded source material

SHA-256: 587988b063a13114a0879c9a58d7c35c98612b31d4ce2fda698c3d6ce6be8cdd

2026-10-05T10:27:48.362Z

Source file / repository
# skyl documentation

[![Go Reference](https://pkg.go.dev/badge/github.com/BAGOMBEKA-JOB-DEV/skyl.svg)](https://pkg.go.dev/github.com/BAGOMBEKA-JOB-DEV/skyl)

The documentation site for [skyl](https://github.com/BAGOMBEKA-JOB-DEV/skyl) —
*one Go interface for every AI model*.

Built with Next.js 15 (App Router). Two tracks — **Learn** for narrative,
read-in-order material and **Reference** for one page per symbol — sharing a
strict set of page templates and an MDX component vocabulary owned in this
repository.

## Running it

```bash
npm install
npm run dev          # http://localhost:3000
```

## Verifying it

```bash
npm run verify       # lint, typecheck, unit tests, build, links, snippets
```

Individually:

| Command | What it proves |
|---|---|
| `npm run lint` | ESLint, flat config |
| `npm run typecheck` | TypeScript, strict, `noUncheckedIndexedAccess` |
| `npm run test` | Vitest over the data layer |
| `npm run build` | Static export succeeds |
| `npm run check:links` | Every sidebar entry has a page, every page is linked, every internal link resolves, no placeholders |
| `npm run check:snippets` | **Every `verify` Go snippet compiles against the real library** |
| `npm run test:e2e` | Playwright walks every route and exercises search, theming, tabs and the matrix |

### The snippet checker

`scripts/check-snippets.mjs` extracts every fenced Go block marked `verify`,
assembles each into its own package with a `replace` onto a local skyl checkout,
and type-checks it.

```bash
node scripts/check-snippets.mjs --skyl ../skyl
node scripts/check-snippets.mjs --keep      # leave .snippet-check/ for debugging
```

`verify` renders a **Compiles** badge, so it means exactly one thing: this
snippet type-checks standalone. Snippets that are excerpts — referring to a
helper defined three paragraphs earlier — deliberately do not carry it, and
`scripts/demote-snippets.mjs` strips the marker from any that stop compiling.

It skips with a message rather than failing when Go or the skyl checkout is
absent, and adapts to the local toolchain: `provider/anthropic` needs Go 1.24,
so on an older toolchain a stub stands in and the core is still verified against
its real 1.22 floor.

## Structure

```
src/
├── app/            Next App Router — (home), learn, reference, community
├── components/
│   ├── mdx/        The component vocabulary: Intro, YouWillLearn, Recap,
│   │               Challenges, DeepDive, Pitfall, ProviderTabs, GoExample…
│   ├── layout/     Header, sidebar, TOC, breadcrumbs, search, prev/next
│   ├── home/       Hero and the animated provider swap
│   └── feature-matrix/  The interactive matrix
├── content/        160 MDX pages
├── data/           Typed data extracted from the Go source — every table on
│                   the site renders from here rather than being hand-written
├── sidebars/       learn.ts, reference.ts, community.ts, blog.ts
├── lib/            MDX pipeline, Shiki highlighting, search index
└── config/site.ts  Version, module table, top nav
```

### How a page becomes a file

Worth knowing before editing anything, because one of the outputs is committed,
looks editable, and is not:

```mermaid
flowchart LR
    mdx[["src/content/**/*.mdx<br/><b>the source</b>"]]
    side["src/sidebars/*.ts"]
    data["src/data/*<br/>extracted from the Go source"]

    mdx --> next["next build"]
    side --> next
    data --> next

    mdx --> emit["scripts/emit-markdown.mjs<br/>runs as prebuild"]

    next --> out["out/<br/>static export · gitignored"]
    emit --> pub[["public/md/**/*.md<br/><b>generated · committed</b><br/>serves the Copy page button"]]

    edit(["edit here"]) -.-> mdx
    dont(["never here —<br/>overwritten every build"]) -.-> pub

    style mdx stroke-width:3px
    style pub stroke-dasharray:5 4
```

`public/md/` holds 166 committed `.md` files. They are **generated** from the
MDX by `prebuild`, so a hand edit survives exactly until the next
`npm run build` and then disappears with no diff to explain it. Edit the MDX.

## Adding a page

1. Add an entry to the relevant file in `src/sidebars/`.
2. Create the MDX at the matching path under `src/content/`.
3. Run `npm run check:links` — it fails if the two disagree.

Frontmatter needs a `title`; `description` and `badge` are optional.

## Writing content

**Learn pages** follow: `<Intro>` → `<YouWillLearn>` → narrative → `<Recap>` →
`<Challenges>` with `<Hint>` and `<Solution>`.

**Reference pages** follow: `<Intro>` → **Reference** (`<Signature>`,
`<Parameters>`, `<Returns>`, `<Caveats>`) → **Usage** (`<Recipe>`) →
**Troubleshooting** (`<Trouble>`).

Tables come from `src/data/` through the components in
`src/components/mdx/data-views.tsx` — never hand-write a grid, or the same fact
drifts between pages.

Mark a Go fence `verify` when it should compile:

````
```go title="main.go" verify
client := skyl.New(openai.New(key))
```
````

## Deployment

`npm run build` produces a fully static export in `out/` — no Node server at
runtime. Copy that directory to any static host: nginx, S3, Netlify, Vercel,
Cloudflare Pages.

Set `SITE_URL` to the origin the site will be served from. It becomes the
canonical URL in `sitemap.xml` and `robots.txt` and the `og:url` on every page;
unset, it falls back to `http://localhost:3000`, which is right for local work
and wrong for anything published.

```bash
SITE_URL=https://docs.example.com npm run build
```

CI (`.github/workflows/ci.yml`) runs lint, typecheck, unit tests, the build, the
link check, the Go snippet compiler and the end-to-end suite, and uploads `out/`
as a build artefact — so a built site is downloadable from any run without a
deployment step.

Deploying the *gateway* is a different problem and lives elsewhere — see
[skyl_infrastructure](https://github.com/BAGOMBEKA-JOB-DEV/skyl_infrastructure).
This section is only about the site.

## The three repositories

| Repository | What it is |
|---|---|
| [skyl](https://github.com/BAGOMBEKA-JOB-DEV/skyl) | The Go library, the adapters, and the gateway — the thing being documented |
| **[skyl_docs](https://github.com/BAGOMBEKA-JOB-DEV/skyl_docs)** | This one — the [documentation site](https://skyl-docs.vercel.app/) |
| [skyl_infrastructure](https://github.com/BAGOMBEKA-JOB-DEV/skyl_infrastructure) | Deployment: Terraform for AWS/GCP/Azure, the Helm chart, CI |

The split is deliberate: a docs change never touches the library's release
history, and neither does an infrastructure change. The cost is that the same
fact can drift across three repositories — which is why `check:snippets`
compiles every `verify` Go block against a real skyl checkout rather than
trusting that the prose kept up.

**Diagrams differ between repositories, on purpose.** Here they are React
components — `Diagram`, `AsciiDiagram`, `ClientStackDiagram` in
`src/components/mdx/diagram.tsx` — rendered as inline SVG or pre-formatted ASCII
so they inherit the page theme and scale with the reader's font size. An image
would be wrong in one theme or the other. The two GitHub-only repositories use
mermaid in markdown instead, because GitHub renders it natively and there is no
build step to hook. A diagram does not move between the two unchanged.

## Licence

Documentation is CC BY 4.0; skyl itself is Apache 2.0.
Report a correction

Explore similar templates

Compare previews and descriptions within the same stack and category.