Giter Site home page Giter Site logo

sanidhyy / notion-clone Goto Github PK

View Code? Open in Web Editor NEW
13.0 1.0 1.0 2.43 MB

Jotion - The connected workspace where better, faster work happens.

Home Page: https://app-jotion.vercel.app/

License: MIT License

TypeScript 95.16% CSS 1.19% JavaScript 3.65%
api authentication blocknote clerk convex edgestore next nextjs note-app note-taking

notion-clone's Introduction

Jotion - The connected workspace where better, faster work happens.

Jotion - The connected workspace where better, faster work happens.

Ask Me Anything! GitHub license Maintenance GitHub branches Github commits GitHub issues GitHub pull requests Vercel status

๐Ÿ“” Table of Contents

โ€ผ๏ธ Folder Structure

Here is the folder structure of this app.

notion-clone/
  |- app/
    |-- (main)/
        |--- _components/
        |--- (routes)/documents/[documentId]/
        |--- layout.tsx
    |-- (marketing)/coures/[courseId]/
        |--- _components/
        |--- layout.tsx
        |--- page.tsx
    |-- (public)/
        |--- (routes)/preview/[documentId]/
        |--- layout.tsx
    |-- api/edgestore/[...edgestore]/
        |--- route.ts
    |-- error.tsx
    |-- globals.css
    |-- layout.tsx
    |-- not-found.tsx
  |- components/
    |-- modals/
    |-- providers/
    |-- ui/
    |-- cover.tsx
    |-- editor.tsx
    |-- icon-picker.tsx
    |-- mode-toggle.tsx
    |-- search-command.tsx
    |-- single-image-dropzone.tsx
    |-- spinner.tsx
    |-- toolbar.tsx
  |- config/
    |-- index.ts
  |- convex/
    |-- _generated/
    |-- .env.example
    |-- auth.config.js
    |-- documents.ts
    |-- environment.d.ts
    |-- schema.ts
    |-- tsconfig.json
  |- hooks/
    |-- use-cover-image.ts
    |-- use-origin.ts
    |-- use-scroll-top.ts
    |-- use-search.ts
    |-- use-settings.ts
  |- lib/
    |-- edgestore.ts
    |-- db.ts
  |- public/
  |- .env.example
  |- .env.local
  |- .eslintrc.json
  |- .gitignore
  |- components.json
  |- environment.d.ts
  |- next.config.js
  |- package-lock.json
  |- package.json
  |- postcss.config.js
  |- tailwind.config.ts
  |- tsconfig.json

๐Ÿงฐ Getting Started

  1. Make sure Git and NodeJS is installed.
  2. Clone this repository to your local computer.
  3. Create .env.local file in root and convex directory.
  4. Contents of .env.local:
# .env.local

# disabled next.js telemetry
NEXT_TELEMETRY_DISABLED=1

# deployment used by `npx convex dev`
CONVEX_DEPLOYMENT=dev:<deployment-name> # team: <team-name>, project: <project-name>

# convex public url
NEXT_PUBLIC_CONVEX_URL="<your-convex-url>"

# clerk auth keys
NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY=pk_test_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
CLERK_SECRET_KEY=sk_test_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

# edge store keys
EDGE_STORE_ACCESS_KEY=XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
EDGE_STORE_SECRET_KEY=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
  1. Contents of convex/.env.local:
# convex/.env.local

# clerk issuer url (go to your clerk dashboard > JWT Templates > New template > Convex > Save and copy your Issuer URL)
CLERK_ISSUER_URL=<your-clerk-issuer-url>
  1. Convex Deployment
  • Visit the Convex website: https://convex.dev
  • Log in to your Convex account or sign up if you don't have one.
  • Once logged in, navigate to the "Deployments" section.
  • Create a new deployment or select an existing one.
  • Replace <deployment-name>, <team-name>, and <project-name> in the .env.local file with your Convex deployment details.
  • In the Convex dashboard, find the public URL associated with your deployment.
  • Replace <your-convex-url> in the .env.local file with your Convex public URL.
  1. Clerk Authentication Keys
  • Visit the Clerk dashboard: https://clerk.dev
  • Log in to your Clerk account or sign up if you don't have one.
  • Go to the "Projects" section and select your project.
  • Navigate to the "API Keys" tab.
  • Copy the "Publishable Key" and replace <your-clerk-publishable-key> in the .env.local file with the copied key.
  • Copy the "Secret Key" and replace <your-clerk-secret-key> in the .env.local file with the copied key.
  • Go to your Clerk dashboard > JWT Templates > New template > Convex > Save and copy your Issuer URL.
  • Replace <your-clerk-issuer-url> with the url that you copied.
  • Also, go to Convex dashboard > Settings > Environment Variables > Add CLERK_ISSUER_URL variable with value that you copied.
  1. Edge Store Keys
  • If you are using an Edge Store service, navigate to the respective dashboard or service provider.
  • Obtain the "Access Key" and "Secret Key" for your Edge Store.
  • Replace <your-edge-store-access-key> and <your-edge-store-secret-key> in the .env.local file with your Edge Store keys.
  1. Open terminal in root directory. Run npm install --legacy-peer-deps or yarn install --legacy-peer-deps.

  2. Now app is fully configured ๐Ÿ‘ and you can start using this app using either one of npm run dev or yarn dev in one tab and npx convex dev in another tab.

NOTE: Please make sure to keep your API keys and configuration values secure and do not expose them publicly.

๐Ÿ“ท Screenshots:

Modern UI/UX

Create new pages

Notion-styled editor

Search pages

โš™๏ธ Tech Stack

React JS Next JS Typescript Tailwind CSS Vercel Prisma

๐Ÿ”ง Stats

Stats for Jotion

๐Ÿ™Œ Contribute

You might encounter some bugs while using this app. You are more than welcome to contribute. Just submit changes via pull request and I will review them before merging. Make sure you follow community guidelines.

๐Ÿ’Ž Acknowledgements

Useful resources and dependencies that are used in Jotion.

โ˜• Buy Me a Coffee

๐Ÿš€ Follow Me

GitHub followers Twitter YouTube

๐Ÿ“š Learn More

To learn more about Next.js, take a look at the following resources:

You can check out the Next.js GitHub repository - your feedback and contributions are welcome!

๐Ÿ“ƒ Deploy on Vercel

The easiest way to deploy your Next.js app is to use the Vercel Platform from the creators of Next.js.

Check out Next.js deployment documentation for more details.

โญ Give A Star

You can also give this repository a star to show more people and they can use this repository.

๐ŸŒŸ Star History

Star History Chart

(back to top)

notion-clone's People

Contributors

dependabot[bot] avatar sanidhyy avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

Forkers

webcrazydylan

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.