Mirror of https://github.com/improsocial/impro An extensible Bluesky client for web impro.social
5

Configure Feed

Select the types of activity you want to include in your feed.

JavaScript 94.2%
CSS 4.4%
HTML 0.7%
Swift 0.2%
Ruby 0.1%
TypeScript 0.1%
Objective-C 0.1%
Other 0.5%
1.1k 1 0

Clone this repository

https://tangled.org/impro.social/impro https://tangled.org/did:plc:3qzlw6gugrgthwb2xwmxdjd3
git@tangled.org:impro.social/impro git@tangled.org:did:plc:3qzlw6gugrgthwb2xwmxdjd3

For self-hosted knots, clone URLs may differ based on your setup.



README.md

Impro#

Impro is a Bluesky web client written in HTML, CSS, and JavaScript.

You can try it out here: https://impro.social

What makes Impro great?#

Impro is:

  • Web-first: Impro was built from scratch for the web, with no heavy cross-platform frameworks or libraries.
  • Familiar by default: Out of the box, Impro offers the same feature set as the main Bluesky client.
  • Extensible by design: If you want additional functionality, you can use Community Plugins to customize your experience.
  • Better about blocking: Unlike the main client's "nuclear block", thread context is preserved for non-blocked users.

Issues and feature requests#

If you notice a bug or feature missing, please open an issue for it or thumbs-up an existing issue!

Backend#

Impro uses the Bluesky API for authentication and data fetching. Additionally, it uses Constellation to populate blocked replies.

Dependencies#

Impro uses the following libraries:

The icons are from the Majesticons free icon set (MIT license).

Development#

Impro is a single-page app built with Eleventy. To run the development server, run:

npm run start

If you'd like to test changes to the Oauth configuration, you can start the server with a Cloudflare Tunnel (requires cloudflared):

npm run start:tunnel

External libraries are included as standalone files in lib. In cases where bundling is needed, the libraries are bundled with esbuild. Changes to these bundles should be rare, but can be triggered manually with the following commands:

npm run bundle:capacitor
npm run bundle:lit-html

AI Disclosure#

The core of Impro is human-designed and human-written, but some views and components were generated using Claude Code. The project owner has reviewed the generated code and takes full responsibility for its accuracy and completeness.