A client side only Micropub client. Installation only requires to deploy the files in a static web server.
Current working client at https://grumble.isgeek.net/
- Indieauth login
- Offline post support (with queue for sending later)
- Installable as a phone app
- Syndication
- Media endpoint support
- Like/Bookmark/Reply support
- Posts videos/photos
- Form-encoded syntax
Since this is a full client side client, it requires a few resources to support CORS:
- Micropub endpoint
- You Indieauth page (where to discover the
authorization_url
) - Media endpoint
Offline support only available for Chrome, Firefox has an IndexDB bug)
- VueJS
- Jake Archivald's IDB
- UpUp
Main composer
Reply screen
Quick notes - Tweet like
Options menu
Just host the files anywhere that they can be served statically. This is an example Nginx configuration.
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name grumble.isgeek.net;
location ~ ^/favicon\.(\w+)$ {
alias /path/grumble/src/favicon.png;
}
location / {
root /path/grumble/src/;
}
}
It is necessary to teach Grumble where it is being served from. You need to
create a client.js
file that gets served from the document root declaring
two constants CLIENT_ID
and REDIRECT_URI
.
const CLIENT_ID = "https://grumble.isgeek.net";
const REDIRECT_URI = "https://grumble.isgeek.net";
It's also perfectly fine to host on S3.
Remember that you need to enable CORS on your identification URL. This is how I do it on Nginx.
location / {
add_header 'Access-Control-Allow-Origin' '*';
add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
}