Technicalities
Intro
With Midwink, we had to leverage a handful of third-party packages, tools and custom solutions.
In this article we will talk about the different technologies we used in building this application.
Our Tech Stack
-
Laravel
The main framework we used for building this website was Laravel (version 12), which is a full stack framework for PHP, the most used programming language in the web. Laravel gives you all the tools you need to ship products fast while mainting code quality and readability.
It also has a huge community with vast support and a rapid growth. -
DeepInfra
Midwink leverages DeepInfra as a scalable inference backend providing OpenAI-compatible APIs.
This allows seamless integration with various AI models (for text generation, summarization and classification, ...etc) through standard OpenAI client libraries without maintaining our own infrastructure.
DeepInfra offers on-demand inference with high uptime and transparent pricing, making it ideal for production-level workloads where cost efficiency matters. -
PrismPHP
We utilize PrismPHP for DeepInfra API integration, allowing for straight-forward interfacing with DeepInfra's OpenAI-compatible API. -
ChromaDB
ChromaDB serves as our vector database for storing and querying text embeddings.
It powers lightning-fast semantic search and retrieval of document metadata associated with vectors. Our system periodically syncs embeddings via background workers, ensuring both minimal latency during retrieval operations, as well as paving the way to smart periodic email handling jobs. -
Gmail API Client Library for PHP
This library enables Midwink's gmail integration and automation layers.
It enables OAuth2 authentication, read/write access to messages, labels, and threads, as well as safe execution of operations such as snoozing, auto-sending, auto-replies, smart workflows and much more. The API integration respects user permissions and scopes while handling message parsing, MIME decoding, and rate-limit handling internally through periodic non-overlapping jobs. -
React was used for the interactive and dynamic parts of the front end. It enables component-based development, improving reusability and user experience. By pairing React with Laravel’s API layer, we achieved a seamless bridge between backend logic and real-time UI rendering.
-
TailwindCSS and ShadCN handled the design system. TailwindCSS provided a highly customizable utility-first styling approach, ensuring consistency and speed in prototyping, while ShadCN added prebuilt accessible components with modern aesthetics, helping maintain a cohesive design language across the site.