Go to file
Nolan Lawson 1d34d45da7
fix(icons): fix icons.svg url (#769)
in #762 I forgot to set the absolute path for these; it fails on
subpages
2018-12-08 20:04:32 -08:00
assets add manifest description (#262) 2018-05-03 21:24:18 -07:00
bin chore: fix travis deploy script (#768) 2018-12-08 18:07:50 -08:00
docs simplify theme definitions (#574) 2018-09-23 12:26:01 -07:00
fixtures chore(travis): update to mastodon v2.6.1 (#630) 2018-11-12 12:59:47 -08:00
original-assets add windows icons, optimize icons 2018-03-22 20:43:16 -07:00
routes fix(icons): fix icons.svg url (#769) 2018-12-08 20:04:32 -08:00
scss fix(scroll): slightly tweak flicker fix (#758) 2018-12-08 07:53:14 -08:00
templates perf: use prefetch instead of preload for svgs (#765) 2018-12-08 16:04:11 -08:00
tests feat(statuses): implement "Delete and redraft" (#719) 2018-12-03 23:23:29 -08:00
.editorconfig chore(editor): add an editorconfig (#710) 2018-12-01 23:06:34 -08:00
.gitignore perf: build separate icons.svg file (#762) 2018-12-08 12:46:16 -08:00
.travis.yml fix(emojos): fix emojos on Ubuntu and Chrome on Windows (#661) 2018-11-20 00:01:23 -08:00
CONTRIBUTING.md fix(emojos): fix emojos on Ubuntu and Chrome on Windows (#661) 2018-11-20 00:01:23 -08:00
Dockerfile Fixing Dockerfile (#440) 2018-08-18 21:20:33 -07:00
LICENSE add footer and license 2018-03-07 09:25:07 -08:00
README.md Update README.md 2018-08-25 13:04:41 -07:00
inline-script.js fix: build inline script using Rollup (#761) 2018-12-08 11:21:54 -08:00
package-lock.json fix: build inline script using Rollup (#761) 2018-12-08 11:21:54 -08:00
package.json chore: cleanup travis scripts (#766) 2018-12-08 17:15:01 -08:00
server.js fix(server): use compression instead of shrink-ray-current (#629) 2018-11-11 11:31:32 -08:00
webpack.client.config.js perf(terser): remove console logs in production (#658) 2018-11-18 09:07:39 -08:00
webpack.server.config.js use standard 2018-02-08 22:29:29 -08:00

README.md

Pinafore Build Status Greenkeeper badge

An alternative web client for Mastodon, focused on speed and simplicity.

Pinafore is available at pinafore.social. Bleeding-edge releases are at dev.pinafore.social.

See the user guide for basic usage. See the admin guide to troubleshoot instance compatibility issues.

For updates and support, follow us at @pinafore@mastodon.technology.

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.

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
  • Android/iOS apps (using Cordova or similar)
  • Support Pleroma/non-Mastodon backends
  • i18n
  • Offline search
  • Full emoji keyboard
  • Keyboard shortcuts

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
  • Works offline in read-write mode (would require sophisticated sync logic)

Building

Pinafore requires Node.js v8+ and npm.

To build Pinafore for production:

npm install
npm run build
PORT=4002 npm start

Docker

To build a docker image for production:

docker build .
docker run -d -p 4002:4002 [your-image]

Now Pinafore is running at localhost:4002.

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)

Developing and testing

See CONTRIBUTING.md for how to run Pinafore in dev mode and run tests.

Changelog

For a changelog, see the GitHub releases.