rodloboz

rodloboz

Lotus - Lightweight, SQL query runner and storage for Phoenix apps

I’ve started working on a new library to run SQL queries and do basic business intelligence.

Think “Blazer for Elixir.”

Currently it features a SQL explorer + saved queries + schema browser — mounted right inside your Phoenix app. Supports both Posgresql and SQLite (multiple data source repos).

It can be used as standalone or with the web UI (separate repos):

https://github.com/typhoonworks/lotus

https://github.com/typhoonworks/lotus_web

First Post!

dimitarvp

dimitarvp

I think I get what is this about and I love the idea but a few screenshots and a video would be great.

Most Liked

dimitarvp

dimitarvp

:scream:

In the age of the LLMs this expression gives me PTSD. :grin:

Thanks for adding the screenshot. Would love seeing a video later if you ping this thread in the future.

10
Post #3
rodloboz

rodloboz

Almost forgot a big one: You can now export results to CSV too :tada:

rodloboz

rodloboz

Lotus 0.11.0 & LotusWeb 0.10.1 - Dashboards are here!

Excited to share the latest Lotus release: Dashboards - combine multiple queries into interactive, shareable views.

Dashboard Features:

  • 12-column grid layout - Arrange cards (queries, text, headings, links)
  • Public sharing - Generate secure tokens to share dashboards with external stakeholders (no login required)
  • Parallel execution - All query cards run concurrently with configurable timeouts

Automatic Type Casting System:

This release also introduces intelligent type casting for query variables. Lotus now automatically detects column types from your database schema and casts variable values accordingly:

  • PostgreSQL enums with pass-through handling
  • Composite types with JSON input support
  • Time values with ISO8601 parsing
  • Graceful fallback when schema info is unavailable

The system uses a new Lotus.Storage.TypeHandler behaviour, so you can implement custom handlers for your own database types.

Try the demo: Lotus Dashboard

Upgrade with:
{:lotus, “~> 0.11.0”},
{:lotus_web, “~> 0.10.0”}

Feedback and questions welcome!

Last Post!

rodloboz

rodloboz

Hey everyone! Really excited about this one! Our latest versions of Lotus and Lotus Web make up the biggest Lotus release yet.

AI Assistant

We added a bunch of new AI capabilities on top of the multi-turn conversations from the previous release:

  • Explain query / Explain fragment — select a piece of SQL you don’t understand and the AI breaks it down in plain English. Really useful when you’re looking at someone else’s query or a complex JOIN.
  • Optimize query — runs EXPLAIN under the hood and gives you suggestions like missing indexes, query rewrites, etc.
  • Variable-aware — the AI now understands the {{variable}} and [[optional clause]] syntax, so it can generate parameterized queries with the right variable types and input widgets out of the box.

On the provider side, we now support way more LLMs — OpenAI, Anthropic, Google, Groq, Mistral, and anything else ReqLLM supports. BYOK as always.

16 chart types

We expanded the visualization options significantly: bar, horizontal bar, line, area, combo (dual-axis), scatter, bubble, histogram, heatmap, pie, donut, funnel, waterfall, KPI card, trend, gauge, progress bar,
and sparkline. The picker is now organized by category (Charts, Distribution, Part of Whole, Single Value) which makes it easier to find what you need.

Interactive results

Query results are no longer just a static table:

  • Right-click any cell to quick-filter results (equals, not equals, greater than, LIKE, IS NULL, etc.)
  • Right-click column headers to sort ascending/descending
  • Hover on a column header to see statistics — min, max, avg, median, distinct count, and a histogram
  • Active filters and sorts show as dismissible chips above the results

These are applied as CTEs on top of your query, so the original SQL stays untouched.

Dashboard filters

Dashboards now support interactive filter widgets — dropdowns, date pickers, text inputs, date ranges. You map them to query variables per card, and they reflect in URL query parameters so filtered views are bookmarkable and shareable. Works on both the editor and public dashboards.

We also redesigned the website to better showcase all the new features — check it out at lotus.typhoon.works with demo videos of the main capabilities.

And we now have a Discord if you want to chat, ask questions, or share what you’re building: discord.gg/qnvcdjvw

We’ve been getting issues and PRs from people using Lotus in production and it’s been incredibly motivating. We’d love more of that — whether it’s bug reports, feature ideas, or contributions. Come help us shape where this goes.

https://github.com/typhoonworks/lotus

https://github.com/typhoonworks/lotus_web

Where Next?

Popular in Announcing Top

bryanjos
Hi, I just published version 0.23.0 of Elixirscript. https://github.com/bryanjos/elixirscript/blob/master/CHANGELOG.md Most of the chan...
New
kelvinst
Hey everyone! Well, we made this lib a while ago and now we decided to finally go out and public with it! It’s a tool for creating and m...
New
treble37
Just looking for a little feedback on a tiny helper library I built - Sometimes I find the need to convert maps with atom keys to maps w...
New
msaraiva
Surface is an experimental library built on top of Phoenix LiveView and its new LiveComponent API that aims to provide a more declarative...
564 44265 214
New
mathieuprog
Hello :waving_hand: Allow me to introduce you to Tz, an alternative time zone database support to Tzdata. Why another library? First a...
New
zoltanszogyenyi
Hey everyone :waving_hand: Excited to join this forum - I am one of the founders and current project maintainers of a popular and open-s...
New
scohen
Lexical Lexical is a next-generation language server for the Elixir programming language. Features Context aware code completion As-you...
New

Other popular topics Top

minhajuddin
I have seen a lot of code which picks the first element from a list using Enum.at(0) instead of List.first. Is there a reason why people ...
New
vonH
In asking this question I am more interested about the expressiveness of the language itself and less concerned about the availability of...
New
hariharasudhan94
I would like to know what is the best IDE for elixir development?
New
dogweather
I wrote this comment on r/haskell, and it’s not popular there. :wink: But I think I’m on to something… Haskell reminds me of Java, and e...
New
jason.o
In the code below, if the create action is not set to accept “extra_key” as an input, it errors out with a message shown above. Is there ...
New
AstonJ
Posting this to see if we can make things easier for people to get into Neovim. If you use Neovim and have a favourite distro please let ...
New

We're in Beta

About us Mission Statement