Skip to main content

Web Setup

The web client for AskAtlas, built with Next.js (App Router).

Prerequisites

Getting Started

  1. Install dependencies:

    make install
  2. Run the development server:

    make dev

    This starts the app on http://localhost:3000 with dev environment variables loaded via Infisical.

Makefile Commands

Development & Build

CommandDescription
make devStart the dev server using Infisical for env vars.
make buildBuild the application for production.
make stagingBuild and run the app in staging mode.
make prodBuild and run the app in production mode.
make cleanRemove .next and node_modules.

Code Quality

CommandDescription
make lintRun the linter.
make lint-fixRun the linter and fix issues.
make formatFormat code using Prettier.
make format-checkCheck if code is correctly formatted.
make typecheckRun TypeScript type checking.

Testing

CommandDescription
make testRun unit/integration tests.
make test-e2eRun Playwright E2E tests (dev).
make test-e2e-stagingRun E2E tests against staging.
make test-e2e-prodRun E2E tests against production.
make test-e2e-codegenOpen Playwright codegen for creating tests.
make e2e-reportShow the Playwright test report.

Docker

CommandDescription
make docker-buildBuild the Docker image askatlas-web.
make docker-run-localRun the container locally on port 3000.

Project Structure

web/
├── app/ # Next.js App Router pages and layouts
│ ├── (dashboard)/ # Authenticated dashboard pages
│ ├── (marketing)/ # Public marketing/landing pages
│ └── practice/ # Practice page
├── components/ # Shared UI components (shadcn/ui, animate-ui)
├── lib/ # Shared utilities and business logic
│ └── features/ # Feature-based code organization
│ ├── dashboard/ # Dashboard-specific components and logic
│ └── marketing/ # Marketing-specific components and logic
├── hooks/ # Custom React hooks
├── public/ # Static assets
└── e2e/ # Playwright end-to-end tests