Quickstart
Prerequisites
- Docker
- Node 20+
🤔Note
Run
In one terminal, install and start the database:
git clone git@github.com:rocicorp/hello-zero.git
cd hello-zero
npm install
npm run dev:db-up
In a second terminal, start zero-cache
:
cd hello-zero
npm run dev:zero-cache
In a final terminal, start the UI:
cd hello-zero
npm run dev:ui
Quick Overview
hello-zero
is a demo app that allows querying over a small dataset of fake messages between early Zero users.
Here are some things to try:
- Press the Add Messages button to add messages to the UI. Any logged-in or anonymous users are allowed to add messages.
- Press the Remove Messages button to remove messages. Only logged-in users are allowed to remove messages. You can hold shift to bypass the UI warning and see that write access control is being enforced server-side – the UI flickers as the optimistic write happens instantly and is then reverted by the server. Press login to login as a random user, then the remove button will work.
- Open two different browsers and see how fast sync propagates changes.
- Add a filter using the From and Contains controls. Notice that filters are fully dynamic and synced.
- Edit a message by pressing the pencil icon. You can only edit messages from the user you’re logged in as. As before you can attempt to bypass by holding shift.
- Check out the SQL schema for this database in
seed.sql
. - Login to the database with
psql postgresql://user:password@127.0.0.1:5430/zstart
(or any other pg viewer) and delete or alter a row. Observe that it deletes from UI automatically.
Detailed Walkthrough
Deployment
You can deploy Zero apps to most cloud providers that support Docker and Postgres. See Deployment for more information.