- JavaScript 83.2%
- Nunjucks 10.9%
- CSS 5.7%
- HTML 0.1%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
#910 fixed the failing Prettier check by accepting what Prettier wanted, which split the `<link>` over three lines and made it self-closing. The trailing slash has no meaning on a void element and reads as though it does, so the original one-line form is the better documentation. `.prettierignore` already excludes `*.html`, but this markup is a fenced block inside a Markdown file, which that pattern does not match — so it was formatted as embedded code rather than skipped. A `<!-- prettier-ignore -->` comment excludes just this block and leaves the rest of the file checked. `prettier --check` passes across tracked files. |
||
| .github | ||
| .husky | ||
| docs | ||
| helpers | ||
| packages | ||
| types/express | ||
| .commitlintrc.json | ||
| .editorconfig | ||
| .gitignore | ||
| .lintstagedrc.json | ||
| .nvmrc | ||
| .prettierignore | ||
| .stylelintrc.json | ||
| CHANGELOG.md | ||
| eslint.config.js | ||
| indiekit.config.js | ||
| jsconfig.json | ||
| lerna.json | ||
| LICENSE | ||
| localazy.json | ||
| package-lock.json | ||
| package.json | ||
| README.md | ||
| SECURITY.md | ||
Indiekit
Meet Indiekit, the little Node.js server with all the pieces needed to share your content with the open, independent web.
Sponsors
Indiekit is supported by its community. Special thanks to:

Features
- Publish content to your website using apps and services that support the Micropub API
- Save files to a content store such as GitHub, an FTP server or S3 object storage
- Integrate with static site generators like Eleventy, Hugo or Jekyll
- Share content on social networks like Bluesky and Mastodon
- Customise everything from the interface theme to the format of commit messages
Indiekit is extensible via its plug-in API and localized for use in a growing number of languages.
Requirements
- Your own website, published using a static site generator
- Node.js v24.17+
A MongoDB database is optional, but required for the following features to work:
- Viewing, editing, deleting and restoring previously published posts
- Syndicating posts
- Viewing and deleting previously uploaded media files
Warning
Use a currently supported MongoDB release. Version 4.4.29 and earlier — which includes the
mongo:4Docker tag — are affected by CVE-2025-14847 (“MongoBleed”), an unauthenticated remote memory disclosure that can leak credentials and access tokens. It is fixed in 4.4.30, 5.0.32, 6.0.27, 7.0.28, 8.0.17 and 8.2.3.MongoDB has been licensed under the SSPL since v4.0.4. If you would rather not run SSPL-licensed software, FerretDB is an Apache-2.0 licensed database that implements the MongoDB wire protocol (it has not been tested with Indiekit). Note that v4.0.3, the last openly licensed MongoDB release, predates the fix above and should not be used.
Get started
Learn how to set up an Indiekit server and view an example server configuration.
Documentation website
The documentation website is generated using VitePress. To view this site locally:
- Install this project’s dependencies:
npm install - Start the Vite server:
npm run docs:dev - View the documentation: http://127.0.0.1:5173
The browser will refresh to reflect any changes you make to the documentation.
Decisions
Architectural decisions made on this project are documented using Architecture Decision Records, as described by Michael Nygard. These can be found in /docs/decisions.
Releasing
Lerna is used to manage and publish packages from this monorepo via a trusted publishing workflow.
Contributing
Read about the different ways you can contribute to this project.
Credits
Developed by Paul Robert Lloyd.
Thank-you to Aron Carroll for mentoring me during the early development of this project. Indiekit is a better project for his feedback and advice.
Similar projects
Indiekit is inspired by similar projects made by members of the IndieWeb community:
