Skip to content

Commit

Permalink
πŸŒ„ feat(app): add payments & store actions
Browse files Browse the repository at this point in the history
  • Loading branch information
blefnk committed Aug 22, 2023
1 parent b25ea46 commit 639093c
Show file tree
Hide file tree
Showing 110 changed files with 1,098 additions and 654 deletions.
89 changes: 18 additions & 71 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,40 +12,32 @@ _You can also check [our another free Next.js 13 starter](https://github.com/ble

Step into the future with the ultimate Next.js starter. Everything has been set up for you. It's more than just code; it's a journey. You're not on this journey alone. Move faster than ever. We've laid the groundwork; now, grab it, dive in and accelerate your development.

This is our experimental space where we tinkered with the new Next.js app directory. So, while it's all fun and exploration, there might be a few quirks here and there. Stumbled upon something odd or just feeling generous? DM us on Twitter, sorry, on X [@bleverse_com](https://x.com/bleverse_com) or raise an issue right here. If you've got some coding magic up your sleeve, contributions are always celebrated! πŸŽ‰

> **Warning**
> This project is still in development and is not ready for production use.
> It uses new technologies (server actions, drizzle ORM) which are subject to change and may break your application.
> 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.
This is the space where we playing with everything new in Next.js 13. Stumbled upon something? DM us on Twitter, sorry, on X [@bleverse_com](https://x.com/bleverse_com) or raise an issue right here. If you've got some coding magic up your sleeve, contributions are always celebrated! πŸŽ‰

## πŸ”₯ 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.
- [x] ⬆️ File uploads with **uploadthing**.
- [x] πŸ” Keep it tight with Authentication using **Clerk**.
- [x] 🎨 Centralized Database magic at [**PlanetScale**](https://planetscale.com).
- [x] 🏬 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).
- [x] πŸŒ€ Comprehensive offerings of the Next.js App Router with the RSCs and everything all new.
- [ ] πŸ“Š Client and server data/query fetching with [**tRPC**](https://github.com/trpc/trpc) & [**TanStack Query**](https://tanstack.com/query).
- [ ] πŸŒ… Using every usable [**TanStack**](https://tanstack.com) libraries.
- [ ] πŸ“– Sharing insights with blogs powered by **MDX**.
- [x] 🦫 Dive deep into SQL type-safety via [**Drizzle ORM**](https://orm.drizzle.team/).
- [ ] πŸ“§ 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**.
- [x] πŸ•ΆοΈ Stunning UI components, all thanks to [**shadcn/ui**](https://github.com/shadcn/ui).
- [ ] πŸ€– Ultimate type-safety using TypeScript, typedRoutes, etc.
- [x] 🀝 Seller and customer workflows.
- [x] 🀩 Styled to impress with **Tailwind CSS**.
- [x] 🧧 User subscriptions via **Stripe**.
- [ ] πŸ’Ž Seamless checkout with **Stripe Checkout**.
- [x] πŸ…°οΈ Validation with **Zod** and **Valibot**.

## 🌍 i18n: Internationalization

Expand Down Expand Up @@ -135,56 +127,11 @@ pnpm stripe:listen

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.

<!-- ## πŸ’Œ 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. -->

<!-- ## πŸ’² 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). -->

## πŸ…°οΈ 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
A quick snapshot of the roadblocks or nuances as of now:
1. There is a possibility that `.d.ts` files do not work correctly in VS Code. Temporarily renamed to `.ts`.
2. Occasionally, MySQL throws a tantrum about excessive connections. A quick restart of your Next.js app should soothe it.
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. -->

## πŸ”ƒ 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. Possible will be moved to [the project wiki](/blefnk/relivator/wiki).

### Original T3 Stack

The content of this section is not yet ready. Check back in a few days. Possible will be moved to [the project wiki](/blefnk/relivator/wiki).

### Shadcn Taxonomy

The content of this section is not yet ready. Check back in a few days. Possible will be moved to [the project wiki](/blefnk/relivator/wiki).
The content of this section is not yet ready. Check back in a few days. Possible will be moved to [the project wiki](/blefnk/relivator/wiki). Possible stacks: Original Next.js 13, Original T3 Stack, Shadcn Taxonomy.

## πŸ™Œ Contributing & Credits

Expand Down
21 changes: 8 additions & 13 deletions next.config.mjs
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
// !! Next.js 13 Configuration File !!
// ==========================================================
// ?? @see https://nextjs.org/docs/app/building-your-application/configuring
// ==========================================================
/** @see https://nextjs.org/docs/app/building-your-application/configuring */

/**
* If you need, you can run `build` or `dev` with `SKIP_ENV_VALIDATION`.
* It skips env validation. This is especially useful for Docker builds.
*/
await import("./src/env.mjs");

/** @type {import('next').NextConfig} */
Expand All @@ -12,15 +13,9 @@ const nextConfig = {
serverActions: true,
serverComponentsExternalPackages: ["mysql2"]
},
reactStrictMode: true,
images: { domains: ["uploadthing.com"] }

// ?? Dangerously allow builds to successfully complete
// ?? even if the project has type or eslint errors.
// ?? Linting and typechecking are also can be disabled
// ?? when we have separate tasks in the CI pipeline.
// typescript: { ignoreBuildErrors: true },
// eslint: { ignoreDuringBuilds: true },
images: {
domains: ["uploadthing.com"]
}
};

export default nextConfig;
11 changes: 7 additions & 4 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@
"@clerk/nextjs": "^4.23.2",
"@clerk/themes": "^1.7.5",
"@faker-js/faker": "^8.0.2",
"@hookform/resolvers": "^3.2.0",
"@hookform/resolvers": "^3.3.0",
"@loglib/tracker": "^0.6.2",
"@planetscale/database": "^1.11.0",
"@radix-ui/react-accordion": "^1.1.2",
Expand Down Expand Up @@ -70,14 +70,17 @@
"@react-email/tailwind": "^0.0.8",
"@tanstack/react-query": "^4.33.0",
"@tanstack/react-table": "^8.9.3",
"@trpc/client": "^10.37.1",
"@trpc/react-query": "^10.37.1",
"@trpc/server": "^10.37.1",
"@uploadthing/react": "^5.3.0",
"@vercel/og": "^0.5.11",
"class-variance-authority": "^0.7.0",
"clsx": "^2.0.0",
"cmdk": "^0.2.0",
"dayjs": "^1.11.9",
"dotenv": "^16.3.1",
"drizzle-orm": "^0.28.2",
"drizzle-orm": "^0.28.3",
"embla-carousel-react": "8.0.0-rc12",
"lucide-react": "^0.268.0",
"next": "13.4.19",
Expand Down Expand Up @@ -112,8 +115,8 @@
"@t3-oss/env-nextjs": "^0.6.1",
"@tailwindcss/typography": "^0.5.9",
"@tanstack/eslint-plugin-query": "^4.32.5",
"@types/node": "20.5.2",
"@types/react": "18.2.20",
"@types/node": "20.5.3",
"@types/react": "18.2.21",
"@types/react-dom": "18.2.7",
"@typescript-eslint/eslint-plugin": "^6.4.1",
"@typescript-eslint/parser": "^6.4.1",
Expand Down
Loading

0 comments on commit 639093c

Please sign in to comment.