Vitesy's Serverless Architecture

Exploring Vitesy's Serverless IoT Architecture

by on

Hi, I'm Marco 👋

I'm Chief Product and Technology Officer at a growth-stage company in Italy where I lead both product and engineering teams through big wins, tough failures, and all the dynamic moments in between.

On the other side I'm a solopreneur, or better say, an indie hacker: I design, build and grow personal projects.

I started this journal to capture everything I've learned, and continue to learn, about designing, building, delivering, and growing digital products.

If you want to follow me through this journey:

For the past four-plus years, I've served as the Chief Technology Officer at Vitesy, an Italian startup founded in 2016 with a mission to eliminate air pollution and safeguard our health.

During this time, we've developed three products—Clairy, Natede, and Eteria—that combine nature, technology, and design to analyze and purify the air in homes and offices.

These products utilize phytoremediation and photocatalysis to remove volatile organic compounds (VOCs), viruses, odors, and bacteria. Each is equipped with sensors that monitor temperature, humidity, VOCs, CO2, and fine particulate matter (PM2.5), and uses WiFi to send this data to our server so that customers can monitor air quality and control their devices remotely.

Architecture

Like many startups, we began with limited funds and a small team.

Technically speaking, this phase is the most critical—it’s crucial to establish a solid but flexible foundations that allow the startup to quickly adapt to market demands.

Our time and focus were solely on product development and growth, not on configuring and maintaining infrastructure.

That's why we adopted a no-ops, fully-serverless approach even before "serverless" became a buzzword in tech circles.

Cloud Provider

Choosing the right cloud solution involves balancing technology, costs, security, future scalability, and service quality. For us, the challenge was to support a scalable fleet of products at a cost feasible for an early startup.

After evaluating several cloud providers, we selected Amazon Web Services for its modernity, cost-effectiveness, and innovative edge.

Internet of Things

Our products feature air monitoring and purification capabilities, necessitating functionalities like data storage from sensors, real-time readings, and device operation controls (on/off, mode selection, etc.).

AWS IoT emerged as a comprehensive solution, supporting vast numbers of devices and data exchanges through the widely-used MQTT protocol, all while remaining cost-effective.

Setup

After extensive research and testing different services, we defined our architecture with AWS IoT for data acquisition and device management, DynamoDB for persistent data storage, AWS Lambda for data processing, API Gateway for data access, AWS Cognito for user authentication, and Netlify to host our e-commerce platform.

Amazon Web Services

The diagram below outlines our cloud architecture.

  1. Our devices send sensor data to AWS IoT via MQTT topics.
  2. IoT rules process these data—storing them in DynamoDB, notifying users when thresholds are exceeded, etc.
  3. API Gateway then makes these processes accessible through REST APIs, authenticated by AWS Cognito.

This architecture has proven to be cost-effective, scalable, and lean, requiring minimal resources for maintenance and allowing our team to focus on developing new value.

Web

Our web platforms, including our e-commerce and B2B dashboard, are developed with Vue.js, combined with Nuxt and Netlify, allowing us to create a static version of the application hosted on Netlify's CDN.

This setup has enhanced our platform's performance tenfold and significantly reduced costs.

Conclusion

By delegating operational responsibilities to Amazon Web Services, we've gained in functionality and elasticity, focusing our energies on product development, which also reduced costs and development times, thereby accelerating time to market.

Opting for a no-ops, fully-serverless route has undoubtedly been one of our best decisions.

Disclaimer. Each project has unique requirements, and our solutions may not suit every scenario. For products that require frequent data transmission to the cloud, costs can escalate significantly. In such cases, consider bespoke or open-source IoT solutions.