<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: Gerard Clos</title>
    <description>The latest articles on Forem by Gerard Clos (@gerardlatitude).</description>
    <link>https://forem.com/gerardlatitude</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1418728%2F0e3f5a01-900f-4f11-a5d5-f7fa3cb77628.jpeg</url>
      <title>Forem: Gerard Clos</title>
      <link>https://forem.com/gerardlatitude</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/gerardlatitude"/>
    <language>en</language>
    <item>
      <title>6 Best Embedded Databases for 2024 📊</title>
      <dc:creator>Gerard Clos</dc:creator>
      <pubDate>Thu, 02 May 2024 13:15:34 +0000</pubDate>
      <link>https://forem.com/latitude/6-best-embedded-databases-for-2024-1enk</link>
      <guid>https://forem.com/latitude/6-best-embedded-databases-for-2024-1enk</guid>
      <description>&lt;p&gt;Embedded databases provide many benefits compared to traditional databases. They are simpler to set up and manage, require fewer resources, and deliver superior performance for applications that demand quick data processing and low latency.&lt;/p&gt;

&lt;p&gt;As a counterpoint, it is often argued that embedded databases don’t scale but – for most folks out there – this is simply &lt;a href="https://twitter.com/simonw/status/1352250056531841025"&gt;not&lt;/a&gt; &lt;a href="https://blog.twitter.com/engineering/en_us/topics/infrastructure/2021/adopting-rocksdb-within-manhattan"&gt;true&lt;/a&gt; &lt;a href="https://twitter.com/__AlexMonahan__/status/1720507529204236677"&gt;anymore&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;In this article, I'll highlight the top embedded database options for various scenarios, helping you identify the ideal database for your specific requirements.&lt;/p&gt;

&lt;p&gt;Ready to dive in? Let's get started.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhs8w3x3f27igyi51yhn8.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhs8w3x3f27igyi51yhn8.gif" alt="Image description" width="480" height="270"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  1. SQLite
&lt;/h2&gt;

&lt;p&gt;SQLite is the de-facto-embedded relational database. So much so that it’s become the most used database in the world. It runs as a simple library within an application, providing a robust solution without requiring a separate process. SQLite supports full SQL syntax and is incredibly compact, making it an ideal choice for applications across various platforms including mobile devices, desktop applications, and large-scale websites and web applications.&lt;/p&gt;

&lt;p&gt;Its simplicity and the ability to operate without configuration while maintaining a small footprint make SQLite a popular choice among developers for applications where database requirements are modest but demands for reliability and efficiency are high.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.sqlite.org/"&gt;SQLite homepage&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  2. DuckDB
&lt;/h2&gt;

&lt;p&gt;DuckDB, an in-process SQL OLAP database, is designed specifically for on-the-fly data analysis and is intended to be easy to integrate into other projects. It operates directly on blobs of data and excels in executing complex analytical SQL queries efficiently. DuckDB's design focuses on vectorized query execution, making it particularly well-suited for analytic workloads where performance and speed are critical.&lt;/p&gt;

&lt;p&gt;Its ability to run embedded within other applications without any external dependencies makes it a powerful tool for developers looking to embed data analysis capabilities directly into their applications.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://duckdb.org/"&gt;DuckDB homepage&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Support us ⭐
&lt;/h2&gt;

&lt;p&gt;This is not an embedded database, but still relevant if you need to do embedded analytics. We know that building it from scratch can be difficult. That is why we created Latitude. We're developing it as an open-source project. If you’d like to try, here's a &lt;a href="https://github.com/latitude-dev/latitude?tab=readme-ov-file#-quick-start"&gt;quick start guide available on our repository&lt;/a&gt;. If you like it, consider showing your support by giving us a star, it’d mean a lot! ⭐&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/latitude-dev/latitude"&gt;https://github.com/latitude-dev/latitude&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1sa4in1ywkdj1427t0a3.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1sa4in1ywkdj1427t0a3.gif" alt="Image description" width="480" height="360"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  3. RocksDB
&lt;/h2&gt;

&lt;p&gt;RocksDB, developed by Facebook, is a key-value store optimized for fast reads and writes at a high volume, suitable for applications that demand efficient data persistence.&lt;/p&gt;

&lt;p&gt;RocksDB's use of a log-structured merge-tree (LSM tree) is a key aspect of its design, allowing it to achieve high write throughput while maintaining the ability to support reads. This makes it a valuable tool for applications that need to handle large streams of incoming data with minimal latency.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://rocksdb.org/"&gt;RocksDB homepage&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  4. Chroma
&lt;/h2&gt;

&lt;p&gt;Chroma is a vector database designed to handle high-throughput and multi-dimensional data with ease. It become widely popular with the advent of genAI, which introduced the need to use vector stores in order to provide AI agents with long term “memory”. It’s main use case is to implement &lt;a href="https://aws.amazon.com/what-is/retrieval-augmented-generation/"&gt;RAG&lt;/a&gt; for AI agents. &lt;/p&gt;

&lt;p&gt;Chroma utilizes a unique storage architecture that optimizes data retrieval processes, significantly reducing query times and enhancing overall application performance. Its ability to efficiently manage large-scale data makes it an excellent choice for developers working on enterprise-level solutions that require robust, scalable, and highly available data management capabilities.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.trychroma.com/"&gt;Chroma homepage&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  5. Kùzu
&lt;/h2&gt;

&lt;p&gt;Kùzu is an embedded database with a novel &amp;amp; fast query processor designed for high scalability on a single machine (billions of nodes). Kùzu supports Property Graph + RDF data models &amp;amp; interop with RDBMS tools.&lt;/p&gt;

&lt;p&gt;On top of that, Kuzu offers offline capabilities and synchronization with cloud services and is built to support SQL and NoSQL data models, making it highly adaptable to various data structures and application requirements.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://kuzudb.com/"&gt;Kùzu homepage&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  6. Faiss
&lt;/h2&gt;

&lt;p&gt;Faiss is the other big vector database in the AI space, currently. Developed by Facebook AI Research (FAIR), Faiss is designed to handle billions of vectors in high-dimensional spaces with astonishing speed and accuracy. It is particularly useful in applications that involve large-scale machine learning computations, such as recommendation systems, image retrieval, and clustering large datasets. &lt;/p&gt;

&lt;p&gt;Faiss can be used standalone or in conjunction with other databases as a backend for handling complex vectorized data. Its robust performance metrics make Faiss a preferred choice among AI researchers and developers working on sophisticated AI-driven applications.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/facebookresearch/faiss"&gt;Faiss GitHub repo&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;This overview should help you choose the most appropriate embedded database for your specific needs, enabling your applications to perform efficiently while maintaining simplicity in management and deployment. &lt;/p&gt;

&lt;p&gt;Each database is suited to specific types of tasks and workflows, ensuring there's a tool for every requirement.&lt;/p&gt;

&lt;p&gt;I hope this was useful, let me know if I’m missing something in the comments.&lt;/p&gt;




&lt;p&gt;If you liked the article, you can support us in doing more stuff like this by giving us a star on GitHub! ⭐&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/latitude-dev/latitude"&gt;https://github.com/latitude-dev/latitude&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frc68c3cxg96yk3a1enaf.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frc68c3cxg96yk3a1enaf.gif" alt="Image description" width="480" height="270"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>database</category>
      <category>analytics</category>
      <category>programming</category>
      <category>data</category>
    </item>
    <item>
      <title>Latitude: The missing analytics layer between your database and your users 🤝🏽</title>
      <dc:creator>Gerard Clos</dc:creator>
      <pubDate>Thu, 25 Apr 2024 12:44:35 +0000</pubDate>
      <link>https://forem.com/latitude/latitude-the-missing-analytics-layer-between-your-database-and-your-users-pp1</link>
      <guid>https://forem.com/latitude/latitude-the-missing-analytics-layer-between-your-database-and-your-users-pp1</guid>
      <description>&lt;h2&gt;
  
  
  What is Latitude?
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://github.com/latitude-dev/latitude" rel="noopener noreferrer"&gt;Latitude&lt;/a&gt; is the open-source framework for embedded analytics. &lt;/p&gt;

&lt;p&gt;Create API endpoints on top of your database or warehouse using just SQL, and embed interactive visualizations natively in your favorite frontend framework or through an iframe.&lt;/p&gt;

&lt;h2&gt;
  
  
  Introducing Latitude Deploy 🚀
&lt;/h2&gt;

&lt;p&gt;Today we’re introducing Latitude Deploy so you can push your embedded analytics to production with a single command. Zero-config infrastructure that's always performant and scales automatically.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7cxtm8dsabxoitvl82l2.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7cxtm8dsabxoitvl82l2.gif" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Support us ⭐
&lt;/h2&gt;

&lt;p&gt;We know that building embedded analytics from scratch can be difficult. That is why we created Latitude. We're developing it as an open-source project. If you're keen to give it a try, here's a &lt;a href="https://github.com/latitude-dev/latitude?tab=readme-ov-file#-quick-start" rel="noopener noreferrer"&gt;quick start guide available on our repository&lt;/a&gt;. If you like what you see, consider showing your support by giving us a star ⭐&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/latitude-dev/latitude" rel="noopener noreferrer"&gt;https://github.com/latitude-dev/latitude&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;Latitude it's fast to get started, easy to maintain, and scales with your data. &lt;/p&gt;

&lt;p&gt;Here are our main features:&lt;/p&gt;

&lt;h3&gt;
  
  
  SQL-to-API automatically
&lt;/h3&gt;

&lt;p&gt;Write SQL queries that automatically get exposed as API endpoints so you can easily integrate them with your frontend applications.&lt;/p&gt;

&lt;h3&gt;
  
  
  Parameterized SQL
&lt;/h3&gt;

&lt;p&gt;Manage permissions and scope variables in your code through parameters in your queries. Expose these SQL parameters as HTTP query parameters.&lt;/p&gt;

&lt;h3&gt;
  
  
  Built-in cache layer
&lt;/h3&gt;

&lt;p&gt;Out-of-the-box caching ensures load times stay snappy. Leverage our lightning-fast query engine to deliver an amazing embedded analytics experience.&lt;/p&gt;

&lt;h3&gt;
  
  
  Modular queries
&lt;/h3&gt;

&lt;p&gt;Compose modular SQL queries for a better analytics organization and to reuse parts of your code. Easy to maintain and scale.&lt;/p&gt;

&lt;h3&gt;
  
  
  Works on top of your data
&lt;/h3&gt;

&lt;p&gt;Bring data from your database or warehouse through a simple configuration file. Support for all major Databases as well as local CSV files.&lt;/p&gt;

&lt;h3&gt;
  
  
  Native frontend components
&lt;/h3&gt;

&lt;p&gt;Use our native React hook to query data from your Latitude project to your React app, and display it with our native React components, or do whatever you want with it. Support for Svelte and Vue coming soon!&lt;/p&gt;

&lt;h3&gt;
  
  
  Layout engine
&lt;/h3&gt;

&lt;p&gt;Build standalone state-of-the-art frontend applications using our layout engine. It’s Svelte-based, supports all npm packages, and can be extended to your needs with Typescript.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Embed safely&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Cache encrypted at rest, SSL-ready, encrypted SQL parameters, and parameterized queries to protect against SQL injection attacks.&lt;/p&gt;




&lt;p&gt;We'd love to hear your thoughts and are on the lookout for contributors!&lt;/p&gt;

&lt;p&gt;If you like it, it’d be great if you could give us a star so we can keep working on this!  ⭐&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/latitude-dev/latitude" rel="noopener noreferrer"&gt;https://github.com/latitude-dev/latitude&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frdvqdnhuuktd699y4i8n.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frdvqdnhuuktd699y4i8n.gif" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>showdev</category>
      <category>opensource</category>
    </item>
    <item>
      <title>After 10 years of building B2B SaaS, going open-source has been a breath of fresh air</title>
      <dc:creator>Gerard Clos</dc:creator>
      <pubDate>Thu, 18 Apr 2024 13:15:50 +0000</pubDate>
      <link>https://forem.com/latitude/after-10-years-of-building-b2b-saas-going-open-source-has-been-a-breath-of-fresh-air-1h09</link>
      <guid>https://forem.com/latitude/after-10-years-of-building-b2b-saas-going-open-source-has-been-a-breath-of-fresh-air-1h09</guid>
      <description>&lt;p&gt;My name is Gerard and I’m the technical founder of &lt;a href="https://twitter.com/heycesr/status/1780880673319899416"&gt;Latitude&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;I’ve spent the last 10 years of my career building B2B SaaS behind doors. And recently I’ve been working on rebooting Latitude as an open-source solution with my co-founder César.&lt;/p&gt;

&lt;p&gt;What I love about building this way is that I have more in common with our dev audience, I’m getting immediate feedback, people are offering to contribute (!), and I can discuss tech details directly with customers.&lt;/p&gt;

&lt;p&gt;It feels like you are building the product together with them, rather than for them.&lt;/p&gt;

&lt;p&gt;Latitude is a free open-source framework for embedded analytics. Basically, you can:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Create API endpoints on top of your database/warehouse using just SQL.&lt;/li&gt;
&lt;li&gt;Embed interactive visualizations natively in your favorite frontend framework or through an iframe.&lt;/li&gt;
&lt;li&gt;Deploy with a single command.&lt;/li&gt;
&lt;li&gt;Go from 0 to embedded analytics in minutes.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Today we are launching on Product Hunt!&lt;/p&gt;

&lt;p&gt;👉 &lt;a href="https://c.vialoops.com/CL0/https:%2F%2Ftwitter.com%2Fheycesr%2Fstatus%2F1780880673319899416/1/0100018ef0766ffb-d64cf2f0-cb02-4df2-bf65-d43fccf4ea44-000000/mvIN-CN2cQCbxjiUj7419KM7l2rq6f_LE_FiG7eRb0s=349"&gt;https://twitter.com/heycesr/status/1780880673319899416&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you like it, I would greatly appreciate an upvote from y'all 🙏&lt;/p&gt;

&lt;p&gt;Also, I'd love to hear your thoughts and I’m also looking for contributors!&lt;/p&gt;

</description>
      <category>opensource</category>
      <category>career</category>
      <category>webdev</category>
      <category>programming</category>
    </item>
    <item>
      <title>My approach to building an open-source data tool: Python vs JavaScript</title>
      <dc:creator>Gerard Clos</dc:creator>
      <pubDate>Thu, 11 Apr 2024 10:20:12 +0000</pubDate>
      <link>https://forem.com/latitude/my-approach-to-building-an-open-source-data-tool-python-vs-javascript-5bo5</link>
      <guid>https://forem.com/latitude/my-approach-to-building-an-open-source-data-tool-python-vs-javascript-5bo5</guid>
      <description>&lt;p&gt;When we rebooted &lt;a href="https://github.com/latitude-dev/latitude"&gt;Latitude&lt;/a&gt; I strongly pushed the team to use Python as our main language. &lt;/p&gt;

&lt;p&gt;It was an obvious choice: It has amazing community support, all DBs have first-party clients for it, it has the largest ecosystem of data-related libs, it supports all large data formats, it even has a freaking official spec for db connectors.&lt;/p&gt;

&lt;p&gt;I had suffered building a data product not with Python (Ruby) for the last 2 years, and didn't want to go through that again.&lt;/p&gt;

&lt;p&gt;However, Latitude is also a full stack framework.&lt;/p&gt;

&lt;p&gt;Just a quick background about us. Latitude is an open-source embedded analytics framework designed with developers in mind. It integrates seamlessly with your database or data warehouse, leveraging SQL and straightforward frontend components.&lt;/p&gt;

&lt;p&gt;I’d be very happy if you could give us a star and give me feedback! &lt;a href="https://github.com/latitude-dev/latitude"&gt;https://github.com/latitude-dev/latitude&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;We wanted to allow developers and data engineers to not only build dashboards in the web, but to build state-of-the-art, modern applications that could easily be extended with all the tools and primitives the current web offers.&lt;/p&gt;

&lt;p&gt;This strongly pushed us to base our approach on existing web frameworks, and since we had chosen Svelte for the templating syntax, Sveltekit became the obvious chose.&lt;/p&gt;

&lt;p&gt;Moreover, it is not like Javascript has bad support for data-centric work; It has in fact the second largest ecosystem of data libraries after Python. It has first-party clients for all major DBs.&lt;/p&gt;

&lt;p&gt;It has excellent support for all major large data formats. It even has good support for dataframes via the excellent Polars. Combine it with an experience to build frontend experiences that's leaps and bounds ahead of Python, and you have a strong case for using Javascript.&lt;/p&gt;

&lt;p&gt;So, there you have it. Time will tell if we made the right choice, but so far I have little regrets on the path chosen.&lt;/p&gt;

</description>
      <category>opensource</category>
      <category>python</category>
      <category>javascript</category>
      <category>svelte</category>
    </item>
  </channel>
</rss>
