Skip to content

Repository files navigation

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.

About

An extensible Bluesky client for web

Resources

Stars

52 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages