npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

ng-bsky-rss-reader

v0.0.8

Published

A BlueSky RSS Feed Reader for Angular Apps

Downloads

17

Readme

BlueSky Profile RSS Reader

BlueSky Profile RSS Reader is a library designed to fetch and display RSS feeds from BlueSky profiles. It allows users to enter a BlueSky profile and view their updates in a consolidated feed. This project focuses on using modern Angular practices and not relying on Zone.js or RxJS.

Key Features:

  • Load BlueSky post from a given profile handle or id.
  • Show selected profile description.
  • Zone.js-Free Angular: Demonstrates the use of Angular without Zone.js using only Signals.
  • No use of RxJS relying only on the new resource API for asynchronous requests.
  • All styles were created with Tailwind CSS.

Live Demo

Try out the live demo: https://monsieur-ricky.github.io/bsky-profile-rss-reader/

Prerequisites

  • Node.js (v20.15.0 or higher recommended)
  • Angular CLI (v19+)
  • Tailwind CSS (v4)
  • A modern browser (e.g., Chrome, Edge, or Safari)

NOTE: Angular (at v19.1.3) isn't fully compatible with TailwindCSS v4. For that reason, it's necessary to add --force or --legacy-peer-deps when installing the NPM dependencies, i.e., via npm install.

Installation

  1. Install Tailwind CSS and dependencies (more information in the official installation documentation). Jump to step 4 if Tailwind v4 is already present in the project:

    npm install tailwindcss @tailwindcss/postcss postcss --force
  2. Create a .postcssrc.json file in the root of your project and add the @tailwindcss/postcss plugin to your PostCSS configuration.:

    {
      "plugins": {
        "@tailwindcss/postcss": {}
      }
    }
  3. Import Tailwind CSS to your main styles file (e.g., src/styles.css):

    @import "tailwindcss";
  4. Install the library using NPM:

    npm install ng-bsky-rss-reader --legacy-peer-deps

Usage

  1. Import the library in your component:

    import { BskyRssReaderComponent } from 'ng-bsky-rss-reader';
    
    @Component({
      selector: 'app-root',
      imports: [BskyRssReaderComponent],
    })
  2. Add the component to your template:

    <ng-bsky-rss-reader profileId="your.bsky.handle" />
  3. Full example:

    import { Component, signal } from '@angular/core';
    import { BskyRssReaderComponent } from 'ng-bsky-rss-reader';
    
    @Component({
      selector: 'bpr-root',
      imports: [BskyRssReaderComponent],
      template: `
        <div class="h-full w-screen flex items-center justify-center">
          <div class="h-[500px] w-[500px]">
            <ng-bsky-rss-reader [profileId]="profile()" />
          </div>
        </div>
      `
    })
    export class AppComponent {
      profile = signal('ricky.pt');
    }

Contributing

Contributions are welcome! Please open an issue or submit a pull request to suggest features, fix bugs, or enhance the demo.

Feel free to share your thoughts or suggest improvements!