Home

Awesome

Local-First LiveView Svelte ToDo App

This to-do app is a demo of an installable Phoenix Progressive Web App (PWA) that can sync real-time across multiple devices while also being able to work locally offline.

https://github.com/tonydangblog/liveview-svelte-pwa/assets/63323230/726487b0-926d-4f5d-b54a-e93dcdd9dc6a

Detailed Video Walkthrough

Working in Elevators: How to build an offline-enabled, real-time todo app w/ LiveView, Svelte, & Yjs

Live Demo

A live demo of the app can be found here.

Running Locally

You can run this app locally by following the steps below after cloning the repo.

  1. Install the Phoenix dependencies.

mix deps.get
  1. Install the Node.js dependencies. The --prefix assets is required when running the command from the root directory in order to install the dependencies in the assets directory.
npm install --prefix assets
  1. Create the database.
mix ecto.create
  1. Start the Phoenix server.
mix phx.server

Deploying the Project

To deploy this app to Fly.io, run the following commands. Note: You will need to have an account with Fly and flyctl installed.

  1. Remove the fly.toml file. A new one will be created when you run fly launch.
rm fly.toml
  1. Initialize and deploy the project. Fly will automatically detect the app type and set up the necessary configuration. You can tweak the settings or stick with the defaults, but make sure that a Postgres database is included in the configuration settings.
fly launch

Technologies Used

Inspired By

Contact

Created by Tony Dang. Please feel free send any questions or feedback to tony@tonydang.com.