The WEBCode.run journey: the last 6 months
BTW, Building a SMART FRAME EP04 is out, we set up streaming SQL analytics in the browser using Firebase => DuckDB. That turned out to be a great combination enabling realtime SQL analytics without setting up a server.
Read more on the notebook (https://observablehq.com/@tomlarkworthy/firebase-to-duckdb) Next episode is in 2 weeks and will expand on orchestrating offline batch processing for our farm.
The WEBCode.run journey: the last 6 months
WEBCode is a serverless compute environment that's a pleasure to develop with: instantaneous code changes, zero deploys, production debugging, non-linear code execution, and one-click forking
We are past the halfway mark of 2022! Let's have a recap of the progress so far!
🚀 Product Hunt Launch
In January I decided to try and commercialize WEBCode with a product hunt launch. It was not a home run but it was also not an embarrassing failure either. Your support counts, I need every upvote I can get on every platform if I hope to make an impact outside of the Observable ecosystem, which will hopefully benefit all of us.
💰 Customers!
The product hunt launch coincided with a paid plan for WEBCode.run, I am happy to report we have a few paid customers and the biggest benefit to paid members is the support I can provide on notebook productionization topics such as notebook health monitoring and backups.
My original hypothesis that customers would want private source code endpoints doesn't seem to be what is motivating PRO users (so far).
🤓 Public Live coding
The big feature of WEBCode over other serverless environments is that it fully supports Observable's reactive programming model, enabling instant code changes and attaching debuggers when livecoding. However, it's been a challenge communicating this to potential users, requiring a fair amount of setup for those who are not existing Observable users.
So we have simplified setup with a new feature: public livecoding. This feature lets a creator permit others to livecode their endpoints. This is primarily for demo purposes, and the first education notebook to fully embrace this is livecode a server in your browser. That notebook is full of tips on how to get the most out of livecoding, such as how to unroll question processing across dataflow cells using a flowQueue and how to get an client's iframe to instantly refresh on a serverside code change.
💾 Firebase Compatible Database Server
WEBCode's original motivation was to build an inside-out Cloud alternative. Make a compute environment that only ran externally auditable software by design, and then implement a platform on top in such a way so that you could always self-host and customize any part of it. WEBCode is just the compute portion of that vision though, we also need state storage, like a database.
Firebase has always seemed a good fit for Observable/WEBCode development, however, in my experience, it's been a hard sell in Europe with GDPR compliance. So I decided to create an Open Source Wire-Compatible Firebase server built using WEBCode so we could continue using Firebase but anybody could self-host their data.
As building a database server is a complex process, I have broken the process into small chunks which can be consumed individually.
I presented the notebook containing the tools for reverse-engineering the Firebase Realtime Database at the conference "Have You Tried Rubbing a Database On It?". In the most recent notebook I explain how to implement a causally consistent backend suitable for a realtime database in Redis. I was waiting for public livecoding to be released for the next stage, but that will be combining the Redis backend with the first wire-compatible prototype database server to build a basic but functionally correct Open Source Firebase-compatible server.
I am very excited about this work! You will be able to one-click fork a whole Database system and you will be able to just use the normal Firebase clients!
WEBCode Dockerhub build
Long term I want anybody to be able to run their own WEBCode runtime. Baby steps have been taken, the docker image is online https://hub.docker.com/r/tlarkworthy/webcode but it has some hard dependencies on a private Firebase project so it is not useful yet. One day I hope WEBCode's own state will be self-hosted by itself.
🎥 Video & notebook series: Building a SMART FARM
I am collaborating with Blues Wireless and agropatterns on a series about building a realtime IoT monitoring stack on Observablehq for the AgTech industry. So far this series has been throwing off great examples of how to achieve a diverse range of business motivated tasks. I am quite proud of the content and the problem we are solving: reducing waste and emissions in the agriculture industry.
One of the highlights for me was serializing an Observable plot so we could send a dashboard over WhatsApp. I had never tried doing something like this before and we achieved everything in under an hour. Here is a link to the whole series.
🙏 I need your support
I quit my job 1.5 years ago to work on Observablehq fulltime. I believe it to be a better way of building software. Combining dataviz and programming is the future. I have two children and a wife. I want WEBCode to be a success so I can stick around, but it can't happen unless the word is spread outside of Observable.
Please tell anyone who is frustrated with serverless development, API integration, build tooling, production observability, or low-code dashboard tooling that we have a better way and put them in touch with me tom@webcode.run. And if you hit bugs or snags, please share them with me so I can improve the product.
Your friendly Cloud expert and WEBCode founder, Tom Larkworthy
