Skip to content
/ sssx Public

Fast Svelte Static Site X – SSG/SSR focused on SEO for multi-million pages websites

License

Notifications You must be signed in to change notification settings

sssx-dev/sssx

Repository files navigation

SSSX

Twitter URL Twitter URL Youtube URL

GitHub license npm npm downloads total npm downloads GitHub watchers GitHub stars GitHub forks open bugs total open issues GitHub pull requests

Fast Svelte Static Site X – SSG/SSR focused on SEO for multi-million pages websites

This framework is built to deliver fast generation of millions of pages and reduce deployment costs, while providing great development experience.

npm install -g sssx

Name

Definition Abbreviation
Svelte Static Site Generator SSSG
Svelte Server Side Rendering SSSR
= SSSX

Demo

YouTube demo

IMAGE ALT TEXT

Overview

Why another SSG?

This project was created from the need to manage sites with millions of pages, with making static site generation a primary use case, and SEO optimisation its first goal.

Philosophy

This framework was created to address several things that are lacking in current frameworks:

  1. SEO first
  2. Links and URLs first
  3. Designed for websites with millions of pages

Features

  • 🦕 First-class Deno support
  • 📈 Incremental updates sssx build <url>.
  • 🚀 It's fast! 1000ms or less spent on building each page.
  • 👍 Each page is it's own SPA. Fully autonomous.
  • 💦 Hydration using Svelte components.
  • 📦 Small size of JavaScript overhead, thanks to Svelte.
  • 💪 ESM first, no more enormous CommonJS bundles, thanks to Esbuild.
  • 🕸️ Out of box SEO features: metatags, i18n, web vitals, robots, sitemap, etc.
  • 🏠 Host anywhere. It's just HTML files with bunch of CSS and JS files.
  • ⚡️ You can generate one URL or millions. No need to rebuild whole website each time.
  • 😎 Development Experience is our priority!
  • 5️⃣ Supports Svelte 5.

Cluster mode

To run SSSX in cluster mode to use all available CPU cores use the following command:

sssx cluster

Here's a demonstration of generating 1000+ URLs under 30 seconds:

1000 urls in cluster mode in real time

Documentation

When you render millions of static pages, you don't want to rerender all of them each time. SSSX enables you to finetune which pages has to be updated and when.

Structure

This repository is structured as a monorepo and uses workspaces.

Packages

  • sssx main package
  • example Example website project built with SSSX

Getting started

To run an example project use the following:

cd apps/example-blog
npm install
npx sssx dev open

Run build cluster using deno:

deno \
    --allow-read \
    --allow-env \
    --allow-sys \
    --allow-write \
    --allow-run \
    ../../node_modules/.bin/sssx cluster

Development

cd packages/example
../sssx/src/cli.ts dev open

Helper URL

/__debug you can access __debug page to see all existing routes. It only works in dev mode.

Contributing

PRs are welcome!

License

Copyright © 2022-2024 Eugene Hauptmann

MIT