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

@syncify/cli

v1.0.0-alpha.1

Published

The new generation build tool for Shopify theme development.

Downloads

90

Readme

Syncify is a specialized tool designed for Shopify theme development. It offers an array of features that significantly enhance productivity, integration and workflow on the Shopify platform. Originally created to address the in-house mediocrity of OSS (theme dev) offerings from the Shopify team, Syncify exits as the superior alternative delivering an overall better, more flexible, and more powerful approach to webshop development.

Documentation: https://syncify.sh

Examples / Themes

The Syncify Straps github organization provides a collection of usage examples and starting point themes using Syncify. You can use the command line to generate new projects with the available straps. Refer to readme of each strap in the repositories.

Editor Intergration

For an integrated development experience in your text editor, please consider using the VSCode Liquid extension which has built-in support for Syncify. VSCode Liquid exists as a superior alternative to the Shopify backed extension and is maintained and created by the same author of Syncify.

Getting Help?

Join the Shopify Developers Discord and ask your questions in the # syncify channel under the projects tab. Connect with other developers, maintainers, and contributors already using Syncify in their projects or within their agency.

Installation

You can install Syncify as a development dependency or globally. There are a couple of different versions available, all of which can be consumed via the NPM Registry. Please consider using pnpm as your package manager for a faster and better experience with Syncify and NodeJS development.

More information at: syncify.sh/releases

Stable Release

The most stable and latest version of Syncify is available for consumption on the NPM Registry.

pnpm add @syncify/cli@latest -g

Nightly Release

The nightly releases of Syncify can be installed on the @next version via NPM Registry and available within next branch.

pnpm add @syncify/cli@next -g

Global Installations

Global installations of Syncify make the CLI binary available system-wide and are the preferred approach. Syncify will regularly check for version updates and notify you when new ones are available. If you're using a syncify.config.js (or .ts) configuration file for individual projects, install the @syncify/config package to access the defineConfig helper utility.

If you opt for a global installation of the nightly release builds, be aware that there might be breaking changes, and version checks occur more frequently, potentially leading to slower runtimes. For more details on how Syncify manages version control and publishing, please refer to the releases documentation.

Contributing

Contributions are welcome and appreciate! This project is a monorepo managed with pnpm, which handles dependency and workspace management. Dependencies follow the workspace protocol, ensuring a symlinked structure with pnpm managing NPM registry versions.

The packages directory contains modules consumed by the core syncify module. To contribute bug fixes or enhancements, you’ll need to fork or clone the entire project, as there are no plans to introduce and expose packages as separate sub-modules. Development is designed for use with VS Code, and maintaining consistency within this setup is encouraged.

While not required, if you wish to recreate the environment in which this project is developed then you can install and leverage the above additional third-party tooling.

Installation

  • Ensure pnpm is installed globally npm i pnpm -g
  • Leverage pnpm env if you need to align node versions
  • Clone this repository git clone https://github.com/panoply/syncify.git
  • Run pnpm i in the root directory

The project will be complied and all containing workspace packages will build during the postinstall operation.

Developing

All packages are compiled with ESBuild via tsup. You can cd into any package or alternatively you can run pnpm dev from workspace root to begin development on the core logic which lives in the /syncify directory. Projects contained the /packages directory are consumed by the core package (i.e, @syncify/cli) and are also available in isolated via the NPM Registry.

Per Package

pnpm dev                    Watch and build modes
pnpm build                  Build mode only (production)

Almost all packages will expose the above commands via package.json script, with some exceptions depending on module. The pnpm build command however is available within all modules.

Recursive (Workspace Root)

pnpm build                  Build production bundles for all modules and packages

Targeting (Workspace Root)

pnpm @acquire           <dev|build>              Targets the acquire config bundle
pnpm @kill              <dev|build>              Targets the process kill package
pnpm @update            <dev|build>              Targets the version check utility
pnpm @uws               <dev|build>              Targets the uWebsockets repackage
pnpm @hot               <dev|build>              Targets the HOT Reloading client
pnpm @turndown          <dev|build>              Targets the reversed markdown parser
pnpm @json              <dev|build>              Targets the JSON parser and differ
pnpm @timer             <dev|build>              Targets the timing utility
pnpm @ansi              <dev|build>              Targets the CLI enhancement package

Author / License

Syncify was created and is maintained by Νικολας Σαββιδης. Shopify has no affiliation with this project nor do they fund Syncify. Choosing to leverage Syncify helps keep independent projects alive and sends a clear message to Shopify and the teams tasked with enhancing theme development.

Acknowledgements

Special thanks to a couple of talented developers who have helped with Syncify. This project has been in the making for several years and if not for these individuals, it wouldn't of made it this far.

Donate / Sponsor

If you would like to donate or help support this project, then reach out to the folks working at Shopify on X, via the Developer Community or in the Partner slack and tell them that you use Syncify instead of the Shopify CLI

If you are an individual who would prefer to help financially, then please donate something to your local animal shelter and tell me about it on X. If you are a business, agency or acting on behalf of an enterprise then you can reach me via email or message me on X.

License

The project ships under Apache License, Version 2.0.