Archived

This project has been archived. See jbrunton/chat-demo for a better example.

ChatDemo (Legacy)

This project is an exercise in developing good CI/CD practices and automation. It includes:

  • Infrastructure as Code with Pulumi, including automatic provisioning of dev environments for each PR (and automatic cleanup after merging)
  • CI including linting, unit tests, and eventually integration tests
  • Continuous delivery practices, including automatic deployments to staging and automatic (with approval) deployments to production
  • Automatic dependency updates (including automerging for minor version changes) with Renovate

This is a Next.js project bootstrapped with create-next-app.

The demo application

The project implements a very basic realtime chat app at chat-demo.jbrunton-aws.com.

  • From the home screen you can create "rooms". Each room has a unique URL. Anyone connecting to the room can chat using server-sent events.
  • Over time, the app will also respond to commands prefixed with a /. Right now, the only command is /help.

Getting Started

First, run the development server:

cd server
npm install
npm run dev

Open http://localhost:3000 with your browser to see the result.

You can start editing the page by modifying pages/index.tsx. The page auto-updates as you edit the file.

API routes can be accessed on http://localhost:3000/api/hello. This endpoint can be edited in pages/api/hello.ts.

The pages/api directory is mapped to /api/*. Files in this directory are treated as API routes instead of React pages.

Learn More

To learn more about Next.js, take a look at the following resources:

You can check out the Next.js GitHub repository - your feedback and contributions are welcome!

Deploy on Vercel

The easiest way to deploy your Next.js app is to use the Vercel Platform from the creators of Next.js.

Check out our Next.js deployment documentation for more details.