Chris Shabsin

Chris Shabsin's personal page for tracking projects and such.

View My GitHub Profile

23 January 2026

Conju NextGen Design doc

by cshabsin

1. Background

The existing Conju event service is a Go application deployed on AppEngine. Over time, the codebase has become difficult to maintain and extend (“bitrotted to confusion”). This document outlines a plan to rewrite Conju from the ground up as a modern, reactive web application using a new tech stack.

2. Goals

3. Non-Goals

4. Architecture

4.1. Tech Stack

4.2. Data Model (Firestore)

We will use Firestore with the following top-level collections.

5. Key Features

6. UI/UX Sketch

The application will be a Single Page Application (SPA) with a clean, modern aesthetic following Material Design principles. The UI will be fully reactive, providing instant feedback to user interactions.

7. Development and Testing

7.1. Development Workflow & Tooling

To ensure code quality and consistency, the project uses a pre-commit hook managed by Husky and lint-staged. Before any commit, the following automated checks are performed on staged files:

7.2. Testing Strategy

Unit and component tests are written using Jest and React Testing Library. This allows for testing component behavior in a simulated DOM environment.

7.3. Local Development Environment

For local development, the project is configured to connect to the Firebase Emulator Suite. This allows for local, offline development and testing of Firebase features without interacting with the production database or services.

8. Milestones

  1. Project Setup: Initialize Next.js project, configure Firebase, set up basic project structure.
  2. Authentication: Implement user login and registration.
  3. Core Data Models: Implement Firestore data structures and basic CRUD operations for events and users.
  4. RSVP Form: Build the main RSVP form.
  5. Admin Dashboard: Create basic admin views for managing data.
  6. Deployment: Deploy the initial version to Firebase Hosting.

9. Open Questions

tags: