2018-04-16 05:07:37 +00:00
# Pinafore [![Build Status](https://travis-ci.org/nolanlawson/pinafore.svg)](https://travis-ci.org/nolanlawson/pinafore) [![Greenkeeper badge](https://badges.greenkeeper.io/nolanlawson/pinafore.svg)](https://greenkeeper.io/)
2018-04-14 16:41:56 +00:00
2018-06-03 20:36:33 +00:00
An alternative web client for [Mastodon ](https://joinmastodon.org ), focused on speed and simplicity.
2018-04-02 06:15:52 +00:00
2018-04-02 06:18:50 +00:00
Pinafore is available at [pinafore.social ](https://pinafore.social ). Bleeding-edge releases are at [dev.pinafore.social ](https://dev.pinafore.social ).
2018-04-02 06:15:52 +00:00
2018-07-02 17:35:23 +00:00
See the [user guide ](https://github.com/nolanlawson/pinafore/blob/master/docs/User-Guide.md ) for basic usage. See the [admin guide ](https://github.com/nolanlawson/pinafore/blob/master/docs/Admin-Guide.md ) to troubleshoot instance compatibility issues.
2018-04-02 06:15:52 +00:00
2018-04-21 17:59:52 +00:00
For updates and support, follow us at [@pinafore@mastodon.technology ](https://mastodon.technology/@pinafore ).
2018-04-02 06:15:52 +00:00
## Browser support
Pinafore supports the latest versions of the following browsers:
- Chrome
- Edge
- Firefox
- Safari
Compatible versions of each (Opera, Brave, Samsung, etc.) should be fine.
2018-02-18 22:38:10 +00:00
2018-03-11 19:55:46 +00:00
## Goals and non-goals
### Goals
- Support the most common use cases
- Fast even on low-end phones
- Works offline in read-only mode
- Progressive Web App features
- Multi-instance support
- Support latest versions of Chrome, Edge, Firefox, and Safari
- a11y (keyboard navigation, screen readers)
### Possible future goals
- Works as an alternative frontend self-hosted by instances
2018-04-09 00:30:02 +00:00
- Android/iOS apps (using Cordova or similar)
2018-03-11 19:55:46 +00:00
- Support Pleroma/non-Mastodon backends
- i18n
2018-03-21 15:39:06 +00:00
- Offline search
2018-03-31 00:55:55 +00:00
- Full emoji keyboard
2018-04-05 01:33:14 +00:00
- Keyboard shortcuts
2018-03-11 19:55:46 +00:00
### Non-goals
- Supporting old browsers, proxy browsers, or text-based browsers
- React Native / NativeScript / hybrid-native version
- Full functionality with JavaScript disabled
- Emoji support beyond the built-in system emoji
- Multi-column support
- Admin/moderation panel
2018-04-05 01:33:14 +00:00
- Works offline in read-write mode (would require sophisticated sync logic)
2018-03-11 19:55:46 +00:00
2018-04-15 16:48:52 +00:00
## Building
2018-02-18 22:38:10 +00:00
2018-08-25 20:04:41 +00:00
Pinafore requires [Node.js ](https://nodejs.org/en/ ) v8+ and `npm` .
2018-04-15 16:48:52 +00:00
To build Pinafore for production:
npm install
npm run build
PORT=4002 npm start
2018-05-25 02:59:48 +00:00
### Docker
To build a docker image for production:
docker build .
docker run -d -p 4002:4002 [your-image]
2018-04-15 16:48:52 +00:00
Now Pinafore is running at `localhost:4002` .
2018-08-25 20:04:41 +00:00
### Updating
To keep your version of Pinafore up to date, you can use `git` to check out the latest tag:
git checkout $(git tag -l | sort -Vr | head -n 1)
2018-04-15 16:48:52 +00:00
2018-12-11 15:31:48 +00:00
### Exporting
You can export Pinafore as a static site. Run:
npm run export
Static files will be written to `__sapper__/export` .
Be sure to add the [CSP ](https://developer.mozilla.org/en-US/docs/Web/HTTP/CSP ) header printed out in the console to
your server config!
2018-04-15 16:48:52 +00:00
## Developing and testing
See [CONTRIBUTING.md ](https://github.com/nolanlawson/pinafore/blob/master/CONTRIBUTING.md ) for
how to run Pinafore in dev mode and run tests.
2018-05-04 16:19:44 +00:00
## Changelog
For a changelog, see the [GitHub releases ](http://github.com/nolanlawson/pinafore/releases/ ).