Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/ladunjexa/nextjs13-flexibble
Flexibble is an online community and platform for designers, illustrators, and other creative professionals to showcase their work, connect with others in the industry, and find inspiration. π¦
https://github.com/ladunjexa/nextjs13-flexibble
cloudinary grafbase graphql headlessui-react jwt-auth nextauthjs nextjs13-typescript tailwindcss
Last synced: 8 days ago
JSON representation
Flexibble is an online community and platform for designers, illustrators, and other creative professionals to showcase their work, connect with others in the industry, and find inspiration. π¦
- Host: GitHub
- URL: https://github.com/ladunjexa/nextjs13-flexibble
- Owner: ladunjexa
- License: mit
- Created: 2023-06-26T10:09:33.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2024-05-13T18:32:52.000Z (6 months ago)
- Last Synced: 2024-05-13T19:44:13.459Z (6 months ago)
- Topics: cloudinary, grafbase, graphql, headlessui-react, jwt-auth, nextauthjs, nextjs13-typescript, tailwindcss
- Language: TypeScript
- Homepage: https://flexibble-web.vercel.app
- Size: 3.04 MB
- Stars: 3
- Watchers: 2
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
![Project Banner](.github/assets/readme_banner.png#gh-dark-mode-only)
![Project Banner](.github/assets/readme_banner-light.png#gh-light-mode-only)
Flexibble is a community for creatives to share, grow, and get hired.
View Demo
Β·
Documentation
Β·
Report Bug
Β·
Request Feature
# :notebook_with_decorative_cover: Table of Contents
- [About the Project](#star2-about-the-project)
- [Folder Structure](#bangbang-folder-structure)
- [Tech Stack](#space_invader-tech-stack)
- [Environment Variables](#key-environment-variables)
- [Getting Started](#toolbox-getting-started)
- [Screenshots](#camera-screenshots)
- [Contributing](#wave-contributing)
- [License](#warning-license)
- [Contact](#handshake-contact)
- [Acknowledgements](#gem-acknowledgements)## :star2: About the Project
Next.js has the potential to revolutionize the industry and forever change the way we develop web applications. Youβre still early in catching the trend and building your own Next.js 13 applications with TypeScript that leverage features such as server-side rendering and the app router.This repository houses an amazing Full Stack Next.js 13 Application. the application uses:
- Use Next.js 13 App Router and Server side Rendering
- Implement Filtering Functionality
- Complete Pagination Capabilities
- Handle image uploads
- Understanding and writing proper TypeScript
- Learn Grafbase - a serverless GraphQL platform### :bangbang: Folder Structure
Here is the code folder structure.
```
Flexibble-Web/
βββ app/
β βββ api/
β β βββ auth/
| | | |ββ [...nextauth]
| | | | βββ route.ts
| | | βββ token
| | | βββ route.ts
β β βββ upload/
| | βββ route.ts
β βββ create-project/
| | βββ page.tsx
β βββ edit-project/
β β βββ [id]/
| | βββ page.tsx
β βββ profile/
β β βββ [id]/
| | βββ page.tsx
β βββ project/
β β βββ [id]/
| | βββ page.tsx
β βββ favicon.ico
β βββ globals.css
β βββ layout.tsx
β βββ page.tsx
βββ components/
β βββ client/
β β βββ AuthProviders.tsx
β β βββ Categories.tsx
β β βββ Modal.tsx
β β βββ Pagination.tsx
β β βββ ProfileMenu.tsx
β β βββ ProjectActions.tsx
β β βββ ProjectCard.tsx
β β βββ ProjectForm.tsx
β β βββ index.ts
β βββ server/
β β βββ Button.tsx
β β βββ CustomMenu.tsx
β β βββ Footer.tsx
β β βββ Navbar.tsx
β β βββ FormField.tsx
β β βββ ProfilePage.tsx
β β βββ RelatedProjects.tsx
| βββ ...
βββ constants/
| βββ index.ts
βββ grafbase/
β βββ .env
β βββ grafbase.config.ts
βββ graphql/
β βββ index.ts
βββ lib/
β βββ actions.ts
β βββ session.ts
βββ public/
β βββ ...
βββ .env
βββ common.types.ts
βββ next.config.js
βββ package.json
βββ postcss.config.js
βββ tsconfig.json
βββ tailwind.config.js
```### :space_invader: Tech Stack
[![Tech](https://skillicons.dev/icons?i=ts,react,nextjs,tailwind,graphql)](https://skillicons.dev)
### :key: Environment Variables
_Flexibble Web_ web application uses [Grafbase](https://grafbase.com/), [Cloudinary](https://cloudinary.com/) and [Google Cloud](https://cloud.google.com/) to handle authentication, storage and database. Therefore, you need to create accounts on [Grafbase](https://grafbase.com/), [Cloudinary](https://cloudinary.com/) and [Google Cloud](https://cloud.google.com/) and get your API keys and add them to the environment variables in the `.env` file.
To run this project, you will need to add the following environment variables to your .env file
```env
NEXT_PUBLIC_GRAFBASE_API_URL=
NEXT_PUBLIC_GRAFBASE_API_KEY=
GOOGLE_CLIENT_ID=
GOOGLE_CLIENT_SECRET=
NEXTAUTH_SECRET=
NEXTAUTH_URL=
CLOUDINARY_CLOUD_NAME=
CLOUDINARY_API_KEY=
CLOUDINARY_API_SECRET=
```Also, you need to add the following environment variables to your .env file at `grafbase/` folder
```env
NEXTAUTH_SECRET=
```## :toolbox: Getting Started
This is a [Next.js](https://nextjs.org/) project bootstrapped with [`create-next-app`](https://github.com/vercel/next.js/tree/canary/packages/create-next-app).
### Getting Started
First, run the development server:
```bash
npm run dev
# or
yarn dev
# or
pnpm dev
```Open [http://localhost:3000](http://localhost:3000) with your browser to see the result.
You can start editing the page by modifying `app/page.tsx`. The page auto-updates as you edit the file.
This project uses [`next/font`](https://nextjs.org/docs/basic-features/font-optimization) to automatically optimize and load Inter, a custom Google Font.
### Learn More
To learn more about Next.js, take a look at the following resources:
- [Next.js Documentation](https://nextjs.org/docs) - learn about Next.js features and API.
- [Learn Next.js](https://nextjs.org/learn) - an interactive Next.js tutorial.You can check out [the Next.js GitHub repository](https://github.com/vercel/next.js/) - your feedback and contributions are welcome!
### Deploy on Vercel
The easiest way to deploy your Next.js app is to use the [Vercel Platform](https://vercel.com/new?utm_medium=default-template&filter=next.js&utm_source=create-next-app&utm_campaign=create-next-app-readme) from the creators of Next.js.
Check out our [Next.js deployment documentation](https://nextjs.org/docs/deployment) for more details.
## :camera: Screenshots
## :wave: Contributing
Contributions are always welcome!
See [`contributing.md`](https://contributing.md/) for ways to get started.
Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are **greatly appreciated**.
If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement".
Don't forget to give the project a star! Thanks again!1. Fork the Project
2. Create your Feature Branch (`git checkout -b feature/AmazingFeature`)
3. Commit your Changes (`git commit -m 'Add some AmazingFeature'`)
4. Push to the Branch (`git push origin feature/AmazingFeature`)
5. Open a Pull Request## :warning: License
Distributed under the MIT License. See [LICENSE.txt](https://github.com/ladunjexa/Flexibble-Web/blob/main/LICENSE) for more information.
## :handshake: Contact
Liron Abutbul - [@lironabutbul6](https://twitter.com/lironabutbul6) - [@ladunjexa](https://t.me/ladunjexa)
Project Link: [https://github.com/ladunjexa/Flexibble-Web](https://github.com/ladunjexa/Flexibble-Web)
## :gem: Acknowledgements
This section used to mention useful resources and libraries that used in Flexibble Web project.
- [NextJS](https://nextjs.org/)
- [React](https://reactjs.org/)
- [React-DOM](https://www.npmjs.com/package/react-dom)
- [TypeScript](https://www.typescriptlang.org/)
- [TailwindCSS](https://tailwindcss.com/)
- [@headlessui/react](https://headlessui.dev/)
- [Cloudinary](https://cloudinary.com/)
- [GraphQL](https://graphql.org/)
- [GraphQL Request](https://www.npmjs.com/package/graphql-request)
- [JWT](https://jwt.io/)
- [NextAuth](https://next-auth.js.org/)
- [Grafbase](https://grafbase.com/)
- [@grafbase/sdk](https://www.npmjs.com/package/@grafbase/sdk)
- #JSMastery