Skip to content

A Things 3 inspired Todo Application built leveraging Supabase C# and Blazor/Maui

Notifications You must be signed in to change notification settings

acupofjose/supasharp-todo

Repository files navigation

A Blazor WASM implementation of a Things3 inspired todo list showcasing Supabase C# features.

A live version of this project is hosted through Github Pages.


Current Project State

  • Authentication using 3rd Party Providers (Github)
  • Realtime, Responsive Models
  • (In Progress) Offline Support
    • Store application state offline (cross platform)
    • Sync application state after returning online
  • Responsive Routing
  • Keyboard Shortcuts
  • Gesture Support
  • Drag-and-drop Support
  • Light Mode / Dark Mode
  • Todos
    • Create, Update, Trash, and Delete Todos
    • Views for different Todo States
      • Inbox
      • Today
      • Upcoming
      • Trash
    • Set a Due Time / Due At
    • Add/Remove todo from a list
    • Add/Remove labels from a todo
    • Reorder Todos using Drag and drop

Integration with Supabase

Most of the code, where possible, has been placed into the SupasharpTodo.Shared project and leverages Dependency Injection to handle cross-platform implementations.

The interfaces are specified in SupasharpTodo.Shared.Interfaces.

What will likely interest most developers using this repo as an example of Supabase's features are the files found in:

For Developers

This project is built using Tailwind as the CSS framework, which requires compiling on a css change. The fastest way to develop is within the SupasharpTodo.BlazorWASM project.

You'll need to do an npm install in the root of the project to install Tailwind and its dependencies.

Two commands need to be running simultaneously for development:

# Either using `concurrently`
npm run dev:wasm

# Or in separate terminals...
# In root of repo
npm run dev:tailwind:wasm

# In `SupasharpTodo.BlazorWASM`
dotnet watch