Dual-track content structure with Learn and Reference, respectively for sequential reading and per-symbol lookup
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.
Actual screenshot captured by the server browser.
All pages & views 3
Screenshots show visual appearance; interactive behavior may differ.
What stands out
A quick read of the recorded project description.
160 MDX pages, paired with an MDX component vocabulary and page templates defined in the repository
check:snippets places Go code blocks marked verify into a separate package and type-checks them against a local skyl checkout
check:links verifies consistency among sidebar entries, page files, and internal links
Build output is a static out/ directory, deployable to static hosts such as nginx, S3, Netlify, Vercel, and Cloudflare Pages
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.
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
Run npm install to install dependencies, and npm run dev to start the local development server (default http://localhost:3000)
- 2
npm run verify chains lint, type checking, unit tests, build, link checking, Go snippet compilation, and end-to-end tests
- 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
Set SITE_URL to the site's actual origin at build time, otherwise it falls back to http://localhost:3000
- 5
Markdown under public/md/ is generated from MDX by prebuild; to change content, edit the MDX source files in src/content/
License & source material
Usage conditions & limitations
Free to use · keep license noticeThis 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
https://github.com/BAGOMBEKA-JOB-DEV/skyl_docs/blob/main/LICENSEhttps://github.com/BAGOMBEKA-JOB-DEV/skyl_docs/blob/main/README.md`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
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
[](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.
Explore similar templates
Compare previews and descriptions within the same stack and category.

nextjs-prisma-boilerplate
A production-grade full stack starter built on Next.js 12, React 18, Prisma 4, and Postgres, with layered frontend and backend architecture, Jest and Cypress testing, next-auth authentication, Docker and Gitpod development environments, GitHub Actions CI/CD, and Traefik-based production deployment.
Next.js · Documentation

rubix-documents
A Next.js and React documentation site starter template for product docs, technical manuals and knowledge bases.
Next.js · Documentation

lil-docs-template
A lightweight documentation site template for small projects, built with Next.js, TypeScript, Chakra UI, and ContentLayer. It supports MDX content, light/dark mode, and SEO configuration, and offers a one-click Vercel deploy.
Next.js · Documentation

next-app-nextra-template
A documentation site template combining Next.js App Router, Mantine, and Nextra in one project, with synchronized dark mode, Pagefind search, Storybook, Jest, and GitHub Release Notes integration. Suitable for teams maintaining both a product application and its documentation.
Next.js · Documentation

docs-template
A documentation website template built with Next.js, Radix Themes, and BaseHub. Content is edited in BaseHub, so documentation can be maintained without code changes.
Next.js · Documentation

shadcn-blog
A Next.js 15 blog template that renders MDX articles from content/blog/ with Fumadocs, built on shadcn/ui and Tailwind CSS.
Next.js · Blog
