What is the technical stack that Ideanote is built on?

We use Google Cloud Platform as our infrastructure provider. The application layer is a microservice architecture based on Kubernetes, with flexible autoscaling based on load. We serve our static files via content delivery networks, and store user-provided attachments in Google Cloud Storage. Our DBMS is PostgreSQL, and we also use Redis for communication across pods, as well as for simple caching.

We use TypeScript as the programming language of choice for both our backend- and frontend services, and they each share common logic and helpers and live within a monorepository. On our backend services, including our API, we've built a custom server architecture supporting both an internal GraphQL-based API, as well as a REST-API for our public API. We rely heavily on the principles of Inversion of Control, and have our backend services logically split into subsystems around their API, Business Logic, Store layer, and utility services.

On the frontend, we use very modern web technologies and use Custom Elements and Shadow DOM as our encapsulation model. In terms of how our services integrate with external services, we can provide a diagram that illustrates these systems from a high level for Enterprise customers.