Skip to content

techwithsam/todo_serverpod

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Todo (Serverpod + Flutter) ~ { Samuel A. } FlutterByte's Conference '25

Serverpod Flutter [License]

A minimal, full‑stack Todo app demonstrating Serverpod (Dart) backend + Flutter client with a generated client package.

App screenshot


Contents


Features

  • REST + WebSocket API with Serverpod
  • Flutter client (mobile & web)
  • PostgreSQL + Redis support
  • Dockerfile and guides for Railway / Heroku
  • Migrations and generated protocol client

Project layout

  • todo_server/ — Serverpod server
    • bin/main.dart — server entrypoint
    • Dockerfile — for containerized deploys
    • migrations/ — DB migrations
    • lib/src/generated/ — generated protocol & endpoints
  • todo_flutter/ — Flutter client
    • lib/main.dart — app entrypoint
  • todo_client/ — generated client package

Quick start (macOS)

Prereqs: Docker, Flutter, Dart SDK (for server).

  1. Clone:

    git clone https://github.com/techwithsam/todo_serverpod
    cd todo
  2. Start local DB & Redis (example using docker-compose):

    cd todo_server && docker compose up -d
  3. Run the server:

    # from todo_server/
    dart pub get
    dart run bin/main.dart
    # (or run with migrations)
    dart run bin/main.dart --apply-migrations
  4. Run the Flutter app:

    cd ../todo_flutter
    flutter pub get
    flutter run
  5. Access localhp:

    curl http://localhost:8080/

App screenshot


Development tips

  • Regenerate client after changing server models/endpoints:

    # from todo_server/
    serverpod generate
  • Set SERVER_URL in Flutter (web / build):

    flutter build web --dart-define=SERVER_URL=https://your-app.example

Deployment

See DEPLOYMENT.md for step‑by‑step Railway and Heroku instructions, Dockerfile, env vars, and common fixes.

Quick notes:

  • Use production config: config/production.yaml
  • Apply migrations on first deploy
  • Ensure port 8080 exposed and publicHost set to your domain

Contributing

  • Fork, branch, and open PRs
  • Add tests under respective test/ directories
  • Keep UI screenshots in todo_flutter/assets/screenshots/

App screenshot

License

MIT — see LICENSE file.