Astro static build, zero JS by default, with interactions declared in markup via Alpine.js
astro-njx-saas — Astro SaaS Template
By njbSaab
A product landing page starter template built on Astro, njX UI, and Alpine.js, including static page sections such as a hero area, navigation, feature cards, a reviews slider, a contact form, and theme switching.
Explore the design
Compare the page layouts and mobile experience. Open any screenshot for a closer look.
Actual screenshot captured by the server browser.
All pages & views 2
Screenshots show visual appearance; interactive behavior may differ.
What stands out
A quick read of the recorded project description.
Import njx-ui/css/style.min.css to use njX UI style classes, with no Tailwind or design tokens required
Built-in 9 themes, switched via data-theme and persisted with localStorage, restored before first paint
Includes sections such as a hero area, navigation, About, Features, Showcase, a Reviews slider, a contact form, social pills, a footer, and a one-time modal
The Reviews slider supports autoplay, a progress bar, previous/next buttons, dots, and touch swiping
Brand and links are centralized in src/config.ts, while data such as cards and slides are placed in arrays within each component
Template Details
astro-njx-saas is a product landing page starter template. The README states its technology stack is Astro (handling components and static builds), njX UI (npm package njx-ui, providing style classes for cards, gradients, sliders, modals, etc.), and Alpine.js (handling interactions such as theme switching, sliders, and forms, with state written directly in the markup). The template does not use Tailwind and does not require configuring design tokens; it only needs to import njx-ui/css/style.min.css.
The page content is assembled by src/pages/index.astro, including a fixed glass navigation bar, a full-viewport hero area (with a click-to-copy announcement pill and a gradient CTA), an About section in the form of metric cards, Features with three showcase card styles, a Showcase with a checklist plus a mini card grid, a Reviews slider with autoplay, a progress bar, and touch swiping, a contact form with a gradient shell and success message, social pills, a footer, and a configurable "star us" modal that appears only once per visitor.
Customization is concentrated in three places: src/config.ts manages the brand name, links, hero pill text, and modal delay (set to 0 to disable); data arrays inside the About, Features, Showcase, and Reviews components manage metrics, cards, checklists, and slides; headings and paragraphs are written directly in the corresponding section components. For themes, njX UI provides 9 themes, switched via the data-theme attribute on the html element; the navigation bar dots save the selection to localStorage, and the layout restores it before first paint to avoid flicker.
The README does not provide specific information about form backend handling, SEO metadata, accessibility support, browser compatibility scope, or testing methods. The template outputs statically, and the README says it can be deployed to any host; the build command is npm run build, the output directory is dist, and it gives deployment entry points for Vercel, Netlify, and Cloudflare Pages.
Is it right for your project?
Use Cases
- Quickly building a single-page landing page for a product launch or SaaS introduction
- A static marketing page that needs multi-theme switching and local memory
- An Astro project that wants to use an existing UI class library instead of writing styles from scratch
- As an example for learning Astro component organization and Alpine.js in-markup state management
Suitable For
- Developers using Astro who want to reduce style configuration work
- Teams that accept njX UI component classes and the Alpine.js interaction approach
- Projects that need static output and deployment to Vercel, Netlify, or Cloudflare Pages
- Landing page needs where brand replacement and content filling are completed with a small number of files
Getting started & customization
Use these recorded setup notes alongside the repository instructions for your chosen version.
- 1
After cloning the repository, run npm install, then start with npm run dev; the default address is http://localhost:4321
- 2
Modify the brand name, links, hero pill text, and modal delay in src/config.ts; set the delay to 0 to disable the modal
- 3
Replace copy and data in the arrays of the About, Features, Showcase, and Reviews components, as well as in each section component
- 4
The build command is npm run build, the output directory is dist, and it can be deployed to any static host
- 5
The README does not explain the contact form's submission backend or data handling; confirm or supplement this yourself before use
License & source material
Usage conditions & limitations
Free to use · keep license noticeThis entry covers the free version under the MIT license in the public repository; the free scope is the code of that version and does not mean that external services or third-party assets are free.
Must comply with when using
- You may use, modify, commercialize, and distribute the code of this version for free.
- When distributing copies or substantial portions of the code, retain the original author's copyright notice and the complete MIT license notice.
- The code is provided as is; warranties and limitations of liability are governed by the original license and applicable law.
Additional costs & items to verify
- The project materials mention an optional paid version or features; this entry only covers the public free code and does not include paid upgrades.
- Demo images, fonts, icons, and other third-party assets must be checked against their respective licenses and cannot be judged solely by the code's MIT license.
- External services such as domains, hosting, databases, payments, or AI may incur separate charges.
View Original Text Basis
https://github.com/njbSaab/astro-njx-saas/blob/main/LICENSEhttps://github.com/njbSaab/astro-njx-saas/blob/main/README.mdPermission is hereby granted, free of charge
Original License Text
Compiled by DeepSeek based on repository license and README ·2026-10-13. Results only cover the materials read; dependencies, images, fonts, and subsequent term changes are subject to their respective original texts.
Project checks & description sources
Template Information
- Source platforms
- GitHub
- Documentation and maintenance reference score
- More documented · 85 / 100
- Technologies
- Astro
- Website type
- SaaS · Corporate Website · Starter
How this score is calculated
Our heuristic uses license records (up to 30), a demo link (12), a preview (10), stars (15), recorded maintenance (15), description completeness (8), feature records (5) and classification data (5). It is not a code, security or performance test, or a Google score. A link does not establish tested functionality.
What to verify for this project
- Repository update recorded
- 2026-09-12
- Screenshot last checked
- 2026-10-13
A demo link is listed. Check it with your own content and viewport sizes; its presence does not confirm that forms, authentication or payments work.
The catalog identifies Astro as the primary stack. Check the actual dependency manifest and lockfile for versions and hosting requirements. These notes use recorded metadata, not a code audit or a deployment test.
Use a selection guide →How this description was prepared
AI-assisted description based on catalog records and repository material. Repository authors are not automatically the reviewers of this description.
Review declaration: codex-user-requested-batch-review-20261017 · 2026-10-16
Inspect the recorded source material
SHA-256: a18d6a41b06b4788ecaf20abcaceee10ba41b8162f397705cfc4d5b0ff3b584b
2026-10-13T00:33:32.292Z
Source file / repository# astro-njx-saas
[](https://vercel.com/new/clone?repository-url=https://github.com/njbSaab/astro-njx-saas) [](https://app.netlify.com/start/deploy?repository=https://github.com/njbSaab/astro-njx-saas)
> Part of **[njX Astro Themes](https://njxui.dev/themes)** — ecommerce storefronts & landing pages by one author, free today, Pro versions on the way.
**Product landing starter — Astro + [njX UI](https://njxui.dev) (npm: `njx-ui`) + Alpine.js.**
One CSS import, nine runtime themes, ~30 lines of custom chrome. Every element on
the page is an njX UI class; interactivity is plain Alpine `x-data` right in the
markup; Astro renders it all to static HTML.
**Live demo:** https://astro-njx-saas.pages.dev

## What you get
- **Full-viewport hero** with a signature glow, a click-to-copy announcement pill and gradient CTAs
- **Sticky glass navbar** — gradient logo, anchor links, 9-theme dot switcher, burger menu on mobile
- **About** with metric cards, **Features** on three showcase card styles (`card-aura` / `card-shine` / `card-outline-gradient`)
- **Showcase** — checklist + mini-card grid on a soft glow backdrop
- **Reviews slider** — autoplay, progress bar, prev/next, dots, touch swipe (library `.hero-slider` + one Alpine object)
- **Contact form** in a gradient shell with a success toast
- **Social pills**, footer, and a configurable once-per-visitor "star us" modal
## The stack
| Layer | Tool | Why |
| ----- | ---- | --- |
| Markup & build | [Astro](https://astro.build) | Components, zero JS by default |
| Look | [njX UI](https://njxui.dev) — 44 KB gzip | Ready blocks: cards, gradients, sliders, modals |
| Interactivity | [Alpine.js](https://alpinejs.dev) | Theme switch, slider, form — state lives in the markup |
No Tailwind, no design tokens to configure — `import 'njx-ui/css/style.min.css'`
and you're styling.
## Quick start
```bash
git clone https://github.com/njbSaab/astro-njx-saas my-landing
cd my-landing
npm install
npm run dev
```
Open `http://localhost:4321`, then make it yours:
1. **`src/config.ts`** — name, links, the hero pill snippet, star-popup delay (0 disables it).
2. **Data arrays** in `src/components/{About,Features,Showcase,Reviews}.astro` — metrics, cards, checklist, slides.
3. **Copy** — headings and paragraphs live right in the section components.
## What's inside
```
src/
├── config.ts # brand, links, popup — rebrand in one file
├── layouts/Layout.astro # njX UI import · theme restore · page-wide Alpine state
├── styles/global.css # site chrome: navbar, hero sizing, form shell (~380 lines)
├── components/
│ ├── Nav.astro # sticky header + mobile burger menu
│ ├── Hero.astro # 100dvh hero + copyable CDN pill
│ ├── About.astro # metric cards (data-driven)
│ ├── Features.astro # three showcase card styles (data-driven)
│ ├── Showcase.astro # checklist + mini-card grid (data-driven)
│ ├── Reviews.astro # hero-slider: autoplay · progress · dots · swipe
│ ├── Contact.astro # gradient form shell + success toast
│ ├── Social.astro # social-list-pills
│ ├── StarModal.astro # once-per-visitor modal (lib-modal-*)
│ └── Footer.astro
└── pages/index.astro # assembles the sections
```
## Themes
njX UI ships 9 themes driven by one attribute:
```html
<html data-theme="dark"> <!-- dark · light · red · blue · green · cyan · yellow · pink · purple -->
```
The navbar dots persist the choice to `localStorage`; the layout restores it
before first paint (no flash).
## Deploy
[](https://dash.cloudflare.com/?to=/:account/pages/new)
[](https://app.netlify.com/start/deploy?repository=https://github.com/njbSaab/astro-njx-saas)
Static output — any host works. Build command `npm run build`, output directory `dist`.
## Learn more
- njX UI documentation: https://njxui.dev/documentation (Astro 🚀 and Alpine 🏔 modes)
- Alpine presets for njX components: https://njxui.dev/documentation#njx-alpine
- More ready-made landings: https://njxui.dev/examples
- Classless sibling library: https://classless.njxui.dev
## License
MIT — use it for anything, no attribution required.
Explore similar templates
Compare previews and descriptions within the same stack and category.

astrowind
AstroWind is a free, open-source Astro starter theme using Astro and Tailwind CSS, released under the MIT license.
Astro · Blog
accessible-astro-starter
An accessibility-focused Astro 6 starter template with WCAG 2.2 AA practices, Tailwind CSS 4, TypeScript, Prettier, ESLint, form validation, blog and portfolio examples, and preference toggles for dark mode, high contrast, and reduced motion.
Astro · Blog

astro-erudite
astro-erudite is an opinionated, unstyled static blog template built with Astro and native CSS, with no UI or CSS framework and minimal dependencies.
Astro · Portfolio

astro-landing-page
An Astro + Tailwind CSS landing page example template with theme variables, dark mode, responsive layout, and Open Graph tags, under the MIT license, suitable as a starting point for single-page product, event, or corporate homepage sites.
Astro · Corporate Website

astro-shopify
A lightweight Shopify headless ecommerce starter template built with Astro and Svelte, integrating the Shopify Storefront API for product and inventory data, with built-in cart state management and basic add-to-cart and checkout flow.
Astro · E-commerce

brutal
Brutal is a neobrutalism Astro starter theme from ElianCodes, derived from the author's personal site and generalized. It includes a Markdown blog collection, build-time RSS and sitemap, image optimization, Tailwind CSS styling, and Biome checks, with no JavaScript by default.
Astro · Starter
