Today we have a lot of possibilities to bootstrap a application or build minimal product using Cloud Services like Supabase and Ory Cloud. This demo app shows an example of simple todo list backend API.
- Authentication/User login/Forgot password are handled by Ory Cloud or Ory Kratos
- Database layer is implemented by Supabase database
For the authentication part you can do two things:
- Use Ory Cloud (just follow the onboarding process to their Cloud services)
- Use self-hosted Ory Kratos installation (available through docker-compose in this project)
TODO:
- Add Mermaid diagram
- Add description
Currently it's a showcase for Supabase, but the roadmap has the following parts
- Supabase Database
- Firebase Database
- Appwriter Database
- Postgres/MySQL database with examples using RDS
- Create an issue to add a new database example
API is implemented using the following toolchain
- buf.build to improve development experience working with protobufs
- gRPC as a main technology to build API
- gRPC gateway to add support of RESTful API for browser
You can check out the code of KratosMiddleware located in middleware
package. The process is simple and it's used to the browsers only (mobile and desktop)
Not implemented yet
git clone git@github.com:gen1us2k/cloudnative_todo_list
cd cloudnative_todo_list
docker-compose up -d
go run cmd/todolist/main.go
Open http://127.0.0.1:8081/api/todo to start demo
The project uses Go and Make for local development
build_grpc Generate files for gRPC
deps install binaries
lint Run lint against Go code
test Run tests
Configuration can be changed with environment variables