Skip to content

analogdotnow/Analog

Analog

The open source calendar that changes everything

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 Places API:

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
  • Database: Drizzle with PostgreSQL
  • Authentication: Better Auth for Google OAuth

Roadmap

WIP.

Contributing

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

About

Meet the calendar that changes everything

Resources

License

Code of conduct

Contributing

Stars

Watchers

Forks

Sponsor this project

 

Contributors 30

Languages