Skip to content
aminegames125Public

About

Browser-based builder for link-in-bio pages and documentation sites. Pick a layout, write in Markdown, preview live, export a static zip and host it anywhere. No code, no account, no backend.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

Plinth

Make a link page or a documentation website in your browser.
Download it as a zip and put it online anywhere. No coding, no account, no server.

Live demo Deploy MIT license Built with Next.js 16 Runs in the browser, no backend

Try it · Page editor · Docs builder · Documentation

Build in the browser, export a zip, host it anywhere

The Plinth landing page

What can I make with it?

Plinth has two tools. Pick the one that fits, build in the browser, and download a zip.

A link page on a phone The page editor with a live preview

Choose a layout, add blocks such as buttons, galleries, forms, a FAQ or a price table, and watch the page update as you type.

A documentation site The docs builder with a live preview

Write pages in plain Markdown, organize them in folders, and the preview shows the real site, including search.

What your visitors see

A finished link page on a phone
A finished link page on a phone
An exported docs site in light mode
An exported docs site, light mode

The same docs site in dark mode
The same site in dark mode. It follows the visitor's device setting.

Make your first site

  1. Open the page editor or the docs builder.
  2. Change the text, pick a color, add blocks or pages. The preview updates as you type.
  3. Click Export site (.zip), unzip the file and upload the folder to any web host.

That is the whole process. The documentation has step-by-step hosting instructions.

Works on Netlify, Cloudflare Pages, GitHub Pages, Vercel, S3, nginx, Apache and any other file host

Why use it

Private, plain files, searchable and yours

The Plinth documentation, built with Nextra
The project documentation, built with Nextra, with full-text search.

For developers

Run it

Requires Node 20 or later and pnpm.

pnpm install
pnpm dev          # http://localhost:3000
pnpm build:zip    # static site in out/, plus plinth-site.zip
pnpm lint

The first pnpm dev runs a production build once to create the export template that the page editor's export button needs. It takes about a minute.

How the exports are built

A build step makes an export template. The page editor fills it in the browser. The docs builder generates HTML in the browser. Both produce a zip.

Page editor Docs builder
Output <name>.zip <title>-site.zip
Contents index.html, _next/ assets One .html per page, assets/, 404.html
Runtime React, rendered in the browser None. HTML, CSS and one small script
Subpaths Set Hosting path before export Works as is, all links are relative
Reopen later No Open .zip restores the project

Both zips contain .nojekyll. No server configuration is needed.

Page editor. pnpm build:zip packs the built _next/ assets and the HTML of the /export-template/ route into export-template.zip. In the browser, the editor downloads that template, writes the page config into a JSON script tag, rewrites asset URLs for the chosen hosting path and zips the result. The exported page renders the config with the same component the editor preview uses.

Docs builder. src/lib/docsSite turns a tree of Markdown pages into standalone HTML. Markdown is parsed with marked. Links written as /folder/page become relative file links. Search is a generated index that runs in the visitor's browser. The live preview uses the same generator as the export.

Subpath deploys. Next.js reads NEXT_PUBLIC_BASE_PATH at build time. The GitHub Pages workflow sets it to the repository name, which is how this project runs at /plinth/.

Project layout

Path Contents
src/app Routes: landing, editors, docs, brand pages, page files
src/screens Editor and landing screens
src/components Blocks, layouts, page renderer
src/lib/docsSite Docs builder: model, Markdown, theme, generator
src/lib/exportSite.js Page editor export
src/clients Page files, one .mdx per page, rendered at build time
content The project docs, as Nextra pages
readme, screenshots Artwork and screenshots used in this file
scripts/build-zip.mjs Build, docs search index, export template, project zip

Notes for adding a block or a layout are in the contributing guide.

Deploy to GitHub Pages

The workflow in .github/workflows/pages.yml builds on every push to main. Set Settings → Pages → Source to GitHub Actions once. For a user or organization site served from the domain root, remove the NEXT_PUBLIC_BASE_PATH line from the workflow.

Dependency notes

Everything is on its latest release except three packages:

  • typescript stays on 6.x because typescript-eslint does not support 7 yet.
  • lucide-react stays on 0.577 because 1.x removed the brand icons the editor offers.
  • zod is pinned to 4.1.12 in pnpm-workspace.yaml because Nextra 4.6.1 fails to render the last page of a section with newer versions.

Limits

  • Page editor exports need JavaScript in the visitor's browser.
  • The page editor's hosting path is fixed at export time.
  • Editor state lives in the browser's local storage. Export a zip to keep a copy.
  • Fonts chosen in the page editor load from Google Fonts at view time.

Breaking change

The page editor no longer exports JSON or MDX. Use Export site (.zip). Existing .mdx files in src/clients still render.

License

MIT © 2025-2026 Amineos

About

Browser-based builder for link-in-bio pages and documentation sites. Pick a layout, write in Markdown, preview live, export a static zip and host it anywhere. No code, no account, no backend.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Contributors

Languages