Combination of a spreadsheet visual interface with a language operating on actual cells and tables.
Like functions in Excel
without code duplication, like programming language without abstract logic.
Research project on a concept of a new programming language.
I was actively participating in product development, built an Integrated Development Environment for the language and an experimental platform for end-users to create web apps and publish them.
Planarly is a language
Drawing inspiration from programming concepts in tools like Matlab
and Numpy
, it is built around the table-as-data-structure and designed to be a superior alternative to Excel
.
Client had this idea for a long time and made it in as a backend core in C++
.
Documentation
Youtube channel with tutorials.
Planarly is a spreadsheet
Familiar table UI capable of intuitive functional programming
Performance was crucial because of several factors causing higher load
- 2d table space is unlimited – user freedom
html
is chosen instead of acanvas
– for rapid prototyping- backend is compiled from
C++
toWASM
module executed in the browser - offline capability
- multi-user collaboration is happening in the host browser – for serverless setup
Technologies used in frontend
React
andMaterial UI
Redux
and toolkit for state managementredux-saga
for side-effects managementprotobuf
for backend communicationwebsockets
for realtime server communicationwebRTC
for p2p connectivitywebpack
and latervite
build systemdexie
for local cache databaseweb workers
forWASM
module executionservice worker
for offline app capabilitieslinaria
for fast css-in-js solutionplaywright
andjest
for testingGithub Actions
forCI / CD
DigitalOcean
for deploymentElectron
to package for a desktop application
As a team lead I led the implementation of central server approach with the following stack
Go lang
for servicesKafka
as a message brokerFoundation DB
for backend core state persistenceMySQL
for user and cloud storage- every service in
docker
container for future scalability
Planarly is a platform
The first use case for the language was selected to be a web app builder. One sheet holds data acting as a database, another sheet executes the business logic and a third one enables styling, similar to Webflow
‘s styling panel. Click publish – and you have a fully functional web app.
Multiple iterations were tried to build a prototype.