# Datafication > Datafication LLC is a small, founder-led software company in Pennsylvania, USA, started > in 2022. It makes software that makes life easier: Town Monitor (https://monitor.town), > a live page for every US town that gathers weather and next-hour rain, river levels, > alerts, roads, air quality and posts from local organizations out of public sources and > credits each one; and tools for .NET developers: the Datafication SDK (DataBlock, a > column-oriented in-memory analytical engine; VelocityDataBlock, disk-backed columnar > storage; connectors for CSV, Parquet, JSON, Excel, ADO.NET, the web, S3 and text; > commercial, free for small teams and qualifying open-source projects), Verso (notebooks > and an embeddable .NET execution engine, MIT licensed) and Motus (browser automation and > testing for .NET over CDP and WebDriver BiDi, with an MCP server, MIT licensed). Purpose: creative freedom, and making people's lives easier. Everything Datafication makes has a purpose, and it is finished when that purpose is fulfilled. Town Monitor went live in October 2026. Its public information is free to read; an optional Plus adds alerts at your own levels, more saved places and longer history. An iPhone app is in progress and is not on the App Store yet. The full text of every note is in one file at https://datafication.co/llms-full.txt. ## Pages - [Datafication](https://datafication.co/): The company home: software that makes life easier, from Town Monitor to the .NET developer tools. - [Town Monitor](https://datafication.co/townmonitor.html): A live page for every US town at monitor.town: weather and next-hour rain, river levels, alerts, roads, air quality and local posts, from public sources and credited. - [Developers](https://datafication.co/developers.html): The Datafication SDK, Verso and Motus on one page: what each is for, install commands, code samples and licenses. - [Company](https://datafication.co/company.html): Our purpose, story and timeline, the four principles every product has to pass, the founder, contact and brand marks. - [Privacy](https://datafication.co/privacy.html): What the site collects, what Google Analytics sees when you allow it, and how to change your choice. - [Notes](https://datafication.co/blog/index.html): Release notes with context, design decisions, how-to guides and essays about the Datafication SDK, Verso and Motus, written by the person who builds them. ## Products - [Town Monitor](https://monitor.town): everything happening in your town, right now, on one page, for every town in the United States. - [Datafication SDK on NuGet](https://www.nuget.org/profiles/DataficationSDK): every package the company publishes. - [Datafication SDK overview and samples](https://github.com/DataficationSDK/Datafication): component overview, documentation and samples. API reference at https://datafication.co/help/api/index.html. - [Verso](https://www.versonotebooks.com): interactive notebooks and an embeddable execution engine for .NET. Docs, a gallery, and llms.txt at https://www.versonotebooks.com/llms.txt. - [Motus](https://motustesting.com): browser automation and testing for .NET. Docs and llms.txt at https://motustesting.com/llms.txt. ## Notes Archive: https://datafication.co/blog/index.html. RSS: https://datafication.co/blog/feed.xml. - [Why I started Datafication](https://datafication.co/blog/2022/why-we-started-datafication.html) (2022-09-12, Company): I kept leaving .NET to answer questions about data my own C# code had written. Datafication is the company I started so I could stop. - [A DataFrame-shaped hole in .NET](https://datafication.co/blog/2023/a-dataframe-shaped-hole-in-dotnet.html) (2023-04-15, Datafication SDK): Why I am building a column-oriented analytical engine in C#, written the day the project got its name. - [What I mean by a data-driven world](https://datafication.co/blog/2024/what-we-mean-by-a-data-driven-world.html) (2024-05-20, Company): The phrase gets used for everything, including by me, so here is the version I can defend: fewer hops between a fact and a decision. - [Designing DFC, a columnar file format that also takes updates](https://datafication.co/blog/2025/designing-dfc.html) (2025-08-10, Datafication SDK): Why I am writing our own on-disk format instead of just writing Parquet, and what changes once a columnar file has to accept a delete. - [The Datafication SDK is on NuGet](https://datafication.co/blog/2026/the-datafication-sdk-is-on-nuget.html) (2026-01-09, Datafication SDK): Eight packages went up on nuget.org today at 1.0.1, and everything we use to move data around inside a .NET process is now installable. - [A REST layer that speaks DataBlock](https://datafication.co/blog/2026/a-rest-layer-that-speaks-datablock.html) (2026-01-14, Datafication SDK): Register a DataBlock under a name and Datafication.Server.Core serves it over HTTP, with one route that takes filters, computed columns, grouping, sorting and paging in a single JSON body. - [Load a CSV, clean it, group it, write Parquet](https://datafication.co/blog/2026/load-a-csv-clean-it-group-it-write-parquet.html) (2026-01-18, Datafication SDK): A .NET 8 console pipeline you can run in ten minutes, from a messy CSV of orders to a Parquet file of revenue by region, with a look at the data after every step. - [The same five questions in pandas, SQL, LINQ and DataBlock](https://datafication.co/blog/2026/the-same-five-questions-in-pandas-sql-linq-and-datablock.html) (2026-01-21, Datafication SDK): Filtering, grouped aggregation, joins, moving averages and pivots, written four ways. Most of what separates them is spelling. Two things are not. - [Seven connectors, one shape](https://datafication.co/blog/2026/seven-connectors-one-shape.html) (2026-01-24, Datafication SDK): CSV, JSON, Excel, Parquet, ADO.NET, S3 and web pages all come back as the same DataBlock through the same two methods, and with 1.0.9 all seven connector packages are on NuGet. - [246 years of weather in one .dfc file](https://datafication.co/blog/2026/a-century-of-weather-in-one-dfc-file.html) (2026-01-28, Datafication SDK): NOAA puts every daily observation in the Global Historical Climatology Network on a public S3 bucket, so I pulled one station out of it, 234,470 rows across 246 years, into a .dfc file and started asking it questions, with every command and the output it gave back. - [SDK 1.0.10: faster Velocity queries, and one API removed](https://datafication.co/blog/2026/what-1-0-10-changed-inside-the-velocity-query-path.html) (2026-02-01, Datafication SDK): 1.0.10 reworks the way VelocityDataBlock filters, sorts and groups, and it removes the lazy result API, so a chain that used to end in AsResult() ends in Execute() instead. - [When the same string ID meant two different things](https://datafication.co/blog/2026/when-the-same-string-id-meant-two-different-things.html) (2026-02-02, Datafication SDK): 1.0.11 fixes GroupBy and Pivot giving wrong answers on DFC files with more than one segment, where each segment numbered its strings from 1 and the reader looked every ID up in the first segment's table. - [Global broadband, one partition at a time](https://datafication.co/blog/2026/global-broadband-one-partition-at-a-time.html) (2026-02-10, Datafication SDK): I pointed a .NET console app at one Parquet object in Ookla's public S3 bucket, landed 3,551,267 measurement tiles in a .dfc file, and started asking it questions. - [Four rules, written down before our first open-source release](https://datafication.co/blog/2026/four-rules-before-our-first-open-source-release.html) (2026-02-16, Company): Later this week we publish our first open-source product. These are the four rules it has to pass, and everything we ship after it. - [Verso 1.0: the notebook, and the engine underneath it](https://datafication.co/blog/2026/verso-1-0-the-first-release.html) (2026-02-20, Verso): The first release of Verso: a headless .NET notebook engine, C#, F# and SQL kernels that share one variable store, a file format you can read in a diff, and ten interfaces every built-in already uses. - [Every Verso feature is an extension, and a Perl kernel proves it](https://datafication.co/blog/2026/every-feature-is-an-extension.html) (2026-03-14, Verso): Verso's C# kernel, dark theme and dashboard layout are extensions written on the same public interfaces your package would use. Today's release adds a Perl kernel sample, which is a cheaper way to test that claim than another manifesto. - [Motus 1.0: browser testing without the middleman](https://datafication.co/blog/2026/motus-1-0-direct-to-the-browser.html) (2026-03-29, Motus): Motus is a new MIT-licensed browser automation and testing framework for .NET, and your test talks to Chrome, Edge or Firefox directly: no Node.js sidecar in between and no driver binary to install. - [One variable store, eight languages, no hand-off](https://datafication.co/blog/2026/one-variable-store-eight-languages.html) (2026-04-01, Verso): Every kernel in a Verso notebook reads and writes the same variable store, so a value you set in C# is already there in Python, SQL and JavaScript. The interesting part is what happens to that value when it leaves the process. - [If a built-in needs private access, the interface isn't finished](https://datafication.co/blog/2026/every-built-in-is-a-plugin.html) (2026-04-07, Motus): Motus registers its own selector strategies, audit rules and hooks through the same IPluginContext you get, which is a constraint on us rather than a feature for you. - [Run the same notebook in CI that you run at your desk](https://datafication.co/blog/2026/notebooks-in-ci-with-parameters.html) (2026-04-08, Verso): Declare your inputs once, hand them in with --param, and let the exit code decide whether the build goes red. - [Accessibility and performance checks, in the test you already wrote](https://datafication.co/blog/2026/audits-in-the-box.html) (2026-04-10, Motus): Motus checks the page your test is already driving against nine WCAG rules and collects Core Web Vitals while the run happens, so both become ordinary assertions and ordinary CI gates instead of a second tool. - [Record a session, generate the page objects, then keep the selectors alive](https://datafication.co/blog/2026/record-generate-repair.html) (2026-04-21, Motus): Go from a live page to compiling C#, then let a CI job tell you which selectors broke and fix the ones it is sure about. - [Hand the browser to an agent: the Motus MCP server, end to end](https://datafication.co/blog/2026/hand-the-browser-to-an-agent.html) (2026-06-10, Motus): Register motus mcp with an MCP client, snapshot a page, act on the elements the snapshot names, and use the parts a browser-only server does not have: WCAG audits, Core Web Vitals, traces, and generated page objects. - [Verso 1.1: layouts you can ship, and a marketplace inside the notebook](https://datafication.co/blog/2026/verso-1-1-custom-layouts-and-a-marketplace.html) (2026-07-06, Verso): Verso 1.1.1 lets a package replace the notebook surface itself, puts a NuGet marketplace inside the Extensions panel, and ships three showcase layouts built on the same API you get. - [Put a notebook runtime inside your own .NET app](https://datafication.co/blog/2026/embedding-the-verso-engine.html) (2026-07-14, Verso): One package, a few lines of setup, and your own application gets multi-language execution, a shared variable store, an extension host, and a layout manager. - [Motus 1.0.15: attach to a browser you did not start](https://datafication.co/blog/2026/motus-1-0-15.html) (2026-07-29, Motus): Point Motus at a browser that is already running, treat a cross-origin frame like any other frame, split a suite across agents, and tell a flaky test from a broken one. - [Python cells that run the Python you already have](https://datafication.co/blog/2026/python-on-your-own-interpreter.html) (2026-08-03, Verso): Verso runs your Python cells in a separate process against the CPython already on your machine, which is what makes an interrupt work, a crash survivable, a restart real, and your virtual environment's packages simply there. - [Verso 1.2: live widgets, panels, and five languages](https://datafication.co/blog/2026/verso-1-2-live-widgets-panels-and-five-languages.html) (2026-08-08, Verso): A rendered widget keeps talking to the interpreter that drew it, a widget's value can become a shared variable any kernel reads, extensions can add panels beside the notebook, and the interface now speaks five languages. - [Swap the host in the URL and your notebook is a page](https://datafication.co/blog/2026/share-a-notebook-by-changing-the-host.html) (2026-08-14, Verso): Change github.com to www.versonotebooks.com/share/github in a notebook's address and the file reads as a page with its saved outputs, with nothing uploaded, nothing executed, and no account to create. - [Moving a Playwright for .NET suite to Motus](https://datafication.co/blog/2026/migrating-from-playwright-for-dotnet.html) (2026-08-18, Motus): Most of it is search and replace, so here are the steps in the order you would do them, the four places the APIs really differ, and the parts that do not come across at all. - [One slider at the top, and the rest of the notebook follows](https://datafication.co/blog/2026/a-notebook-that-reruns-itself.html) (2026-08-20, Verso): I built a weather notebook where one drag on a Python slider re-runs the two C# cells that depend on it, and nothing else. - [One suite, four shards, and everything it left on disk](https://datafication.co/blog/2026/a-suite-that-tells-you-what-happened.html) (2026-09-02, Motus): I built a full Motus suite against two public pages, gated it on accessibility and Core Web Vitals, recorded a trace, a HAR and a video, then split it across four agents and merged the results back into one report. - [One table, three languages, one variable](https://datafication.co/blog/2026/one-table-three-languages.html) (2026-09-04, Verso): I parse the Palmer Penguins CSV once in C#, group it in Python, aggregate it in SQL, and render it as a typed DataFrame table in PowerShell, all in one notebook with no export step anywhere in it. - [Five layouts, one notebook file, no host changes](https://datafication.co/blog/2026/five-layouts-one-notebook.html) (2026-09-05, Verso): A layout decides how a notebook is arranged and rendered, and it is an extension like any other: five samples on NuGet turn one file into a graph, a deck, a spreadsheet, a dashboard, and an image editor. ## Company - [GitHub organization](https://github.com/DataficationSDK): the open-source repositories. - Contact: support@datafication.co - Founder: Torrey Betts (https://github.com/TorreyBetts)