The little Node.js server with all the parts needed to publish content to your personal website and share it on social networks.
MIT License
Bot releases are hidden (Show)
timeZone
to date format filter (3202fe9)Published by paulrobertlloyd 6 months ago
A few small fixes and a brand new localisation: Hindi š®š³š
š Indiekit is supported by its community. This release was sponsored by @abhas, @sentience and @roobottom.
excerpt
property (c1e3c5f)Published by paulrobertlloyd 6 months ago
This release contains a few bug fixes, with the big feature being the addition of a service worker. This should make the app feel a bit more sprightly, and of course mean previously viewed pages can be viewed offline. Thereās been some updates to the app.webmanifest
file; you might need to clear your cache for these changes to be reflected before installing as a web app.
š Indiekit is supported by its community. This release was sponsored by @abhas, @sentience and @roobottom.
apple-touch-icon
(aea2f54)theme_color
and background_color
to web app manifest (b1ffaf5)Published by paulrobertlloyd 6 months ago
Another tiny release to fix issues sported while using the new media upload features in anger.
š Indiekit is supported by its community. This release was sponsored by @abhas, @sentience and @roobottom.
Published by paulrobertlloyd 6 months ago
A few more bits of fallout from the Beta 10 release. Fixes header background colour in dark mode, correctly resolves the media store and the file upload component now correctly reports any errors encountered when uploading media.
š Indiekit is supported by its community. This release was sponsored by @abhas, @sentience and @roobottom.
Published by paulrobertlloyd 6 months ago
Thereās always somethingā¦ This tiny release fixes a module resolution bug introduced in Beta 10:
node_modules
(b369ced)Published by paulrobertlloyd 6 months ago
[!WARNING]
This release introduced a module resolution error that prevents the application from starting. This has been fixed in v1.0.0-beta.11
Another packed release, this time focused on improving the editing experience and uploading media files. These changes alone now make Indiekit a really compelling content management system, I think.
There was also a fairly messy diversion trying to fix and/or improve slug generation (follow the fun in #719 and #726). Doubt thisāll be the last of figuring out the best way to generate post slugs.
{uuid}
path tokens are no longer supported{random}
media path token is no longer supported{originalfile}
media path token is now called {filename}
This image of the Markdown editor in full screen mode with Indiekit installed as a web app makes me very happy:
š Indiekit is supported by its community. This release was sponsored by @abhas, @sentience and @roobottom.
x-powered-by
header (b797b2b)Published by paulrobertlloyd 7 months ago
A new release to coincide with IndieWebCamp Brighton 2024. š
š Indiekit is supported by its community. This release was sponsored by @abhas, @sentience and @roobottom.
Published by paulrobertlloyd 8 months ago
Indiekitās first beta release of 2024 is a fairly substantial one. Largely focused on post type configuration, it contains a breaking change in this area.
It also improves the onboarding experience and documentation, and includes a number of bug fixes. Read on to learn more.
To aid the introduction of post type plug-ins, post type configuration has changed. You can read more about the decision in this ADR, but in short, Indiekit now expects a keyed collection of objects instead of an array:
// Before
postTypes: [
{
type: "note",
post: {
path: "notes/{yyyy}-{MM}-{dd}-{slug}.markdown",
url: "notes/{yyyy}/{DDD}/a{n}/{slug}/",
}
}
]
// After
postTypes: {
note: {
post: {
path: "notes/{yyyy}-{MM}-{dd}-{slug}.markdown",
url: "notes/{yyyy}/{DDD}/a{n}/{slug}/",
}
}
}
If you are using the Hugo or Jekyll presets, there may be some slight changes in output, as post templates now output all provided properties (except those prefixed with mp-*
). However, in most cases there should be no difference.
In addition, in order to better conform with Jekyllās preference for front matter keys, these now use snake_case instead of kebab-case:
---
date: 2024-03-03
- like-of: https://getindiekit.com
+ like_of: https://getindiekit.com
---
(That Eleventy tends to favour camelCase for its properties might be the nudge I need to create a specific preset for that static generator.)
Turns out that publication presets were doing a lot of heavy lifting, and dictating more of the publishing pipeline than I intended. In fact, a number of assumptions around post types had been baked into various different parts of the application.
Post type plug-ins attempt to abstract a lot of this behaviour, and in doing so, make this aspect of Indiekit more customisable. They allow plug-in authors to:
These features are available via the new Indiekit.addPostType
API.
In addition to adapting the existing post-types into plug-ins (for which article
, bookmark
, like
, note
, photo
and reply
are installed by default), 2 new post types have been added:
@indiekit/post-type-event
allows you to add event posts to your website.@indiekit/post-type-jam
enables posting music you are currently listening to.The content field in the editing interface now includes a character and word count. This follows a similar design to that used by the GOV.UK design system, that includes a delay before announcing updated counts to screen reader users. (#697)
Thanks to @carlrafting for translating Indiekit into Swedish, bringing the number of available localisations up to 12.
npm create indiekit
would incorrectly report the minimum supported Node version, this has now been fixed. Thanks to @jphastings for reporting (#674).Thanks to feedback from @kwaa and @davepeck in this area (#652).
id
or meta
properties on the plug-in constructor (#698).š Indiekit is supported by its community. This release was sponsored by @abhas, @sentience and @roobottom.
Published by paulrobertlloyd 12 months ago
Thereās always somethingā¦ This is a tiny release to fix 2 bugs released with Beta 6:
š Indiekit is supported by its community. This release was sponsored by @abhas, @sentience and @roobottom.
Published by paulrobertlloyd 12 months ago
This release contains a number of bug fixes, underlying architecture changes and fit and finish improvements to the user interface. Of note:
uid
(using the database recordās ObjectID) in source queriesuid
values in their URL schemes@indiekit/store-ftp
now uses the ssh2-sftp-client
module@indiekit/util
moduleThere are also a few breaking changes in this release:
createFile()
and updateFile()
methods on Indiekit.addStore
API now return a URL for the stored file, not true
. This will allow for finer grained reporting and logging in later releases.š Indiekit is supported by its community. This release was sponsored by @abhas, @sentience and @roobottom.
uid
02dbe5fuid
to media properties 3a18c3duid
to post properties 15551ccuid
310a351uid
32be7f4localDate
filter 35bd0b3slugify
error-list paths daec422share_target
to web app manifest 6fa88d1createFile
and updateFile
c5adcdecreateFile
and updateFile
80bbf9acreateFile
and updateFile
440a5e8createFile
and updateFile
1ea85e8createFile
and updateFile
48e5f00createFile
and updateFile
f63258bisUrl
util 59dd42eslugify
util 01c4542getObjectId
util 3df6c8buid
when projectId
credentials a06f235mongodb
as a dependency. fixes #658 e8fd8cePublished by paulrobertlloyd about 1 year ago
This release adds a number of new features and improvements:
npm create indiekit
will now ask if you want to deploy your server using Docker. If you select yes, the initialiser will generate Dockerfile
, docker-compose.yml
and .dockerignore
files with a recommended setup. Thanks to @sentience for the suggestion. See #639.@accesible-components/tag-input
library. See #650.@indiekit/util
package. See #616, #617 and #619.There are also a few breaking changes in this release:
npm i @indiekit/syndicator-twitter
), it will no longer be updated because, well, you know. See #637.forced
option on syndicator plug-ins has been removed, the first step in reviewing and simplifying Indiekitās syndication mechanics. See #630 and #643.Indiekit.addStore
API has been updated such that a commit message
is now provided via an options
object. See #647.As well as the above, there has been a glut of fixes and updates, with a bit of polish to the application interface. All in service of procrastinating over addressing the myriad syndication issues. Fixing those āĀ and writing tutorials for different web hosting platforms ā are the two remaining areas I want to address before calling 1.0.0 done.
Thanks again for your suggestions, bug reports and support. Slowly but surely this project is getting closer to the vision of making the IndieWeb accessible to everyone. Onwards!
š Indiekit is supported by its community. This release was sponsored by @abhas, @sentience and @roobottom.
<samp>
text style b13f80fformatDate
062fa6agetCanonicalUrl
52501dcgetCursor
52bb680getDate
2bb29d1getServerTimeZone
7049e9aisSameOrigin
bd14d3bisUrl
3973ae5randomString
74edb07slugify
52c56c5supplant
d3bf184Published by paulrobertlloyd over 1 year ago
This release contains a number of small changes:
export
declaration). This caught a lot of users out, so hopefully having this fixed will improve the onboarding experience a little.This release also adds type checking for JSDoc comments, leading to a number of documentation and other issues being caught and fixed.
š Indiekit is supported by its community. This release was sponsored by @abhas, @sentience and @roobottom.
publication.timeZone
option has been renamed application.timeZone
a72ff74media-type
property 3a6a008pages
global 2f3f645toString
dd7983aBuffer.from
1a66ca5mf2ToJf2
981db18checkTargets
to false 79e6d8cJSON.stringify
replacer 0366a2bclasses
global 9ef433fMongoClient
option 5e3deb9toString
6be7582cookieSession
secret d628aa1Published by paulrobertlloyd over 1 year ago
This release includes a few quality of life improvements as well as a new translation: simplified Chinese!
There are still some chunky problems that need resolving before releasing a final v1.0.0 (namely syndication issues), and I hope to find some time in the next few months to address those. In the meantime, thanks for your continued support and feedback.
š Indiekit is supported by its community. This release was sponsored by @abhas, @jbrr, @sentience and @roobottom.
mp-syndicate-to
in post file 9b6e9a7Published by paulrobertlloyd almost 2 years ago
This release contains a number of bug fixes for the syndication endpoint, and a number of smaller fixes to the frontend code. Here are the highlights:
WEBHOOK_SECRET
environment variable for your Indiekit server, and use the same value for āJWS secret tokenā on Netlify.characterLimit
option. See the plug-in documentation.-d
/--debug
flag on indiekit serve
was not working. This has now been fixed.š Indiekit is supported by its community. This release was sponsored by @roobottom, @localazy and @sentience.
itemId
global (7bf85bc)linkTo
filter (b7c3f18)Published by paulrobertlloyd almost 2 years ago
Wow, what a week! āŗļø Itās lovely to see Indiekit getting some attention, not least in the form of bug reports, pull requests and documentation feedback.
This release contains one new feature: the ability to add location co-ordinates to a post. Not sure why I felt the need to add this, and it took much longer than the hour or so I thought it would! However, it did mean uncovering some issues with nested vocabularies when converting between JF2 and mf2, so hopefully thatās a little more robust.
There are a few bug fixes, notably around encoding/decoding of <
and >
characters, and whitespace being introduced on subsequent post editing, and a number of improvements to the styling of various bits of the user interface. The documentation is slowly being improved too āĀ still lots to do there, however.
š Indiekit is supported by its community. This release was sponsored by @roobottom, @localazy and @sentience.
disabled
button style (045ffbd, 29ae633)readonly
inputs (cafbe46)pre
similar to blockquote
(a0ef8fc)<
/>
characters (b64b7d4) - thanks @bwlng for reportingMONGO_URL
env variable if specified (38ecc55) - thanks @sentiencePublished by paulrobertlloyd almost 2 years ago
The first beta release for v1.0.0. š For those new to the project, Indiekit is the little Node.js server with all the parts needed to publish content to your personal website and share it on social networks. Think of it as the missing link between a statically generated website and the social web protocols developed by the IndieWeb community and recommended by the W3C.
Publish content to your website using any application that supports Micropub. Write an article in iA Writer, post a note or photo from Micro.blog, or use a service like OwnYourSwarm to cross-post a check-in from Swarm. Then have it shared automatically on social networks like Mastodon and Twitter.
Read the launch post to learn more about the background to Indiekit, and whatās coming next.
š Indiekit is supported by its community. This release was sponsored by @roobottom.
indiekit serve
npm create indiekit [directory]
draft
scope in access tokensAll this and plenty of bug fixes and other improvements.
Below are changes made since the last release, v1.0.0 Alpha 18.
imageUrl
filter (4a92c83)includes
filter (f2c8444)Published by paulrobertlloyd almost 2 years ago
The final alpha release before the beta launch. The primary feature of this release is the ability to create and update several post types (media and event post types will be added during the beta).
There are a few breaking changes to be aware of:
deleted
date. This is so that deleted posts can be correctly given a 410 Gone
status, rather than the less helpful 404 Not Found
- although this very much depends on how a static site generator is configured.published: false
in a postās front matter (instead of draft: true
) if saved as a draft. This is the documented means of preventing a post from being published.date
and publishDate
with a postās published property. Additionally, lastmod
is populated when a post is updated, and expiryDate
is added when a post is deleted.Published by paulrobertlloyd almost 2 years ago
With the previous release having set the groundwork, tidying up and fixing the frontend foundations, Alpha 17 starts to concentrate on the application interface by adding a number of new features:
Note The homepage is missing some translations, and the āCreate a new postā links go to a 404 page. More still to come!
This release also fixes a long standing issue when syndicating posts. Previously, on occasion, a post would get syndicated over and over again ā very embarrassing. Turns out this was happening whenever a post failed to syndicate to another configured target.
Rather than throw a 500 error (additionally leading to Netlify suspending any post-deploy webhooks), errors are now silently logged to the console. In addition, any failed syndications are captured both in the mp-syndicate-to
property, and in the JSON response. Thanks to @alienlebarge for helping me track down this issue.
Published by paulrobertlloyd almost 2 years ago
This release primarily focuses on quality of life improvements within the frontend package, its styles and components. However, it also adds the following features:
draft
scope
This release also includes a breaking change for anyone upgrading from 1.0.0 Alpha 13/14/15. The method for hashing passwords has been updated to use bcrypt, rather than md5, meaning your existing password will no longer work.
After updating your server, visit /auth/new-password
to generate a new password secret, and update your existing PASSWORD_SECRET
environment variable with this value.