Neurophysiologically Pseudoscientific Manatee

    siteless
    TypeScript icon, indicating that this package has built-in type declarations

    0.14.4 • Public • Published

    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):

    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.

    Install

    npm i siteless

    Homepage

    piral.io

    DownloadsWeekly Downloads

    82

    Version

    0.14.4

    License

    MIT

    Unpacked Size

    3.54 MB

    Total Files

    10

    Last publish

    Collaborators

    • florianrappl