Application to manage tasks used to practice, test, update and showcase my work.
Find the documentation under the .docs
folder.
Quick links:
In real world projects I would never define the list of tech stack before understanding the requirements and the constraints of the projects. I would also try to keep the stack simple, short and boring. See my own blog post about it.
However, this project is a playground to test and learn new technologies so I can risk it and any technology I feel like. Here I am listing some of the technologies I am planning to use in this project and some of the patterns I want to try out. This is a sort of wishlist. The list will keep growing and I will not be able to use/learn everything listed there.
I am marking with ✔️ the technologies/approaches I am using and with 🚧 the ones I started to add but are still not functional.
flowchart TD
subgraph webapps
nextjs["nextjs
[typescript]
"]
htmx-go["HTMX
[go]
"]
end
subgraph backends
go["REST
[go]"]
js["REST
[js]"]
end
subgraph dbs
inmemory[("In Memory")]
mongo[("Mongo")]
end
subgraph e2e
cypress["E2E Cypress
[js]"]
end
subgraph systemtests
bdd-go["BDD
[go]"]
end
webapps -- uses --> backends
backends -- "stores data in" --> dbs
e2e -- tests --> webapps
systemtests -- tests ---> backends
classDef Tier fill:#08427b,color:#ccc,stroke:#333
classDef Service fill:#1168bd,color:#ccc,stroke:#333
classDef Tests fill:#087b42,color:#333,stroke:#333
classDef TestService fill:#11bd68,color:#333,stroke:#333
class e2e,systemtests Tests
class webapps,backends,dbs Tier
class nextjs,htmx-go,go,js,inmemory,mongo Service
class cypress,bdd-go TestService
- Golang ✔️
- Java with Spring Boot
- Kotlin
- C#
- Nodejs with Express ✔️
- Nodejs with Nestjs
- Clojure
- Python / FastAPI
- Python / Django
- React with Nextjs ✔️
- React with Remix 🚧
- HTMX with Golang ✔️
- HTMX with Nodejs/Ejs
- Graphql
- RESTful API ✔️
- gRPC
- Websockets
- Server Sent Events
- BDD
- Cypress ✔️ (AFAIK not suitable for tests that involve multiple browsers / users)
- Test Cafe
- Selenium
- Kafka
- RabbitMQ
- NATS
- Postgresql
- Mysql
- MongoDB 🚧
- Neo4j
- Datomic
- Sqlite ?
- Cassandra ?
- Snowflake ?
- Databricks ?
- Redis
- Memcached
- Hazelcast
- Docker ✔️
- Podman
- Docker Compose ✔️ / Swarm
- Kubernetes
- Kustomize
- Telepresence
- Helm
- Terraform
- Ansible
- Chef
- Puppet
- Nginx
- Apache
- Jenkins
- Github Actions ✔️
- Gitlab CI/CD
- ArgoCD
- FluxCD
- CircleCI
- OpenTelemetry
- OpenTracing
- OpenMetrics
- OpenCensus
- OpenAPM
- Prometheus
- Grafana
- Jaeger
- Zipkin
- ELK
- Datadog
- Nagios
- AWS
- GCP
- Azure
- Hadoop
- DigitalOcean
- Command -> Undo: 🚧 for example instead of asking for confirmation when deleting a task I will offer the option to undo the change (similar to Gmail).
- Tile38 (not sure how it will fit the TODO application yet)