Skip to content

A connected workspace for better, efficient, and faster work.

Notifications You must be signed in to change notification settings

LuciKritZ/lucion

Repository files navigation

Lucion

Lucion is a team workspace inspired by Notion. A connected workspace for better, efficient, and faster work. It is created by LuciKritZ. Lucion is based on the following technologies:

  1. Next.js 14
  2. Tailwind CSS
  3. Clerk
  4. Convex
  5. Edgestore
  6. Heap Analytics

Documentation

You can find all the technical documents here:

  1. Functional Requirements
  2. Limitations
  3. High Level Design

Getting Started

Local Machine

  1. Have both npm and node installed

  2. Run npm install to install dependencies

  3. Run npx convex dev

    • This will start a convex backend.
    • For more information on Convex, refer this README.md
  4. Run npm run dev in a separate terminal

    • This will start the development server.

Typescript

This project is developed completely in TypeScript.

Crash course

Engines

Consult the "engines" section of package.json for the recommended version of node, and npm.

What if my node or npm version is not accepted?

  • Compatible versions of node and npm are tightly coupled; if one or the other is not compatible, run: nvm install.

Environment Variables in Use Today

The application currently has 6 environment variables:

  1. CONVEX_DEPLOYMENT

    • What it is: A Convex deployment variable provided by Convex itself.
    • Where it comes from: Convex -> Login -> Project -> Project Settings or after you create a project in Convex.
    • Be advised: There must NOT be a terminating slash (/) at the end of this value.
  2. NEXT_PUBLIC_CONVEX_URL

    • What it is: A Convex deployment variable provided by Convex itself.
    • Where it comes from: Convex -> Login -> Project -> Project Settings or after you create a project in Convex.
  3. NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY

    • What it is: This is a Clerk key which should is used in the frontend code, can be safely shared, and does not need to be kept secret. Reference
    • Where it comes from: Clerk -> Login -> Dashboard -> [Your Application] -> API Keys
  4. CLERK_SECRET_KEY

    • What it is: This is the secret key for Clerk which is supposed to be used from our backend code. It's very sensitive and should be deleted if leaked.
    • Where it comes from: Clerk -> Login -> Dashboard -> [Your Application] -> API Keys
  5. EDGE_STORE_ACCESS_KEY

    • What it is: This is an edgestore variable access key.
    • Where it comes from: Edgestore -> Login -> Dashboard -> Project -> Info icon -> Project Keys
  6. EDGE_STORE_SECRET_KEY

    • What it is: This is an edgestore variable secret key.
    • Where it comes from: Edgestore -> Login -> Dashboard -> Project -> Info icon -> Project Keys
  7. NEXT_PUBLIC_HEAP_ANALYTICS_ID

    • What it is: Heap Analytics key based on the type of environment.
    • Where it comes from: Heap Analytics -> Login -> Account -> Install -> Web

Shout out to

Code with Antonio for an excellent tutorial on youtube. I really appreciate the contributions for the community. 🫶🏻