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 🙏

© 2024 – Pkg Stats / Ryan Hefner

starboard

v0.2.1

Published

Keep all aspects of a project in one place together! A card-based management tool that stores its data in a git repo.

Downloads

12

Readme

Starboard Build Status

Keep all aspects of a project in one place together! A card-based management tool that stores data in a git repo.

Starboard Screenshot Click the image for a demo video.

Reasoning

Main Starboard idea is to keep, distribute and archive all programming and non-programming artefacts in a single place.

Source code is only a one part of a project. Other, also important, is management history like list of grouped and prioritised tasks with their characteristics, comments and related files.

See a blogpost: http://www.jakubniewczas.pl/#/blog/starboard-git-based-task-managment-tool

Installation

npm install -g starboard

Usage

Typically Starboard is run on localhost so each user serves Starboard for themselves.

REPO_URL=<path/url to origin repo> starboard

REPO_URL can be a local path (f.e. to dropbox) or a remote server (f.e. bitbucket or github).

In case remote server requires ssh key, SSH_KEY_PATH env has to be also provided.

List of config variables can be found in Starboard command line program.

Starboard can also run on a public server (however auth/permission module is still under development).

Advanced usage

Check also a sister project Starbucket to fully utilise decentralised aspect of git. Become Github/Bitbucket independent.

Lib

Starboard is designed as a lib, and starboard command is just one of many possible configuration of its components. It has a pluggable system of storages and authenticators. List of all exposed components can be found here.

Technical overview

Starboard is an event sourced app that use websockets for communication with backend. Frontend is written in React. Git is just one of many event storages that stores event jsons as a commit messages. Both frontend and backend calculate CurrentState from events. Repositories use CurrentState to read requested data.

Events are synced by git rebasing existing events on top on a remote list. After rebasing, events delta is applied (excluding rebased events). Because of that Event Handlers have to be prepared that something may not make any sense, for example, updating a card after the card was removed. Alternatively I could rebase remote events on top on local, or change git history in any other way, but it would require force push which I wanted to avoid. I was considering force push inspired by blockchains mechanic but I still prefer not to modify public repo.

Production Readiness

I use Starboard for quite a while already but mostly in a single user mode. Storage in my case is usually Dropbox but I successfully ran Starboard with Bitbucket setupas well. Collaborative mode works pretty well also however there are still a few glitches here and there that I have already on my development list.

Development

npm run dev:db:create
npm run dev

Then visit http://localhost:8080/. Current version uses AllowEveryone Policy so any email is allowed and any text as a password is valid.

Tests

npm run specs

License

MIT