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

siteless

v1.7.0

Published

A drop-in module for painless microfrontends. Simple, efficient, elegant.

Downloads

520

Readme

Piral Logo

Siteless · GitHub license npm version

siteless is the most painless way of building microfrontends today. All using established technologies such as React and Piral.

Installation

siteless can be used on a simple website without any bundler or setup.

Just drop in the siteless JavaScript in an HTML file and you are done!

The script could be taken from, e.g., jsdelivr:

<script src="https://cdn.jsdelivr.net/npm/siteless/siteless.min.js"></script>

Then set up an inline script to call initializePiral handing over the only required argument: How to get your pilets!

const feedUrl = 'https://feed.piral.cloud/api/v1/pilet/empty';
initializePiral(() => fetch(feedUrl).then(res => res.json()).then(res => res.items));

Our CDN URLs are (latest version):

  • unpkg: https://unpkg.com/siteless/siteless.min.js
  • jsdelivr: https://cdn.jsdelivr.net/npm/siteless/siteless.min.js

Running

A full HTML file could look as follows:

<!DOCTYPE html>
<meta charset="UTF-8">
<title>My Siteless Site</title>
<div id="app"></div>
<script src="https://cdn.jsdelivr.net/npm/siteless/siteless.min.js"></script>
<script>
const feedUrl = 'https://feed.piral.cloud/api/v1/pilet/empty';
initializePiral(() => fetch(feedUrl).then(res => res.json()).then(res => res.items));
</script>

Building your First Pilet

Building your first pilet works exactly as with any other pilet in Piral.

First, initialize a new NPM project in an empty directory:

npm init pilet

Answer the survey question with siteless as your Piral instance. Now you can open your favorite IDE (e.g., for VS Code with code .) and start the dev server:

npm start

You can change the content of the src/index.tsx file or add new files as you like.

For instance, the file may look as follows:

import * as React from 'react';
import { Link } from 'react-router-dom';

export function setup(app) {
  app.registerTile(() => <Link to="/my-page">My Page</Link>);

  app.registerPage('/my-page', () => (
    <>
      <h1>My First Page</h1>
      <p>This is some content ...</p>
    </>
  ));
}

Once you are done you can build a production version:

npm run build

Even better you can publish your pilet to an active pilet feed, too.

Adding Layout

By definition, siteless does not impose an app shell model in the same sense that Piral does. Instead, siteless expects the microfrontends to be as isolated as possible. To still add layouting possibilities microfrontends can contribute layout pieces.

You can either compose from different microfrontends or use a single microfrontend to deliver all the common layout components.

Shared Dependencies

Only the most basic dependencies are implicitly shared. There is no explicit sharing of other dependencies. If dependencies should be shared then the import maps feature of Piral should be used.

Codesandbox

We've created a small codesandbox to allow you to play around with the concepts quite easily.

Edit Siteless Starter

License

siteless is released using the MIT license. For more information see the license file.