Compare commits
10 commits
Author | SHA1 | Date | |
---|---|---|---|
|
fc742b787a | ||
|
9e3e083f2f | ||
|
8b9a808c31 | ||
|
738f2ce375 | ||
|
60c5c47750 | ||
|
535221555f | ||
|
89c6d73598 | ||
|
425ed160f0 | ||
|
a89df57429 | ||
|
3a570e36d9 |
65
README.md
|
@ -2,7 +2,7 @@
|
||||||
|
|
||||||
A modern and elegant Hugo theme specifically designed for SaaS websites. Built with TailwindCSS, this theme provides a clean, professional look while maintaining excellent performance and customization options.
|
A modern and elegant Hugo theme specifically designed for SaaS websites. Built with TailwindCSS, this theme provides a clean, professional look while maintaining excellent performance and customization options.
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
|
@ -19,6 +19,7 @@ A modern and elegant Hugo theme specifically designed for SaaS websites. Built w
|
||||||
- 🎯 Perfect for SaaS and business websites
|
- 🎯 Perfect for SaaS and business websites
|
||||||
- 🛠 Easy to customize
|
- 🛠 Easy to customize
|
||||||
- 📦 No jQuery, minimal JavaScript
|
- 📦 No jQuery, minimal JavaScript
|
||||||
|
- 📊 Google Analytics support
|
||||||
|
|
||||||
## Requirements
|
## Requirements
|
||||||
|
|
||||||
|
@ -42,39 +43,40 @@ git init
|
||||||
git submodule add https://github.com/chaoming/hugo-saasify-theme themes/hugo-saasify-theme
|
git submodule add https://github.com/chaoming/hugo-saasify-theme themes/hugo-saasify-theme
|
||||||
```
|
```
|
||||||
|
|
||||||
### 3. Install dependencies
|
### 3. Example Site (Optional)
|
||||||
|
|
||||||
|
The theme comes with a fully functional example site that demonstrates its features and capabilities. You can use this as a reference when building your own site.
|
||||||
|
|
||||||
|
### Using the Example Site
|
||||||
|
|
||||||
|
The example site provides a great starting point to understand how to:
|
||||||
|
- Structure your content
|
||||||
|
- Use different page layouts
|
||||||
|
- Configure navigation menus
|
||||||
|
- Set up site parameters
|
||||||
|
- Implement common SaaS website features
|
||||||
|
|
||||||
|
1. Copy the example site content:
|
||||||
|
```bash
|
||||||
|
cp -r themes/hugo-saasify-theme/exampleSite/* .
|
||||||
|
```
|
||||||
|
|
||||||
|
2. The example site includes:
|
||||||
|
- Complete content structure with sample pages
|
||||||
|
- Blog posts with various layouts
|
||||||
|
- Feature pages
|
||||||
|
- Career/Jobs section
|
||||||
|
- Pricing page
|
||||||
|
- Company information page
|
||||||
|
- Properly configured hugo.toml
|
||||||
|
|
||||||
|
### 4. Install dependencies
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# Copy package.json and other config files to your site root
|
# Copy package.json and other config files to your site root
|
||||||
cp themes/hugo-saasify-theme/package.json .
|
cp themes/hugo-saasify-theme/package.json .
|
||||||
cp themes/hugo-saasify-theme/postcss.config.js .
|
cp themes/hugo-saasify-theme/postcss.config.js .
|
||||||
cp themes/hugo-saasify-theme/tailwind.config.js .
|
cp themes/hugo-saasify-theme/tailwind.config.copy.js ./tailwind.config.js
|
||||||
|
|
||||||
# Update tailwind.config.js with the following content:
|
|
||||||
```
|
|
||||||
|
|
||||||
```js
|
|
||||||
/** @type {import('tailwindcss').Config} */
|
|
||||||
module.exports = {
|
|
||||||
presets: [require('./themes/hugo-saasify-theme/tailwind.config.js')],
|
|
||||||
content: [
|
|
||||||
"./themes/hugo-saasify-theme/layouts/**/*.html",
|
|
||||||
"./layouts/**/*.html",
|
|
||||||
"./content/**/*.{html,md}"
|
|
||||||
],
|
|
||||||
theme: {
|
|
||||||
extend: {
|
|
||||||
fontFamily: {
|
|
||||||
sans: ['Inter', 'system-ui', 'sans-serif'],
|
|
||||||
heading: ['Plus Jakarta Sans', 'sans-serif'],
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
plugins: [
|
|
||||||
require('@tailwindcss/forms'),
|
|
||||||
require('@tailwindcss/typography'),
|
|
||||||
],
|
|
||||||
}
|
|
||||||
```
|
```
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
|
@ -82,7 +84,7 @@ module.exports = {
|
||||||
npm install
|
npm install
|
||||||
```
|
```
|
||||||
|
|
||||||
### 4. Configure your Hugo site
|
### 5. Configure your Hugo site
|
||||||
|
|
||||||
Create or update your `hugo.toml` with the following configuration:
|
Create or update your `hugo.toml` with the following configuration:
|
||||||
|
|
||||||
|
@ -127,6 +129,8 @@ enableGitInfo = true # Enable Git info for lastmod
|
||||||
description = "Your site description"
|
description = "Your site description"
|
||||||
author = "Your Name"
|
author = "Your Name"
|
||||||
logo = "/images/logo.svg" # Path to your logo
|
logo = "/images/logo.svg" # Path to your logo
|
||||||
|
# Google Analytics ID (e.g., "G-XXXXXXXXXX")
|
||||||
|
googleAnalytics = "G-XXXXXXXXXX" # Only enabled in production
|
||||||
|
|
||||||
# Header Configuration
|
# Header Configuration
|
||||||
[params.header]
|
[params.header]
|
||||||
|
@ -196,6 +200,7 @@ This configuration includes:
|
||||||
- Header configuration with logo and navigation
|
- Header configuration with logo and navigation
|
||||||
- Call-to-action (CTA) sections
|
- Call-to-action (CTA) sections
|
||||||
- Social media links
|
- Social media links
|
||||||
|
- Google Analytics configuration (only enabled in production)
|
||||||
- **Navigation Menu**: Main menu structure with dropdown support
|
- **Navigation Menu**: Main menu structure with dropdown support
|
||||||
|
|
||||||
## Development
|
## Development
|
||||||
|
|
5
exampleSite/archetypes/default.md
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
+++
|
||||||
|
date = '{{ .Date }}'
|
||||||
|
draft = true
|
||||||
|
title = '{{ replace .File.ContentBaseName "-" " " | title }}'
|
||||||
|
+++
|
187
exampleSite/assets/css/main.css
Normal file
|
@ -0,0 +1,187 @@
|
||||||
|
@tailwind base;
|
||||||
|
@tailwind components;
|
||||||
|
@tailwind utilities;
|
||||||
|
|
||||||
|
@layer base {
|
||||||
|
html {
|
||||||
|
@apply scroll-smooth;
|
||||||
|
}
|
||||||
|
|
||||||
|
body {
|
||||||
|
@apply font-sans text-gray-700 antialiased;
|
||||||
|
}
|
||||||
|
|
||||||
|
h1, h2, h3, h4, h5, h6 {
|
||||||
|
@apply font-heading font-bold text-gray-900;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@layer utilities {
|
||||||
|
.rounded-lg {
|
||||||
|
border-radius: 2rem;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@layer components {
|
||||||
|
.cta-section {
|
||||||
|
padding-top: 3rem;
|
||||||
|
padding-bottom: 3rem;
|
||||||
|
margin-top: 2rem;
|
||||||
|
margin-bottom: 2rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.cta-gradient {
|
||||||
|
background: linear-gradient(calc(var(--gradient-angle) * 1deg), var(--gradient-from), var(--gradient-to));
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn {
|
||||||
|
@apply inline-flex items-center justify-center px-6 py-3 font-medium transition duration-200 ease-in-out;
|
||||||
|
border-radius: 2rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn-primary {
|
||||||
|
@apply btn bg-primary-600 text-white hover:bg-primary-700 hover:scale-105;
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn-secondary {
|
||||||
|
@apply btn bg-secondary-600 text-white hover:bg-secondary-700 hover:scale-105;
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn-outline {
|
||||||
|
@apply btn border-2 border-primary-600 text-primary-600 hover:scale-105;
|
||||||
|
}
|
||||||
|
|
||||||
|
.container {
|
||||||
|
@apply mx-auto px-4 sm:px-6 lg:px-8 max-w-7xl;
|
||||||
|
}
|
||||||
|
|
||||||
|
.section {
|
||||||
|
@apply py-16 md:py-24;
|
||||||
|
}
|
||||||
|
|
||||||
|
.card {
|
||||||
|
@apply bg-white p-6 transition duration-200 hover:shadow-md;
|
||||||
|
border-radius: 2rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.nav-link {
|
||||||
|
@apply text-gray-600 hover:text-primary-600 font-bold transition duration-200;
|
||||||
|
}
|
||||||
|
|
||||||
|
.feature-grid {
|
||||||
|
@apply grid gap-8 md:grid-cols-2 lg:grid-cols-3;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Blog and Syntax Highlighting Styles */
|
||||||
|
.highlight {
|
||||||
|
@apply text-sm font-mono text-gray-200;
|
||||||
|
}
|
||||||
|
|
||||||
|
.highlight table {
|
||||||
|
@apply w-full border-separate border-spacing-0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.highlight table td {
|
||||||
|
@apply p-0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.highlight table td:first-child {
|
||||||
|
@apply pr-4 text-right select-none text-gray-500 border-r border-gray-700;
|
||||||
|
}
|
||||||
|
|
||||||
|
.highlight table td:last-child {
|
||||||
|
@apply pl-4 w-full;
|
||||||
|
}
|
||||||
|
|
||||||
|
.highlight .k, .highlight .kd {
|
||||||
|
@apply text-purple-400 font-semibold;
|
||||||
|
}
|
||||||
|
|
||||||
|
.highlight .nf, .highlight .nx {
|
||||||
|
@apply text-blue-400;
|
||||||
|
}
|
||||||
|
|
||||||
|
.highlight .s, .highlight .s1, .highlight .s2 {
|
||||||
|
@apply text-green-400;
|
||||||
|
}
|
||||||
|
|
||||||
|
.highlight .mi, .highlight .mf {
|
||||||
|
@apply text-orange-400;
|
||||||
|
}
|
||||||
|
|
||||||
|
.highlight .c, .highlight .c1, .highlight .cm {
|
||||||
|
@apply text-gray-500 italic;
|
||||||
|
}
|
||||||
|
|
||||||
|
.highlight .o {
|
||||||
|
@apply text-yellow-400;
|
||||||
|
}
|
||||||
|
|
||||||
|
.highlight .p {
|
||||||
|
@apply text-gray-400;
|
||||||
|
}
|
||||||
|
|
||||||
|
.prose {
|
||||||
|
@apply max-w-none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.prose h1, .prose h2, .prose h3, .prose h4 {
|
||||||
|
@apply font-heading font-bold text-gray-900;
|
||||||
|
}
|
||||||
|
|
||||||
|
.prose h1 {
|
||||||
|
@apply text-4xl mb-8;
|
||||||
|
}
|
||||||
|
|
||||||
|
.prose h2 {
|
||||||
|
@apply text-3xl mt-12 mb-6;
|
||||||
|
}
|
||||||
|
|
||||||
|
.prose h3 {
|
||||||
|
@apply text-2xl mt-8 mb-4;
|
||||||
|
}
|
||||||
|
|
||||||
|
.prose p {
|
||||||
|
@apply text-gray-700 leading-relaxed mb-6;
|
||||||
|
}
|
||||||
|
|
||||||
|
.prose a {
|
||||||
|
@apply text-primary-600 hover:text-primary-700 no-underline;
|
||||||
|
}
|
||||||
|
|
||||||
|
.prose ul, .prose ol {
|
||||||
|
@apply my-6 ml-6;
|
||||||
|
}
|
||||||
|
|
||||||
|
.prose li {
|
||||||
|
@apply mb-2;
|
||||||
|
}
|
||||||
|
|
||||||
|
.prose blockquote {
|
||||||
|
@apply border-l-4 border-gray-200 pl-4 italic text-gray-700 my-8;
|
||||||
|
}
|
||||||
|
|
||||||
|
.prose img {
|
||||||
|
@apply rounded-lg shadow-lg my-8;
|
||||||
|
}
|
||||||
|
|
||||||
|
.prose code:not(pre code) {
|
||||||
|
@apply bg-gray-100 text-gray-900 px-1.5 py-0.5 rounded text-sm font-mono;
|
||||||
|
}
|
||||||
|
|
||||||
|
.table-of-contents {
|
||||||
|
@apply bg-gray-50 p-6 rounded-lg my-8;
|
||||||
|
}
|
||||||
|
|
||||||
|
.table-of-contents nav {
|
||||||
|
@apply space-y-2;
|
||||||
|
}
|
||||||
|
|
||||||
|
.table-of-contents a {
|
||||||
|
@apply text-gray-700 hover:text-primary-600 no-underline;
|
||||||
|
}
|
||||||
|
|
||||||
|
.table-of-contents ul {
|
||||||
|
@apply list-none ml-4 space-y-2;
|
||||||
|
}
|
||||||
|
}
|
94
exampleSite/content/_index.md
Normal file
|
@ -0,0 +1,94 @@
|
||||||
|
---
|
||||||
|
title: Home
|
||||||
|
client_logos:
|
||||||
|
- name: "Customer 1"
|
||||||
|
logo: "/images/logos/customer-1.png"
|
||||||
|
- name: "Customer 2"
|
||||||
|
logo: "/images/logos/customer-2.png"
|
||||||
|
- name: "Customer 3"
|
||||||
|
logo: "/images/logos/customer-3.png"
|
||||||
|
- name: "Customer 4"
|
||||||
|
logo: "/images/logos/customer-4.png"
|
||||||
|
- name: "Customer 5"
|
||||||
|
logo: "/images/logos/customer-5.png"
|
||||||
|
testimonials:
|
||||||
|
- name: "John Smith"
|
||||||
|
title: "CTO at TechStartup"
|
||||||
|
avatar: "/images/testimonial-1.svg"
|
||||||
|
quote: "We built our SaaS website in record time. The performance is incredible, and our users love the modern, clean design."
|
||||||
|
- name: "Sarah Johnson"
|
||||||
|
title: "Founder at WebFlow"
|
||||||
|
avatar: "/images/testimonial-1.svg"
|
||||||
|
quote: "The combination of Hugo and TailwindCSS delivers lightning-fast performance. Our website loads instantly, which has significantly improved our conversion rates."
|
||||||
|
- name: "Michael Chen"
|
||||||
|
title: "Lead Developer at CloudTech"
|
||||||
|
avatar: "/images/testimonial-1.svg"
|
||||||
|
quote: "This theme made it easy to create a professional SaaS website. The build times are incredibly fast, and the code is clean and maintainable."
|
||||||
|
---
|
||||||
|
|
||||||
|
{{< hero
|
||||||
|
headline="Build Your SaaS Website"
|
||||||
|
sub_headline="Create stunning, responsive websites that load instantly. Built with Hugo and TailwindCSS for maximum performance and flexibility."
|
||||||
|
primary_button_text="Get Started Free"
|
||||||
|
primary_button_url="#"
|
||||||
|
secondary_button_text="View Demo"
|
||||||
|
secondary_button_url="#"
|
||||||
|
hero_image="/images/hero-dashboard.svg"
|
||||||
|
gradient-from="#dbeafe"
|
||||||
|
gradient-to="#f3e8ff"
|
||||||
|
gradient-angle="180"
|
||||||
|
>}}
|
||||||
|
|
||||||
|
{{< client-logos animate="true" >}}
|
||||||
|
|
||||||
|
{{< features-section
|
||||||
|
title="Modern Features for Modern Websites"
|
||||||
|
description="Discover how our theme helps you build fast, beautiful SaaS websites with ease."
|
||||||
|
>}}
|
||||||
|
|
||||||
|
{{< feature
|
||||||
|
title="Lightning-Fast Performance"
|
||||||
|
description="Leverage Hugo's blazing-fast build times and optimized output. Your website loads instantly, providing an exceptional user experience."
|
||||||
|
badge="Performance"
|
||||||
|
badgeColor="#2563eb"
|
||||||
|
image="/images/feature-1.svg"
|
||||||
|
buttonText="Learn More"
|
||||||
|
buttonLink="/features/performance/"
|
||||||
|
features="Sub-second page loads,Optimized assets,Minimal JavaScript,CDN-ready output"
|
||||||
|
imagePosition="right"
|
||||||
|
>}}
|
||||||
|
|
||||||
|
{{< feature
|
||||||
|
title="Beautiful Design System"
|
||||||
|
description="Create stunning user interfaces with our comprehensive design system built on TailwindCSS. Customize everything to match your brand."
|
||||||
|
badge="Design"
|
||||||
|
badgeColor="#7c3aed"
|
||||||
|
image="/images/feature-2.svg"
|
||||||
|
buttonText="Learn More"
|
||||||
|
buttonLink="/features/design-system/"
|
||||||
|
features="Modern UI components,Responsive design,Custom typography,Flexible layouts"
|
||||||
|
imagePosition="left"
|
||||||
|
>}}
|
||||||
|
|
||||||
|
{{< feature
|
||||||
|
title="Developer Experience"
|
||||||
|
description="Enjoy a seamless development experience with hot reload, component-based architecture, and clean, maintainable code."
|
||||||
|
badge="Development"
|
||||||
|
badgeColor="#16a34a"
|
||||||
|
image="/images/feature-3.svg"
|
||||||
|
buttonText="Learn More"
|
||||||
|
buttonLink="/features/developer-experience/"
|
||||||
|
features="Component system,Easy customization,Clean code,Detailed documentation"
|
||||||
|
imagePosition="right"
|
||||||
|
>}}
|
||||||
|
|
||||||
|
{{< /features-section >}}
|
||||||
|
|
||||||
|
{{< testimonials
|
||||||
|
title="Trusted by Modern Web Teams"
|
||||||
|
description="See how teams are building better websites with our theme."
|
||||||
|
animate="true"
|
||||||
|
background-color="#f1f5f9"
|
||||||
|
>}}
|
||||||
|
|
||||||
|
{{< cta >}}
|
170
exampleSite/content/blog/content-management-hugo.md
Normal file
|
@ -0,0 +1,170 @@
|
||||||
|
---
|
||||||
|
title: "Content Management in Hugo: Best Practices"
|
||||||
|
date: 2023-07-24
|
||||||
|
author: "Michael Park"
|
||||||
|
description: "Learn effective strategies for managing content in Hugo, from organizing your content structure to implementing taxonomies and creating dynamic content relationships."
|
||||||
|
categories: ["Content"]
|
||||||
|
tags: ["hugo", "content-management", "organization", "workflow"]
|
||||||
|
featured_image: "/images/blog/blog-5.jpg"
|
||||||
|
---
|
||||||
|
|
||||||
|
{{< toc >}}
|
||||||
|
|
||||||
|
## Introduction
|
||||||
|
|
||||||
|
Effective content management is crucial for maintaining a scalable Hugo site. This guide covers best practices for organizing and managing your content.
|
||||||
|
|
||||||
|
## Content Organization
|
||||||
|
|
||||||
|
### Directory Structure
|
||||||
|
|
||||||
|
Create a logical content hierarchy:
|
||||||
|
|
||||||
|
{{< code text "Content Structure" >}}
|
||||||
|
content/
|
||||||
|
├── blog/
|
||||||
|
│ ├── tech/
|
||||||
|
│ ├── tutorials/
|
||||||
|
│ └── news/
|
||||||
|
├── products/
|
||||||
|
├── about/
|
||||||
|
└── docs/
|
||||||
|
{{< /code >}}
|
||||||
|
|
||||||
|
### Front Matter Templates
|
||||||
|
|
||||||
|
Use archetypes to standardize content:
|
||||||
|
|
||||||
|
{{< code yaml "archetypes/blog.md" >}}
|
||||||
|
---
|
||||||
|
title: "{{ replace .Name "-" " " | title }}"
|
||||||
|
date: {{ .Date }}
|
||||||
|
draft: true
|
||||||
|
categories: []
|
||||||
|
tags: []
|
||||||
|
featured_image: ""
|
||||||
|
description: ""
|
||||||
|
author: ""
|
||||||
|
---
|
||||||
|
|
||||||
|
{{</* toc */>}}
|
||||||
|
|
||||||
|
## Introduction
|
||||||
|
|
||||||
|
[Your introduction here]
|
||||||
|
|
||||||
|
## Main Content
|
||||||
|
|
||||||
|
[Your content here]
|
||||||
|
{{< /code >}}
|
||||||
|
|
||||||
|
## Content Types
|
||||||
|
|
||||||
|
### Page Bundles
|
||||||
|
|
||||||
|
Organize related content together:
|
||||||
|
- Group images with content
|
||||||
|
- Manage page resources
|
||||||
|
- Maintain content hierarchy
|
||||||
|
|
||||||
|
### Taxonomies
|
||||||
|
|
||||||
|
Create meaningful content relationships:
|
||||||
|
|
||||||
|
{{< code toml "config.toml" >}}
|
||||||
|
[taxonomies]
|
||||||
|
category = "categories"
|
||||||
|
tag = "tags"
|
||||||
|
series = "series"
|
||||||
|
author = "authors"
|
||||||
|
{{< /code >}}
|
||||||
|
|
||||||
|
## Content Workflow
|
||||||
|
|
||||||
|
### Draft Management
|
||||||
|
|
||||||
|
1. **Creating Drafts**
|
||||||
|
```bash
|
||||||
|
hugo new blog/my-draft-post.md
|
||||||
|
```
|
||||||
|
|
||||||
|
2. **Preview Drafts**
|
||||||
|
```bash
|
||||||
|
hugo server -D
|
||||||
|
```
|
||||||
|
|
||||||
|
3. **Publishing Content**
|
||||||
|
- Update front matter
|
||||||
|
- Review content
|
||||||
|
- Deploy changes
|
||||||
|
|
||||||
|
### Content Updates
|
||||||
|
|
||||||
|
Maintain content freshness:
|
||||||
|
|
||||||
|
1. **Regular Reviews**
|
||||||
|
- Check for outdated information
|
||||||
|
- Update screenshots
|
||||||
|
- Verify external links
|
||||||
|
|
||||||
|
2. **Version Control**
|
||||||
|
- Track content changes
|
||||||
|
- Collaborate with team
|
||||||
|
- Maintain history
|
||||||
|
|
||||||
|
## Dynamic Content
|
||||||
|
|
||||||
|
### Related Content
|
||||||
|
|
||||||
|
{{< code html "layouts/partials/related.html" >}}
|
||||||
|
{{ $related := .Site.RegularPages.Related . | first 3 }}
|
||||||
|
{{ with $related }}
|
||||||
|
<h3>Related Posts</h3>
|
||||||
|
<ul>
|
||||||
|
{{ range . }}
|
||||||
|
<li><a href="{{ .RelPermalink }}">{{ .Title }}</a></li>
|
||||||
|
{{ end }}
|
||||||
|
</ul>
|
||||||
|
{{ end }}
|
||||||
|
{{< /code >}}
|
||||||
|
|
||||||
|
### Content Reuse
|
||||||
|
|
||||||
|
Create reusable content snippets:
|
||||||
|
|
||||||
|
{{< code html "layouts/shortcodes/notice.html" >}}
|
||||||
|
<div class="notice notice-{{ .Get 0 }}">
|
||||||
|
{{ .Inner | markdownify }}
|
||||||
|
</div>
|
||||||
|
{{< /code >}}
|
||||||
|
|
||||||
|
## SEO and Metadata
|
||||||
|
|
||||||
|
1. **Title Optimization**
|
||||||
|
2. **Meta Descriptions**
|
||||||
|
3. **URL Structure**
|
||||||
|
4. **Image Alt Text**
|
||||||
|
|
||||||
|
## Content Backup
|
||||||
|
|
||||||
|
### Backup Strategies
|
||||||
|
|
||||||
|
1. **Version Control**
|
||||||
|
- Git repository
|
||||||
|
- Regular commits
|
||||||
|
- Remote backups
|
||||||
|
|
||||||
|
2. **External Storage**
|
||||||
|
- Cloud storage
|
||||||
|
- Local backups
|
||||||
|
- Asset management
|
||||||
|
|
||||||
|
## Conclusion
|
||||||
|
|
||||||
|
Good content management practices are essential for maintaining a successful Hugo site. By following these guidelines, you can create an efficient and scalable content workflow.
|
||||||
|
|
||||||
|
## Resources
|
||||||
|
|
||||||
|
- [Hugo Content Management Documentation](https://gohugo.io/content-management/)
|
||||||
|
- [Hugo Archetypes Guide](https://gohugo.io/content-management/archetypes/)
|
||||||
|
- [Hugo Taxonomies Documentation](https://gohugo.io/content-management/taxonomies/)
|
121
exampleSite/content/blog/customizing-your-hugo-theme.md
Normal file
|
@ -0,0 +1,121 @@
|
||||||
|
---
|
||||||
|
title: "Customizing Your Hugo Theme: A Deep Dive"
|
||||||
|
date: 2023-07-21
|
||||||
|
author: "Jane Smith"
|
||||||
|
description: "Learn how to customize your Hugo theme to create a unique website that matches your brand and requirements."
|
||||||
|
categories: ["Development"]
|
||||||
|
tags: ["hugo", "themes", "customization", "web-design"]
|
||||||
|
featured_image: "/images/blog/blog-2.webp"
|
||||||
|
---
|
||||||
|
|
||||||
|
{{< toc >}}
|
||||||
|
|
||||||
|
## Introduction
|
||||||
|
|
||||||
|
While Hugo comes with many beautiful themes, you'll often want to customize them to match your specific needs. This guide will walk you through the process of customizing your Hugo theme effectively.
|
||||||
|
|
||||||
|
## Understanding Hugo's Theme Structure
|
||||||
|
|
||||||
|
Before diving into customization, it's important to understand how Hugo themes are structured.
|
||||||
|
|
||||||
|
## Basic Theme Customization
|
||||||
|
|
||||||
|
### 1. Colors and Typography
|
||||||
|
|
||||||
|
The easiest way to start customizing your theme is by modifying the CSS:
|
||||||
|
|
||||||
|
{{< code css "assets/css/main.css" >}}
|
||||||
|
:root {
|
||||||
|
--primary-color: #007bff;
|
||||||
|
--secondary-color: #6c757d;
|
||||||
|
--font-family: 'Inter', sans-serif;
|
||||||
|
}
|
||||||
|
|
||||||
|
body {
|
||||||
|
font-family: var(--font-family);
|
||||||
|
color: #333;
|
||||||
|
}
|
||||||
|
{{< /code >}}
|
||||||
|
|
||||||
|
### 2. Layout Modifications
|
||||||
|
|
||||||
|
You can override any layout file from the theme by creating a matching file in your site's layouts directory.
|
||||||
|
|
||||||
|
## Advanced Customization Techniques
|
||||||
|
|
||||||
|
### Creating Custom Shortcodes
|
||||||
|
|
||||||
|
Shortcodes are a powerful way to add custom functionality:
|
||||||
|
|
||||||
|
{{< code html "layouts/shortcodes/custom-alert.html" >}}
|
||||||
|
<div class="alert alert-{{ .Get 0 }}">
|
||||||
|
{{ .Inner | markdownify }}
|
||||||
|
</div>
|
||||||
|
{{< /code >}}
|
||||||
|
|
||||||
|
### Working with Partials
|
||||||
|
|
||||||
|
Partials help keep your code DRY and maintainable:
|
||||||
|
|
||||||
|
{{< code html "layouts/partials/custom-header.html" >}}
|
||||||
|
<header class="site-header">
|
||||||
|
<nav>
|
||||||
|
{{ range .Site.Menus.main }}
|
||||||
|
<a href="{{ .URL }}">{{ .Name }}</a>
|
||||||
|
{{ end }}
|
||||||
|
</nav>
|
||||||
|
</header>
|
||||||
|
{{< /code >}}
|
||||||
|
|
||||||
|
## Best Practices
|
||||||
|
|
||||||
|
1. **Don't Edit Theme Files Directly**
|
||||||
|
- Create overrides in your site directory
|
||||||
|
- Use Hugo's lookup order to your advantage
|
||||||
|
|
||||||
|
2. **Maintain Compatibility**
|
||||||
|
- Test your customizations across different devices
|
||||||
|
- Keep accessibility in mind
|
||||||
|
|
||||||
|
3. **Performance Considerations**
|
||||||
|
- Optimize images and assets
|
||||||
|
- Minimize CSS and JavaScript
|
||||||
|
|
||||||
|
## Common Customization Examples
|
||||||
|
|
||||||
|
### Custom Homepage Layout
|
||||||
|
|
||||||
|
{{< code html "layouts/index.html" >}}
|
||||||
|
{{ define "main" }}
|
||||||
|
<div class="homepage">
|
||||||
|
{{ partial "hero.html" . }}
|
||||||
|
{{ partial "featured-posts.html" . }}
|
||||||
|
{{ partial "newsletter.html" . }}
|
||||||
|
</div>
|
||||||
|
{{ end }}
|
||||||
|
{{< /code >}}
|
||||||
|
|
||||||
|
### Custom Taxonomy Pages
|
||||||
|
|
||||||
|
{{< code html "layouts/taxonomy/category.html" >}}
|
||||||
|
{{ define "main" }}
|
||||||
|
<div class="category-page">
|
||||||
|
<h1>{{ .Title }}</h1>
|
||||||
|
<div class="posts-grid">
|
||||||
|
{{ range .Pages }}
|
||||||
|
{{ partial "post-card.html" . }}
|
||||||
|
{{ end }}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
{{ end }}
|
||||||
|
{{< /code >}}
|
||||||
|
|
||||||
|
## Conclusion
|
||||||
|
|
||||||
|
Customizing your Hugo theme allows you to create a unique website that stands out. By understanding Hugo's structure and following best practices, you can make modifications that are both effective and maintainable.
|
||||||
|
|
||||||
|
## Further Resources
|
||||||
|
|
||||||
|
- [Hugo Documentation](https://gohugo.io/documentation/)
|
||||||
|
- [Hugo Forums](https://discourse.gohugo.io/)
|
||||||
|
- [Hugo Theme Components](https://themes.gohugo.io/tags/components/)
|
101
exampleSite/content/blog/deploying-hugo-sites.md
Normal file
|
@ -0,0 +1,101 @@
|
||||||
|
---
|
||||||
|
title: "Deploying Hugo Sites: A Complete Guide"
|
||||||
|
date: 2023-07-22
|
||||||
|
author: "Alex Johnson"
|
||||||
|
description: "Learn how to deploy your Hugo site to various platforms including Netlify, Vercel, and GitHub Pages."
|
||||||
|
categories: ["Deployment"]
|
||||||
|
tags: ["hugo", "deployment", "netlify", "vercel", "github-pages"]
|
||||||
|
featured_image: "/images/blog/blog-3.webp"
|
||||||
|
---
|
||||||
|
|
||||||
|
{{< toc >}}
|
||||||
|
|
||||||
|
## Introduction
|
||||||
|
|
||||||
|
Once you've built your Hugo site, the next step is deploying it to make it accessible to the world. This guide covers various deployment options and best practices.
|
||||||
|
|
||||||
|
## Popular Deployment Platforms
|
||||||
|
|
||||||
|
### 1. Netlify
|
||||||
|
|
||||||
|
Netlify offers a seamless deployment experience:
|
||||||
|
|
||||||
|
{{< code bash "terminal" >}}
|
||||||
|
# Create netlify.toml
|
||||||
|
[build]
|
||||||
|
publish = "public"
|
||||||
|
command = "hugo --gc --minify"
|
||||||
|
|
||||||
|
[build.environment]
|
||||||
|
HUGO_VERSION = "0.95.0"
|
||||||
|
{{< /code >}}
|
||||||
|
|
||||||
|
### 2. Vercel
|
||||||
|
|
||||||
|
Vercel provides excellent performance and analytics.
|
||||||
|
|
||||||
|
### 3. GitHub Pages
|
||||||
|
|
||||||
|
Perfect for project sites and personal blogs:
|
||||||
|
|
||||||
|
{{< code yaml "github-workflow.yml" >}}
|
||||||
|
name: GitHub Pages
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- main
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
deploy:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v2
|
||||||
|
- name: Setup Hugo
|
||||||
|
uses: peaceiris/actions-hugo@v2
|
||||||
|
{{< /code >}}
|
||||||
|
|
||||||
|
## Deployment Best Practices
|
||||||
|
|
||||||
|
1. **Use Version Control**
|
||||||
|
- Track your changes
|
||||||
|
- Collaborate effectively
|
||||||
|
- Enable automated deployments
|
||||||
|
|
||||||
|
2. **Optimize Assets**
|
||||||
|
- Compress images
|
||||||
|
- Minify CSS/JS
|
||||||
|
- Enable caching
|
||||||
|
|
||||||
|
3. **Configure CI/CD**
|
||||||
|
- Automate builds
|
||||||
|
- Run tests
|
||||||
|
- Deploy automatically
|
||||||
|
|
||||||
|
## Performance Considerations
|
||||||
|
|
||||||
|
1. **Page Load Speed**
|
||||||
|
- Optimize images
|
||||||
|
- Minimize HTTP requests
|
||||||
|
- Use CDN
|
||||||
|
|
||||||
|
2. **SEO**
|
||||||
|
- Configure meta tags
|
||||||
|
- Create sitemap
|
||||||
|
- Enable robots.txt
|
||||||
|
|
||||||
|
## Security Measures
|
||||||
|
|
||||||
|
1. **Enable HTTPS**
|
||||||
|
2. **Configure Headers**
|
||||||
|
3. **Implement CSP**
|
||||||
|
|
||||||
|
## Conclusion
|
||||||
|
|
||||||
|
Choosing the right deployment platform and following best practices ensures your Hugo site is fast, secure, and reliable.
|
||||||
|
|
||||||
|
## Resources
|
||||||
|
|
||||||
|
- [Hugo Deployment Documentation](https://gohugo.io/hosting-and-deployment/)
|
||||||
|
- [Netlify Documentation](https://docs.netlify.com/)
|
||||||
|
- [Vercel Documentation](https://vercel.com/docs)
|
81
exampleSite/content/blog/getting-started-with-hugo.md
Normal file
|
@ -0,0 +1,81 @@
|
||||||
|
---
|
||||||
|
title: "Getting Started with Hugo: A Beginner's Guide"
|
||||||
|
date: 2023-07-20
|
||||||
|
author: "John Doe"
|
||||||
|
description: "Learn how to build your first website with Hugo, the world's fastest framework for building websites."
|
||||||
|
categories: ["Tutorials"]
|
||||||
|
tags: ["hugo", "static-site", "web-development", "beginners"]
|
||||||
|
featured_image: "/images/blog/blog-1.jpg"
|
||||||
|
---
|
||||||
|
|
||||||
|
{{< toc >}}
|
||||||
|
|
||||||
|
## Introduction
|
||||||
|
|
||||||
|
Hugo is one of the most popular open-source static site generators. With its amazing speed and flexibility, Hugo makes building websites fun again.
|
||||||
|
|
||||||
|
## Why Choose Hugo?
|
||||||
|
|
||||||
|
Here are some compelling reasons to choose Hugo for your next project:
|
||||||
|
|
||||||
|
1. Lightning Fast
|
||||||
|
2. Easy to Learn
|
||||||
|
3. Highly Flexible
|
||||||
|
4. Great Community
|
||||||
|
|
||||||
|
## Setting Up Your First Hugo Site
|
||||||
|
|
||||||
|
Let's walk through creating your first Hugo site:
|
||||||
|
|
||||||
|
{{< code bash "terminal" >}}
|
||||||
|
# Create a new Hugo site
|
||||||
|
hugo new site my-awesome-site
|
||||||
|
cd my-awesome-site
|
||||||
|
|
||||||
|
# Initialize git and add a theme
|
||||||
|
git init
|
||||||
|
git submodule add https://github.com/theNewDynamic/gohugo-theme-ananke themes/ananke
|
||||||
|
|
||||||
|
# Add the theme to your configuration
|
||||||
|
echo "theme = 'ananke'" >> config.toml
|
||||||
|
|
||||||
|
# Create your first post
|
||||||
|
hugo new posts/my-first-post.md
|
||||||
|
{{< /code >}}
|
||||||
|
|
||||||
|
## Working with Content
|
||||||
|
|
||||||
|
Hugo makes content creation straightforward. Here's how to organize your content effectively.
|
||||||
|
|
||||||
|
## Advanced Features
|
||||||
|
|
||||||
|
Hugo comes with many advanced features out of the box:
|
||||||
|
|
||||||
|
1. **Taxonomies**: Categories and tags
|
||||||
|
2. **Shortcodes**: Easy way to add complex content
|
||||||
|
3. **Custom Outputs**: JSON, AMP, etc.
|
||||||
|
4. **Asset Processing**: SASS/SCSS, PostCSS
|
||||||
|
|
||||||
|
## Code Examples
|
||||||
|
|
||||||
|
Here's an example of a simple Hugo template:
|
||||||
|
|
||||||
|
{{< code html "layouts/_default/single.html" >}}
|
||||||
|
{{ define "main" }}
|
||||||
|
<article>
|
||||||
|
<h1>{{ .Title }}</h1>
|
||||||
|
<time>{{ .Date.Format "2006-01-02" }}</time>
|
||||||
|
{{ .Content }}
|
||||||
|
</article>
|
||||||
|
{{ end }}
|
||||||
|
{{< /code >}}
|
||||||
|
|
||||||
|
## Conclusion
|
||||||
|
|
||||||
|
Hugo provides an excellent foundation for building modern websites. Its combination of speed, flexibility, and ease of use makes it a great choice for projects of any size.
|
||||||
|
|
||||||
|
## Next Steps
|
||||||
|
|
||||||
|
- Explore Hugo's [official documentation](https://gohugo.io/documentation/)
|
||||||
|
- Join the [Hugo community](https://discourse.gohugo.io/)
|
||||||
|
- Check out some [Hugo themes](https://themes.gohugo.io/)
|
119
exampleSite/content/blog/optimizing-hugo-performance.md
Normal file
|
@ -0,0 +1,119 @@
|
||||||
|
---
|
||||||
|
title: "Optimizing Hugo Performance: Speed Up Your Site"
|
||||||
|
date: 2023-07-23
|
||||||
|
author: "Sarah Chen"
|
||||||
|
description: "Learn advanced techniques to optimize your Hugo site for better performance, faster load times, and improved user experience."
|
||||||
|
categories: ["Performance"]
|
||||||
|
tags: ["hugo", "optimization", "performance", "seo"]
|
||||||
|
featured_image: "/images/blog/blog-4.jpg"
|
||||||
|
---
|
||||||
|
|
||||||
|
{{< toc >}}
|
||||||
|
|
||||||
|
## Introduction
|
||||||
|
|
||||||
|
Performance is crucial for user experience and SEO. In this guide, we'll explore various techniques to optimize your Hugo site for maximum performance.
|
||||||
|
|
||||||
|
## Asset Optimization
|
||||||
|
|
||||||
|
### Image Optimization
|
||||||
|
|
||||||
|
Images often contribute the most to page weight. Here's how to optimize them:
|
||||||
|
|
||||||
|
{{< code html "layouts/shortcodes/optimized-image.html" >}}
|
||||||
|
{{ $image := .Page.Resources.GetMatch (printf "%s" (.Get "src")) }}
|
||||||
|
{{ $options := dict "targetWidth" 800 "quality" 85 }}
|
||||||
|
{{ $processed := $image.Process "resize 800x webp q85" }}
|
||||||
|
<img src="{{ $processed.RelPermalink }}"
|
||||||
|
alt="{{ .Get "alt" }}"
|
||||||
|
loading="lazy"
|
||||||
|
class="rounded-lg shadow-lg">
|
||||||
|
{{< /code >}}
|
||||||
|
|
||||||
|
### CSS and JavaScript
|
||||||
|
|
||||||
|
Minimize your asset footprint:
|
||||||
|
- Minify CSS and JavaScript
|
||||||
|
- Bundle assets appropriately
|
||||||
|
- Remove unused code
|
||||||
|
|
||||||
|
## Caching Strategies
|
||||||
|
|
||||||
|
1. **Browser Caching**
|
||||||
|
- Set appropriate cache headers
|
||||||
|
- Use versioned assets
|
||||||
|
- Implement service workers
|
||||||
|
|
||||||
|
2. **Hugo Caching**
|
||||||
|
- Use `.Scratch` for expensive operations
|
||||||
|
- Cache partial results
|
||||||
|
- Implement memoization
|
||||||
|
|
||||||
|
## Content Delivery
|
||||||
|
|
||||||
|
### CDN Setup
|
||||||
|
|
||||||
|
{{< code toml "config.toml" >}}
|
||||||
|
[params.cdn]
|
||||||
|
enable = true
|
||||||
|
provider = "cloudfront"
|
||||||
|
domain = "cdn.example.com"
|
||||||
|
{{< /code >}}
|
||||||
|
|
||||||
|
### Edge Computing
|
||||||
|
|
||||||
|
Leverage edge computing for faster content delivery:
|
||||||
|
- Deploy to multiple regions
|
||||||
|
- Use edge functions when needed
|
||||||
|
- Implement geo-routing
|
||||||
|
|
||||||
|
## Performance Monitoring
|
||||||
|
|
||||||
|
### Key Metrics
|
||||||
|
|
||||||
|
1. **Core Web Vitals**
|
||||||
|
- Largest Contentful Paint (LCP)
|
||||||
|
- First Input Delay (FID)
|
||||||
|
- Cumulative Layout Shift (CLS)
|
||||||
|
|
||||||
|
2. **Additional Metrics**
|
||||||
|
- Time to First Byte (TTFB)
|
||||||
|
- First Contentful Paint (FCP)
|
||||||
|
- Total Blocking Time (TBT)
|
||||||
|
|
||||||
|
## Advanced Optimization Techniques
|
||||||
|
|
||||||
|
### Resource Hints
|
||||||
|
|
||||||
|
{{< code html "layouts/partials/head.html" >}}
|
||||||
|
<link rel="preconnect" href="https://fonts.googleapis.com">
|
||||||
|
<link rel="preload" href="/fonts/main.woff2" as="font" type="font/woff2" crossorigin>
|
||||||
|
{{< /code >}}
|
||||||
|
|
||||||
|
### Critical CSS
|
||||||
|
|
||||||
|
Inline critical styles for faster rendering:
|
||||||
|
|
||||||
|
{{< code html "layouts/partials/critical-css.html" >}}
|
||||||
|
<style>
|
||||||
|
/* Critical CSS here */
|
||||||
|
.hero { /* ... */ }
|
||||||
|
.nav { /* ... */ }
|
||||||
|
</style>
|
||||||
|
{{< /code >}}
|
||||||
|
|
||||||
|
## SEO Optimization
|
||||||
|
|
||||||
|
1. **Structured Data**
|
||||||
|
2. **XML Sitemaps**
|
||||||
|
3. **Meta Tags**
|
||||||
|
|
||||||
|
## Conclusion
|
||||||
|
|
||||||
|
Optimizing your Hugo site is an ongoing process. Regular monitoring and adjustments ensure your site maintains peak performance.
|
||||||
|
|
||||||
|
## Resources
|
||||||
|
|
||||||
|
- [Hugo Performance Documentation](https://gohugo.io/documentation/)
|
||||||
|
- [Web.dev Performance Guide](https://web.dev/performance/)
|
||||||
|
- [PageSpeed Insights](https://pagespeed.web.dev/)
|
42
exampleSite/content/careers.md
Normal file
|
@ -0,0 +1,42 @@
|
||||||
|
---
|
||||||
|
title: "Join Our Team"
|
||||||
|
description: "Be part of a team that's revolutionizing the SaaS industry with innovative solutions and a people-first culture."
|
||||||
|
layout: "career"
|
||||||
|
|
||||||
|
culture_section:
|
||||||
|
title: "Our Culture"
|
||||||
|
image: "/images/team.jpg"
|
||||||
|
image_alt: "Our Team"
|
||||||
|
image_caption: "Join our amazing team!"
|
||||||
|
values:
|
||||||
|
- icon: "🌟"
|
||||||
|
title: "Innovation First"
|
||||||
|
description: "We encourage creative thinking and empower our team to push boundaries and explore new possibilities."
|
||||||
|
- icon: "🤝"
|
||||||
|
title: "Collaborative Spirit"
|
||||||
|
description: "We believe in the power of teamwork and foster an environment where everyone's voice is heard and valued."
|
||||||
|
- icon: "🌱"
|
||||||
|
title: "Growth Mindset"
|
||||||
|
description: "We invest in our team's development and provide opportunities for continuous learning and advancement."
|
||||||
|
|
||||||
|
benefits_section:
|
||||||
|
title: "Why Join Us?"
|
||||||
|
benefits:
|
||||||
|
- icon: "💪"
|
||||||
|
title: "Health & Wellness"
|
||||||
|
description: "Comprehensive health coverage, wellness programs, and mental health support."
|
||||||
|
- icon: "🎯"
|
||||||
|
title: "Work-Life Balance"
|
||||||
|
description: "Flexible working hours, remote options, and unlimited PTO policy."
|
||||||
|
- icon: "📚"
|
||||||
|
title: "Learning & Development"
|
||||||
|
description: "Professional development budget and regular learning sessions."
|
||||||
|
|
||||||
|
positions_section:
|
||||||
|
title: "Open Positions"
|
||||||
|
view_position_text: "View Position"
|
||||||
|
---
|
||||||
|
|
||||||
|
At Saasify, we believe in empowering our team members to do their best work. We foster an environment of innovation, collaboration, and continuous learning. Our culture is built on trust, transparency, and a shared commitment to excellence.
|
||||||
|
|
||||||
|
We're looking for passionate individuals who want to make a difference and grow with us. If you're excited about building the future of SaaS and working with cutting-edge technology, we'd love to hear from you.
|
90
exampleSite/content/company.md
Normal file
|
@ -0,0 +1,90 @@
|
||||||
|
---
|
||||||
|
title: "About Our Company"
|
||||||
|
layout: "company"
|
||||||
|
description: "Learn about our mission, leadership team, and the investors backing our vision"
|
||||||
|
---
|
||||||
|
|
||||||
|
{{< section-container class="bg-gradient-to-b from-blue-50 via-blue-50 to-white pt-20 pb-32" >}}
|
||||||
|
<div class="text-center">
|
||||||
|
<h1 class="text-4xl md:text-5xl font-bold mb-6">Building the Future of SaaS</h1>
|
||||||
|
<p class="text-xl text-gray-600 mb-16">We're on a mission to revolutionize how businesses operate in the digital age</p>
|
||||||
|
<div class="max-w-3xl mx-auto bg-white rounded-xl shadow-sm p-8">
|
||||||
|
<h2 class="text-3xl font-bold mb-4">Our Mission</h2>
|
||||||
|
<p class="text-xl text-gray-600">
|
||||||
|
We're dedicated to empowering businesses with innovative SaaS solutions that drive growth and efficiency. Our platform combines cutting-edge technology with intuitive design to solve complex business challenges.
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
{{< /section-container >}}
|
||||||
|
|
||||||
|
{{< section-container class="py-20 bg-gray-50" >}}
|
||||||
|
<div class="max-w-6xl mx-auto">
|
||||||
|
<h2 class="text-3xl font-bold text-center mb-12">Leadership Team</h2>
|
||||||
|
<div class="grid grid-cols-1 md:grid-cols-3 gap-8">
|
||||||
|
{{< team-member
|
||||||
|
name="Sarah Johnson"
|
||||||
|
title="Chief Executive Officer"
|
||||||
|
image="/images/company/exec-1.svg"
|
||||||
|
linkedin="#"
|
||||||
|
>}}
|
||||||
|
{{< team-member
|
||||||
|
name="Michael Chen"
|
||||||
|
title="Chief Technology Officer"
|
||||||
|
image="/images/company/exec-2.svg"
|
||||||
|
linkedin="#"
|
||||||
|
>}}
|
||||||
|
{{< team-member
|
||||||
|
name="Emily Rodriguez"
|
||||||
|
title="Chief Product Officer"
|
||||||
|
image="/images/company/exec-3.svg"
|
||||||
|
linkedin="#"
|
||||||
|
>}}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
{{< /section-container >}}
|
||||||
|
|
||||||
|
{{< section-container class="py-20" >}}
|
||||||
|
<div class="max-w-6xl mx-auto">
|
||||||
|
<h2 class="text-3xl font-bold text-center mb-12">Backed by World-Class Investors</h2>
|
||||||
|
<div class="grid grid-cols-2 md:grid-cols-4 gap-8 items-center">
|
||||||
|
{{< investor-logo name="Sequoia Capital" image="/images/company/investor-1.svg" >}}
|
||||||
|
{{< investor-logo name="Andreessen Horowitz" image="/images/company/investor-2.svg" >}}
|
||||||
|
{{< investor-logo name="Accel" image="/images/company/investor-3.svg" >}}
|
||||||
|
{{< investor-logo name="Benchmark" image="/images/company/investor-4.svg" >}}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
{{< /section-container >}}
|
||||||
|
|
||||||
|
{{< section-container class="py-20 bg-gray-50" >}}
|
||||||
|
<div class="max-w-6xl mx-auto">
|
||||||
|
<h2 class="text-3xl font-bold text-center mb-12">Company Values</h2>
|
||||||
|
<div class="grid grid-cols-1 md:grid-cols-3 gap-8">
|
||||||
|
{{< value-card
|
||||||
|
title="Innovation First"
|
||||||
|
icon="lightbulb"
|
||||||
|
description="We constantly push boundaries and embrace new technologies to solve complex challenges."
|
||||||
|
>}}
|
||||||
|
{{< value-card
|
||||||
|
title="Customer Success"
|
||||||
|
icon="users"
|
||||||
|
description="Our customers' success is our success. We're committed to delivering exceptional value."
|
||||||
|
>}}
|
||||||
|
{{< value-card
|
||||||
|
title="Transparency"
|
||||||
|
icon="eye"
|
||||||
|
description="We believe in open communication and building trust through transparency."
|
||||||
|
>}}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
{{< /section-container >}}
|
||||||
|
|
||||||
|
{{< section-container class="py-20" >}}
|
||||||
|
<div class="max-w-6xl mx-auto">
|
||||||
|
<div class="grid grid-cols-1 md:grid-cols-4 gap-8 text-center">
|
||||||
|
{{< stat number="2015" label="Founded" >}}
|
||||||
|
{{< stat number="200+" label="Team Members" >}}
|
||||||
|
{{< stat number="10k+" label="Customers" >}}
|
||||||
|
{{< stat number="50M+" label="Annual Revenue" >}}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
{{< /section-container >}}
|
66
exampleSite/content/features/design-system.md
Normal file
|
@ -0,0 +1,66 @@
|
||||||
|
---
|
||||||
|
title: "Beautiful Design System"
|
||||||
|
description: "Create stunning user interfaces with our comprehensive design system built on TailwindCSS. Customize everything to match your brand."
|
||||||
|
layout: "feature"
|
||||||
|
badge: "Design"
|
||||||
|
badgeColor: "#7c3aed"
|
||||||
|
features:
|
||||||
|
- title: "Modern UI Components"
|
||||||
|
description: "A complete set of pre-built components designed for SaaS websites. From navigation bars to pricing tables, everything you need is included."
|
||||||
|
- title: "Responsive Design"
|
||||||
|
description: "Every component is fully responsive and tested across all device sizes. Your website will look great on everything from phones to large displays."
|
||||||
|
- title: "Custom Typography"
|
||||||
|
description: "Carefully crafted typography system with perfect vertical rhythm. Easily customize fonts and sizes to match your brand guidelines."
|
||||||
|
- title: "Flexible Layouts"
|
||||||
|
description: "Modular layout system that adapts to your content. Create unique page layouts while maintaining consistent spacing and alignment."
|
||||||
|
demo:
|
||||||
|
description: "Explore our comprehensive design system built with TailwindCSS."
|
||||||
|
image: "/images/feature-2.svg"
|
||||||
|
---
|
||||||
|
|
||||||
|
## Comprehensive Design System
|
||||||
|
|
||||||
|
Our theme includes a complete design system that makes it easy to create beautiful, consistent interfaces. Built on TailwindCSS, it provides the flexibility to customize every aspect of your design while maintaining a professional look.
|
||||||
|
|
||||||
|
### Design Components
|
||||||
|
|
||||||
|
#### Core Elements
|
||||||
|
- Typography system with perfect vertical rhythm
|
||||||
|
- Color palette with semantic variables
|
||||||
|
- Spacing and sizing scales
|
||||||
|
- Grid and layout systems
|
||||||
|
|
||||||
|
#### UI Components
|
||||||
|
- Navigation components (headers, footers, menus)
|
||||||
|
- Hero sections and feature displays
|
||||||
|
- Cards and content containers
|
||||||
|
- Forms and input elements
|
||||||
|
- Buttons and CTAs
|
||||||
|
- Pricing tables
|
||||||
|
- Testimonial displays
|
||||||
|
- Team member profiles
|
||||||
|
|
||||||
|
#### Design Features
|
||||||
|
|
||||||
|
##### Customization
|
||||||
|
- Easy theme customization through TailwindCSS
|
||||||
|
- Brand color management
|
||||||
|
- Typography customization
|
||||||
|
- Spacing system adjustment
|
||||||
|
- Component variants
|
||||||
|
|
||||||
|
##### Accessibility
|
||||||
|
- WCAG 2.1 compliant components
|
||||||
|
- Proper ARIA attributes
|
||||||
|
- Keyboard navigation support
|
||||||
|
- High contrast mode support
|
||||||
|
- Screen reader optimized
|
||||||
|
|
||||||
|
##### Responsive Design
|
||||||
|
- Mobile-first approach
|
||||||
|
- Breakpoint system
|
||||||
|
- Fluid typography
|
||||||
|
- Adaptive layouts
|
||||||
|
- Touch-friendly interactions
|
||||||
|
|
||||||
|
Our design system provides the perfect foundation for creating beautiful, accessible, and responsive websites that stand out from the crowd.
|
75
exampleSite/content/features/developer-experience.md
Normal file
|
@ -0,0 +1,75 @@
|
||||||
|
---
|
||||||
|
title: "Developer Experience"
|
||||||
|
description: "Enjoy a seamless development experience with hot reload, component-based architecture, and clean, maintainable code."
|
||||||
|
layout: "feature"
|
||||||
|
badge: "Development"
|
||||||
|
badgeColor: "#16a34a"
|
||||||
|
features:
|
||||||
|
- title: "Component System"
|
||||||
|
description: "Modular component architecture makes it easy to build and maintain your website. Reuse components across pages while maintaining consistency."
|
||||||
|
- title: "Easy Customization"
|
||||||
|
description: "Clear configuration files and well-organized code make it simple to customize any aspect of your site. No deep Hugo knowledge required."
|
||||||
|
- title: "Clean Code"
|
||||||
|
description: "Well-structured, documented code following best practices. Makes maintenance and updates straightforward for any developer."
|
||||||
|
- title: "Detailed Documentation"
|
||||||
|
description: "Comprehensive documentation covers everything from setup to advanced customization. Includes examples and best practices."
|
||||||
|
demo:
|
||||||
|
description: "See how our developer-friendly architecture makes building websites a breeze."
|
||||||
|
image: "/images/feature-3.svg"
|
||||||
|
---
|
||||||
|
|
||||||
|
## Built for Developers
|
||||||
|
|
||||||
|
Our theme is designed with developers in mind, providing a clean, efficient workflow that makes building websites enjoyable and productive.
|
||||||
|
|
||||||
|
### Development Features
|
||||||
|
|
||||||
|
#### Project Structure
|
||||||
|
- Logical directory organization
|
||||||
|
- Clear separation of concerns
|
||||||
|
- Modular component architecture
|
||||||
|
- Consistent naming conventions
|
||||||
|
|
||||||
|
#### Development Workflow
|
||||||
|
- Fast hot reload development server
|
||||||
|
- Automatic asset processing
|
||||||
|
- Source maps for debugging
|
||||||
|
- Build process optimization
|
||||||
|
|
||||||
|
#### Component System
|
||||||
|
|
||||||
|
##### Shortcodes
|
||||||
|
- Rich set of pre-built shortcodes
|
||||||
|
- Easy to create custom shortcodes
|
||||||
|
- Documentation for each shortcode
|
||||||
|
- Example implementations
|
||||||
|
|
||||||
|
##### Partials
|
||||||
|
- Reusable partial templates
|
||||||
|
- Context-aware components
|
||||||
|
- Easy to extend and modify
|
||||||
|
- Clear documentation
|
||||||
|
|
||||||
|
#### Customization
|
||||||
|
|
||||||
|
##### Configuration
|
||||||
|
- Central configuration file
|
||||||
|
- Environment variables support
|
||||||
|
- Feature flags
|
||||||
|
- Easy theme customization
|
||||||
|
|
||||||
|
##### Styling
|
||||||
|
- TailwindCSS integration
|
||||||
|
- PostCSS processing
|
||||||
|
- Custom CSS support
|
||||||
|
- Design token system
|
||||||
|
|
||||||
|
#### Documentation
|
||||||
|
- Getting started guide
|
||||||
|
- Component documentation
|
||||||
|
- Configuration reference
|
||||||
|
- Best practices
|
||||||
|
- Troubleshooting guide
|
||||||
|
- Deployment instructions
|
||||||
|
|
||||||
|
Our developer experience focuses on making it easy to build, customize, and maintain your website while following best practices and maintaining clean, efficient code.
|
52
exampleSite/content/features/performance.md
Normal file
|
@ -0,0 +1,52 @@
|
||||||
|
---
|
||||||
|
title: "Lightning-Fast Performance"
|
||||||
|
description: "Leverage Hugo's blazing-fast build times and optimized output. Your website loads instantly, providing an exceptional user experience."
|
||||||
|
layout: "feature"
|
||||||
|
badge: "Performance"
|
||||||
|
badgeColor: "#2563eb"
|
||||||
|
features:
|
||||||
|
- title: "Sub-second Page Loads"
|
||||||
|
description: "Experience instant page transitions with Hugo's static site generation. Pages load in milliseconds, ensuring visitors stay engaged."
|
||||||
|
- title: "Optimized Assets"
|
||||||
|
description: "Automatically optimize images, CSS, and JavaScript. Reduce file sizes without compromising quality for faster load times."
|
||||||
|
- title: "Minimal JavaScript"
|
||||||
|
description: "Built with minimal JavaScript dependencies. Pages remain fast and functional while keeping the bundle size small."
|
||||||
|
- title: "CDN-Ready Output"
|
||||||
|
description: "Deploy your site to any CDN for global distribution. Static files are optimized for edge caching and maximum performance."
|
||||||
|
demo:
|
||||||
|
description: "See how our optimized build process delivers lightning-fast page loads and smooth transitions."
|
||||||
|
image: "/images/feature-1.svg"
|
||||||
|
---
|
||||||
|
|
||||||
|
## Built for Speed
|
||||||
|
|
||||||
|
Our theme is engineered from the ground up with performance in mind. By leveraging Hugo's powerful static site generation and combining it with modern optimization techniques, we deliver websites that load instantly and run smoothly.
|
||||||
|
|
||||||
|
### Performance Metrics
|
||||||
|
|
||||||
|
- **Build Time**: Less than 1 second for most sites
|
||||||
|
- **Page Load Time**: Under 500ms first contentful paint
|
||||||
|
- **Time to Interactive**: Under 1.5 seconds
|
||||||
|
- **Google Lighthouse Score**: 95+ on all metrics
|
||||||
|
|
||||||
|
### Optimization Features
|
||||||
|
|
||||||
|
#### Asset Optimization
|
||||||
|
- Automatic image optimization and WebP conversion
|
||||||
|
- CSS minification and purging of unused styles
|
||||||
|
- JavaScript bundling and tree-shaking
|
||||||
|
- Lazy loading of images and components
|
||||||
|
|
||||||
|
#### Caching Strategy
|
||||||
|
- Efficient browser caching with proper headers
|
||||||
|
- Static asset fingerprinting
|
||||||
|
- Pre-rendered HTML for instant loads
|
||||||
|
- Service worker for offline capabilities
|
||||||
|
|
||||||
|
#### CDN Integration
|
||||||
|
- Built for global distribution
|
||||||
|
- Edge caching ready
|
||||||
|
- Automatic cache invalidation
|
||||||
|
- Geographic redundancy
|
||||||
|
|
||||||
|
Our performance-first approach ensures your website not only looks great but delivers an exceptional user experience through blazing-fast load times and smooth interactions.
|
55
exampleSite/content/jobs/product-manager.md
Normal file
|
@ -0,0 +1,55 @@
|
||||||
|
---
|
||||||
|
title: "Product Manager"
|
||||||
|
date: 2023-11-14
|
||||||
|
description: "We're seeking a Product Manager to drive our product strategy and roadmap"
|
||||||
|
location: "San Francisco, CA (Hybrid)"
|
||||||
|
type: "Full-time"
|
||||||
|
salary: "$130K - $180K"
|
||||||
|
layout: "job-single"
|
||||||
|
---
|
||||||
|
|
||||||
|
We're looking for a Product Manager to join our team and help shape the future of our product.
|
||||||
|
|
||||||
|
## About the Role
|
||||||
|
|
||||||
|
As a Product Manager, you'll be responsible for:
|
||||||
|
|
||||||
|
- Defining and executing the product strategy and roadmap
|
||||||
|
- Working closely with engineering, design, and marketing teams
|
||||||
|
- Conducting user research and gathering customer feedback
|
||||||
|
- Analyzing market trends and competitive landscape
|
||||||
|
- Prioritizing features and managing the product backlog
|
||||||
|
|
||||||
|
## Requirements
|
||||||
|
|
||||||
|
- 4+ years of product management experience in SaaS
|
||||||
|
- Strong analytical and problem-solving skills
|
||||||
|
- Excellent communication and stakeholder management abilities
|
||||||
|
- Experience with agile development methodologies
|
||||||
|
- Data-driven decision making mindset
|
||||||
|
- Technical background or ability to work closely with technical teams
|
||||||
|
|
||||||
|
## Nice to Have
|
||||||
|
|
||||||
|
- MBA or relevant advanced degree
|
||||||
|
- Experience with B2B SaaS products
|
||||||
|
- Background in UX design or software development
|
||||||
|
- Experience with product analytics tools
|
||||||
|
- Public speaking or presentation experience
|
||||||
|
|
||||||
|
## Benefits
|
||||||
|
|
||||||
|
- Competitive salary and equity package
|
||||||
|
- Comprehensive health, dental, and vision insurance
|
||||||
|
- 401(k) matching
|
||||||
|
- Flexible PTO policy
|
||||||
|
- Professional development budget
|
||||||
|
- Wellness programs
|
||||||
|
- Company-sponsored events
|
||||||
|
- Office perks and snacks
|
||||||
|
|
||||||
|
## How to Apply
|
||||||
|
|
||||||
|
Please send your resume and a cover letter detailing your product management experience and why you're interested in joining our team. Include examples of products you've managed and their impact.
|
||||||
|
|
||||||
|
[Apply Now](mailto:careers@example.com)
|
54
exampleSite/content/jobs/senior-frontend-developer.md
Normal file
|
@ -0,0 +1,54 @@
|
||||||
|
---
|
||||||
|
title: "Senior Frontend Developer"
|
||||||
|
date: 2023-11-14
|
||||||
|
description: "Join our team as a Senior Frontend Developer and help build the next generation of our SaaS platform"
|
||||||
|
location: "Remote"
|
||||||
|
type: "Full-time"
|
||||||
|
salary: "$120K - $160K"
|
||||||
|
layout: "job-single"
|
||||||
|
---
|
||||||
|
|
||||||
|
We're looking for a Senior Frontend Developer to join our growing team and help shape the future of our SaaS platform.
|
||||||
|
|
||||||
|
## About the Role
|
||||||
|
|
||||||
|
As a Senior Frontend Developer, you'll be responsible for:
|
||||||
|
|
||||||
|
- Building and maintaining high-quality, reusable UI components
|
||||||
|
- Collaborating with designers to implement pixel-perfect interfaces
|
||||||
|
- Optimizing application performance and accessibility
|
||||||
|
- Mentoring junior developers and reviewing code
|
||||||
|
- Contributing to technical architecture decisions
|
||||||
|
|
||||||
|
## Requirements
|
||||||
|
|
||||||
|
- 5+ years of experience in frontend development
|
||||||
|
- Expert knowledge of modern JavaScript, HTML, and CSS
|
||||||
|
- Strong experience with React or Vue.js
|
||||||
|
- Understanding of modern frontend build tools and workflows
|
||||||
|
- Experience with responsive design and cross-browser compatibility
|
||||||
|
- Strong communication skills and ability to work in a remote team
|
||||||
|
|
||||||
|
## Nice to Have
|
||||||
|
|
||||||
|
- Experience with TypeScript
|
||||||
|
- Knowledge of testing frameworks (Jest, Cypress)
|
||||||
|
- Contributions to open source projects
|
||||||
|
- Experience with design systems
|
||||||
|
- Understanding of backend technologies
|
||||||
|
|
||||||
|
## Benefits
|
||||||
|
|
||||||
|
- Competitive salary and equity package
|
||||||
|
- Flexible working hours
|
||||||
|
- Remote-first culture
|
||||||
|
- Health insurance
|
||||||
|
- Learning and development budget
|
||||||
|
- Annual team retreats
|
||||||
|
- Home office setup allowance
|
||||||
|
|
||||||
|
## How to Apply
|
||||||
|
|
||||||
|
Please send your resume, portfolio, and a brief cover letter explaining why you'd be a great fit for our team. Include links to any relevant projects or open source contributions.
|
||||||
|
|
||||||
|
[Apply Now](mailto:careers@example.com)
|
26
exampleSite/content/license.md
Normal file
|
@ -0,0 +1,26 @@
|
||||||
|
---
|
||||||
|
title: "License"
|
||||||
|
layout: "simple"
|
||||||
|
---
|
||||||
|
|
||||||
|
## MIT License
|
||||||
|
|
||||||
|
Copyright (c) 2024
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
|
in the Software without restriction, including without limitation the rights
|
||||||
|
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
copies of the Software, and to permit persons to whom the Software is
|
||||||
|
furnished to do so, subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in all
|
||||||
|
copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
|
SOFTWARE.
|
152
exampleSite/content/pricing.md
Normal file
|
@ -0,0 +1,152 @@
|
||||||
|
---
|
||||||
|
title: "Pricing"
|
||||||
|
description: "Choose the perfect plan for your needs"
|
||||||
|
layout: "pricing"
|
||||||
|
---
|
||||||
|
|
||||||
|
{{< pricing-table-1 >}}
|
||||||
|
{
|
||||||
|
"title": "Designed for business teams like yours",
|
||||||
|
"description": "Here at Flowbite we focus on markets where technology, innovation, and capital can unlock long-term value and drive economic growth.",
|
||||||
|
"plans": [
|
||||||
|
{
|
||||||
|
"name": "Starter",
|
||||||
|
"price": "29",
|
||||||
|
"description": "Best option for personal use & for your next project.",
|
||||||
|
"features": [
|
||||||
|
"Individual configuration",
|
||||||
|
"No setup, or hidden fees",
|
||||||
|
"Team size: 1 developer",
|
||||||
|
"Premium support: 6 months",
|
||||||
|
"Free updates: 6 months"
|
||||||
|
],
|
||||||
|
"button": {
|
||||||
|
"text": "Get started",
|
||||||
|
"url": "#"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Company",
|
||||||
|
"price": "99",
|
||||||
|
"description": "Relevant for multiple users, extended & premium support.",
|
||||||
|
"featured": true,
|
||||||
|
"features": [
|
||||||
|
"Individual configuration",
|
||||||
|
"No setup, or hidden fees",
|
||||||
|
"Team size: 10 developers",
|
||||||
|
"Premium support: 24 months",
|
||||||
|
"Free updates: 24 months"
|
||||||
|
],
|
||||||
|
"button": {
|
||||||
|
"text": "Get started",
|
||||||
|
"url": "#"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Enterprise",
|
||||||
|
"price": "499",
|
||||||
|
"description": "Best for large scale uses and extended redistribution rights.",
|
||||||
|
"features": [
|
||||||
|
"Individual configuration",
|
||||||
|
"No setup, or hidden fees",
|
||||||
|
"Team size: 100+ developers",
|
||||||
|
"Premium support: 36 months",
|
||||||
|
"Free updates: 36 months"
|
||||||
|
],
|
||||||
|
"button": {
|
||||||
|
"text": "Get started",
|
||||||
|
"url": "#"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
{{< /pricing-table-1 >}}
|
||||||
|
|
||||||
|
<div class="mt-16"></div>
|
||||||
|
|
||||||
|
{{< pricing-table-2 >}}
|
||||||
|
{
|
||||||
|
"title": "Alternative Pricing Options",
|
||||||
|
"description": "Choose a plan that best suits your business needs with our flexible pricing options.",
|
||||||
|
"plans": [
|
||||||
|
{
|
||||||
|
"name": "Basic",
|
||||||
|
"price": "19",
|
||||||
|
"description": "Perfect for freelancers and solo developers.",
|
||||||
|
"features": [
|
||||||
|
"Core features included",
|
||||||
|
"Community support",
|
||||||
|
"Team size: 1 developer",
|
||||||
|
"Basic analytics",
|
||||||
|
"Monthly updates"
|
||||||
|
],
|
||||||
|
"button": {
|
||||||
|
"text": "Choose Basic",
|
||||||
|
"url": "#"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Professional",
|
||||||
|
"price": "79",
|
||||||
|
"description": "Ideal for growing development teams.",
|
||||||
|
"featured": true,
|
||||||
|
"features": [
|
||||||
|
"All Basic features",
|
||||||
|
"Priority support",
|
||||||
|
"Team size: up to 5 developers",
|
||||||
|
"Advanced analytics",
|
||||||
|
"CI/CD integration"
|
||||||
|
],
|
||||||
|
"button": {
|
||||||
|
"text": "Choose Pro",
|
||||||
|
"url": "#"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Business",
|
||||||
|
"price": "299",
|
||||||
|
"description": "For large organizations and enterprises.",
|
||||||
|
"features": [
|
||||||
|
"All Pro features",
|
||||||
|
"24/7 dedicated support",
|
||||||
|
"Unlimited team size",
|
||||||
|
"Custom integrations",
|
||||||
|
"SLA guarantee"
|
||||||
|
],
|
||||||
|
"button": {
|
||||||
|
"text": "Choose Business",
|
||||||
|
"url": "#"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
{{< /pricing-table-2 >}}
|
||||||
|
|
||||||
|
{{< faq >}}
|
||||||
|
{
|
||||||
|
"title": "Common Questions",
|
||||||
|
"description": "Find answers to frequently asked questions about our pricing plans and features.",
|
||||||
|
"questions": [
|
||||||
|
{
|
||||||
|
"question": "What type of payment do you accept?",
|
||||||
|
"answer": "We accept all major credit cards, PayPal, and bank transfers. All payments are processed securely through our payment providers."
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"question": "Do you offer custom pricing for larger teams?",
|
||||||
|
"answer": "Yes! If you have specific needs or a larger team, please contact our sales team for custom pricing tailored to your requirements."
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"question": "What's included in the free updates?",
|
||||||
|
"answer": "Free updates include all new features, improvements, and bug fixes released during your subscription period. You'll always have access to the latest version."
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"question": "What kind of support is included?",
|
||||||
|
"answer": "All plans include technical support, with varying response times based on your plan level. Enterprise customers get priority support with dedicated account managers."
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"question": "Can I upgrade or downgrade my plan?",
|
||||||
|
"answer": "Yes, you can change your plan at any time. When upgrading, you'll be prorated for the remainder of your billing period. When downgrading, changes take effect at the next billing cycle."
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
{{< /faq >}}
|
88
exampleSite/content/privacy.md
Normal file
|
@ -0,0 +1,88 @@
|
||||||
|
---
|
||||||
|
title: "Privacy Policy"
|
||||||
|
layout: "simple"
|
||||||
|
---
|
||||||
|
|
||||||
|
## Introduction
|
||||||
|
|
||||||
|
At Saasify, we take your privacy seriously. This Privacy Policy explains how we collect, use, disclose, and safeguard your information when you use our service.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Information We Collect
|
||||||
|
|
||||||
|
### Personal Information
|
||||||
|
|
||||||
|
* **Name and email address**
|
||||||
|
* **Billing information**
|
||||||
|
* **Usage data and analytics**
|
||||||
|
* **Communication preferences**
|
||||||
|
|
||||||
|
### Automatically Collected Information
|
||||||
|
|
||||||
|
* **IP addresses**
|
||||||
|
* **Browser type**
|
||||||
|
* **Device information**
|
||||||
|
* **Cookies and tracking technologies**
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## How We Use Your Information
|
||||||
|
|
||||||
|
We use the collected information for:
|
||||||
|
|
||||||
|
* **Service Delivery**
|
||||||
|
Providing and maintaining our service
|
||||||
|
* **Updates**
|
||||||
|
Notifying you about changes to our service
|
||||||
|
* **Support**
|
||||||
|
Providing customer support
|
||||||
|
* **Transactions**
|
||||||
|
Processing your transactions
|
||||||
|
* **Analytics**
|
||||||
|
Analyzing usage patterns to improve our service
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Data Security
|
||||||
|
|
||||||
|
We implement appropriate technical and organizational security measures to protect your personal information. However, no method of transmission over the Internet is 100% secure.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Third-Party Services
|
||||||
|
|
||||||
|
We may employ third-party companies and individuals to:
|
||||||
|
|
||||||
|
* Facilitate our service
|
||||||
|
* Provide service-related services
|
||||||
|
* Assist in analyzing service usage
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Your Rights
|
||||||
|
|
||||||
|
You have the right to:
|
||||||
|
|
||||||
|
* **Access** your personal data
|
||||||
|
* **Correct** inaccurate data
|
||||||
|
* **Request deletion** of your data
|
||||||
|
* **Object** to data processing
|
||||||
|
* **Export** your data
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Changes to This Policy
|
||||||
|
|
||||||
|
We may update our Privacy Policy from time to time. We will notify you of any changes by posting the new Privacy Policy on this page and updating the "Last Updated" date.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Contact Us
|
||||||
|
|
||||||
|
If you have questions about this Privacy Policy, please contact us at:
|
||||||
|
|
||||||
|
* **Email:** privacy@saasify.com
|
||||||
|
* **Address:** 123 Tech Street, San Francisco, CA 94105
|
||||||
|
|
||||||
|
*Last Updated: January 2024*
|
236
exampleSite/hugo.toml
Normal file
|
@ -0,0 +1,236 @@
|
||||||
|
baseURL = "https://saasify-demo.chaoming.li/"
|
||||||
|
languageCode = "en-us"
|
||||||
|
title = "Saasify"
|
||||||
|
|
||||||
|
# Theme Config
|
||||||
|
theme = "../.."
|
||||||
|
|
||||||
|
# Enable syntax highlighting
|
||||||
|
pygmentsCodeFences = true
|
||||||
|
pygmentsUseClasses = true
|
||||||
|
|
||||||
|
# Enable emoji support
|
||||||
|
enableEmoji = true
|
||||||
|
|
||||||
|
# Enable Git info for lastmod
|
||||||
|
enableGitInfo = true
|
||||||
|
|
||||||
|
# Enable taxonomies
|
||||||
|
[taxonomies]
|
||||||
|
category = 'categories'
|
||||||
|
tag = 'tags'
|
||||||
|
|
||||||
|
# Pagination
|
||||||
|
paginate = 6
|
||||||
|
paginatePath = "page"
|
||||||
|
|
||||||
|
[params]
|
||||||
|
description = ""
|
||||||
|
author = "Chaoming Li"
|
||||||
|
logo = "/images/logo.svg"
|
||||||
|
# Google Analytics ID (e.g., "G-XXXXXXXXXX")
|
||||||
|
# googleAnalytics = "G-XXXXXXXXXX"
|
||||||
|
|
||||||
|
# Global CTA Configuration
|
||||||
|
[params.cta]
|
||||||
|
enable = true
|
||||||
|
title = "Ready to Build Your SaaS Website?"
|
||||||
|
description = "Join companies already using our theme to create beautiful, high-performance websites."
|
||||||
|
gradient_from = "#2563eb" # Indigo-600
|
||||||
|
gradient_to = "#7c3aed" # Purple-600
|
||||||
|
gradient_angle = 30
|
||||||
|
[params.cta.primary_button]
|
||||||
|
text = "Get Started Free"
|
||||||
|
url = "/get-started"
|
||||||
|
[params.cta.secondary_button]
|
||||||
|
text = "Book Demo"
|
||||||
|
url = "/demo"
|
||||||
|
|
||||||
|
# Social Media Links
|
||||||
|
[params.social]
|
||||||
|
linkedin = "https://linkedin.com/in/chaomingli"
|
||||||
|
twitter = "https://twitter.com/lichaoming"
|
||||||
|
youtube = "https://youtube.com/@chaomingli"
|
||||||
|
facebook = "https://facebook.com/lichaoming"
|
||||||
|
instagram = "https://instagram.com/lichaoming"
|
||||||
|
github = "https://github.com/chaoming"
|
||||||
|
|
||||||
|
# Footer Configuration
|
||||||
|
[params.footer]
|
||||||
|
column_1_title = "Features"
|
||||||
|
column_2_title = "COMPANY"
|
||||||
|
column_3_title = "LEGAL"
|
||||||
|
|
||||||
|
[params.header]
|
||||||
|
# Header background and border styles (optional)
|
||||||
|
background = "bg-white/80 backdrop-blur-sm"
|
||||||
|
border = "border-b border-gray-100"
|
||||||
|
|
||||||
|
# Logo configuration
|
||||||
|
[params.header.logo]
|
||||||
|
src = "/images/logo.svg"
|
||||||
|
|
||||||
|
# Menu configuration
|
||||||
|
[params.header.menu]
|
||||||
|
spacing = "space-x-8"
|
||||||
|
|
||||||
|
# Dropdown menu configuration
|
||||||
|
[params.header.menu.dropdown]
|
||||||
|
width = "w-72"
|
||||||
|
container_padding = "py-6"
|
||||||
|
item_padding = "px-8 py-3"
|
||||||
|
background = "bg-white"
|
||||||
|
border = "border border-gray-100"
|
||||||
|
shadow = "shadow-xl"
|
||||||
|
radius = "rounded-lg"
|
||||||
|
text_color = "text-gray-700"
|
||||||
|
hover_background = "hover:bg-gray-50"
|
||||||
|
text_size = "text-sm"
|
||||||
|
|
||||||
|
# Button configuration
|
||||||
|
[params.header.buttons]
|
||||||
|
# Sign In button
|
||||||
|
[params.header.buttons.signIn]
|
||||||
|
text = "Sign in"
|
||||||
|
url = "/signin"
|
||||||
|
|
||||||
|
# Get Started button
|
||||||
|
[params.header.buttons.getStarted]
|
||||||
|
text = "Get Started"
|
||||||
|
url = "/get-started"
|
||||||
|
|
||||||
|
# Blog configuration
|
||||||
|
[params.blog]
|
||||||
|
enable = true
|
||||||
|
title = "Latest Articles"
|
||||||
|
subtitle = "Learn more about web development and best practices"
|
||||||
|
|
||||||
|
# Blog CTA configuration
|
||||||
|
[params.blog.cta]
|
||||||
|
enable = true # Enable/disable CTA in blog posts
|
||||||
|
|
||||||
|
# Sidebar configuration
|
||||||
|
[params.blog.sidebar]
|
||||||
|
# Recent articles section
|
||||||
|
[params.blog.sidebar.recent]
|
||||||
|
enable = true
|
||||||
|
title = "Recent Articles"
|
||||||
|
count = 5
|
||||||
|
|
||||||
|
# Categories section
|
||||||
|
[params.blog.sidebar.categories]
|
||||||
|
enable = true
|
||||||
|
title = "Categories"
|
||||||
|
|
||||||
|
# Tags section
|
||||||
|
[params.blog.sidebar.tags]
|
||||||
|
enable = true
|
||||||
|
title = "Popular Tags"
|
||||||
|
count = 20
|
||||||
|
|
||||||
|
# Subscribe form section
|
||||||
|
[params.blog.sidebar.subscribe]
|
||||||
|
enable = true
|
||||||
|
title = "Subscribe to Newsletter"
|
||||||
|
description = "Get the latest posts delivered right to your inbox"
|
||||||
|
action = "https://formspree.io/f/your-form-id"
|
||||||
|
emailName = "email"
|
||||||
|
buttonText = "Subscribe"
|
||||||
|
placeholder = "Enter your email"
|
||||||
|
disclaimer = "We respect your privacy. Unsubscribe at any time."
|
||||||
|
|
||||||
|
[module]
|
||||||
|
[module.hugoVersion]
|
||||||
|
extended = true
|
||||||
|
min = "0.80.0"
|
||||||
|
|
||||||
|
[build]
|
||||||
|
writeStats = true
|
||||||
|
|
||||||
|
[build.buildStats]
|
||||||
|
enable = true
|
||||||
|
|
||||||
|
[security.funcs]
|
||||||
|
getenv = ['^HUGO_', '^CI$']
|
||||||
|
|
||||||
|
[markup]
|
||||||
|
[markup.highlight]
|
||||||
|
noClasses = false
|
||||||
|
lineNos = true
|
||||||
|
codeFences = true
|
||||||
|
guessSyntax = true
|
||||||
|
lineNumbersInTable = true
|
||||||
|
[markup.goldmark.renderer]
|
||||||
|
unsafe = true
|
||||||
|
[markup.tableOfContents]
|
||||||
|
endLevel = 3
|
||||||
|
ordered = false
|
||||||
|
startLevel = 2
|
||||||
|
|
||||||
|
# Navigation Menu
|
||||||
|
[menu]
|
||||||
|
[[menu.main]]
|
||||||
|
name = "Features"
|
||||||
|
weight = 1
|
||||||
|
[menu.main.params]
|
||||||
|
has_submenu = true
|
||||||
|
submenu = [
|
||||||
|
{ name = "Performance", url = "/features/performance/" },
|
||||||
|
{ name = "Design System", url = "/features/design-system/" },
|
||||||
|
{ name = "Developer Experience", url = "/features/developer-experience/" }
|
||||||
|
]
|
||||||
|
[[menu.main]]
|
||||||
|
name = "Pricing"
|
||||||
|
url = "/pricing"
|
||||||
|
weight = 2
|
||||||
|
[[menu.main]]
|
||||||
|
name = "Blog"
|
||||||
|
url = "/blog"
|
||||||
|
weight = 3
|
||||||
|
[[menu.main]]
|
||||||
|
name = "Company"
|
||||||
|
weight = 4
|
||||||
|
[menu.main.params]
|
||||||
|
has_submenu = true
|
||||||
|
submenu = [
|
||||||
|
{ name = "About Us", url = "/company/" },
|
||||||
|
{ name = "Careers", url = "/careers/" }
|
||||||
|
]
|
||||||
|
|
||||||
|
# Footer Column 1 Menu
|
||||||
|
[[menu.footer_column_1]]
|
||||||
|
name = "Performance"
|
||||||
|
url = "/features/performance/"
|
||||||
|
weight = 1
|
||||||
|
[[menu.footer_column_1]]
|
||||||
|
name = "Design System"
|
||||||
|
url = "/features/design-system/"
|
||||||
|
weight = 2
|
||||||
|
[[menu.footer_column_1]]
|
||||||
|
name = "Developer Experience"
|
||||||
|
url = "/features/developer-experience/"
|
||||||
|
weight = 3
|
||||||
|
|
||||||
|
# Footer Column 2 Menu
|
||||||
|
[[menu.footer_column_2]]
|
||||||
|
name = "Blog"
|
||||||
|
url = "/blog"
|
||||||
|
weight = 1
|
||||||
|
[[menu.footer_column_2]]
|
||||||
|
name = "About Us"
|
||||||
|
url = "/company"
|
||||||
|
weight = 2
|
||||||
|
[[menu.footer_column_2]]
|
||||||
|
name = "Careers"
|
||||||
|
url = "/careers"
|
||||||
|
weight = 3
|
||||||
|
|
||||||
|
# Footer Column 3 Menu
|
||||||
|
[[menu.footer_column_3]]
|
||||||
|
name = "License"
|
||||||
|
url = "/license"
|
||||||
|
weight = 1
|
||||||
|
[[menu.footer_column_3]]
|
||||||
|
name = "Privacy Policy"
|
||||||
|
url = "/privacy"
|
||||||
|
weight = 2
|
518
exampleSite/hugo_stats.json
Normal file
|
@ -0,0 +1,518 @@
|
||||||
|
{
|
||||||
|
"htmlElements": {
|
||||||
|
"tags": [
|
||||||
|
"a",
|
||||||
|
"article",
|
||||||
|
"aside",
|
||||||
|
"body",
|
||||||
|
"br",
|
||||||
|
"button",
|
||||||
|
"code",
|
||||||
|
"dd",
|
||||||
|
"div",
|
||||||
|
"dt",
|
||||||
|
"em",
|
||||||
|
"footer",
|
||||||
|
"form",
|
||||||
|
"h1",
|
||||||
|
"h2",
|
||||||
|
"h3",
|
||||||
|
"h4",
|
||||||
|
"h5",
|
||||||
|
"head",
|
||||||
|
"header",
|
||||||
|
"hr",
|
||||||
|
"html",
|
||||||
|
"img",
|
||||||
|
"input",
|
||||||
|
"label",
|
||||||
|
"li",
|
||||||
|
"link",
|
||||||
|
"meta",
|
||||||
|
"nav",
|
||||||
|
"ol",
|
||||||
|
"p",
|
||||||
|
"path",
|
||||||
|
"pre",
|
||||||
|
"script",
|
||||||
|
"section",
|
||||||
|
"span",
|
||||||
|
"strong",
|
||||||
|
"style",
|
||||||
|
"svg",
|
||||||
|
"table",
|
||||||
|
"td",
|
||||||
|
"time",
|
||||||
|
"title",
|
||||||
|
"tr",
|
||||||
|
"ul"
|
||||||
|
],
|
||||||
|
"classes": [
|
||||||
|
"!max-w-none",
|
||||||
|
"-bottom-20",
|
||||||
|
"-bottom-4",
|
||||||
|
"-left-20",
|
||||||
|
"-mx-6",
|
||||||
|
"-right-20",
|
||||||
|
"-right-4",
|
||||||
|
"-top-20",
|
||||||
|
"-top-4",
|
||||||
|
"-translate-x-1/2",
|
||||||
|
"absolute",
|
||||||
|
"animate",
|
||||||
|
"aspect-h-9",
|
||||||
|
"aspect-square",
|
||||||
|
"aspect-w-16",
|
||||||
|
"backdrop-blur-sm",
|
||||||
|
"badge",
|
||||||
|
"badge-icon",
|
||||||
|
"bg-blue-100",
|
||||||
|
"bg-gradient-to-b",
|
||||||
|
"bg-gradient-to-r",
|
||||||
|
"bg-gray-100",
|
||||||
|
"bg-gray-50",
|
||||||
|
"bg-gray-800",
|
||||||
|
"bg-gray-900",
|
||||||
|
"bg-green-500",
|
||||||
|
"bg-primary-100",
|
||||||
|
"bg-primary-50",
|
||||||
|
"bg-primary-600",
|
||||||
|
"bg-red-500",
|
||||||
|
"bg-secondary-100",
|
||||||
|
"bg-white",
|
||||||
|
"bg-white/80",
|
||||||
|
"bg-yellow-400",
|
||||||
|
"bg-yellow-500",
|
||||||
|
"block",
|
||||||
|
"blur-3xl",
|
||||||
|
"border",
|
||||||
|
"border-2",
|
||||||
|
"border-b",
|
||||||
|
"border-gray-100",
|
||||||
|
"border-gray-200",
|
||||||
|
"border-gray-300",
|
||||||
|
"border-gray-700",
|
||||||
|
"border-t",
|
||||||
|
"border-white",
|
||||||
|
"border-y",
|
||||||
|
"bottom-2",
|
||||||
|
"btn",
|
||||||
|
"btn-outline",
|
||||||
|
"btn-primary",
|
||||||
|
"chroma",
|
||||||
|
"container",
|
||||||
|
"cta-gradient",
|
||||||
|
"cta-section",
|
||||||
|
"cursor-pointer",
|
||||||
|
"dark:bg-gray-800",
|
||||||
|
"dark:bg-gray-900",
|
||||||
|
"dark:border-gray-700",
|
||||||
|
"dark:text-gray-400",
|
||||||
|
"dark:text-green-400",
|
||||||
|
"dark:text-white",
|
||||||
|
"duration-200",
|
||||||
|
"duration-300",
|
||||||
|
"ease-in-out",
|
||||||
|
"faq-content",
|
||||||
|
"feature-page",
|
||||||
|
"filter",
|
||||||
|
"fixed",
|
||||||
|
"flex",
|
||||||
|
"flex-1",
|
||||||
|
"flex-auto",
|
||||||
|
"flex-col",
|
||||||
|
"flex-grow",
|
||||||
|
"flex-shrink-0",
|
||||||
|
"flex-wrap",
|
||||||
|
"focus:border-primary-500",
|
||||||
|
"focus:outline-none",
|
||||||
|
"focus:ring-2",
|
||||||
|
"focus:ring-offset-2",
|
||||||
|
"focus:ring-primary-500",
|
||||||
|
"focus:ring-primary-600",
|
||||||
|
"font-bold",
|
||||||
|
"font-extrabold",
|
||||||
|
"font-light",
|
||||||
|
"font-medium",
|
||||||
|
"font-mono",
|
||||||
|
"font-semibold",
|
||||||
|
"from-blue-50",
|
||||||
|
"from-primary-600",
|
||||||
|
"gap-12",
|
||||||
|
"gap-2",
|
||||||
|
"gap-4",
|
||||||
|
"gap-6",
|
||||||
|
"gap-8",
|
||||||
|
"gap-x-8",
|
||||||
|
"gap-y-16",
|
||||||
|
"gradient-bg",
|
||||||
|
"grayscale",
|
||||||
|
"grid",
|
||||||
|
"grid-cols-1",
|
||||||
|
"grid-cols-2",
|
||||||
|
"group",
|
||||||
|
"group-hover:bg-primary-100",
|
||||||
|
"group-hover:border-primary-100",
|
||||||
|
"group-hover:opacity-100",
|
||||||
|
"group-hover:scale-105",
|
||||||
|
"group-hover:shadow-md",
|
||||||
|
"group-hover:text-primary-600",
|
||||||
|
"group-hover:text-primary-700",
|
||||||
|
"group-hover:visible",
|
||||||
|
"h-12",
|
||||||
|
"h-20",
|
||||||
|
"h-3",
|
||||||
|
"h-4",
|
||||||
|
"h-5",
|
||||||
|
"h-6",
|
||||||
|
"h-64",
|
||||||
|
"h-8",
|
||||||
|
"h-96",
|
||||||
|
"h-auto",
|
||||||
|
"h-full",
|
||||||
|
"hidden",
|
||||||
|
"highlight",
|
||||||
|
"hover:-translate-y-1",
|
||||||
|
"hover:bg-gray-100",
|
||||||
|
"hover:bg-gray-200",
|
||||||
|
"hover:bg-gray-50",
|
||||||
|
"hover:bg-primary-100",
|
||||||
|
"hover:bg-primary-700",
|
||||||
|
"hover:border-primary-600",
|
||||||
|
"hover:grayscale-0",
|
||||||
|
"hover:scale-105",
|
||||||
|
"hover:shadow-lg",
|
||||||
|
"hover:shadow-md",
|
||||||
|
"hover:text-gray-900",
|
||||||
|
"hover:text-primary-600",
|
||||||
|
"hover:text-primary-700",
|
||||||
|
"inline-block",
|
||||||
|
"inline-flex",
|
||||||
|
"inset-x-0",
|
||||||
|
"investor-logo",
|
||||||
|
"invisible",
|
||||||
|
"isolate",
|
||||||
|
"items-baseline",
|
||||||
|
"items-center",
|
||||||
|
"items-start",
|
||||||
|
"justify-between",
|
||||||
|
"justify-center",
|
||||||
|
"leading-7",
|
||||||
|
"leading-8",
|
||||||
|
"leading-relaxed",
|
||||||
|
"leading-tight",
|
||||||
|
"left-0",
|
||||||
|
"left-1/2",
|
||||||
|
"lg:flex-row",
|
||||||
|
"lg:grid-cols-2",
|
||||||
|
"lg:grid-cols-3",
|
||||||
|
"lg:max-w-none",
|
||||||
|
"lg:mb-12",
|
||||||
|
"lg:mt-24",
|
||||||
|
"lg:order-1",
|
||||||
|
"lg:order-2",
|
||||||
|
"lg:p-12",
|
||||||
|
"lg:prose-lg",
|
||||||
|
"lg:px-6",
|
||||||
|
"lg:px-8",
|
||||||
|
"lg:py-16",
|
||||||
|
"lg:text-6xl",
|
||||||
|
"lg:text-center",
|
||||||
|
"lg:w-80",
|
||||||
|
"line-clamp-2",
|
||||||
|
"lntable",
|
||||||
|
"lntd",
|
||||||
|
"logo-scroll",
|
||||||
|
"logos-slide",
|
||||||
|
"max-h-12",
|
||||||
|
"max-w-2xl",
|
||||||
|
"max-w-3xl",
|
||||||
|
"max-w-4xl",
|
||||||
|
"max-w-6xl",
|
||||||
|
"max-w-7xl",
|
||||||
|
"max-w-none",
|
||||||
|
"max-w-screen-md",
|
||||||
|
"max-w-screen-xl",
|
||||||
|
"max-w-xl",
|
||||||
|
"mb-1",
|
||||||
|
"mb-12",
|
||||||
|
"mb-16",
|
||||||
|
"mb-2",
|
||||||
|
"mb-3",
|
||||||
|
"mb-4",
|
||||||
|
"mb-5",
|
||||||
|
"mb-6",
|
||||||
|
"mb-8",
|
||||||
|
"md:flex",
|
||||||
|
"md:flex-row",
|
||||||
|
"md:grid-cols-2",
|
||||||
|
"md:grid-cols-3",
|
||||||
|
"md:grid-cols-4",
|
||||||
|
"md:hidden",
|
||||||
|
"md:pb-28",
|
||||||
|
"md:pt-24",
|
||||||
|
"md:space-y-0",
|
||||||
|
"md:text-2xl",
|
||||||
|
"md:text-3xl",
|
||||||
|
"md:text-4xl",
|
||||||
|
"md:text-5xl",
|
||||||
|
"min-h-screen",
|
||||||
|
"ml-1",
|
||||||
|
"ml-2",
|
||||||
|
"ml-3",
|
||||||
|
"ml-4",
|
||||||
|
"mobile-menu-wrapper",
|
||||||
|
"mr-2",
|
||||||
|
"mt-12",
|
||||||
|
"mt-16",
|
||||||
|
"mt-2",
|
||||||
|
"mt-4",
|
||||||
|
"mt-6",
|
||||||
|
"mt-8",
|
||||||
|
"mx-auto",
|
||||||
|
"my-8",
|
||||||
|
"nav-content",
|
||||||
|
"nav-toggle",
|
||||||
|
"not-prose",
|
||||||
|
"object-cover",
|
||||||
|
"opacity-0",
|
||||||
|
"opacity-50",
|
||||||
|
"opacity-75",
|
||||||
|
"order-1",
|
||||||
|
"order-2",
|
||||||
|
"overflow-hidden",
|
||||||
|
"overflow-x-auto",
|
||||||
|
"p-2",
|
||||||
|
"p-4",
|
||||||
|
"p-6",
|
||||||
|
"p-8",
|
||||||
|
"pb-16",
|
||||||
|
"pb-20",
|
||||||
|
"pb-24",
|
||||||
|
"pb-32",
|
||||||
|
"pl-4",
|
||||||
|
"post",
|
||||||
|
"prose",
|
||||||
|
"prose-lg",
|
||||||
|
"prose-sm",
|
||||||
|
"pt-16",
|
||||||
|
"pt-20",
|
||||||
|
"pt-24",
|
||||||
|
"pt-4",
|
||||||
|
"pt-8",
|
||||||
|
"px-3",
|
||||||
|
"px-4",
|
||||||
|
"px-5",
|
||||||
|
"px-6",
|
||||||
|
"px-8",
|
||||||
|
"py-1",
|
||||||
|
"py-1.5",
|
||||||
|
"py-10",
|
||||||
|
"py-12",
|
||||||
|
"py-16",
|
||||||
|
"py-2",
|
||||||
|
"py-20",
|
||||||
|
"py-24",
|
||||||
|
"py-3",
|
||||||
|
"py-4",
|
||||||
|
"py-6",
|
||||||
|
"py-8",
|
||||||
|
"relative",
|
||||||
|
"right-0",
|
||||||
|
"right-2",
|
||||||
|
"right-4",
|
||||||
|
"ring-1",
|
||||||
|
"ring-gray-200",
|
||||||
|
"rounded-2xl",
|
||||||
|
"rounded-full",
|
||||||
|
"rounded-lg",
|
||||||
|
"rounded-md",
|
||||||
|
"rounded-xl",
|
||||||
|
"section",
|
||||||
|
"shadow-2xl",
|
||||||
|
"shadow-elevation",
|
||||||
|
"shadow-lg",
|
||||||
|
"shadow-md",
|
||||||
|
"shadow-sm",
|
||||||
|
"shadow-xl",
|
||||||
|
"sm:flex-row",
|
||||||
|
"sm:mt-20",
|
||||||
|
"sm:prose",
|
||||||
|
"sm:pt-32",
|
||||||
|
"sm:px-6",
|
||||||
|
"sm:py-32",
|
||||||
|
"sm:text-4xl",
|
||||||
|
"sm:text-6xl",
|
||||||
|
"sm:text-xl",
|
||||||
|
"space-x-2",
|
||||||
|
"space-x-3",
|
||||||
|
"space-x-4",
|
||||||
|
"space-x-6",
|
||||||
|
"space-x-8",
|
||||||
|
"space-y-2",
|
||||||
|
"space-y-3",
|
||||||
|
"space-y-32",
|
||||||
|
"space-y-4",
|
||||||
|
"space-y-6",
|
||||||
|
"space-y-8",
|
||||||
|
"sr-only",
|
||||||
|
"stat-card",
|
||||||
|
"team-member",
|
||||||
|
"testimonial-card",
|
||||||
|
"testimonials-container",
|
||||||
|
"testimonials-track",
|
||||||
|
"text-2xl",
|
||||||
|
"text-3xl",
|
||||||
|
"text-4xl",
|
||||||
|
"text-5xl",
|
||||||
|
"text-base",
|
||||||
|
"text-blue-500",
|
||||||
|
"text-blue-600",
|
||||||
|
"text-blue-800",
|
||||||
|
"text-center",
|
||||||
|
"text-gray-200",
|
||||||
|
"text-gray-500",
|
||||||
|
"text-gray-600",
|
||||||
|
"text-gray-700",
|
||||||
|
"text-gray-800",
|
||||||
|
"text-gray-900",
|
||||||
|
"text-green-500",
|
||||||
|
"text-left",
|
||||||
|
"text-lg",
|
||||||
|
"text-primary-100",
|
||||||
|
"text-primary-600",
|
||||||
|
"text-right",
|
||||||
|
"text-sm",
|
||||||
|
"text-white",
|
||||||
|
"text-xl",
|
||||||
|
"text-xs",
|
||||||
|
"to-primary-700",
|
||||||
|
"to-white",
|
||||||
|
"top-0",
|
||||||
|
"top-20",
|
||||||
|
"top-4",
|
||||||
|
"tracking-tight",
|
||||||
|
"tracking-wider",
|
||||||
|
"transform",
|
||||||
|
"transition",
|
||||||
|
"transition-all",
|
||||||
|
"transition-colors",
|
||||||
|
"transition-shadow",
|
||||||
|
"transition-transform",
|
||||||
|
"uppercase",
|
||||||
|
"value-card",
|
||||||
|
"via-blue-50",
|
||||||
|
"w-12",
|
||||||
|
"w-3",
|
||||||
|
"w-4",
|
||||||
|
"w-5",
|
||||||
|
"w-6",
|
||||||
|
"w-64",
|
||||||
|
"w-72",
|
||||||
|
"w-8",
|
||||||
|
"w-full",
|
||||||
|
"xl:grid-cols-4",
|
||||||
|
"xl:w-96",
|
||||||
|
"z-10",
|
||||||
|
"z-50"
|
||||||
|
],
|
||||||
|
"ids": [
|
||||||
|
"1-colors-and-typography",
|
||||||
|
"1-netlify",
|
||||||
|
"2-layout-modifications",
|
||||||
|
"2-vercel",
|
||||||
|
"3-github-pages",
|
||||||
|
"TableOfContents",
|
||||||
|
"about-the-role",
|
||||||
|
"accessibility",
|
||||||
|
"advanced-customization-techniques",
|
||||||
|
"advanced-features",
|
||||||
|
"advanced-optimization-techniques",
|
||||||
|
"asset-optimization",
|
||||||
|
"automatically-collected-information",
|
||||||
|
"backup-strategies",
|
||||||
|
"basic-theme-customization",
|
||||||
|
"benefits",
|
||||||
|
"best-practices",
|
||||||
|
"built-for-developers",
|
||||||
|
"built-for-speed",
|
||||||
|
"caching-strategies",
|
||||||
|
"caching-strategy",
|
||||||
|
"cdn-integration",
|
||||||
|
"cdn-setup",
|
||||||
|
"changes-to-this-policy",
|
||||||
|
"code-examples",
|
||||||
|
"common-customization-examples",
|
||||||
|
"component-system",
|
||||||
|
"comprehensive-design-system",
|
||||||
|
"conclusion",
|
||||||
|
"configuration",
|
||||||
|
"contact-us",
|
||||||
|
"content-backup",
|
||||||
|
"content-delivery",
|
||||||
|
"content-organization",
|
||||||
|
"content-reuse",
|
||||||
|
"content-types",
|
||||||
|
"content-updates",
|
||||||
|
"content-workflow",
|
||||||
|
"core-elements",
|
||||||
|
"creating-custom-shortcodes",
|
||||||
|
"critical-css",
|
||||||
|
"css-and-javascript",
|
||||||
|
"custom-homepage-layout",
|
||||||
|
"custom-taxonomy-pages",
|
||||||
|
"customization",
|
||||||
|
"data-security",
|
||||||
|
"deployment-best-practices",
|
||||||
|
"design-components",
|
||||||
|
"design-features",
|
||||||
|
"development-features",
|
||||||
|
"development-workflow",
|
||||||
|
"directory-structure",
|
||||||
|
"documentation",
|
||||||
|
"draft-management",
|
||||||
|
"dynamic-content",
|
||||||
|
"edge-computing",
|
||||||
|
"front-matter-templates",
|
||||||
|
"further-resources",
|
||||||
|
"how-to-apply",
|
||||||
|
"how-we-use-your-information",
|
||||||
|
"image-optimization",
|
||||||
|
"information-we-collect",
|
||||||
|
"introduction",
|
||||||
|
"key-metrics",
|
||||||
|
"mit-license",
|
||||||
|
"nav-toggle",
|
||||||
|
"next-steps",
|
||||||
|
"nice-to-have",
|
||||||
|
"optimization-features",
|
||||||
|
"page-bundles",
|
||||||
|
"partials",
|
||||||
|
"performance-considerations",
|
||||||
|
"performance-metrics",
|
||||||
|
"performance-monitoring",
|
||||||
|
"personal-information",
|
||||||
|
"popular-deployment-platforms",
|
||||||
|
"project-structure",
|
||||||
|
"related-content",
|
||||||
|
"requirements",
|
||||||
|
"resource-hints",
|
||||||
|
"resources",
|
||||||
|
"responsive-design",
|
||||||
|
"security-measures",
|
||||||
|
"seo-and-metadata",
|
||||||
|
"seo-optimization",
|
||||||
|
"setting-up-your-first-hugo-site",
|
||||||
|
"shortcodes",
|
||||||
|
"styling",
|
||||||
|
"taxonomies",
|
||||||
|
"third-party-services",
|
||||||
|
"ui-components",
|
||||||
|
"understanding-hugos-theme-structure",
|
||||||
|
"why-choose-hugo",
|
||||||
|
"working-with-content",
|
||||||
|
"working-with-partials",
|
||||||
|
"your-rights"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
17
exampleSite/package.json
Normal file
|
@ -0,0 +1,17 @@
|
||||||
|
{
|
||||||
|
"name": "hugo-saasify-demo",
|
||||||
|
"version": "1.0.0",
|
||||||
|
"scripts": {
|
||||||
|
"start": "concurrently \"npx tailwindcss -i assets/css/main.css -o static/css/style.css --watch\" \"hugo server -D\"",
|
||||||
|
"build": "tailwindcss -i assets/css/main.css -o static/css/style.css --minify && hugo --minify"
|
||||||
|
},
|
||||||
|
"devDependencies": {
|
||||||
|
"@tailwindcss/forms": "^0.5.7",
|
||||||
|
"@tailwindcss/typography": "^0.5.10",
|
||||||
|
"autoprefixer": "^10.4.16",
|
||||||
|
"concurrently": "^8.2.2",
|
||||||
|
"postcss": "^8.4.31",
|
||||||
|
"postcss-cli": "^10.1.0",
|
||||||
|
"tailwindcss": "^3.3.5"
|
||||||
|
}
|
||||||
|
}
|
6
exampleSite/postcss.config.js
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
module.exports = {
|
||||||
|
plugins: {
|
||||||
|
tailwindcss: {},
|
||||||
|
autoprefixer: {},
|
||||||
|
}
|
||||||
|
}
|
4571
exampleSite/static/css/style.css
Normal file
BIN
exampleSite/static/images/blog/blog-1.jpg
Normal file
After Width: | Height: | Size: 76 KiB |
BIN
exampleSite/static/images/blog/blog-2.webp
Normal file
After Width: | Height: | Size: 392 KiB |
BIN
exampleSite/static/images/blog/blog-3.webp
Normal file
After Width: | Height: | Size: 74 KiB |
BIN
exampleSite/static/images/blog/blog-4.jpg
Normal file
After Width: | Height: | Size: 419 KiB |
BIN
exampleSite/static/images/blog/blog-5.jpg
Normal file
After Width: | Height: | Size: 279 KiB |
7
exampleSite/static/images/company/exec-1.svg
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<svg width="400" height="400" viewBox="0 0 400 400" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<rect width="400" height="400" fill="#e0e7ff"/>
|
||||||
|
<circle cx="200" cy="150" r="80" fill="#818cf8"/>
|
||||||
|
<circle cx="200" cy="400" r="160" fill="#818cf8"/>
|
||||||
|
<rect x="120" y="130" width="160" height="40" rx="20" fill="#c7d2fe"/>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 370 B |
7
exampleSite/static/images/company/exec-2.svg
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<svg width="400" height="400" viewBox="0 0 400 400" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<rect width="400" height="400" fill="#fee2e2"/>
|
||||||
|
<circle cx="200" cy="150" r="80" fill="#f87171"/>
|
||||||
|
<circle cx="200" cy="400" r="160" fill="#f87171"/>
|
||||||
|
<rect x="120" y="130" width="160" height="40" rx="20" fill="#fecaca"/>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 370 B |
7
exampleSite/static/images/company/exec-3.svg
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<svg width="400" height="400" viewBox="0 0 400 400" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<rect width="400" height="400" fill="#dcfce7"/>
|
||||||
|
<circle cx="200" cy="150" r="80" fill="#4ade80"/>
|
||||||
|
<circle cx="200" cy="400" r="160" fill="#4ade80"/>
|
||||||
|
<rect x="120" y="130" width="160" height="40" rx="20" fill="#bbf7d0"/>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 370 B |
7
exampleSite/static/images/company/investor-1.svg
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<svg width="200" height="60" viewBox="0 0 200 60" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<rect width="200" height="60" fill="white"/>
|
||||||
|
<circle cx="40" cy="30" r="20" fill="#3b82f6"/>
|
||||||
|
<rect x="70" y="20" width="120" height="8" rx="4" fill="#3b82f6"/>
|
||||||
|
<rect x="70" y="35" width="80" height="8" rx="4" fill="#93c5fd"/>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 374 B |
7
exampleSite/static/images/company/investor-2.svg
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<svg width="200" height="60" viewBox="0 0 200 60" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<rect width="200" height="60" fill="white"/>
|
||||||
|
<polygon points="30,10 50,10 40,40" fill="#3b82f6"/>
|
||||||
|
<rect x="70" y="20" width="100" height="8" rx="4" fill="#3b82f6"/>
|
||||||
|
<rect x="70" y="35" width="60" height="8" rx="4" fill="#93c5fd"/>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 379 B |
8
exampleSite/static/images/company/investor-3.svg
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<svg width="200" height="60" viewBox="0 0 200 60" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<rect width="200" height="60" fill="white"/>
|
||||||
|
<rect x="20" y="15" width="30" height="30" rx="6" fill="#3b82f6"/>
|
||||||
|
<circle cx="35" cy="30" r="8" fill="white"/>
|
||||||
|
<rect x="70" y="20" width="110" height="8" rx="4" fill="#3b82f6"/>
|
||||||
|
<rect x="70" y="35" width="70" height="8" rx="4" fill="#93c5fd"/>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 442 B |
8
exampleSite/static/images/company/investor-4.svg
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<svg width="200" height="60" viewBox="0 0 200 60" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<rect width="200" height="60" fill="white"/>
|
||||||
|
<circle cx="30" cy="30" r="15" fill="#3b82f6"/>
|
||||||
|
<circle cx="45" cy="30" r="15" fill="#60a5fa" fill-opacity="0.7"/>
|
||||||
|
<rect x="70" y="20" width="90" height="8" rx="4" fill="#3b82f6"/>
|
||||||
|
<rect x="70" y="35" width="50" height="8" rx="4" fill="#93c5fd"/>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 444 B |
BIN
exampleSite/static/images/favicon.ico
Normal file
After Width: | Height: | Size: 188 KiB |
28
exampleSite/static/images/feature-1.svg
Normal file
|
@ -0,0 +1,28 @@
|
||||||
|
<svg width="600" height="400" viewBox="0 0 600 400" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<rect width="600" height="400" fill="#f3f4f6"/>
|
||||||
|
<rect x="20" y="20" width="560" height="360" rx="8" fill="#ffffff" stroke="#e5e7eb" stroke-width="2"/>
|
||||||
|
|
||||||
|
<!-- Header -->
|
||||||
|
<rect x="40" y="40" width="200" height="24" rx="4" fill="#e5e7eb"/>
|
||||||
|
<rect x="40" y="72" width="160" height="16" rx="4" fill="#f3f4f6"/>
|
||||||
|
|
||||||
|
<!-- Analytics Graph -->
|
||||||
|
<rect x="40" y="120" width="520" height="220" rx="4" fill="#f9fafb"/>
|
||||||
|
|
||||||
|
<!-- Graph Lines -->
|
||||||
|
<path d="M60 300 C 140 200, 220 280, 300 180 S 460 220, 540 120"
|
||||||
|
stroke="#60a5fa" stroke-width="3" fill="none"/>
|
||||||
|
<path d="M60 320 C 140 280, 220 300, 300 240 S 460 260, 540 200"
|
||||||
|
stroke="#818cf8" stroke-width="3" fill="none" opacity="0.6"/>
|
||||||
|
|
||||||
|
<!-- Data Points -->
|
||||||
|
<circle cx="140" cy="200" r="6" fill="#60a5fa"/>
|
||||||
|
<circle cx="220" cy="280" r="6" fill="#60a5fa"/>
|
||||||
|
<circle cx="300" cy="180" r="6" fill="#60a5fa"/>
|
||||||
|
<circle cx="380" cy="220" r="6" fill="#60a5fa"/>
|
||||||
|
<circle cx="460" cy="220" r="6" fill="#60a5fa"/>
|
||||||
|
|
||||||
|
<!-- Legend -->
|
||||||
|
<rect x="40" y="360" width="80" height="8" rx="4" fill="#60a5fa"/>
|
||||||
|
<rect x="140" y="360" width="80" height="8" rx="4" fill="#818cf8"/>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 1.2 KiB |
35
exampleSite/static/images/feature-2.svg
Normal file
|
@ -0,0 +1,35 @@
|
||||||
|
<svg width="600" height="400" viewBox="0 0 600 400" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<rect width="600" height="400" fill="#f3f4f6"/>
|
||||||
|
<rect x="20" y="20" width="560" height="360" rx="8" fill="#ffffff" stroke="#e5e7eb" stroke-width="2"/>
|
||||||
|
|
||||||
|
<!-- Session Player Header -->
|
||||||
|
<rect x="40" y="40" width="520" height="40" rx="4" fill="#f9fafb"/>
|
||||||
|
<circle cx="70" cy="60" r="12" fill="#a855f7"/>
|
||||||
|
<rect x="100" y="50" width="120" height="20" rx="4" fill="#e5e7eb"/>
|
||||||
|
<circle cx="500" cy="60" r="12" fill="#ef4444"/>
|
||||||
|
|
||||||
|
<!-- Timeline -->
|
||||||
|
<rect x="40" y="100" width="520" height="20" rx="4" fill="#f9fafb"/>
|
||||||
|
<rect x="40" y="100" width="200" height="20" rx="4" fill="#a855f7" opacity="0.3"/>
|
||||||
|
<circle cx="240" cy="110" r="8" fill="#a855f7"/>
|
||||||
|
|
||||||
|
<!-- Session Content -->
|
||||||
|
<rect x="40" y="140" width="520" height="220" rx="4" fill="#f9fafb"/>
|
||||||
|
|
||||||
|
<!-- Mouse Movement Path -->
|
||||||
|
<path d="M100 200 C 200 180, 300 280, 400 200 S 500 220, 520 180"
|
||||||
|
stroke="#a855f7" stroke-width="2" stroke-dasharray="4 4" fill="none"/>
|
||||||
|
|
||||||
|
<!-- Click Points -->
|
||||||
|
<circle cx="200" cy="180" r="8" fill="#a855f7" opacity="0.3"/>
|
||||||
|
<circle cx="300" cy="280" r="8" fill="#a855f7" opacity="0.3"/>
|
||||||
|
<circle cx="400" cy="200" r="8" fill="#a855f7" opacity="0.3"/>
|
||||||
|
|
||||||
|
<!-- Cursor -->
|
||||||
|
<path d="M520 180 L 530 190 L 515 185 Z" fill="#a855f7"/>
|
||||||
|
|
||||||
|
<!-- Event List -->
|
||||||
|
<rect x="40" y="320" width="120" height="24" rx="4" fill="#e5e7eb"/>
|
||||||
|
<rect x="180" y="320" width="120" height="24" rx="4" fill="#e5e7eb"/>
|
||||||
|
<rect x="320" y="320" width="120" height="24" rx="4" fill="#e5e7eb"/>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 1.5 KiB |
34
exampleSite/static/images/feature-3.svg
Normal file
|
@ -0,0 +1,34 @@
|
||||||
|
<svg width="600" height="400" viewBox="0 0 600 400" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<rect width="600" height="400" fill="#f3f4f6"/>
|
||||||
|
<rect x="20" y="20" width="560" height="360" rx="8" fill="#ffffff" stroke="#e5e7eb" stroke-width="2"/>
|
||||||
|
|
||||||
|
<!-- Header -->
|
||||||
|
<rect x="40" y="40" width="200" height="24" rx="4" fill="#e5e7eb"/>
|
||||||
|
<rect x="40" y="72" width="160" height="16" rx="4" fill="#f3f4f6"/>
|
||||||
|
|
||||||
|
<!-- Code Editor Window -->
|
||||||
|
<rect x="40" y="120" width="520" height="220" rx="4" fill="#f3f4f6"/>
|
||||||
|
|
||||||
|
<!-- Code Lines -->
|
||||||
|
<rect x="60" y="140" width="120" height="16" rx="2" fill="#9333ea" opacity="0.6"/>
|
||||||
|
<rect x="60" y="164" width="180" height="16" rx="2" fill="#60a5fa" opacity="0.6"/>
|
||||||
|
<rect x="80" y="188" width="160" height="16" rx="2" fill="#818cf8" opacity="0.6"/>
|
||||||
|
<rect x="80" y="212" width="140" height="16" rx="2" fill="#818cf8" opacity="0.6"/>
|
||||||
|
<rect x="60" y="236" width="200" height="16" rx="2" fill="#60a5fa" opacity="0.6"/>
|
||||||
|
<rect x="60" y="260" width="160" height="16" rx="2" fill="#9333ea" opacity="0.6"/>
|
||||||
|
<rect x="80" y="284" width="180" height="16" rx="2" fill="#818cf8" opacity="0.6"/>
|
||||||
|
|
||||||
|
<!-- Line Numbers -->
|
||||||
|
<text x="45" y="152" font-family="monospace" font-size="12" fill="#6b7280">1</text>
|
||||||
|
<text x="45" y="176" font-family="monospace" font-size="12" fill="#6b7280">2</text>
|
||||||
|
<text x="45" y="200" font-family="monospace" font-size="12" fill="#6b7280">3</text>
|
||||||
|
<text x="45" y="224" font-family="monospace" font-size="12" fill="#6b7280">4</text>
|
||||||
|
<text x="45" y="248" font-family="monospace" font-size="12" fill="#6b7280">5</text>
|
||||||
|
<text x="45" y="272" font-family="monospace" font-size="12" fill="#6b7280">6</text>
|
||||||
|
<text x="45" y="296" font-family="monospace" font-size="12" fill="#6b7280">7</text>
|
||||||
|
|
||||||
|
<!-- Status Bar -->
|
||||||
|
<rect x="40" y="360" width="520" height="20" rx="4" fill="#f3f4f6"/>
|
||||||
|
<circle cx="60" cy="370" r="4" fill="#34d399"/>
|
||||||
|
<rect x="80" y="366" width="80" height="8" rx="4" fill="#9ca3af"/>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 1.9 KiB |
26
exampleSite/static/images/hero-dashboard.svg
Normal file
|
@ -0,0 +1,26 @@
|
||||||
|
<svg width="800" height="600" viewBox="0 0 800 600" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<rect width="800" height="600" fill="#f3f4f6"/>
|
||||||
|
<rect x="40" y="40" width="720" height="520" rx="8" fill="#ffffff" stroke="#e5e7eb" stroke-width="2"/>
|
||||||
|
|
||||||
|
<!-- Header -->
|
||||||
|
<rect x="60" y="60" width="680" height="60" rx="4" fill="#f9fafb"/>
|
||||||
|
<circle cx="100" cy="90" r="15" fill="#60a5fa"/>
|
||||||
|
<rect x="140" y="80" width="120" height="20" rx="4" fill="#e5e7eb"/>
|
||||||
|
|
||||||
|
<!-- Charts -->
|
||||||
|
<rect x="60" y="140" width="320" height="200" rx="4" fill="#f9fafb"/>
|
||||||
|
<path d="M80 300 L140 260 L200 280 L260 220 L320 240 L360 200" stroke="#60a5fa" stroke-width="2" fill="none"/>
|
||||||
|
|
||||||
|
<!-- Stats -->
|
||||||
|
<rect x="400" y="140" width="340" height="200" rx="4" fill="#f9fafb"/>
|
||||||
|
<rect x="420" y="160" width="140" height="20" rx="4" fill="#e5e7eb"/>
|
||||||
|
<rect x="420" y="200" width="300" height="8" rx="4" fill="#60a5fa"/>
|
||||||
|
<rect x="420" y="220" width="260" height="8" rx="4" fill="#818cf8"/>
|
||||||
|
<rect x="420" y="240" width="220" height="8" rx="4" fill="#a78bfa"/>
|
||||||
|
|
||||||
|
<!-- Bottom Section -->
|
||||||
|
<rect x="60" y="360" width="680" height="180" rx="4" fill="#f9fafb"/>
|
||||||
|
<rect x="80" y="380" width="200" height="140" rx="4" fill="#ffffff" stroke="#e5e7eb" stroke-width="1"/>
|
||||||
|
<rect x="300" y="380" width="200" height="140" rx="4" fill="#ffffff" stroke="#e5e7eb" stroke-width="1"/>
|
||||||
|
<rect x="520" y="380" width="200" height="140" rx="4" fill="#ffffff" stroke="#e5e7eb" stroke-width="1"/>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 1.4 KiB |
8
exampleSite/static/images/logo.svg
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="35 36 130 128">
|
||||||
|
<!-- outline around oval -->
|
||||||
|
<ellipse cx="100" cy="100" rx="60" ry="45" fill="none" stroke="#778fe6" stroke-width="8"/>
|
||||||
|
<!-- Blue oval background -->
|
||||||
|
<ellipse cx="100" cy="100" rx="56" ry="41" fill="#425ad6"/>
|
||||||
|
<!-- Yellow lightning bolt -->
|
||||||
|
<path d="M90 40 L130 40 L100 85 L130 85 L70 160 L90 105 L70 105 Z" fill="#f59e0b" stroke="white" stroke-width="2"/>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 441 B |
BIN
exampleSite/static/images/logos/customer-1.png
Normal file
After Width: | Height: | Size: 1.5 KiB |
20
exampleSite/static/images/logos/customer-1.svg
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
<svg width="145" height="26" viewBox="0 0 145 26" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<g clip-path="url(#clip0_2011_8848)">
|
||||||
|
<path d="M81.0508 19.0453H84.1348V7.88073H81.0508V19.0453ZM81.0508 6.13968H84.1348V3.48456H81.0508V6.13968Z" fill="#1E1E1E"/>
|
||||||
|
<path d="M86.1221 22.7016H89.2061V17.783H89.2511C89.9085 18.7406 90.9747 19.3718 92.607 19.3718C95.6004 19.3718 97.6414 17.0866 97.6414 13.474C97.6414 9.99177 95.6685 7.57605 92.5845 7.57605C90.9971 7.57605 89.9085 8.29428 89.1605 9.2736H89.0924V7.88074H86.1221V22.7016ZM91.9495 16.9125C90.1129 16.9125 89.138 15.585 89.138 13.561C89.138 11.5587 89.9085 9.97006 91.8364 9.97006C93.7412 9.97006 94.5117 11.4499 94.5117 13.561C94.5117 15.672 93.5144 16.9125 91.9495 16.9125Z" fill="#1E1E1E"/>
|
||||||
|
<path d="M103.793 19.3718C106.696 19.3718 108.692 18.0225 108.692 15.7808C108.692 13.1693 106.538 12.6469 104.587 12.2552C102.932 11.9287 101.39 11.8417 101.39 10.8841C101.39 10.0789 102.184 9.6436 103.385 9.6436C104.701 9.6436 105.495 10.0789 105.63 11.2758H108.419C108.193 9.03423 106.492 7.57605 103.431 7.57605C100.778 7.57605 98.6915 8.72954 98.6915 11.1453C98.6915 13.5828 100.733 14.1268 102.819 14.5186C104.406 14.8233 105.879 14.9321 105.879 15.9985C105.879 16.782 105.109 17.2825 103.748 17.2825C102.365 17.2825 101.412 16.7166 101.209 15.4326H98.3516C98.5328 17.8048 100.415 19.3718 103.793 19.3718Z" fill="#1E1E1E"/>
|
||||||
|
<path d="M120.4 19.0453V7.88074H117.316V14.3227C117.316 15.8026 116.432 16.8472 114.981 16.8472C113.666 16.8472 113.054 16.129 113.054 14.8233V7.88074H109.992V15.3238C109.992 17.7613 111.443 19.35 114.029 19.35C115.662 19.35 116.568 18.7624 117.362 17.7396H117.43V19.0453H120.4Z" fill="#1E1E1E"/>
|
||||||
|
<path d="M122.395 19.0453H125.479V12.5599C125.479 11.0799 126.318 10.1224 127.565 10.1224C128.699 10.1224 129.356 10.7753 129.356 12.0375V19.0453H132.44V12.5599C132.44 11.0799 133.234 10.1224 134.526 10.1224C135.661 10.1224 136.318 10.7753 136.318 12.0375V19.0453H139.402V11.537C139.402 9.09948 138.018 7.57605 135.569 7.57605C134.096 7.57605 132.871 8.31599 132.077 9.53474H132.032C131.465 8.35954 130.286 7.57605 128.812 7.57605C127.202 7.57605 126.069 8.35954 125.434 9.3824H125.365V7.88074H122.395V19.0453Z" fill="#1E1E1E"/>
|
||||||
|
<path d="M0.672852 19.0453H3.75679V3.48456H0.672852V19.0453Z" fill="#1E1E1E"/>
|
||||||
|
<path d="M11.2969 19.3718C14.9024 19.3718 17.3741 16.8037 17.3741 13.474C17.3741 10.1441 14.9024 7.57605 11.2969 7.57605C7.6914 7.57605 5.21973 10.1441 5.21973 13.474C5.21973 16.8037 7.6914 19.3718 11.2969 19.3718ZM11.2969 17.1084C9.39215 17.1084 8.34902 15.6502 8.34902 13.474C8.34902 11.2976 9.39215 9.81772 11.2969 9.81772C13.179 9.81772 14.2448 11.2976 14.2448 13.474C14.2448 15.6502 13.179 17.1084 11.2969 17.1084Z" fill="#1E1E1E"/>
|
||||||
|
<path d="M23.9329 22.8539C25.6563 22.8539 27.1529 22.4622 28.1279 21.5916C28.9896 20.8299 29.5112 19.7635 29.5112 18.1966V7.88074H26.5407V9.056H26.4953C25.7923 8.12017 24.7266 7.57605 23.2753 7.57605C20.3274 7.57605 18.2412 9.70885 18.2412 13.0386C18.2412 16.412 20.7809 18.3706 23.366 18.3706C24.8399 18.3706 25.7243 17.8048 26.4046 17.0649H26.4726V18.2836C26.4726 19.8071 25.6336 20.6123 23.8875 20.6123C22.4589 20.6123 21.8013 20.0682 21.5519 19.3718H18.4906C18.8081 21.5481 20.7582 22.8539 23.9329 22.8539ZM23.8875 15.9985C22.3002 15.9985 21.2571 14.8885 21.2571 12.9952C21.2571 11.1235 22.3002 9.94829 23.8648 9.94829C25.7243 9.94829 26.6313 11.3411 26.6313 12.9734C26.6313 14.6274 25.8377 15.9985 23.8875 15.9985Z" fill="#1E1E1E"/>
|
||||||
|
<path d="M37.0059 19.3718C40.6114 19.3718 43.0831 16.8037 43.0831 13.474C43.0831 10.1441 40.6114 7.57605 37.0059 7.57605C33.4004 7.57605 30.9287 10.1441 30.9287 13.474C30.9287 16.8037 33.4004 19.3718 37.0059 19.3718ZM37.0059 17.1084C35.1011 17.1084 34.0581 15.6502 34.0581 13.474C34.0581 11.2976 35.1011 9.81772 37.0059 9.81772C38.888 9.81772 39.9538 11.2976 39.9538 13.474C39.9538 15.6502 38.888 17.1084 37.0059 17.1084Z" fill="#1E1E1E"/>
|
||||||
|
<path d="M140.522 6.0478C140.522 5.54698 140.946 5.14099 141.468 5.14099H143.357C143.879 5.14099 144.302 5.54698 144.302 6.0478C144.302 6.54861 143.879 6.95461 143.357 6.95461H141.468C140.946 6.95461 140.522 6.54861 140.522 6.0478Z" fill="#1E1E1E"/>
|
||||||
|
<path fill-rule="evenodd" clip-rule="evenodd" d="M61.7863 0.304749C69.0915 0.304749 75.0142 5.98862 75.0142 13C75.0142 20.0114 69.0915 25.6953 61.7863 25.6953C54.4808 25.6953 48.5586 20.0114 48.5586 13C48.5586 5.98862 54.4808 0.304749 61.7863 0.304749ZM61.3082 1.25473C59.7991 1.45855 58.3622 2.62232 57.2467 4.56871C56.9232 5.13329 56.6313 5.75702 56.3769 6.43049C57.8936 6.0647 59.5597 5.84904 61.3082 5.81568V1.25473ZM55.2589 6.73541C55.5753 5.78249 55.9623 4.90577 56.4089 4.12644C56.9618 3.16156 57.618 2.32834 58.3574 1.68839C54.3369 2.80904 51.1679 5.85054 50.0002 9.70921C50.667 8.99961 51.5352 8.3698 52.5405 7.83914C53.3526 7.41048 54.266 7.03902 55.2589 6.73541ZM54.9412 7.80835C54.5601 9.26399 54.3354 10.863 54.3006 12.5411H49.5484C49.7607 11.0928 50.9733 9.71372 53.0014 8.64326C53.5896 8.33273 54.2395 8.05254 54.9412 7.80835ZM55.257 12.5411C55.2965 10.7098 55.5713 8.99047 56.0258 7.47135C57.6086 7.03515 59.4 6.77146 61.3082 6.73357V8.71587C60.5963 10.4649 59.1445 11.8582 57.322 12.5411H55.257ZM54.3006 13.4589H49.5484C49.7607 14.9072 50.9733 16.2863 53.0014 17.3568C53.5896 17.6673 54.2395 17.9475 54.9412 18.1917C54.5601 16.736 54.3354 15.137 54.3006 13.4589ZM56.0258 18.5287C55.5713 17.0096 55.2965 15.2902 55.257 13.4589H57.322C59.1445 14.1418 60.5963 15.5351 61.3082 17.2842V19.2665C59.4 19.2286 57.6086 18.9649 56.0258 18.5287ZM55.2589 19.2646C54.266 18.961 53.3526 18.5896 52.5405 18.1609C51.5352 17.6302 50.667 17.0004 50.0002 16.2908C51.1679 20.1495 54.3369 23.191 58.3574 24.3116C57.618 23.6717 56.9618 22.8385 56.4089 21.8736C55.9623 21.0943 55.5753 20.2175 55.2589 19.2646ZM61.3082 24.7453C59.7991 24.5415 58.3622 23.3777 57.2467 21.4313C56.9232 20.8668 56.6313 20.243 56.3769 19.5696C57.8936 19.9353 59.5597 20.151 61.3082 20.1843V24.7453ZM65.2151 24.3116C65.9545 23.6717 66.6106 22.8385 67.1636 21.8736C67.61 21.0943 67.9976 20.2175 68.3137 19.2646C69.3064 18.961 70.2198 18.5896 71.032 18.1609C72.0373 17.6302 72.9057 17.0004 73.5724 16.2908C72.4044 20.1495 69.2357 23.191 65.2151 24.3116ZM67.196 19.5696C66.9413 20.243 66.649 20.8668 66.3256 21.4313C65.2104 23.3777 63.7734 24.5415 62.2643 24.7453V20.1843C64.0129 20.151 65.6789 19.9353 67.196 19.5696ZM68.6312 18.1917C69.3329 17.9475 69.983 17.6673 70.571 17.3568C72.5995 16.2863 73.8118 14.9072 74.0241 13.4589H69.2721C69.237 15.137 69.0121 16.736 68.6312 18.1917ZM68.3157 13.4589C68.276 15.2902 68.0015 17.0096 67.5465 18.5287C65.9639 18.9649 64.1725 19.2286 62.2643 19.2665V17.2856C62.976 15.536 64.4282 14.142 66.2511 13.4589H68.3157ZM69.2721 12.5411H74.0241C73.8118 11.0928 72.5995 9.71372 70.571 8.64326C69.983 8.33273 69.3329 8.05254 68.6312 7.80835C69.0121 9.26399 69.237 10.863 69.2721 12.5411ZM67.5465 7.47135C68.0015 8.99047 68.276 10.7098 68.3157 12.5411H66.2512C64.4282 11.858 62.976 10.4641 62.2643 8.71441V6.73357C64.1725 6.77146 65.9639 7.03515 67.5465 7.47135ZM68.3137 6.73541C69.3064 7.03902 70.2198 7.41048 71.032 7.83914C72.0373 8.3698 72.9057 8.99961 73.5724 9.70921C72.4044 5.85054 69.2357 2.80904 65.2151 1.68839C65.9545 2.32834 66.6106 3.16156 67.1636 4.12644C67.61 4.90577 67.9976 5.78249 68.3137 6.73541ZM62.2643 1.25473C63.7734 1.45855 65.2104 2.62232 66.3256 4.56871C66.649 5.13329 66.9413 5.75702 67.196 6.43049C65.6789 6.0647 64.0129 5.84904 62.2643 5.81568V1.25473Z" fill="#1E1E1E"/>
|
||||||
|
</g>
|
||||||
|
<defs>
|
||||||
|
<clipPath id="clip0_2011_8848">
|
||||||
|
<rect width="144.182" height="25.3905" fill="white" transform="translate(0.126953 0.304749)"/>
|
||||||
|
</clipPath>
|
||||||
|
</defs>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 7.4 KiB |
BIN
exampleSite/static/images/logos/customer-2.png
Normal file
After Width: | Height: | Size: 1.8 KiB |
BIN
exampleSite/static/images/logos/customer-3.png
Normal file
After Width: | Height: | Size: 2 KiB |
BIN
exampleSite/static/images/logos/customer-4.png
Normal file
After Width: | Height: | Size: 1.7 KiB |
BIN
exampleSite/static/images/logos/customer-5.png
Normal file
After Width: | Height: | Size: 1.6 KiB |
1
exampleSite/static/images/social/facebook.svg
Normal file
|
@ -0,0 +1 @@
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor"><path d="M24 12.073c0-6.627-5.373-12-12-12s-12 5.373-12 12c0 5.99 4.388 10.954 10.125 11.854v-8.385H7.078v-3.47h3.047V9.43c0-3.007 1.792-4.669 4.533-4.669 1.312 0 2.686.235 2.686.235v2.953H15.83c-1.491 0-1.956.925-1.956 1.874v2.25h3.328l-.532 3.47h-2.796v8.385C19.612 23.027 24 18.062 24 12.073z"/></svg>
|
After Width: | Height: | Size: 385 B |
1
exampleSite/static/images/social/github.svg
Normal file
|
@ -0,0 +1 @@
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor"><path d="M12 0c-6.626 0-12 5.373-12 12 0 5.302 3.438 9.8 8.207 11.387.599.111.793-.261.793-.577v-2.234c-3.338.726-4.033-1.416-4.033-1.416-.546-1.387-1.333-1.756-1.333-1.756-1.089-.745.083-.729.083-.729 1.205.084 1.839 1.237 1.839 1.237 1.07 1.834 2.807 1.304 3.492.997.107-.775.418-1.305.762-1.604-2.665-.305-5.467-1.334-5.467-5.931 0-1.311.469-2.381 1.236-3.221-.124-.303-.535-1.524.117-3.176 0 0 1.008-.322 3.301 1.23.957-.266 1.983-.399 3.003-.404 1.02.005 2.047.138 3.006.404 2.291-1.552 3.297-1.23 3.297-1.23.653 1.653.242 2.874.118 3.176.77.84 1.235 1.911 1.235 3.221 0 4.609-2.807 5.624-5.479 5.921.43.372.823 1.102.823 2.222v3.293c0 .319.192.694.801.576 4.765-1.589 8.199-6.086 8.199-11.386 0-6.627-5.373-12-12-12z"/></svg>
|
After Width: | Height: | Size: 812 B |
1
exampleSite/static/images/social/instagram.svg
Normal file
|
@ -0,0 +1 @@
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor"><path d="M12 0C8.74 0 8.333.015 7.053.072 5.775.132 4.905.333 4.14.63c-.789.306-1.459.717-2.126 1.384S.935 3.35.63 4.14C.333 4.905.131 5.775.072 7.053.012 8.333 0 8.74 0 12s.015 3.667.072 4.947c.06 1.277.261 2.148.558 2.913.306.788.717 1.459 1.384 2.126.667.666 1.336 1.079 2.126 1.384.766.296 1.636.499 2.913.558C8.333 23.988 8.74 24 12 24s3.667-.015 4.947-.072c1.277-.06 2.148-.262 2.913-.558.788-.306 1.459-.718 2.126-1.384.666-.667 1.079-1.335 1.384-2.126.296-.765.499-1.636.558-2.913.06-1.28.072-1.687.072-4.947s-.015-3.667-.072-4.947c-.06-1.277-.262-2.149-.558-2.913-.306-.789-.718-1.459-1.384-2.126C21.319 1.347 20.651.935 19.86.63c-.765-.297-1.636-.499-2.913-.558C15.667.012 15.26 0 12 0zm0 2.16c3.203 0 3.585.016 4.85.071 1.17.055 1.805.249 2.227.415.562.217.96.477 1.382.896.419.42.679.819.896 1.381.164.422.36 1.057.413 2.227.057 1.266.07 1.646.07 4.85s-.015 3.585-.074 4.85c-.061 1.17-.256 1.805-.421 2.227-.224.562-.479.96-.899 1.382-.419.419-.824.679-1.38.896-.42.164-1.065.36-2.235.413-1.274.057-1.649.07-4.859.07-3.211 0-3.586-.015-4.859-.074-1.171-.061-1.816-.256-2.236-.421-.569-.224-.96-.479-1.379-.899-.421-.419-.69-.824-.9-1.38-.165-.42-.359-1.065-.42-2.235-.045-1.26-.061-1.649-.061-4.844 0-3.196.016-3.586.061-4.861.061-1.17.255-1.814.42-2.234.21-.57.479-.96.9-1.381.419-.419.81-.689 1.379-.898.42-.166 1.051-.361 2.221-.421 1.275-.045 1.65-.06 4.859-.06l.045.03zm0 3.678c-3.405 0-6.162 2.76-6.162 6.162 0 3.405 2.76 6.162 6.162 6.162 3.405 0 6.162-2.76 6.162-6.162 0-3.405-2.76-6.162-6.162-6.162zM12 16c-2.21 0-4-1.79-4-4s1.79-4 4-4 4 1.79 4 4-1.79 4-4 4zm7.846-10.405c0 .795-.646 1.44-1.44 1.44-.795 0-1.44-.646-1.44-1.44 0-.794.646-1.439 1.44-1.439.793-.001 1.44.645 1.44 1.439z"/></svg>
|
After Width: | Height: | Size: 1.8 KiB |
1
exampleSite/static/images/social/linkedin.svg
Normal file
|
@ -0,0 +1 @@
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor"><path d="M19 0h-14c-2.761 0-5 2.239-5 5v14c0 2.761 2.239 5 5 5h14c2.762 0 5-2.239 5-5v-14c0-2.761-2.238-5-5-5zm-11 19h-3v-11h3v11zm-1.5-12.268c-.966 0-1.75-.79-1.75-1.764s.784-1.764 1.75-1.764 1.75.79 1.75 1.764-.783 1.764-1.75 1.764zm13.5 12.268h-3v-5.604c0-3.368-4-3.113-4 0v5.604h-3v-11h3v1.765c1.396-2.586 7-2.777 7 2.476v6.759z"/></svg>
|
After Width: | Height: | Size: 422 B |
1
exampleSite/static/images/social/twitter.svg
Normal file
|
@ -0,0 +1 @@
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor"><path d="M18.244 2.25h3.308l-7.227 8.26 8.502 11.24H16.17l-5.214-6.817L4.99 21.75H1.68l7.73-8.835L1.254 2.25H8.08l4.713 6.231zm-1.161 17.52h1.833L7.084 4.126H5.117z"/></svg>
|
After Width: | Height: | Size: 254 B |
1
exampleSite/static/images/social/youtube.svg
Normal file
|
@ -0,0 +1 @@
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor"><path d="M23.498 6.186a3.016 3.016 0 0 0-2.122-2.136C19.505 3.545 12 3.545 12 3.545s-7.505 0-9.377.505A3.017 3.017 0 0 0 .502 6.186C0 8.07 0 12 0 12s0 3.93.502 5.814a3.016 3.016 0 0 0 2.122 2.136c1.871.505 9.376.505 9.376.505s7.505 0 9.377-.505a3.015 3.015 0 0 0 2.122-2.136C24 15.93 24 12 24 12s0-3.93-.502-5.814zM9.545 15.568V8.432L15.818 12l-6.273 3.568z"/></svg>
|
After Width: | Height: | Size: 447 B |
BIN
exampleSite/static/images/team.jpg
Normal file
After Width: | Height: | Size: 19 KiB |
5
exampleSite/static/images/testimonial-1.svg
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
<svg width="80" height="80" viewBox="0 0 80 80" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<circle cx="40" cy="40" r="40" fill="#e5e7eb"/>
|
||||||
|
<circle cx="40" cy="35" r="15" fill="#9ca3af"/>
|
||||||
|
<path d="M40 80 C 10 80 10 55 40 55 C 70 55 70 80 40 80" fill="#9ca3af"/>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 267 B |
34
exampleSite/tailwind.config.js
Normal file
|
@ -0,0 +1,34 @@
|
||||||
|
/** @type {import('tailwindcss').Config} */
|
||||||
|
module.exports = {
|
||||||
|
content: [
|
||||||
|
"../layouts/**/*.html",
|
||||||
|
"./layouts/**/*.html",
|
||||||
|
"./content/**/*.{html,md}"
|
||||||
|
],
|
||||||
|
theme: {
|
||||||
|
extend: {
|
||||||
|
colors: {
|
||||||
|
primary: {
|
||||||
|
50: '#f0f9ff',
|
||||||
|
100: '#e0f2fe',
|
||||||
|
200: '#bae6fd',
|
||||||
|
300: '#7dd3fc',
|
||||||
|
400: '#38bdf8',
|
||||||
|
500: '#0ea5e9',
|
||||||
|
600: '#0284c7',
|
||||||
|
700: '#0369a1',
|
||||||
|
800: '#075985',
|
||||||
|
900: '#0c4a6e',
|
||||||
|
},
|
||||||
|
},
|
||||||
|
fontFamily: {
|
||||||
|
sans: ['Inter', 'system-ui', 'sans-serif'],
|
||||||
|
heading: ['Plus Jakarta Sans', 'sans-serif'],
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
plugins: [
|
||||||
|
require('@tailwindcss/forms'),
|
||||||
|
require('@tailwindcss/typography'),
|
||||||
|
],
|
||||||
|
}
|
|
@ -4,6 +4,9 @@
|
||||||
<meta charset="UTF-8">
|
<meta charset="UTF-8">
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
|
|
||||||
|
<!-- Google Analytics -->
|
||||||
|
{{ partial "google-analytics" . }}
|
||||||
|
|
||||||
<!-- Title -->
|
<!-- Title -->
|
||||||
<title>{{ if .IsHome }}{{ .Site.Title }}{{ else }}{{ .Title }} | {{ .Site.Title }}{{ end }}</title>
|
<title>{{ if .IsHome }}{{ .Site.Title }}{{ else }}{{ .Title }} | {{ .Site.Title }}{{ end }}</title>
|
||||||
|
|
||||||
|
@ -54,7 +57,7 @@
|
||||||
|
|
||||||
<!-- Main CSS -->
|
<!-- Main CSS -->
|
||||||
{{ $css := resources.Get "css/main.css" }}
|
{{ $css := resources.Get "css/main.css" }}
|
||||||
{{ $css = $css | resources.PostCSS }}
|
{{ $css = $css | css.PostCSS }}
|
||||||
{{ if hugo.IsProduction }}
|
{{ if hugo.IsProduction }}
|
||||||
{{ $css = $css | minify | fingerprint | resources.PostProcess }}
|
{{ $css = $css | minify | fingerprint | resources.PostProcess }}
|
||||||
{{ end }}
|
{{ end }}
|
||||||
|
|
|
@ -12,7 +12,7 @@
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
<div class="absolute inset-x-0 top-0 h-96 gradient-bg opacity-75"></div>
|
<div class="absolute inset-x-0 top-0 h-96 gradient-bg opacity-75"></div>
|
||||||
<div class="relative pt-24 pb-32 sm:pt-32">
|
<div class="relative pt-24 pb-16 sm:pt-32">
|
||||||
<div class="mx-auto max-w-7xl px-6 lg:px-8">
|
<div class="mx-auto max-w-7xl px-6 lg:px-8">
|
||||||
<div class="mx-auto max-w-2xl text-center">
|
<div class="mx-auto max-w-2xl text-center">
|
||||||
{{ with .Params.badge }}
|
{{ with .Params.badge }}
|
||||||
|
|
10
layouts/partials/google-analytics.html
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
{{ if and hugo.IsProduction .Site.Params.googleAnalytics }}
|
||||||
|
<!-- Google tag (gtag.js) -->
|
||||||
|
<script async src="https://www.googletagmanager.com/gtag/js?id={{ .Site.Params.googleAnalytics }}"></script>
|
||||||
|
<script>
|
||||||
|
window.dataLayer = window.dataLayer || [];
|
||||||
|
function gtag(){dataLayer.push(arguments);}
|
||||||
|
gtag('js', new Date());
|
||||||
|
gtag('config', '{{ .Site.Params.googleAnalytics }}');
|
||||||
|
</script>
|
||||||
|
{{ end }}
|
22
layouts/partials/icons.html
Normal file
|
@ -0,0 +1,22 @@
|
||||||
|
{{- $iconClass := printf "w-%s h-%s" (.size | default "6") (.size | default "6") -}}
|
||||||
|
{{- $color := .color | default "#000000" -}}
|
||||||
|
|
||||||
|
<svg class="{{ $iconClass }}" style="color: {{ $color }};" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
||||||
|
{{- if eq .name "chart" -}}
|
||||||
|
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 19v-6a2 2 0 00-2-2H5a2 2 0 00-2 2v6a2 2 0 002 2h2a2 2 0 002-2zm0 0V9a2 2 0 012-2h2a2 2 0 012 2v10m-6 0a2 2 0 002 2h2a2 2 0 002-2m0 0V5a2 2 0 012-2h2a2 2 0 012 2v14a2 2 0 01-2 2h-2a2 2 0 01-2-2z"></path>
|
||||||
|
{{- else if eq .name "attribution" -}}
|
||||||
|
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M13 7h8m0 0v8m0-8l-8 8-4-4-6 6"></path>
|
||||||
|
{{- else if eq .name "roi" -}}
|
||||||
|
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 8c-1.657 0-3 .895-3 2s1.343 2 3 2 3 .895 3 2-1.343 2-3 2m0-8c1.11 0 2.08.402 2.599 1M12 8V7m0 1v8m0 0v1m0-1c-1.11 0-2.08-.402-2.599-1M21 12a9 9 0 11-18 0 9 9 0 0118 0z"></path>
|
||||||
|
{{- else if eq .name "check" -}}
|
||||||
|
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 13l4 4L19 7"></path>
|
||||||
|
{{- else if eq .name "analytics" -}}
|
||||||
|
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M16 8v8m-4-5v5m-4-2v2m-2 4h12a2 2 0 002-2V6a2 2 0 00-2-2H6a2 2 0 00-2 2v12a2 2 0 002 2z"></path>
|
||||||
|
{{- else if eq .name "funnel" -}}
|
||||||
|
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M3 4h18M5 8h14M7 12h10M9 16h6M11 20h2"></path>
|
||||||
|
{{- else if eq .name "target" -}}
|
||||||
|
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 12l2 2 4-4m6 2a9 9 0 11-18 0 9 9 0 0118 0z"></path>
|
||||||
|
{{- else if eq .name "custom" -}}
|
||||||
|
{{ .path | safeHTML }}
|
||||||
|
{{- end -}}
|
||||||
|
</svg>
|
25
layouts/shortcodes/benefits-grid.html
Normal file
|
@ -0,0 +1,25 @@
|
||||||
|
{{ $title := .Get "title" }}
|
||||||
|
{{ $subtitle := .Get "subtitle" }}
|
||||||
|
|
||||||
|
<div class="text-center mb-16">
|
||||||
|
<h2 class="text-3xl font-bold mb-4">{{ $title }}</h2>
|
||||||
|
<p class="text-xl text-gray-600">{{ $subtitle }}</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="grid grid-cols-1 md:grid-cols-3 gap-8">
|
||||||
|
{{ range $index := (seq 1 10) }}
|
||||||
|
{{ $benefit := printf "benefit%d" $index }}
|
||||||
|
{{ with $.Get $benefit }}
|
||||||
|
{{ $parts := split . "|" }}
|
||||||
|
{{ if ge (len $parts) 4 }}
|
||||||
|
<div class="p-6 bg-white rounded-xl shadow-lg hover:shadow-xl transition-shadow">
|
||||||
|
<div class="w-12 h-12 rounded-lg flex items-center justify-center mb-4" style="background-color: {{ index $parts 1 }}15;">
|
||||||
|
{{ partial "icons" (dict "name" (index $parts 0) "color" (index $parts 1) "size" "6") }}
|
||||||
|
</div>
|
||||||
|
<h3 class="text-xl font-bold mb-2">{{ index $parts 2 }}</h3>
|
||||||
|
<p class="text-gray-600">{{ index $parts 3 }}</p>
|
||||||
|
</div>
|
||||||
|
{{ end }}
|
||||||
|
{{ end }}
|
||||||
|
{{ end }}
|
||||||
|
</div>
|
15
layouts/shortcodes/case-study-card.html
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
<div class="not-prose">
|
||||||
|
<div class="bg-white rounded-2xl shadow-xl overflow-hidden">
|
||||||
|
<div class="grid grid-cols-1 md:grid-cols-2">
|
||||||
|
<div class="p-8 md:p-12">
|
||||||
|
<div class="inline-block px-4 py-2 rounded-full text-sm font-semibold mb-6" style="background-color: {{ .Get 0 }}15; color: {{ .Get 0 }};">{{ .Get 1 }}</div>
|
||||||
|
<div class="text-3xl font-bold mb-4 !mt-0">{{ .Get 2 }}</div>
|
||||||
|
<div class="text-gray-600 mb-6">{{ .Get 3 }}</div>
|
||||||
|
<a href="{{ .Get 5 }}" class="inline-block px-6 py-3 text-white font-bold rounded-lg transition-colors hover:opacity-90 !no-underline !text-white" style="background-color: {{ .Get 0 }};">{{ .Get 4 }}</a>
|
||||||
|
</div>
|
||||||
|
<div class="p-8 md:p-12 flex items-center justify-center" style="background: linear-gradient(135deg, {{ .Get 0 }}03, {{ .Get 0 }}30);">
|
||||||
|
<img src="{{ .Get 6 }}" alt="{{ .Get 7 }}" class="max-w-[200px] !my-0 !rounded-none !shadow-none">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
|
@ -36,7 +36,7 @@
|
||||||
<svg class="badge-icon w-5 h-5" fill="currentColor" viewBox="0 0 20 20">
|
<svg class="badge-icon w-5 h-5" fill="currentColor" viewBox="0 0 20 20">
|
||||||
<path fill-rule="evenodd" d="M10 18a8 8 0 100-16 8 8 0 000 16zm3.707-9.293a1 1 0 00-1.414-1.414L9 10.586 7.707 9.293a1 1 0 00-1.414 1.414l2 2a1 1 0 001.414 0l4-4z" clip-rule="evenodd"/>
|
<path fill-rule="evenodd" d="M10 18a8 8 0 100-16 8 8 0 000 16zm3.707-9.293a1 1 0 00-1.414-1.414L9 10.586 7.707 9.293a1 1 0 00-1.414 1.414l2 2a1 1 0 001.414 0l4-4z" clip-rule="evenodd"/>
|
||||||
</svg>
|
</svg>
|
||||||
<span>{{ . | strings.TrimSpace }}</span>
|
<span>{{ . | default "" }}</span>
|
||||||
</li>
|
</li>
|
||||||
{{ end }}
|
{{ end }}
|
||||||
</ul>
|
</ul>
|
||||||
|
|
26
layouts/shortcodes/features-list.html
Normal file
|
@ -0,0 +1,26 @@
|
||||||
|
{{ $title := .Get "title" }}
|
||||||
|
{{ $color := .Get "color" | default "#2563eb" }}
|
||||||
|
|
||||||
|
<div class="max-w-3xl mx-auto">
|
||||||
|
<h2 class="text-3xl font-bold text-center !mb-24">{{ $title }}</h2>
|
||||||
|
|
||||||
|
<div class="space-y-12">
|
||||||
|
{{ range $index := (seq 1 10) }}
|
||||||
|
{{ $feature := printf "feature%d" $index }}
|
||||||
|
{{ with $.Get $feature }}
|
||||||
|
{{ $parts := split . "|" }}
|
||||||
|
{{ if ge (len $parts) 2 }}
|
||||||
|
<div class="flex gap-6">
|
||||||
|
<div class="w-10 h-10 rounded-xl flex items-center justify-center flex-shrink-0" style="background-color: {{ $color }}15;">
|
||||||
|
{{ partial "icons" (dict "name" "check" "color" $color "size" "6") }}
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<h3 class="text-2xl font-bold mb-3 !mt-0">{{ index $parts 0 }}</h3>
|
||||||
|
<p class="text-gray-600 text-lg leading-relaxed">{{ index $parts 1 }}</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
{{ end }}
|
||||||
|
{{ end }}
|
||||||
|
{{ end }}
|
||||||
|
</div>
|
||||||
|
</div>
|
3
layouts/shortcodes/hero-image.html
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
<div class="not-prose">
|
||||||
|
<img src="{{ .Get 0 }}" alt="{{ .Get 1 }}" class="w-full no-prose-img">
|
||||||
|
</div>
|
21
tailwind.config.copy.js
Normal file
|
@ -0,0 +1,21 @@
|
||||||
|
/** @type {import('tailwindcss').Config} */
|
||||||
|
module.exports = {
|
||||||
|
presets: [require('./themes/hugo-saasify-theme/tailwind.config.js')],
|
||||||
|
content: [
|
||||||
|
"./themes/hugo-saasify-theme/layouts/**/*.html",
|
||||||
|
"./layouts/**/*.html",
|
||||||
|
"./content/**/*.{html,md}"
|
||||||
|
],
|
||||||
|
theme: {
|
||||||
|
extend: {
|
||||||
|
fontFamily: {
|
||||||
|
sans: ['Inter', 'system-ui', 'sans-serif'],
|
||||||
|
heading: ['Plus Jakarta Sans', 'sans-serif'],
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
plugins: [
|
||||||
|
require('@tailwindcss/forms'),
|
||||||
|
require('@tailwindcss/typography'),
|
||||||
|
],
|
||||||
|
}
|
|
@ -39,4 +39,4 @@ module.exports = {
|
||||||
require('@tailwindcss/forms'),
|
require('@tailwindcss/forms'),
|
||||||
require('@tailwindcss/typography'),
|
require('@tailwindcss/typography'),
|
||||||
],
|
],
|
||||||
}
|
}
|