Me: Can I sign up for Twitter?
Mom: We have Twitter at home
Twitter at home:
Just a Twitter clone for fun
Since this is just for fun, I chose some tech to experiment with that I haven't necessarily used before. Some highlights of the tech stack include:
- Typescript for the UI and backend (Node)
- React
- DaisyUI components / Tailwind CSS
- Apollo Client and Apollo Server for GraphQL
- Redis with JSON and Search modules for the persistent database
- OpenTelemetry and Zipkin for traces and metrics
This app uses pnpm
instead of npm
. Follow the installation instructions for your platform.
This app requires Node 20. To make it easy, it is recommended to install nvm to make use of the included .nvmrc file. It is also recommended to integrate nvm with your shell so that the correct Node version will be used automatically when changing to the Twitter At Home directory.
The default way to run the app relies on Docker and Docker Compose to easily stand up a Redis database and a Zipkin instance for OpenTelemetry data.
With the prerequisites out of the way, running the app for local development is as simple running a few commands from the root directory.
pnpm i && pnpm i -C ui && pnpm i -C api
pnpm start
is will restore all of the dependencies and then run the UI, the backend, the Redis database, and the Zipkin instance.
The app will be accessible on localhost:3000 and Zipkin on localhost:9411.