MCPcopy Index your code
hub / github.com/Nick-h4ck3r/quickflow

github.com/Nick-h4ck3r/quickflow @main

Chat with this repo
repository ↗ · DeepWiki ↗ · + Follow
119 symbols 348 edges 71 files 0 documented · 0%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

Quickflow: A Better & Open-Source Alternative to Notion

Image of the app here

Quickflow is an open-source alternative to Notion that aims to provide a superior user experience.

Technologies Used

  • Next.js 13: A powerful React framework for building modern web applications.
  • Shadcn UI: Beautifully designed components that you can copy and paste into your apps.
  • Clerk: A complete suite of embeddable UIs, flexible APIs, and admin dashboards to authenticate and manage your users.
  • Convex: A Backend Application Platform that keeps you focused on building your product. Convex Functions, Database, File Storage, Scheduling, and Search fit together cohesively.
  • TailwindCSS: A utility-first CSS framework for streamlined web application styling.
  • EdgeStore: A service for storing and managing data.

Key Features

  • Real-time database 🔗
  • Notion-style editor 📝
  • Light and Dark mode 🌓
  • Infinite children documents 🌲
  • Trash can & soft delete 🗑️
  • Authentication 🔐
  • File upload, deletion, and replacement
  • Icons for each document (changes in real-time) 🌠
  • Expandable and fully collapsable sidebar ➡️🔀⬅️
  • Full mobile responsiveness 📱
  • Publish your note to the web 🌐
  • Landing page 🛬
  • Cover image for each document 🖼️
  • Recover deleted files 🔄📄

Setting Up the Project Locally

Prerequisites

Ensure that you have Node.js version 18.x.x or higher installed.

Cloning the Repository

git clone https://github.com/Nick-h4ck3r/quickflow.git
cd quickflow

Installing Dependencies

npm i

Setting Up Convex

  1. Create an account on convex.dev
  2. Run the following command:
npx convex dev
  1. Follow the prompts to log in and select a new project in terminal.

convex create new project

  1. A .env.local file will be created with CONVEX_DEPLOYMENT and NEXT_PUBLIC_CONVEX_URL variables.

Keep this terminal running, as the Convex dev server is running locally. If it crashes or closes, run npx convex dev again.

Setting Up Clerk for Authentication

  1. Create an account on clerk.com
  2. Create a new application in the dashboard.
  3. Enable social sign-ins (Google and GitHub recommended) and disable email option.
  4. Copy the NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY and CLERK_SECRET_KEY to your .env.local file.
  5. Now, click on JWT Templates (in left sidebar) option in convex project dashboard.

JWT Templates (in left sidebar) option in convex project dashboard.

  1. Click on Create New Template and select convex.

  2. Copy the issuer URL and update the domain in convex/auth.config.js:

export default {
  providers: [
    {
      domain: "https://your-issuer-url.clerk.accounts.dev",
      applicationID: "convex",
    },
  ],
};

Setting Up EdgeStore for Data Storage

  1. Create an account on edgestore.dev
  2. Create a new project in the dashboard.
  3. Copy the EDGE_STORE_ACCESS_KEY and EDGE_STORE_SECRET_KEY to your .env.local file.

Finalizing Environment Setup

Ensure your .env.local file looks like this:

CONVEX_DEPLOYMENT=
NEXT_PUBLIC_CONVEX_URL=

NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY=
CLERK_SECRET_KEY=

EDGE_STORE_ACCESS_KEY=
EDGE_STORE_SECRET_KEY=

Starting the Development Server

npm run dev

Deployment

To deploy the app on Vercel:

  1. Import the project to deploy on vecrel.
  2. Replace the build command with: npm run build && npx convex deploy
  3. To get production env for convex, go to convex project, change the environment to production.
  4. Click on settings, and copy the Deployment URL to NEXT_PUBLIC_CONVEX_URL. 5.After that, click on Generate Production Deploy Key, and copy it too.
  5. Add the following environment variables in vercel deployment.
  6. CONVEX_DEPLOY_KEY: convex-generate-production-deploy-key-here
  7. CONVEX_DEPLOYMENT: convex-generate-production-deploy-key-here
  8. NEXT_PUBLIC_CONVEX_URL : convex-deployment-url-here
  9. NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY: Same as in .env.local
  10. CLERK_SECRET_KEY: Same as in .env.local
  11. EDGE_STORE_ACCESS_KEY: Same as in .env.local
  12. EDGE_STORE_SECRET_KEY: Same as in .env.local

vercel environment variables

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

Credits

Special thanks to Antonio for his invaluable tutorial, which served as the foundation for building this app. You can find the tutorial here.

License

MIT License

Extension points exported contracts — how you extend this code

EditorProps (Interface)
(no doc)
components/editor.tsx
IconPickerProps (Interface)
(no doc)
components/icon-picker.tsx
SpinnerProps (Interface)
(no doc)
components/spinner.tsx
ToolbarProps (Interface)
(no doc)
components/toolbar.tsx
CoverImageProps (Interface)
(no doc)
components/cover.tsx
ConfirmModalProps (Interface)
(no doc)
components/modals/confirm-modal.tsx
CommandDialogProps (Interface)
(no doc)
components/ui/command.tsx
PublishProps (Interface)
(no doc)
app/(main)/_components/Publish.tsx

Core symbols most depended-on inside this repo

cn
called by 47
lib/utils.ts
onChange
called by 4
components/modals/cover-image-modal.tsx
onExpand
called by 4
app/(main)/_components/DocumentList.tsx
onClose
called by 2
components/modals/cover-image-modal.tsx
collapse
called by 2
app/(main)/_components/Navigation.tsx
formatFileSize
called by 1
components/single-image-dropzone.tsx
disableInput
called by 1
components/toolbar.tsx
onInput
called by 1
components/toolbar.tsx

Shape

Function 101
Interface 18

Languages

TypeScript100%

Modules by API surface

components/toolbar.tsx8 symbols
app/(main)/_components/Navigation.tsx7 symbols
app/(main)/_components/Title.tsx6 symbols
app/(main)/_components/Item.tsx6 symbols
components/single-image-dropzone.tsx5 symbols
app/(main)/_components/Publish.tsx5 symbols
app/(main)/_components/TrashBox.tsx4 symbols
app/(main)/_components/DocumentList.tsx4 symbols
app/(main)/_components/Banner.tsx4 symbols
components/ui/command.tsx3 symbols
components/search-command.tsx3 symbols
components/modals/cover-image-modal.tsx3 symbols

For agents

$ claude mcp add quickflow \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact