Skip to content

Commit

Permalink
🌿 feat(app): improve header and footer
Browse files Browse the repository at this point in the history
  • Loading branch information
blefnk committed Aug 21, 2023
1 parent f3ce181 commit d178f65
Show file tree
Hide file tree
Showing 133 changed files with 3,169 additions and 1,907 deletions.
14 changes: 3 additions & 11 deletions .env.example
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@
# 2) Change the query params at the end of the URL to "?ssl={"rejectUnauthorized":true}"

# ?? [4] mysql://<...>?ssl={"rejectUnauthorized":true}
NEXT_SECRET_URL_ORM_DRIZZLE=""
DATABASE_URL=""

# !! CLERK CREDENTIALS (https://clerk.com)

Expand All @@ -33,16 +33,11 @@ NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY=""
# ?? [7] sk_test_****
CLERK_SECRET_KEY=""

# !! AUTH.JS CREDENTIALS (https://authjs.dev)
# !! RELIVATOR CREDENTIALS (https://relivator.bleverse.com)

# Use the production URL when deploying to production, e.g. https://example.com
# ?? [8] For dev env: http://localhost:3000
NEXT_PUBLIC_URL_AUTHJS="http://localhost:3000"
# https://next-auth.js.org/configuration/options#secret
# You can generate a new secret on the command line with: openssl rand -base64 32

# ?? [9] ****
NEXT_SECRET_KEY_AUTHJS=""
NEXT_PUBLIC_APP_URL="http://localhost:3000"

# !! FILE UPLOADING (https://uploadthing.com)

Expand Down Expand Up @@ -114,9 +109,6 @@ CLOUDFLARE_USER=""
# ?? [24]
SMTP_FROM=""

# ?? [25]
NEXT_SECRET_KEY_AUTHJS=""

# ?? [26]
DISCORD_CLIENT_ID=""

Expand Down
7 changes: 4 additions & 3 deletions .eslintignore
Original file line number Diff line number Diff line change
Expand Up @@ -4,14 +4,15 @@
/node_modules

# next.js
/.next/
/out/
/.next
/out

# production
/build
/dist

# typescript
next-env.d.ts

# temporary
*.tson
*.tson
38 changes: 28 additions & 10 deletions .eslintrc.cjs
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,11 @@

const { defineConfig } = require("eslint-define-config");

module.exports = defineConfig({
const config = defineConfig({
env: { es2023: true, browser: true, node: true },
settings: {
"import/resolver": { typescript: { project: ["./tsconfig.json"] } },
tailwindcss: { callees: ["cn"], config: "tailwind.config.ts" }
tailwindcss: { callees: ["cn"], config: "./tailwind.config.ts" }
},
overrides: [
//! =========================================
Expand All @@ -22,30 +22,46 @@ module.exports = defineConfig({
},
plugins: ["@tanstack/query"],
extends: [
"next/core-web-vitals",
"plugin:@tanstack/eslint-plugin-query/recommended",
"plugin:@typescript-eslint/recommended-requiring-type-checking"
"plugin:@typescript-eslint/recommended-requiring-type-checking",
"plugin:tailwindcss/recommended",
"next/core-web-vitals",
"prettier"
],
rules: {
// !! Turn Back on When Things are Stable !!
"@next/next/no-html-link-for-pages": "off",
"@typescript-eslint/consistent-type-imports": [
"off"
// "warn",
// {
// prefer: "type-imports",
// fixStyle: "inline-type-imports"
// }
],
// "@typescript-eslint/no-unused-vars": [
// "warn", { argsIgnorePattern: "^_" }],
"@tanstack/query/exhaustive-deps": "error",
"@tanstack/query/prefer-query-object-syntax": "error",
"@typescript-eslint/no-unused-vars": "off",
// !! Turn Back on When Things are Stable !!
"@next/next/no-html-link-for-pages": "off",
"@typescript-eslint/ban-ts-comment": "off",
"@typescript-eslint/no-unsafe-member-access": "off",
"@typescript-eslint/no-redundant-type-constituents": "off",
"@typescript-eslint/no-explicit-any": "off",
"@typescript-eslint/no-misused-promises": "off",
"@typescript-eslint/no-redundant-type-constituents": "off",
"@typescript-eslint/no-unnecessary-type-assertion": "off",
"@typescript-eslint/no-unsafe-argument": "off",
"@typescript-eslint/no-unsafe-assignment": "off",
"@typescript-eslint/no-unsafe-call": "off",
"@typescript-eslint/no-unsafe-member-access": "off",
"@typescript-eslint/no-unsafe-return": "off",
"@typescript-eslint/no-unused-vars": "off",
"@typescript-eslint/require-await": "off",
"react-hooks/exhaustive-deps": "off",
"react/display-name": "off",
"react/no-unescaped-entities": "off"
"react/no-unescaped-entities": "off",
"tailwindcss/classnames-order": "off",
"tailwindcss/enforces-shorthand": "off",
"tailwindcss/migration-from-tailwind-2": "off",
"tailwindcss/no-custom-classname": "off"
}
},
//! =========================================
Expand All @@ -57,3 +73,5 @@ module.exports = defineConfig({
}
]
});

module.exports = config;
5 changes: 3 additions & 2 deletions .prettierignore
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,12 @@
/node_modules

# next.js
/.next/
/out/
/.next
/out

# production
/build
/dist

# typescript
next-env.d.ts
136 changes: 87 additions & 49 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
# Bleverse Relivator: Next.js 13 Starter (2023)
# Bleverse Relivator: Next.js 13 Store Starter 2023

**Crafting the world's most iconic Next.js starter.**

🔥 The ultimate Next.js 13 app router TypeScript starter. i18n, T3, Shadcn/ui, Stripe, Clerk, Tailwind, Drizzle, Zod, RSC, SWC, tRPC, NextAuth, Server Actions, Lucide Icons, & More. Get it and enjoy!
🔥 Next.js 13 Store Starter. App Router, TypeScript, shadcn/ui, i18n, T3, Stripe, Clerk, Tailwind, Drizzle, Zod, RSC, SWC, tRPC, NextAuth, Server Actions, Lucide Icons, & More. Download it and enjoy!

_You can also check [our another free Next.js 13 starter](https://github.com/blefnk/reliverse). This one starter offers you tech used in the current starter plus also: Prisma, Lucia, Auth.js, and more. It means there we're very experimentally trying to implement all of the important and most used tech together._

Expand All @@ -20,40 +20,36 @@ This is our experimental space where we tinkered with the new Next.js app direct
> The README.md is not yet finished and may or may not represent features that have not been implemented yet.
> Please check back soon for more features, which are currently in production.
## 🔥 App Features

This roadmap outlines the key features and improvements to be implemented in this web project.

- 🌐 Comprehensive offerings of the Next.js App Router with the RSCs and everything all new.
- 🅰️ Ultimate type-safety using TypeScript, Zod, Validabot, typedRoutes, etc.
- 📊 Dive deep into SQL with TypeScript ORM via [**Drizzle ORM**](https://github.com/drizzle-team/drizzle-orm).
- 🔒 Keep it tight with Authentication using [**Auth.js**](https://authjs.dev) and [**Lucia**](https://github.com/pilcrowOnPaper/lucia).
- 🌍 Centralized Database magic at [**PlanetScale**](https://planetscale.com).
- ✨ Stunning UI components, all thanks to [**shadcn/ui**](https://github.com/shadcn/ui).
- 📝 Share insights with Blogs powered by **MDX**.
- 💲 Seamless Subscriptions via **Stripe** & [**LemonSqueezy**](https://www.lemonsqueezy.com/).
- 🎨 Styled to impress with **Tailwind CSS**.
- 📡 Data-fetching streamlined with [**tRPC**](https://github.com/trpc/trpc).
- 📧 Email verification and a lot more features to enhance the application.

## 🌟 Project Roadmap

- [ ] Authentication with **Clerk**
- [ ] File uploads with **uploadthing**
- [ ] Newsletter subscription with **React Email** and **Resend**
- [ ] Blog using **MDX** with, maybe, **Contentlayer**
- [ ] ORM using **Drizzle ORM**
- [ ] Database on **PlanetScale**
- [ ] Validation with **Validabot** and **Zod**
- [ ] Storefront with products, categories, and subcategories
- [ ] Seller and customer workflows
- [ ] User subscriptions with **Stripe**
- [ ] Checkout with **Stripe Checkout**
- [ ] Admin dashboard with stores, products, orders, subscriptions, and payments
## 🔥 Project Features Roadmap

This roadmap outlines the key features and improvements to be implemented in this Next.js starter.

- [ ] ✨ Admin dashboard with stores, products, orders, subscriptions, and payments.
- [ ] ⬆️ File uploads with **uploadthing**.
- [ ] 🌍 Authentication with **Clerk**.
- [ ] 🌐 Blog using **MDX**.
- [ ] 🎨 Centralized Database magic at [**PlanetScale**](https://planetscale.com).
- [ ] 🏬 Storefront with products, categories, and subcategories.
- [ ] 🐧 The most beginner-friendly starter (will be in the feature, maybe, how its possible 😁).
- [ ] 💲 Comprehensive offerings of the Next.js App Router with the RSCs and everything all new.
- [ ] 📊 Data-fetching streamlined with [**tRPC**](https://github.com/trpc/trpc).
- [ ] 📖 Share insights with Blogs powered by **MDX**.
- [ ] 📝 Database on **PlanetScale**.
- [ ] 📡 Dive deep into SQL with TypeScript ORM via [**Drizzle ORM**](https://github.com/drizzle-team/drizzle-orm).
- [ ] 📧 Email verification and a lot more features to enhance the application.
- [ ] 📰 Newsletter subscription with **React Email** and **Resend**.
- [ ] 🔐 Keep it tight with Authentication using [**NextAuth.js**](https://authjs.dev).
- [ ] 🕶️ Stunning UI components, all thanks to [**shadcn/ui**](https://github.com/shadcn/ui).
- [ ] 🤖 Ultimate type-safety using TypeScript, Zod, Valibot, typedRoutes, etc.
- [ ] 🤝 Seller and customer workflows.
- [ ] 🤩 Styled to impress with **Tailwind CSS**.
- [ ] 🦫 ORM using **Drizzle ORM**.
- [ ] 🧧 User checkout and seamless subscriptions via **Stripe**.
- [ ] 🅰️ Validation with **Valibot** and **Zod**.

## 🌍 i18n: Internationalization

At Bleverse, the approach to multilingualism is a separate holy grail. We love talking about this topic. In the future, we'll be writing a lot of interesting things about internationalization with Next.js 13 App Router. Stay tuned for updates!
At Bleverse, the approach to multilingualism is a separate holy grail. We love talking about this topic. In the future, we'll be writing a lot of interesting things about internationalization with Next.js 13 App Router. Stay tuned!

## 👋 Project Configuration

Expand All @@ -63,9 +59,43 @@ The `src/app.ts` file contains essential configuration used to modify the conten
- Customize various settings, such as disabling theme toggle.
- Manage general site-wide information.

## 🔐 Authentication

Setting up auth is a breeze:

1. Visit: `https://dashboard.clerk.com/apps`
2. Create a New Application there.
3. Fill out the `.api` file (just duplicate and rename `.env.example`).

## 🏃‍♂️ Getting Started Locally

Clone the repository
Install Git.

```bash
https://git-scm.com
```

Install Node.js.

_Windows:_

```bash
https://github.com/coreybutler/nvm-windows/releases/download/latest/nvm-setup.exe
```

_Linux:_

```bash
https://github.com/nvm-sh/nvm#installing-and-updating
```

Install PNPM.

```bash
corepack enable
```

Clone the repository.

```bash
git clone https://github.com/blefnk/relivator.git
Expand Down Expand Up @@ -101,43 +131,35 @@ Finally start the Stripe webhook listener for Stripe to work.
pnpm stripe:listen
```

## How do I deploy this?
## 🐧 How do I deploy this?

Follow the deployment guides for [Vercel](https://create.t3.gg/en/deployment/vercel), [Netlify](https://create.t3.gg/en/deployment/netlify) and [Docker](https://create.t3.gg/en/deployment/docker) for more information.

## 🔐 Authentication

Setting up GitHub OAuth is a breeze:

1. Visit: `https://github.com/settings/developers`
2. Hit "New OAuth App".
3. Register your callback URL: `http://localhost:3000/api/oauth/github`

## 💌 Email (...soon)
<!-- ## 💌 Email (...soon)
Want a sneak peek of your email in dev mode without sending it out? Run:
```bash
npx mailing
```
For the real deal in production, you'll be working with [Resend](resend.com). Grab your API key and verify your domain there.
For the real deal in production, you'll be working with [Resend](resend.com). Grab your API key and verify your domain there. -->

## 💲 Payments (...soon)
<!-- ## 💲 Payments (...soon)
Stripe and LemonSqueezy powers payments, with subscription syncs via webhooks (`stripe/route.ts`) and (`lemonsqueezy/route.ts`). Fancy a local test? Expose the webhook with:
```bash
npx ngrok http 3000
```
Then, register the webhook for Stripe (see `.env.example`) and for lemonsqueezy URL, like `https://abc.eu.ngrok.io/api/lemonsqueezy`, in [LemonSqueezy's webhook settings](https://app.lemonsqueezy.com/settings/webhooks).
Then, register the webhook for Stripe (see `.env.example`) and for lemonsqueezy URL, like `https://abc.eu.ngrok.io/api/lemonsqueezy`, in [LemonSqueezy's webhook settings](https://app.lemonsqueezy.com/settings/webhooks). -->

## 🅰️ Notes

Because the project is still in active development, sometimes we need to deviate from our own principles. This means that, yeah, there are times when we disable certain TypeScript features, use `any`, `// @ts-expect-error`, and so on. That's the way we love to live on the cutting edge, embracing the newest technologies in web development. So if you come across something like `// !?!`, it indicates that this issue will be resolved in future versions of Relivator. Thank you for your understanding.

## ⚠️ Possible Issues
<!-- ## ⚠️ Possible Issues
A quick snapshot of the roadblocks or nuances as of now:
Expand All @@ -146,7 +168,23 @@ A quick snapshot of the roadblocks or nuances as of now:
3. Pricing plans are playing hard-to-get with the database sync.
4. The RBAC feature is still on probation; thorough testing pending.
5. Jury's out on tRPC's performance in RSCs.
6. An [issue with MJML](https://github.com/vercel/next.js/issues/50042) compelled us to house the email functions within the /pages directory.
6. An [issue with MJML](https://github.com/vercel/next.js/issues/50042) compelled us to house the email functions within the /pages directory. -->

## 🔃 Migration From Similiar Starter

Know how to migrate your project to the current starter. Migration guides are both for app and pages directories. Your old starter may use Prisma, Zod, and other things.

### Original Next.js 13

The content of this section is not yet ready. Check back in a few days.

### Original T3 Stack

The content of this section is not yet ready. Check back in a few days.

### Shadcn Taxonomy

The content of this section is not yet ready. Check back in a few days.

## 📫 Contributing to Bleverse Relivator

Expand Down
6 changes: 3 additions & 3 deletions components.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"$schema": "https://ui.shadcn.com/schema.json",
"style": "default",
"style": "new-york",
"rsc": true,
"tsx": true,
"tailwind": {
Expand All @@ -10,7 +10,7 @@
"cssVariables": true
},
"aliases": {
"components": "~/islands/common",
"utils": "~/utils/global"
"components": "~/islands",
"utils": "~/utils/server"
}
}
2 changes: 1 addition & 1 deletion contributing.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Welcome to GitHub docs contributing guide <!-- omit in toc -->
# Contributing Guide <!-- omit in toc -->

Thank you for investing your time in contributing to our project! Any contribution you make will be reflected on [docs.github.com](https://docs.github.com/en) :sparkles:.

Expand Down
2 changes: 0 additions & 2 deletions cspell.json
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,6 @@
"codelist",
"commitlint",
"conection",
"Contentlayer",
"Gtkq",
"hookform",
"ianvs",
Expand Down Expand Up @@ -49,7 +48,6 @@
"typecheck",
"UPLOADTHING",
"valibot",
"VALIDABOT",
"vercel",
"xicon",
"zxcvbn",
Expand Down
Loading

0 comments on commit d178f65

Please sign in to comment.