Before I tell you our plans for the next 5 months, let me bring you down the memory lane in regards to what we’ve done the last 7 months. Why the last 7 months you may ask? Because I quit my day job in June of 2021, so what we’ve done so far should give you a nice pointer in regards to how much we’ll be able to do over the next 5 months. Also realize that until 1st of December I was literally alone, and we’re now a team of 3 full time working developers pulling in the same direction - So obviously things will be faster in the future than they were in the past.
What we did in 7 months
- Finished Windows/LDAP authentication
- Finished SignalR socket message publishing upon invocations to CRUD endpoints
- Templates when creating new files in Hyper IDE
- Renaming files in Hyper IDE
- Adding more keyboard shortcuts for Hyper IDE
- Adding macro support for Hyper IDE
- Created a completely new frontend Angular template
- Adding Docker files and docker-compose.yml files to generated frontend allowing you to deploy in seconds after generating your frontend
- Completely re-engineered the Bazar
- Added support for a whole range of different Content-Type payloads and responses to Magic core
- Allow for automatic uploading and downloading of images and files in the generated Angular frontend
- Implemented foreign key support for generated Angular frontend
- Left join of columns in the generated Angular frontend, allowing you to see a referenced field instead of “customer_id” being a simple integer value
- Support for explicit nullable values in generated CRUD backend and Angular frontend
- Implemented extrapolated expressions
- Support for exception filters and interceptors
- Better authorisation support, allowing non-root users to be given access to components in the dashboard, and having the frontend automatically only show these components accordingly
- Re-engineered the threading slots in Magic, implementing [wait]
- Support for custom JWT claims
- Improving the speed of HTTP invocations significantly, and extending the capabilities to include non-JSON types of payloads and responses
- Better cryptography features, allowing you to hash files and such, without loading these into memory
- The option of preserving comments when transforming between lambda and Hyperlambda, resulting in that generated CRUD backends now show comments among other things
- Faster (and cleaner) Hyperlambda parser
- Updating the backend to .Net 6
- Allowing for invoking HTTP endpoints directly from Hyper IDE, allowing you to never leave Hyper ide while developing
- Allowing for semantically transform between different types of payloads and responses, such as
- Allowing to CRUD endpoints directly from Hyper IDE
- Implementing support for PostgreSQL databases
- Implementing support for ODBC slots, accessing any ODBC enabled database from Magic (assuming you can somehow install its driver)
- Completely new file and folder system, allowing Magic to become possible to upgrade, without messing with dynamically created files and folders
- Implementing 100% stateless file system, allowing for storing files and folders in NoSQL database systems, resulting in that you can deploy Magic into a Kubernetes cluster if you wish, and load balance, while still having each pod execute the same Hyperlambda files, and accessing the same “file system”.
- Implemented support for [neq] slot, in addition to significantly simplifying usage of all other comparison slots, and conditional slots
- Significantly improved security in Magic, by creating a prohibited user not having write or execution rights to anything outside of Magic itself
- NoSQL data adapters allowing you to use a Cassandra (CQL) compatible database such as Cassandra or Scylla
- Implemented support for logging into a CQL based database instead of into your Magic based RDBMS database
- Support for out of process NoSQL based caching through CQL
- Completely re-written 90% of the documentation related to Magic, its YouTube videos, and increased the quality of Magic’s documentation by at least one order of magnitude
All in all, we’ve created more than 50 releases the last 7 months. The reasons why this is important to understand, is because it speaks about the project’s velocity, implying it also speaks about how much ground you can assume we’ll cover in the next 5 months. This time of course with 3 full time developers, instead of only one.
Almost every single feature in the above list was not something I wanted myself, or something I did because I thought it was cool, but most of the above features were in fact things our partners asked us for. Hence, we have no specific roadmap, since it tends to crash with what our customers and partners wants from us, and we’d rather create what you want than what we want. However, if you need something, we’re never more than one email away, and although I hate to make promises, I tend to try my best to deliver that which others are asking us for, assuming they can formulate their requests in such a way that I can transform their feature requests into code somehow. Hence, got a feature request? Shoot us an email!
Why we don’t publish our roadmap?
A Norwegian guy once sold strawberries for his father. He was 5 years old, but couldn’t sell a single strawberry, so he went to his father whom he was selling strawberries for and asked for some “better strawberries”, saying the following to his father.
Dad, I can’t sell my strawberries. The other guys on the market have better berries, and are selling their berries for less. I need some new strawberries
His father’s answer was; “Son, you have to sell the berries you’ve got”. That Norwegian guy is a billionaire today because of listening to his father’s advice. If you want future fata morgana stuff, by people over promising and under delivering, we’re not it! We’ll sell the berries we’ve got. However, I think our berries are pretty amazing, don’t you …?
When that’s said, I would like to repeat that we are still very much interested in hearing from you how our next strawberry season should look like … ;)
So why don’t YOU give me a roadmap instead? It’ll probably result in much more juicy berries I presume … ^_^