27 open source tools
Stack
The open source Woovi and I build on, and the services we run on our own machines. Every tool links to where we wrote about it, so you can see how we use it.
Self-hosted means we run the service ourselves rather than buying it.
Infrastructure
Self-hostedWooviMe
Self-hostedMe
Self-hostedWooviMe
Kubernetes
- How to self-host any open source service? on Woovi's blog
- Bootstrapping ArgoCD with Helm and Helmfile on Woovi's blog
- Overcoming IP Restrictions: Leveraging Squid Proxy on Kubernetes for API Consumption on Woovi's blog
- How Woovi is building a self hosted cloud native CI/CD platform with Tekton and Argocd on Woovi's blog
- How to self-host any open source service?
- Bootstrapping ArgoCD with Helm and Helmfile
- Overcoming IP Restrictions: Leveraging Squid Proxy on Kubernetes for API Consumption
- talos-visualized
Self-hostedMe
Self-hostedMe
WooviMe
Docker
- Resilient Node.js servers without using docker on Woovi's blog
- How to self-host any open source service? on Woovi's blog
- How to setup local development with ELK observability tools using docker-compose on Woovi's blog
- Using Webpack to slim your Docker image on Woovi's blog
- How to self-host any open source service?
- Using Webpack to slim your Docker image
- Best way to run Migrations in Production
- Best DX for MongoDB Replica set
- Learning Path Docker in my notes
WooviMe
Delivery
WooviMe
Self-hostedWooviMe
Self-hostedWooviMe
Observability
Self-hostedWooviMe
Self-hostedWoovi
Data
Self-hostedWooviMe
Self-hostedWooviMe
MongoDB
- Robust MongoDB Change Stream implementation on Woovi's blog
- Why does Woovi use MongoDB? on Woovi's blog
- MongoDB database cloud migration on Woovi's blog
- Full-text search using MongoDB and Elastic Search on Woovi's blog
- Robust MongoDB Change Stream implementation
- Why does Woovi use MongoDB?
- MongoDB database cloud migration
- Full-text search using MongoDB and Elastic Search
- Mongodb in my notes
Self-hostedWooviMe
Redis
- Prometheus + Redis: Simple Guide to Monitor Redis Instances on Woovi's blog
- Sharing a Redis using a Prefix on Woovi's blog
- Robust MongoDB Change Stream implementation on Woovi's blog
- Simple Pub/Sub with Redis on Woovi's blog
- Sharing a Redis using a Prefix
- Robust MongoDB Change Stream implementation
- Simple Pub/Sub with Redis
- Simple Cache with Redis
Backend
WooviMe
Node.js
- Resilient Node.js servers without using docker on Woovi's blog
- A Modern Node.js + TypeScript Setup for 2025 π on Woovi's blog
- Simple GraphQL Node Interface implementation on Woovi's blog
- Typesafe HTTP Request in Node on Woovi's blog
- A Modern Node.js + TypeScript Setup for 2025 π
- Simple GraphQL Node Interface implementation
- Typesafe HTTP Request in Node
- Node mTLS from scratch
- Abstract Node in my notes
- Memory Leak in my notes
- Node Modules in my notes
- Package Size in my notes
WooviMe
TypeScript
- A Modern Node.js + TypeScript Setup for 2025 π on Woovi's blog
- Simple GraphQL Node Interface implementation on Woovi's blog
- How to convert a TypeScript built-in enum to a GraphQL enum on Woovi's blog
- Testing Mutations with Relay in Frontend on Woovi's blog
- A Modern Node.js + TypeScript Setup for 2025 π
- Relay Modern: Migration to Typescript
- Incremental Migration to TypeScript on a Flowtype codebase
- Simple GraphQL Node Interface implementation
- Root Cause Analysis in my notes
WooviMe
Koa
- Building a Modular Decoupled Backend using a Monorepo on Woovi's blog
- Running many WebSocket servers on Woovi's blog
- Woo.vi - Building Woovi Shortener Microservice on Woovi's blog
- Building a Modular Decoupled Backend using a Monorepo
- Running many WebSocket servers
- Woo.vi - Building Woovi Shortener Microservice
- tiny-koa-graphql
WooviMe
GraphQL
- Simple GraphQL Node Interface implementation on Woovi's blog
- Embedding Metabase using GraphQL on Woovi's blog
- How to convert a TypeScript built-in enum to a GraphQL enum on Woovi's blog
- How To Handle Data With GraphQL Relay Client Schema Extensions on Woovi's blog
- Simple GraphQL Node Interface implementation
- Embedding Metabase using GraphQL
- How to create a read-only GraphQL server
- graphql2ts
- A mock GraphQL service in my notes
- Page based pagination with Connections in my notes
- Relay in my notes
- What people get wrong about Relay in my notes
Frontend
WooviMe
Relay
- Simple GraphQL Node Interface implementation on Woovi's blog
- Embedding Metabase using GraphQL on Woovi's blog
- How To Handle Data With GraphQL Relay Client Schema Extensions on Woovi's blog
- Automating Relay Connection Testing for a Seamless User Experience on Woovi's blog
- Adding Server Side Rendering to a Relay Production App
- Relay Modern: Migration to Typescript
- Relay Modern: the Relay Store
- Relay ModernβββWhat is a Fragment?
- Global State in my notes
- Page based pagination with Connections in my notes
- Relay in my notes
- What people get wrong about Relay in my notes
WooviMe
React
- How MDX can accelerates document creation in websites on Woovi's blog
- How to generate dynamic OG (OpenGraph) images with Satori and React on Woovi's blog
- How To Write Material UI Components Like Radix UI And Why Component Composition Matters? on Woovi's blog
- How To Handle Data With GraphQL Relay Client Schema Extensions on Woovi's blog
- How we save 1M hours of development using React Navigation
- Integration Tests with Relay
- What to test in the frontend?
- ast-i18n
- Learning Path React in my notes
- A Failed Talk in my notes
- Community in my notes
- Editor - React Conf in my notes
WooviMe
WooviMe
WooviMe
Webpack
- Bundling many frontends with a single rspack config on Woovi's blog
- Web Dev Efficiency: Achieving Faster Builds and Lower Memory Load with Webpack on Woovi's blog
- Using Webpack to slim your Docker image on Woovi's blog
- How to make Webpack Faster in a Monorepo? on Woovi's blog
- Bundling many frontends with a single rspack config
- Web Dev Efficiency: Achieving Faster Builds and Lower Memory Load with Webpack
- Using Webpack to slim your Docker image
- How to make Webpack Faster in a Monorepo?
Testing
WooviMe
Jest
- Electron Testing Best Practices: Testing Main and Renderer Code with Jest on Woovi's blog
- Effortless Project Discovery: Automating Jest Multi-Project Runs in Monorepos on Woovi's blog
- Avoiding UI Regressions With Jest on Woovi's blog
- How to know if your test is flaky? on Woovi's blog
- Electron Testing Best Practices: Testing Main and Renderer Code with Jest
- Effortless Project Discovery: Automating Jest Multi-Project Runs in Monorepos
- jest-everywhere
- next-jest-multiproject
Tools
WooviMe
Git
- Streamlining Your Git Commit Workflow: Commands and Handy Aliases β on Woovi's blog
- 1-Commit Per Pull Request Workflow on Woovi's blog
- Woovi Git Best Practices on Woovi's blog
- 1-Commit Per Pull Request Workflow
- Git branching in my notes