Skip to content

Commit

Permalink
Initial setup
Browse files Browse the repository at this point in the history
  • Loading branch information
thePeras authored and rubuy-74 committed Jul 30, 2024
0 parents commit f25e397
Show file tree
Hide file tree
Showing 142 changed files with 20,849 additions and 0 deletions.
Binary file added .DS_Store
Binary file not shown.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
node_modulesnode_modules/
21 changes: 21 additions & 0 deletions LICENSE
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
MIT License

Copyright (c) 2023 Next.js Templates

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.
89 changes: 89 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,89 @@
# Solid - Free Next.js Web Template and Starter Kit for SaaS

Solid is a free Next.js template specifically crafted for startups, SaaS, and software websites. It provides an extensive array of necessary sections, elements, and pages required to build a fully-equipped website for any SaaS, software, or startup site. Comes with all cutting edge React and Next.js features - **Built with Next.js 13, React 18 and TypeScript.**

This Next.js template's homepage comes with an awesome hero area, logos of associated brands, a features section, an about section, another features section with tabs, counters, and star ratings, integration options, clear call-to-actions, an FAQ section with accordions, a testimonials section, pricing tables, a contact page, a blog, and a distinctive footer.

**Solid Next.js template packed with all necessary external pages** - such as login, registration, blog grids, and single blog pages, among others. This broad collection of pages provides all the necessary tools to create a feature-packed, comprehensive, and visually appealing website or landing page for software, a web application, or SaaS.

### [🔥 Get Solid Pro - Next.js SaaS Boilerplate and Starter Kit](https://nextjstemplates.com/templates/solid)

![Startup Pro](https://uideck.com/wp-content/uploads/edd/2023/07/solid-saas.png)

### [🚀 Solid PRO Live Demo](https://solid.nextjstemplates.com/)

### [🚀 Solid FREE Live Demo](https://solid-free.nextjstemplates.com/)

### TailAdmin React PRO vs TailAdmin React FREE Comparison 📊

#### [Solid PRO](https://solid.nextjstemplates.com/)
- SaaS Boilerplate + Starter Kit with Essential Integrations and Functionalities
- Essential Integrations: Auth, DB, Stripe, MDX and More ...
- Fully Functional, Ready to Use Sanity Blog Support
- Premium Email Support
- Functional External Pages
- Free Lifetime Future Updates
___
#### [Solid FREE](https://solid-free.nextjstemplates.com/)
- Only UI - Coded for Next.js
- No Integrations
- No Functional Blogging System
- External Pages without Functions/Integrations
- Community Support
- Free Lifetime Future Updates
___

### [📦 Download](https://nextjstemplates.com/templates/solid)

### [🔥 Get Pro](https://nextjstemplates.com/templates/solid)

### [🔌 Documentation](https://nextjstemplates.com/docs)

### ⚡ Deploy Now

[![Deploy with Vercel](https://vercel.com/button)](https://vercel.com/new/clone?repository-url=https%3A%2F%2Fgithub.com%2FNextJSTemplates%2Fsolid-nextjs)

[![Deploy with Netlify](https://www.netlify.com/img/deploy/button.svg)](https://app.netlify.com/start/deploy?repository=https://github.com/NextJSTemplates/solid-nextjs)


## Installation

Here are the steps you need to follow to install the dependencies.

1.Download and extract the template from **Next.js Templates.**

2.**cd** into the template directory then run this command to install all the dependencies

```bash
npm install
```

or

```bash
yarn install
```


You can start the project on the local server

```bash
npm run dev
```

It’ll start the template on [localhost:3000](http://localhost:3000).

The documentation includes all the guides you need for the integrations.


### Deploying on PaaS

If you are using a GitHub repo then you can go with free-of-cost and easy-to-use options like [Vercel](https://vercel.com/), or [Netlify](https://netlify.com/) they offer decent-free tiers for Next.js hosting.

### 📄 License
Solid Free is 100% free and open-source, feel free to use with your personal and commercial projects.

### 💜 Support
If you like the template, please star this repository to inspire the team to create more stuff like this and reach more users like you!

### ✨ Browse and Download - Best Free [Next.js Templates](https://nextjstemplates.com/templates)
18 changes: 18 additions & 0 deletions app/(site)/auth/signin/page.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
import Signin from "@/components/Auth/Signin";
import { Metadata } from "next";

export const metadata: Metadata = {
title: "Login Page - Solid SaaS Boilerplate",
description: "This is Login page for Startup Pro",
// other metadata
};

const SigninPage = () => {
return (
<>
<Signin />
</>
);
};

export default SigninPage;
16 changes: 16 additions & 0 deletions app/(site)/auth/signup/page.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
import Signup from "@/components/Auth/Signup";
import { Metadata } from "next";

export const metadata: Metadata = {
title: "Sign Up Page - Solid SaaS Boilerplate",
description: "This is Sign Up page for Startup Pro",
// other metadata
};

export default function Register() {
return (
<>
<Signup />
</>
);
}
172 changes: 172 additions & 0 deletions app/(site)/blog/blog-details/page.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,172 @@
import RelatedPost from "@/components/Blog/RelatedPost";
import SharePost from "@/components/Blog/SharePost";
import { Metadata } from "next";
import Image from "next/image";

export const metadata: Metadata = {
title: "Blog Details Page - Solid SaaS Boilerplate",
description: "This is Blog details page for Solid Pro",
// other metadata
};

const SingleBlogPage = async () => {
return (
<>
<section className="pb-20 pt-35 lg:pb-25 lg:pt-45 xl:pb-30 xl:pt-50">
<div className="mx-auto max-w-c-1390 px-4 md:px-8 2xl:px-0">
<div className="flex flex-col-reverse gap-7.5 lg:flex-row xl:gap-12.5">
<div className="md:w-1/2 lg:w-[32%]">
<div className="animate_top mb-10 rounded-md border border-stroke bg-white p-3.5 shadow-solid-13 dark:border-strokedark dark:bg-blacksection">
<form
action="https://formbold.com/s/unique_form_id"
method="POST"
>
<div className="relative">
<input
type="text"
placeholder="Search Here..."
className="w-full rounded-lg border border-stroke px-6 py-4 shadow-solid-12 focus:border-primary focus:outline-none dark:border-strokedark dark:bg-black dark:shadow-none dark:focus:border-primary"
/>

<button
className="absolute right-0 top-0 p-5"
aria-label="search-icon"
>
<svg
className="fill-black transition-all duration-300 hover:fill-primary dark:fill-white dark:hover:fill-primary"
width="21"
height="21"
viewBox="0 0 21 21"
fill="none"
xmlns="http://www.w3.org/2000/svg"
>
<path d="M16.031 14.617L20.314 18.899L18.899 20.314L14.617 16.031C13.0237 17.3082 11.042 18.0029 9 18C4.032 18 0 13.968 0 9C0 4.032 4.032 0 9 0C13.968 0 18 4.032 18 9C18.0029 11.042 17.3082 13.0237 16.031 14.617ZM14.025 13.875C15.2941 12.5699 16.0029 10.8204 16 9C16 5.132 12.867 2 9 2C5.132 2 2 5.132 2 9C2 12.867 5.132 16 9 16C10.8204 16.0029 12.5699 15.2941 13.875 14.025L14.025 13.875Z" />
</svg>
</button>
</div>
</form>
</div>

<div className="animate_top mb-10 rounded-md border border-stroke bg-white p-9 shadow-solid-13 dark:border-strokedark dark:bg-blacksection">
<h4 className="mb-7.5 text-2xl font-semibold text-black dark:text-white">
Categories
</h4>

<ul>
<li className="mb-3 transition-all duration-300 last:mb-0 hover:text-primary">
<a href="#">Blog</a>
</li>
<li className="mb-3 transition-all duration-300 last:mb-0 hover:text-primary">
<a href="#">Events</a>
</li>
<li className="mb-3 transition-all duration-300 last:mb-0 hover:text-primary">
<a href="#">Grids</a>
</li>
<li className="mb-3 transition-all duration-300 last:mb-0 hover:text-primary">
<a href="#">News</a>
</li>
<li className="mb-3 transition-all duration-300 last:mb-0 hover:text-primary">
<a href="#">Rounded</a>
</li>
</ul>
</div>

<RelatedPost />
</div>

<div className="lg:w-2/3">
<div className="animate_top rounded-md border border-stroke bg-white p-7.5 shadow-solid-13 dark:border-strokedark dark:bg-blacksection md:p-10">
<div className="mb-10 w-full overflow-hidden ">
<div className="relative aspect-[97/60] w-full sm:aspect-[97/44]">
<Image
src={"/images/blog/blog-01.png"}
alt="Kobe Steel plant that supplied"
fill
className="rounded-md object-cover object-center"
/>
</div>
</div>

<h2 className="mb-5 mt-11 text-3xl font-semibold text-black dark:text-white 2xl:text-sectiontitle2">
Kobe Steel plant that supplied
</h2>

<ul className="mb-9 flex flex-wrap gap-5 2xl:gap-7.5">
<li>
<span className="text-black dark:text-white">Author: </span>{" "}
Jhon Doe
</li>
<li>
<span className="text-black dark:text-white">
Published On: July 30, 2023
</span>{" "}
</li>
<li>
<span className="text-black dark:text-white">
Category:
</span>
Events
</li>
</ul>

<div className="blog-details">
<p>
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
Nunc quis nibh lorem. Duis sed odio lorem. In a efficitur
leo. Ut venenatis rhoncus quam sed condimentum. Curabitur
vel turpis in dolor volutpat imperdiet in ut mi. Integer non
volutpat nulla. Nunc elementum elit viverra, tempus quam
non, interdum ipsum.
</p>

<p>
Aenean augue ex, condimentum vel metus vitae, aliquam porta
elit. Quisque non metus ac orci mollis posuere. Mauris vel
ipsum a diam interdum ultricies sed vitae neque. Nulla
porttitor quam vitae pulvinar placerat. Nulla fringilla elit
sit amet justo feugiat sodales. Morbi eleifend, enim non
eleifend laoreet, odio libero lobortis lectus, non porttitor
sem urna sit amet metus. In sollicitudin quam est,
pellentesque consectetur felis fermentum vitae.
</p>

<div className="flex flex-wrap gap-5">
<Image
src={"/images/blog/blog-01.png"}
width={350}
height={200}
alt="image"
/>
<Image
src={"/images/blog/blog-02.png"}
width={350}
height={200}
alt="image"
/>
</div>

<h3 className="pt-8">
Nunc elementum elit viverra, tempus quam non
</h3>

<p>
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
Nunc quis nibh lorem. Duis sed odio lorem. In a efficitur
leo. Ut venenatis rhoncus quam sed condimentum. Curabitur
vel turpis in dolor volutpat imperdiet in ut mi. Integer non
volutpat nulla. Nunc elementum elit viverra, tempus quam
non, interdum ipsum.
</p>
</div>

<SharePost />
</div>
</div>
</div>
</div>
</section>
</>
);
};

export default SingleBlogPage;
29 changes: 29 additions & 0 deletions app/(site)/blog/page.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
import BlogData from "@/components/Blog/blogData";
import BlogItem from "@/components/Blog/BlogItem";
import { Metadata } from "next";

export const metadata: Metadata = {
title: "Blog Page - Solid SaaS Boilerplate",
description: "This is Blog page for Solid Pro",
// other metadata
};

const BlogPage = async () => {
return (
<>
{/* <!-- ===== Blog Grid Start ===== --> */}
<section className="py-20 lg:py-25 xl:py-30">
<div className="mx-auto mt-15 max-w-c-1280 px-4 md:px-8 xl:mt-20 xl:px-0">
<div className="grid grid-cols-1 gap-7.5 md:grid-cols-2 lg:grid-cols-3 xl:gap-10">
{BlogData.map((post, key) => (
<BlogItem key={key} blog={post} />
))}
</div>
</div>
</section>
{/* <!-- ===== Blog Grid End ===== --> */}
</>
);
};

export default BlogPage;
Loading

0 comments on commit f25e397

Please sign in to comment.