6 comments

[ 9.6 ms ] story [ 88.1 ms ] thread
Hi all, I'm the author of SQL Notebook. This open source app provides a Jupyter-style notebook interface atop a local SQLite database. The SQLite engine is extended to support procedural programming (inspired by Microsoft's T-SQL) and a library of additional import, export, and analysis commands. Unlike Excel, the default import settings in SQL Notebook will not butcher your CSV files.

I wrote this to help me wrap my head around new external data sources at work before writing production ETL processes for them. I can use a throwaway notebook to quickly answer questions about the data and test out how it will integrate with other tables in our database.

In future versions I plan to support additional file formats, add a command line interface for unattended script execution, and flesh out the standard library. If any of this sounds interesting, please give SQL Notebook a try! Thanks!

This looks pretty slick.

Can you tell us about the technology stack behind it?

Thanks! SQL Notebook uses .NET 6 and a custom integration with SQLite. SQLite offers a few extension points, mainly virtual tables and custom functions, and SQL Notebook takes advantage of them to provide its added functionality.
Very impressed with this. Looks like a lot of work went into it. How long did it take you to build?

Curious too about the UI -- with .NET 6 are you using Winforms, WPF or something else?

It probably represents 8-10 months of infrequent nights and weekends. I originally wrote a proof of concept in 2016 and finally picked it back up and polished it for release a couple months ago. The .NET ecosystem is in much better shape now than it was in 2016. This is all WinForms; Microsoft has done a good job of bringing support for WinForms into the latest platform. Supporting high-DPI was unpleasant but it is possible in WinForms.
You were unlucky with the Show HN post in that it didn't generate more interest. Don't let that dissuade you -- there's so much luck in what generates interest at a particular time. It really is an exceptionally useful app, one that I would have had great use for at different times over the years.