{"id":49453681,"url":"https://github.com/appearhere/bloom","last_synced_at":"2026-06-02T05:00:47.181Z","repository":{"id":25425090,"uuid":"65029029","full_name":"appearhere/bloom","owner":"appearhere","description":"[ ] Pattern library 🐙","archived":false,"fork":false,"pushed_at":"2025-03-04T14:53:22.000Z","size":16287,"stargazers_count":51,"open_issues_count":20,"forks_count":9,"subscribers_count":11,"default_branch":"master","last_synced_at":"2025-10-05T10:34:58.611Z","etag":null,"topics":["jellyfish","pattern-library","react","style-guide"],"latest_commit_sha":null,"homepage":"https://bloom-seven-gules.now.sh","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/appearhere.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2016-08-05T15:26:08.000Z","updated_at":"2025-09-09T18:52:48.000Z","dependencies_parsed_at":"2024-04-15T11:57:34.730Z","dependency_job_id":"8df164ba-1195-4a78-a49f-4af8b6159792","html_url":"https://github.com/appearhere/bloom","commit_stats":{"total_commits":1001,"total_committers":27,"mean_commits":"37.074074074074076","dds":0.5524475524475525,"last_synced_commit":"d2ebf44c7bb5404692e01059c1f51ca8f2faa77b"},"previous_names":[],"tags_count":200,"template":false,"template_full_name":null,"purl":"pkg:github/appearhere/bloom","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/appearhere%2Fbloom","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/appearhere%2Fbloom/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/appearhere%2Fbloom/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/appearhere%2Fbloom/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/appearhere","download_url":"https://codeload.github.com/appearhere/bloom/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/appearhere%2Fbloom/sbom","scorecard":{"id":203437,"data":{"date":"2025-08-11","repo":{"name":"github.com/appearhere/bloom","commit":"32bcc74fd58d4260d561b11e05643cdf37b01bf8"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":3.1,"checks":[{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Code-Review","score":3,"reason":"Found 6/17 approved changesets -- score normalized to 3","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/main.yaml:1","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/main.yaml:10: update your workflow using https://app.stepsecurity.io/secureworkflow/appearhere/bloom/main.yaml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/main.yaml:12: update your workflow using https://app.stepsecurity.io/secureworkflow/appearhere/bloom/main.yaml/master?enable=pin","Info:   0 out of   2 GitHub-owned GitHubAction dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: MIT License: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":-1,"reason":"internal error: error during branchesHandler.setup: internal error: githubv4.Query: Resource not accessible by integration","details":null,"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 24 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}},{"name":"Vulnerabilities","score":0,"reason":"90 existing vulnerabilities detected","details":["Warn: Project is vulnerable to: GHSA-968p-4wvh-cqc8","Warn: Project is vulnerable to: GHSA-h5c3-5r3r-rr8q","Warn: Project is vulnerable to: GHSA-rmvr-2pp2-xj38","Warn: Project is vulnerable to: GHSA-xx4v-prfh-6cgc","Warn: Project is vulnerable to: GHSA-v88g-cgmw-v5xw","Warn: Project is vulnerable to: GHSA-whgm-jr23-g3j9","Warn: Project is vulnerable to: GHSA-8hc4-vh64-cxmj","Warn: Project is vulnerable to: GHSA-jr5f-v2jv-69x6","Warn: Project is vulnerable to: GHSA-67hx-6x53-jw92","Warn: Project is vulnerable to: GHSA-qwcr-r2fm-qrc7","Warn: Project is vulnerable to: GHSA-v6h2-p8h4-qcjw","Warn: Project is vulnerable to: GHSA-grv7-fg5c-xmjg","Warn: Project is vulnerable to: GHSA-w8qv-6jwh-64r5","Warn: Project is vulnerable to: GHSA-257v-vj4p-3w2h","Warn: Project is vulnerable to: GHSA-pxg6-pf52-xh8x","Warn: Project is vulnerable to: GHSA-3xgq-45jj-v275","Warn: Project is vulnerable to: GHSA-rq8g-5pc5-wrhr","Warn: Project is vulnerable to: GHSA-phwq-j96m-2c2q","Warn: Project is vulnerable to: GHSA-ghr5-ch3p-vcr6","Warn: Project is vulnerable to: GHSA-434g-2637-qmqr","Warn: Project is vulnerable to: GHSA-49q7-c7j4-3p7m","Warn: Project is vulnerable to: GHSA-977x-g7h5-7qgw","Warn: Project is vulnerable to: GHSA-f7q4-pwc6-w24p","Warn: Project is vulnerable to: GHSA-fc9h-whq2-v747","Warn: Project is vulnerable to: GHSA-vjh7-7g9h-fjfh","Warn: Project is vulnerable to: GHSA-6h5x-7c5m-7cr7","Warn: Project is vulnerable to: GHSA-qw6h-vgh9-j6wx","Warn: Project is vulnerable to: GHSA-fjxv-7rqg-78g4","Warn: Project is vulnerable to: GHSA-pfrx-2q88-qq97","Warn: Project is vulnerable to: GHSA-vfrc-7r7c-w9mx","Warn: Project is vulnerable to: GHSA-7wwv-vh3v-89cq","Warn: Project is vulnerable to: GHSA-c429-5p7v-vgjp","Warn: Project is vulnerable to: GHSA-rc47-6667-2j5j","Warn: Project is vulnerable to: GHSA-c7qv-q95q-8v27","Warn: Project is vulnerable to: GHSA-2p57-rm9w-gvfp","Warn: Project is vulnerable to: GHSA-7r28-3m3f-r2pr","Warn: Project is vulnerable to: GHSA-r8j5-h5cx-65gg","Warn: Project is vulnerable to: GHSA-9c47-m6qq-7p4h","Warn: Project is vulnerable to: GHSA-76p3-8jx3-jpfq","Warn: Project is vulnerable to: GHSA-3rfm-jhwj-7488","Warn: Project is vulnerable to: GHSA-hhq3-ff78-jv3g","Warn: Project is vulnerable to: GHSA-p6mc-m468-83gw","Warn: Project is vulnerable to: GHSA-4wx3-54gh-9fr9","Warn: Project is vulnerable to: GHSA-7wpw-2hjm-89gp","Warn: Project is vulnerable to: GHSA-952p-6rrq-rcjv","Warn: Project is vulnerable to: GHSA-f8q6-p94x-37v3","Warn: Project is vulnerable to: GHSA-mwcw-c2x4-8c55","Warn: Project is vulnerable to: GHSA-5rrq-pxf6-6jx5","Warn: Project is vulnerable to: GHSA-8fr3-hfg3-gpgp","Warn: Project is vulnerable to: GHSA-gf8q-jrpm-jvxq","Warn: Project is vulnerable to: GHSA-2r2c-g63r-vccr","Warn: Project is vulnerable to: GHSA-cfm4-qjh2-4765","Warn: Project is vulnerable to: GHSA-x4jg-mjrx-434g","Warn: Project is vulnerable to: GHSA-5fw9-fq32-wv5p","Warn: Project is vulnerable to: GHSA-rp65-9cf3-cjxr","Warn: Project is vulnerable to: GHSA-76c9-3jph-rj3q","Warn: Project is vulnerable to: GHSA-j9fq-vwqv-2fm2","Warn: Project is vulnerable to: GHSA-pqw5-jmp5-px4v","Warn: Project is vulnerable to: GHSA-9wv6-86v2-598j","Warn: Project is vulnerable to: GHSA-rhx6-c78j-4q9w","Warn: Project is vulnerable to: GHSA-h7cp-r72f-jxh6","Warn: Project is vulnerable to: GHSA-v62p-rq8g-8h59","Warn: Project is vulnerable to: GHSA-566m-qj78-rww5","Warn: Project is vulnerable to: GHSA-7fh5-64p2-3v2j","Warn: Project is vulnerable to: GHSA-hwj9-h5mp-3pm3","Warn: Project is vulnerable to: GHSA-wvhm-4hhf-97x9","Warn: Project is vulnerable to: GHSA-h4hr-7fg3-h35w","Warn: Project is vulnerable to: GHSA-gj77-59wh-66hg","Warn: Project is vulnerable to: GHSA-hqhp-5p83-hx96","Warn: Project is vulnerable to: GHSA-3949-f494-cm99","Warn: Project is vulnerable to: GHSA-x7hr-w5r2-h6wg","Warn: Project is vulnerable to: GHSA-5q6m-3h65-w53x","Warn: Project is vulnerable to: GHSA-p8p7-x288-28g6","Warn: Project is vulnerable to: GHSA-gcx4-mw62-g8wm","Warn: Project is vulnerable to: GHSA-m6fv-jmcg-4jfg","Warn: Project is vulnerable to: GHSA-hxcc-f52p-wc94","Warn: Project is vulnerable to: GHSA-cm22-4g7w-348p","Warn: Project is vulnerable to: GHSA-g4rg-993r-mgx7","Warn: Project is vulnerable to: GHSA-c9g6-9335-x697","Warn: Project is vulnerable to: GHSA-w5hq-hm5m-4548","Warn: Project is vulnerable to: GHSA-52f5-9888-hmc6","Warn: Project is vulnerable to: GHSA-72xf-g2v4-qvf3","Warn: Project is vulnerable to: GHSA-7p7h-4mm5-852v","Warn: Project is vulnerable to: GHSA-wr3j-pwj9-hqq6","Warn: Project is vulnerable to: GHSA-cf66-xwfp-gvc4","Warn: Project is vulnerable to: GHSA-4v9v-hfq4-rm2v","Warn: Project is vulnerable to: GHSA-9jgg-88mc-972h","Warn: Project is vulnerable to: GHSA-3h5v-q93c-6h6q","Warn: Project is vulnerable to: GHSA-776f-qx25-q3cc","Warn: Project is vulnerable to: GHSA-p9pc-299p-vxgp"],"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}}]},"last_synced_at":"2025-08-16T23:13:37.829Z","repository_id":25425090,"created_at":"2025-08-16T23:13:37.829Z","updated_at":"2025-08-16T23:13:37.829Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33806987,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-02T02:00:07.132Z","response_time":109,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["jellyfish","pattern-library","react","style-guide"],"created_at":"2026-04-30T04:01:03.703Z","updated_at":"2026-06-02T05:00:47.174Z","avatar_url":"https://github.com/appearhere.png","language":"JavaScript","funding_links":[],"categories":["📦 Legacy \u0026 Inactive Projects"],"sub_categories":[],"readme":"# Bloom\n[![GitHub license](https://img.shields.io/badge/license-MIT-blue.svg)](https://github.com/appearhere/bloom/blob/master/LICENSE) [![Build Status](https://travis-ci.org/appearhere/bloom.svg?branch=master)](https://travis-ci.com/appearhere/bloom) [![Storybook](https://cdn.jsdelivr.net/gh/storybookjs/brand@master/badge/badge-storybook.svg)](https://appearhere.github.io/bloom) ![Lint](https://github.com/appearhere/bloom/workflows/Lint/badge.svg?branch=chore%2Fadd-flow-action\u0026event=pull_request)\n\nBloom acts as a central repository for reuseable React components and common styles to promote consistency across various projects at Appear Here. It also acts as a style guide to demonstrate how components should be used on their own and in combination with each other.\n\nIt's been bootstrapped with [create-react-app](https://github.com/facebookincubator/create-react-app), and has a number of additional features to make development easier.\n\n## Use Bloom in your project\n\nInclude Bloom in your projects like any other npm/yarn module:\n\n```shell\nnpm install @appearhere/bloom\n```\n\nor\n\n```shell\nyarn install @appearhere/bloom\n```\n\nYou'll now be able to require components from bloom like any other module:\n\n```javascript\nvar bloom = require('@appearhere/bloom');\nvar Link = require('@appearhere/bloom/components/Link/Link');\n\n// ES2016\nimport bloom from '@appearhere/bloom';\nimport Link from '@appearhere/bloom/components/Link/Link';\n```\n\nIf the module import fails like so, `You may need an appropriate loader to handle this file type`, you'll need to make sure you're transpiling Bloom along with the rest of your code:\n\n```javascript\n// BEFORE\n{\n  test: /\\.(js|jsx)$/,\n  include: './src',\n  loader: 'babel',\n  query: require('./babel.dev')\n},\n\n// AFTER\n{\n  test: /\\.(js|jsx)$/,\n  include: ['./src', './node_modules/@appearhere/bloom'],\n  loader: 'babel',\n  query: require('./babel.dev')\n}\n```\n\n## Running the style guide\nNote: Check engines from package.json for node version.\n\nInstall:\n```shell\nyarn install\n```\n\nTo build the style guide for deployment:\n\n```shell\nyarn run build\n```\n\nThis will create a static version of the style guide in `/build`.\n\nTo build the style guide for development:\n\n```shell\nyarn dev\n```\n\nThis will run the style guide, automatically opening your browser window at the root page. We use hot module reloading, so the vast majority of changes you'll make to components or the style guide itself will auto update on the page.\n\n**NOTE: changes to variables current require you to restart the project, as they're consumed on the initial run 🌚**\n\n## React Storybook\n\nAside from running the style guide locally on your machine, we also have the option to use [React Storybook](https://getstorybook.io/).\n\n\u003e React Storybook is a UI development environment for your React components. With it, you can visualize different states of your UI components and develop them interactively.\n\nTo use storybook, simply run:\n\n\n```shell\nyarn run storybook\n```\n\n## Building components\n\nAll components inside Bloom should:\n\n1. Be reuseable\n2. Have tests\n3. Have stories (as per React Storybook)\n\nComponent styles, tests and stories should live along side their components. Tests and stories are automatically picked up by their respective modules via a strict naming convention:\n\n```\n// Component\nLink.js\n\n// Styles\nLink.css\n\n// Tests\nLink.test.js\n\n// Story\nLink.story.js\n```\n\nTypically speaking, components should live in their own directory with the same name as the component, e.g., `components/Link/Link.js`. In some cases, you may find it makes more sense to have multiple components live in the same directory, where there is a tight relationship between them.\n\nWhen developing components, it's suggested your start by developing them in isolation, using React Storybook, before adding them to the style guide to demonstrate how they work together with other components. That's not to say you _have_ to do this, how you actually go about it is down to your personal preference.\n\n### Testing components\n\nCurrently, we're setup to use [Jest](http://facebook.github.io/jest/) for testing.\n\nAt minimum, **all** components should have a \"does it render\" test:\n\n```javascript\nimport React from 'react';\nimport ReactDOM from 'react-dom';\nimport Link from './Link';\n\nit('renders without crashing', () =\u003e {\n  const div = document.createElement('div');\n  ReactDOM.render(\u003cLink /\u003e, div);\n});\n\n```\n\nYou may also want to test class level functions:\n\n```javascript\nit('tracks the number of clicks', () =\u003e {\n  const div = document.createElement('div');\n  const instance = ReactDOM.render(\u003cLink /\u003e, div);\n\n  t.equals(instace.state.clicks, 0);\n  instance.trackClick();\n  t.equals(instace.state.clicks, 1);\n});\n```\n\nBe careful when adding tests; we want to ensure that a simple change to a component's mark up, e.g., changing the `className` value, don't result a ton of failing tests. We also need to be wary of when we're effectively testing the React internals as opposed to our own components.\n\n### Developing Bloom alongside your main project\n\nSometimes you might need to make changes to Bloom while you're working on your main project. Having to flip over to Bloom, PR the changes and get them published is slow and cumbersome. `yarn install ../path/to/bloom` is one option, but every time you make a change, you'll have to redo the command _and_ recompile.\n\n**Enter `yarn link`**\n\n`yarn link` uses symlinks to reference your local copy of Bloom in your main project, meaning changes are reflected in **every** project that consumes your local copy of Bloom.\n\nTo get started, head to your copy of Bloom and run\n\n```shell\nyarn link\n```\n\nThis will create a global symlink to your copy of Bloom. Head to your project and run to use this reference instead of the regularly installed package:\n\n```shell\nyarn link @appearhere/bloom\n```\n\nOne flaw with this, is that a Webpack loader's `include` property **won't** follow symlinks. Earlier in the README, we managed to get Bloom into your project like so:\n\n```javascript\n{\n  test: /\\.(js|jsx)$/,\n  include: ['./src', './node_modules/@appearhere/bloom'],\n  loader: 'babel',\n  query: require('./babel.dev')\n}\n```\n\nTo make this work, we instead need to ensure the include path to Bloom is absolute:\n\n```javascript\nconst pathToBloom = fs.realpathSync('./node_modules/@appearhere/bloom');\n\n{\n  test: /\\.(js|jsx)$/,\n  include: ['./src', pathToBloom],\n  loader: 'babel',\n  query: require('./babel.dev')\n}\n```\n\nAdditional bonus: if the loader you're using is setup to work with hot module reloading, changes to Bloom **will also get hot reloaded in your main project** 😍\n\n## Publishing Bloom\n\n### Pre `v1.0.0` / open sourcing\n\nBloom, as required by NPM, follows [Semvar](http://semver.org/). That said, given it has yet to reach a MVP state, only minor and patch versions will be incremented. This is because the whole project should be treated as **unstable**, i.e., we might change any component at a moments notice. Given that it will only be used internally for now, that's fine.\n\nIn this time, a Bloom release will be made, at most, once a day. When publishing Bloom to NPM, increment the minor or patch versions, publish then bump the version of Bloom used in our other projects. This should ensure we're always using the latest and greatest in our applications, and ensure that they never get too far out of sync.\n\nWhen the frequency of work on Bloom decreases to significantly enough, then consider releasing a `v1.0.0`. This should be when we're making very few changes to components already in the library and we're only adding new ones.\n\n### Post `v1.0.0` / open sourcing\n\nOnce we've released `v1.0.0` or open sourced the project, we'll adopt true Semvar. Ideally, we'll make releases based on a roadmap of some form, probably dictated by our internal sprints.\n\nSo as to not slow us down, we should continue to publish Bloom on a regular basis, but instead us [pre-releases](https://medium.com/@mbostock/prereleases-and-npm-e778fc5e2420#.6vr4xc28c), e.g., `v1.0.0-0.0.1`. The current thought is that the pre-release versions will follow a similar pattern to Semvar itself, i.e., major.minor.patch.\n\n### Making a release\n\nBloom uses Lerna to publish new versions of the library.\n\nTo publish a new version, pull down latest master, then run:\n\n1. `yarn build` (see below for which one to use)\n2. `lerna publish`\n\nWhen to use what:\n\n- `major`: A change where a consumer of this library will have to change their code to work with this new version\n- `minor`: Adding a new feature, or making a major internal change without outward-facing consequences\n- `patch`: Fixing a small bug, typo, or other small change\n\nDo not create tags as part of pull requests. Adding new features to master is different to publishing a version to yarn.\n\nMore info will be added here when we need to tackle the `v1.0.0` release.\n\n#### Adding a change log\n\nOnce you’ve pushed the new version to GitHub and published the release, head to [Bloom's releases](https://github.com/appearhere/bloom/releases/) and add a change log.\n\nYou can auto generate one by running:\n\n```bash\ngit --no-pager log [PREVIOUS_VERSION_TAG]..[NEW_VERSION_TAG] --pretty=format:'- %s %H ' --reverse --no-merges\n```\n\n### Post release\n\nAs part of the release process, Bloom will automatically be published to [Heroku](https://bloom-storybook.herokuapp.com/).\n\n## Why \"Bloom\"?\n\nIt's the collective name for Jellyfish; they're pretty dumb, [look cool](http://static2.businessinsider.com/image/55a7ee522acae7c23f8b4cf6/youtubers-caught-a-jellyfish-sting-in-slow-motion--and-what-they-saw-gave-a-scientist-goosebumps.jpg)\nand have a [form of immortality through regeneration](https://en.wikipedia.org/wiki/Turritopsis_dohrnii#Biological_immortality) which are all aspects of a good pattern library. `bloom.appearhere.co.uk` also sounds decent!\n\n## More information\n\nThe repo was bootstrapped with create-react-app, and you can find the readme that it ships with [here](Bootstrap.README.md). It's worth reading if you want to know more about the foundation of this project. Note that some of it might be out of date.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fappearhere%2Fbloom","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fappearhere%2Fbloom","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fappearhere%2Fbloom/lists"}