dorkhub

Analog

Meet the calendar that changes everything

analogdotnow
TypeScript1.6k186 forksMITupdated 6 days ago
visit the demogit clone https://github.com/analogdotnow/Analog.gitanalogdotnow/Analog

Analog

The open source calendar that changes everything


Vercel OSS Program

Getting Started

To get Analog up and running on your local machine, follow these steps:

Prerequisites

Ensure you have the following installed:

Setup

  1. Clone the repository:

    git clone https://github.com/analogdotnow/analog.git
    cd analog
  2. Install dependencies:

    bun install
  3. Configure environment variables: Copy the example environment file:

    cp .env.example .env

    Then, open the newly created .env file. You will find default values for DATABASE_URL and BETTER_AUTH_URL. You need to set the following:

    • BETTER_AUTH_SECRET: Generate a secure secret by running openssl rand -hex 32 in your terminal.

  4. Set up Google OAuth:

  1. Set up Microsoft OAuth (optional):
  • MICROSOFT_CLIENT_ID and MICROSOFT_CLIENT_SECRET:
    1. Go to the Microsoft Azure Portal, then navigate to Microsoft Entra ID → App registrations.
    2. Register a new application and set the redirect URI (http://localhost:3000/api/auth/callback/microsoft).
    3. Copy the Application (client) ID and create a new client secret under Certificates & secrets.
    4. Go to API permissions, click + Add a permission, choose Microsoft Graph → Delegated permissions, and add:
      • Calendars.Read, Calendars.ReadWrite, User.Read, offline_access
  1. Set up Google Maps API (optional):

Database Setup

Analog uses PostgreSQL with Drizzle ORM. You can run the database using Docker:

  1. Start the PostgreSQL database container:

    bun run docker:up

    This command uses docker-compose.yml to spin up a PostgreSQL container.

  2. Initialize the database: Once the database container is running and healthy, initialize the database:

    bun run db:push

Running the Application

After setting up the environment and database, you can start the development server:

bun run dev

The application should now be accessible in your browser at http://localhost:3000.

Tech Stack

  • Web: Next.js, TypeScript, Tailwind v4, Bun, tRPC, TanStack Query, shadcn/ui, Vercel AI SDK
  • Database: Drizzle with PostgreSQL, Redis
  • Authentication: Better Auth

Contributing

Please see CONTRIBUTING.md for details on how to contribute to this project.

more like this

ForwardWidgets

Widgets for Douban and Trakt watchlists plus personalized recommendations, live TV streaming including PlutoTV, Yatu ra…

JavaScript247

journee-diary

A lightweight, simplified, RedNotebook-inspired journal/diary app. Built with Electron. Makes dated text files.

JavaScript54

life-calendar

View and plan your life in an online calendar by visually by seeing it from days to decades

JavaScript59

search

search projects, people, and tags