Simple todo web app made with yesod
Find a file
2025-07-14 16:06:17 +02:00
app version 1 done 2025-06-07 16:04:51 +01:00
config api ready 2025-07-14 16:06:17 +02:00
src api ready 2025-07-14 16:06:17 +02:00
static version 1 done 2025-06-07 16:04:51 +01:00
templates api ready 2025-07-14 16:06:17 +02:00
test version 1 done 2025-06-07 16:04:51 +01:00
.dir-locals.el version 1 done 2025-06-07 16:04:51 +01:00
.gitattributes version 1 done 2025-06-07 16:04:51 +01:00
.gitignore version 1 done 2025-06-07 16:04:51 +01:00
client_session_key.aes Created a route to fetch recent modifications as a csv to allow creating clients 2025-07-03 09:42:31 +01:00
flake.nix fixed permissions 2025-06-26 13:11:57 +02:00
package.yaml version 1 done 2025-06-07 16:04:51 +01:00
README.md api ready 2025-07-14 16:06:17 +02:00
shell.nix added nix support 2025-06-09 22:06:51 +02:00
stack.yaml api ready 2025-07-14 16:06:17 +02:00
stack.yaml.lock api ready 2025-07-14 16:06:17 +02:00

sTodo

Stuce's simple todo is a web app that let's you self host a simple todolist. The goal is to provide a minimalistic and fast todo list that is self hostable.

Usage

  • can be used as is for a single user behind a vpn (for ex, wireguard)
  • can be setup for multi user with a reverse proxy and an authentification provider that supports trusted sso (for ex, nginx + authelia)

Next goals

  • Make multi user support
    • write a minimal step by step guide to install with nix,
    • add some css to make it look nicer
    • add htmx to make more agreable without making js manadatory
    • make api to allow usage with native app (a way to get every list that has been modified since date $date belonging from the user in a json or similar format)
    • use getRep and provideRep to make text/javascript response as alternatives to html
      • document api to help create clients

Version 0.0.3

Simple todo list webapp. Features : - add and delete groups that contain a list of todolists - add and delete todolists inside groups - add todolist items or edit complete list via text for easy manipulation

  • api to allow creating native clients with offline capability
    • possibility to deploy easily via nix module with a flake
    • that's it, the goal is to keep it minimal !!!

Development

Haskell Setup (I sadly don't use nix develop at the moment)

  1. If you haven't already, install Stack
    • On POSIX systems, this is usually curl -sSL https://get.haskellstack.org/ | sh
  2. Install the yesod command line tool: stack install yesod-bin --install-ghc
  3. Build libraries: stack build

If you have trouble, refer to the Yesod Quickstart guide for additional detail.

Development

Start a development server with:

stack exec -- yesod devel

As your code changes, your site will be automatically recompiled and redeployed to localhost.

Tests

stack test --flag sTodo:library-only --flag sTodo:dev

(Because yesod devel passes the library-only and dev flags, matching those flags means you don't need to recompile between tests and development, and it disables optimization to speed up your test compile times).

Documentation

  • Read the Yesod Book online for free
  • Check Stackage for documentation on the packages in your LTS Haskell version, or search it using Hoogle. Tip: Your LTS version is in your stack.yaml file.
  • For local documentation, use:
    • stack haddock --open to generate Haddock documentation for your dependencies, and open that documentation in a browser
    • stack hoogle <function, module or type signature> to generate a Hoogle database and search for your query
  • The Yesod cookbook has sample code for various needs

Getting Help