←back to thread

19 points fdb75017 | 2 comments | | HN request time: 0.502s | source

Hello HN !

I'm Florian, and I would like to share with you a project I've been working on over the past few months: Hyper Workspace.

Before working in tech, I have been in the finance industry for more than 10 years. During this time, I've experienced using Excel+VBA and Python notebooks as main interfaces, but never felt completely satisfied. Interfacing potentially complex and nested objects that you need to consume in your applications is still a pain. Modern browsers can offer much more in terms of UI / UX, especially when coupled with JSON data representation, but they require to write and deploy specific code, use a rendering library... and I believe there is a better way: JSON deserves a fully horizontal framework, abstracting web semantics, and filling the gap between data, views and behavior.

To this end, I've been trying to shape Hyper Workspace so that it can provide no-code tools to build Documents':

   - Fields: strongly typed, deeply nested and potentially recursive, data structures (inspired by Typescript).

   - Views: drag n' drop configuration of documents' pages (ie sub-objects): layout, fields, widgets, actions, graphs.

   - Methods: visual configuration of your "business logic" using a Domain Specific Language, plugged at every layer of your data structure, with an "object-oriented programming" philosophy. Builtin "Modules" can be used to add more functionalities.
You can build "standalone" Documents (like spreadsheets) but also Collections where Records share the same Schema, like a NoSQL version of Airtable. Unstructured data (pdf, images, audio, video) are stored as "Files" that can be linked inside Documents.

All this in a multi-desktops OS-looking environment. You will find a complete documentation inside your workspace.

So far, this is a purely local application that stores everything in your IndexedDB. It can be installed locally (PWA) and will then work completely offline. No account required and nothing leaves your device.

This is more the early stage of a framework than a complete product, but I hope it can shed a light on a potential new way to "configure" interfaces or even workflows, given that Documents can be seen as stateful representations of business processes. Builtin "Modules" are the key to extending the framework's capabilities: calling APIs, using AI agents to structure or query documents, or even take action...

I'd love to read your feedbacks, questions and ideas on it, and see together what could make it useful for you !

Thanks ! Florian

Show context
BerislavLopac ◴[] No.41933281[source]
Does this use JSON Schema in any way? This looks like a perfect fit for it, much better than being "inspired by Typescript".

I particularly like the schema editor -- would it by any chance be available as a component to be used elsewhere, ideally open-source? I've been looking for a good browser-based editor for JSON Schema (or any schema, as long as it's configurable), but nothing I found really fits the bill.

replies(1): >>41933823 #
fdb75017 ◴[] No.41933823[source]
Thanks for your feedback !

It does not rely on JSON schema at all, the idea was to build a representation that binds together data structure, views and behavior in a self-contained way (like .xlsx does).

There are a few tools that do enable to link JSON schema to views, like react-jsonschema-form (https://rjsf-team.github.io/react-jsonschema-form/) but you need to manage them separately, and they usually do not propose a way to add the fields "methods" (which was the feature I found interesting to make "dynamic" spreadsheets).

That being said, I think the framework should clearly propose an export from Schema to JSON Schema or Yaml at some point, just as you should be able to start building your Schema by importing a JSON Schema (and although there might be some gray zones between the 2).

No, sorry, it's not yet open-source, and currently there are some strong links between Document and Workspace (Links, Files...) that would need to be more "abstracted" to make the builder an independent component. But I hear you point ! (and all the comments in this thread are raising the same ! :) )

replies(1): >>41936859 #
1. BerislavLopac ◴[] No.41936859[source]
> There are a few tools that do enable to link JSON schema to views

I'm aware of those, but I'm looking for a visual way to declare JSON Schemas, similar to the Schema view in your project.

replies(1): >>41980901 #
2. fdb75017 ◴[] No.41980901[source]
OK I see. I think exporting to JSON Schema is a feature to implement.

But again, there would be some situations where the 2 representations would not be reconcilable: you would not be able to stream out views & methods to JSON Schema, and in the other way, some weakly declared heterogeneous types of json schema like oneOf, allOf, anyOf might not always be representable in this framework.