Skip to content

Commit af56d2f

Browse files
authored
Initial commit
0 parents  commit af56d2f

72 files changed

Lines changed: 17912 additions & 0 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.editorconfig

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
# editorconfig.org
2+
root = true
3+
4+
[*]
5+
indent_size = 2
6+
indent_style = space
7+
end_of_line = lf
8+
charset = utf-8
9+
trim_trailing_whitespace = true
10+
insert_final_newline = true
11+
12+
[*.md]
13+
trim_trailing_whitespace = false

.env.example

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
# Public URL, used for OG Image when running nuxt generate
2+
NUXT_PUBLIC_SITE_URL=

.github/workflows/ci.yml

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
name: ci
2+
3+
on: push
4+
5+
jobs:
6+
ci:
7+
runs-on: ${{ matrix.os }}
8+
9+
strategy:
10+
matrix:
11+
os: [ubuntu-latest]
12+
node: [22]
13+
14+
steps:
15+
- name: Checkout
16+
uses: actions/checkout@v6
17+
18+
- name: Install pnpm
19+
uses: pnpm/action-setup@v4
20+
21+
- name: Install node
22+
uses: actions/setup-node@v6
23+
with:
24+
node-version: ${{ matrix.node }}
25+
cache: pnpm
26+
27+
- name: Install dependencies
28+
run: pnpm install
29+
30+
- name: Lint
31+
run: pnpm run lint
32+
33+
- name: Typecheck
34+
run: pnpm run typecheck

.gitignore

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
# Nuxt dev/build outputs
2+
.output
3+
.data
4+
.nuxt
5+
.nitro
6+
.cache
7+
dist
8+
9+
# Node dependencies
10+
node_modules
11+
12+
# Logs
13+
logs
14+
*.log
15+
16+
# Misc
17+
.DS_Store
18+
.fleet
19+
.idea
20+
21+
# Local env files
22+
.env
23+
.env.*
24+
!.env.example
25+
26+
# VSC
27+
.history

LICENSE

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
MIT License
2+
3+
Copyright (c) 2025 Nuxt UI Templates
4+
5+
Permission is hereby granted, free of charge, to any person obtaining a copy
6+
of this software and associated documentation files (the "Software"), to deal
7+
in the Software without restriction, including without limitation the rights
8+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9+
copies of the Software, and to permit persons to whom the Software is
10+
furnished to do so, subject to the following conditions:
11+
12+
The above copyright notice and this permission notice shall be included in all
13+
copies or substantial portions of the Software.
14+
15+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21+
SOFTWARE.

README.md

Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
# Nuxt SaaS Template
2+
3+
[![Nuxt UI](https://img.shields.io/badge/Made%20with-Nuxt%20UI-00DC82?logo=nuxt&labelColor=020420)](https://ui.nuxt.com)
4+
5+
Fully built SaaS application to launch your next project with a landing page, a pricing page, a documentation and a blog powered by [Nuxt UI](https://ui.nuxt.com) components.
6+
7+
- [Live demo](https://saas-template.nuxt.dev/)
8+
- [Documentation](https://ui.nuxt.com/docs/getting-started/installation/nuxt)
9+
10+
<a href="https://saas-template.nuxt.dev/" target="_blank">
11+
<picture>
12+
<source media="(prefers-color-scheme: dark)" srcset="https://ui.nuxt.com/assets/templates/nuxt/saas-dark.png">
13+
<source media="(prefers-color-scheme: light)" srcset="https://ui.nuxt.com/assets/templates/nuxt/saas-light.png">
14+
<img alt="Nuxt SaaS Template" src="https://ui.nuxt.com/assets/templates/nuxt/saas-light.png">
15+
</picture>
16+
</a>
17+
18+
## Quick Start
19+
20+
```bash [Terminal]
21+
npm create nuxt@latest -- -t ui/saas
22+
```
23+
24+
## Deploy your own
25+
26+
[![Deploy with Vercel](https://vercel.com/button)](https://vercel.com/new/clone?repository-name=saas&repository-url=https%3A%2F%2Fgithub.com%2Fnuxt-ui-templates%2Fsaas&demo-image=https%3A%2F%2Fui.nuxt.com%2Fassets%2Ftemplates%2Fnuxt%2Fsaas-dark.png&demo-url=https%3A%2F%2Fsaas-template.nuxt.dev%2F&demo-title=Nuxt%20SaaS%20Template&demo-description=A%20SaaS%20template%20with%20landing%2C%20pricing%2C%20docs%20and%20blog%20powered%20by%20Nuxt%20Content.)
27+
28+
## Setup
29+
30+
Make sure to install the dependencies:
31+
32+
```bash
33+
pnpm install
34+
```
35+
36+
## Development Server
37+
38+
Start the development server on `http://localhost:3000`:
39+
40+
```bash
41+
pnpm dev
42+
```
43+
44+
## Production
45+
46+
Build the application for production:
47+
48+
```bash
49+
pnpm build
50+
```
51+
52+
Locally preview production build:
53+
54+
```bash
55+
pnpm preview
56+
```
57+
58+
Check out the [deployment documentation](https://nuxt.com/docs/getting-started/deployment) for more information.
59+
60+
## Renovate integration
61+
62+
Install [Renovate GitHub app](https://github.com/apps/renovate/installations/select_target) on your repository and you are good to go.

app/app.config.ts

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
export default defineAppConfig({
2+
ui: {
3+
colors: {
4+
primary: 'blue',
5+
neutral: 'slate'
6+
}
7+
}
8+
})

app/app.vue

Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,73 @@
1+
<script setup lang="ts">
2+
const colorMode = useColorMode()
3+
4+
const color = computed(() => colorMode.value === 'dark' ? '#020618' : 'white')
5+
6+
useHead({
7+
meta: [
8+
{ charset: 'utf-8' },
9+
{ name: 'viewport', content: 'width=device-width, initial-scale=1' },
10+
{ key: 'theme-color', name: 'theme-color', content: color }
11+
],
12+
link: [
13+
{ rel: 'icon', href: '/favicon.ico' }
14+
],
15+
htmlAttrs: {
16+
lang: 'en'
17+
}
18+
})
19+
20+
useSeoMeta({
21+
titleTemplate: '%s - Nuxt SaaS template',
22+
ogImage: 'https://ui.nuxt.com/assets/templates/nuxt/saas-light.png',
23+
twitterImage: 'https://ui.nuxt.com/assets/templates/nuxt/saas-light.png',
24+
twitterCard: 'summary_large_image'
25+
})
26+
27+
const { data: navigation } = await useAsyncData('navigation', () => queryCollectionNavigation('docs'), {
28+
transform: data => data.find(item => item.path === '/docs')?.children || []
29+
})
30+
const { data: files } = useLazyAsyncData('search', () => queryCollectionSearchSections('docs'), {
31+
server: false
32+
})
33+
34+
const links = [{
35+
label: 'Docs',
36+
icon: 'i-lucide-book',
37+
to: '/docs/getting-started'
38+
}, {
39+
label: 'Pricing',
40+
icon: 'i-lucide-credit-card',
41+
to: '/pricing'
42+
}, {
43+
label: 'Blog',
44+
icon: 'i-lucide-pencil',
45+
to: '/blog'
46+
}, {
47+
label: 'Changelog',
48+
icon: 'i-lucide-history',
49+
to: '/changelog'
50+
}]
51+
52+
provide('navigation', navigation)
53+
</script>
54+
55+
<template>
56+
<UApp>
57+
<NuxtLoadingIndicator />
58+
59+
<NuxtLayout>
60+
<NuxtPage />
61+
</NuxtLayout>
62+
63+
<ClientOnly>
64+
<LazyUContentSearch
65+
:files="files"
66+
shortcut="meta_k"
67+
:navigation="navigation"
68+
:links="links"
69+
:fuse="{ resultLimit: 42 }"
70+
/>
71+
</ClientOnly>
72+
</UApp>
73+
</template>

app/assets/css/main.css

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
@import "tailwindcss";
2+
@import "@nuxt/ui";
3+
4+
@source "../../../content/**/*";
5+
6+
@theme static {
7+
--font-sans: 'Public Sans', sans-serif;
8+
9+
--color-green-50: #EFFDF5;
10+
--color-green-100: #D9FBE8;
11+
--color-green-200: #B3F5D1;
12+
--color-green-300: #75EDAE;
13+
--color-green-400: #00DC82;
14+
--color-green-500: #00C16A;
15+
--color-green-600: #00A155;
16+
--color-green-700: #007F45;
17+
--color-green-800: #016538;
18+
--color-green-900: #0A5331;
19+
--color-green-950: #052E16;
20+
}
21+
22+
.dark {
23+
--ui-bg: var(--ui-color-neutral-950);
24+
--ui-bg-muted: var(--ui-color-neutral-900);
25+
--ui-bg-elevated: var(--ui-color-neutral-900);
26+
--ui-bg-accented: var(--ui-color-neutral-800);
27+
}

0 commit comments

Comments
 (0)