HNHacker News
TopNewBestAskShowJobs

xgenecloud

97 karma · joined January 2, 2020

Founder XgeneCloud.com

Book a meeting : https://calendly.com/xgenecloud/demo

Github : https://github.com/xgenecloud/xgenecloud

Discord : https://discord.gg/5RgZmkW

Twitter : https://twitter.com/xgenecloud

Timezone : GMT

(Helping Build APIs at the Speed of your Thought)

submissionscomments
xgenecloud··on Show HN: IHP, a batteries-included web framework built on Haskell and Nix
IHP includes a GUI to build postgres schema - this is really cool and much appreciated. Databases have been existing for ages now and so are the GUI tools to manage them. However, it's unfortunate that most web frameworks fail to provide functionalities like this.

Working in similar space[1], I have been talking to many early customers. Right from somebody who knows enough programming to product managers to CTOs, the idea of having a GUI within web framework and to have CRUD APIs ready with just few clicks gives them an amazing head start in building web apps. Getting past this redundant phase of creating basic CRUD with no hassle means - they can devote their energies on the business side of things. It will not be wrong to imagine in few years this workflow will become a norm.

[1] : https://github.com/xgenecloud/xgenecloud

xgenecloud··on Show HN: Node.js CRUD template with users, password resets and permissions
This create CRUD templates for stubdb.

Happy to learn more on Stubdb - how does it differ compared to Sqlite (also from issues in stubdb - it wants to support IPFS)

xgenecloud··on Ask HN: What did you make during lockdown?
We launched XgeneCloud[1]

XgeneCloud instantly generates REST/GraphQL APIs on any SQL Database. The APIs scaffolded is a secure node.js backend application. XgeneCloud currently supports generating REST/GraphQL APIs over MySQL, PostgreSQL, SQL Server, SQLite, MariaDB and Aurora.

Please do check us out - we've been getting amazing feedback.

[1] : https://github.com/xgenecloud/xgenecloud

xgenecloud··on Show HN: Tragopan – Minimal, dependency-free pan/zoom JavaScript library
Demo link -> https://team-video.github.io/tragopan/

This looks good, will check out for one of our projects.

xgenecloud··on Show HN: Auto generate REST API from Mongoose schemas
>> why do you have to program those endpoints over and over again for each entity in each project? It just seems silly. I'm honestly surprised there aren't more projects like this

This is exactly what got us started - we are solving automatic REST-GraphQL API endpoint creation for all SQL databases. Check us out https://github.com/xgenecloud/xgenecloud

xgenecloud··on Show HN: Auto generate REST API from Mongoose schemas
>> Creates a hot-reloading server that auto-updates whenever models are updated or created.

This is neat.

Does this mean - if your generator finds a new model in mongodb, it autogenerates model file within the folder and vice-versa it creates APIs if there is a new model file within model folder ?

xgenecloud··on Show HN: Flatend – Quickly build microservices using P2P networking in Node/Go
>> I'm seeing some crossover opportunity here

I guess so. Happy to have a chat - https://discord.gg/5RgZmkW

>> May I ask if express.js is a compulsory requirment .. ?

Yes, XgeneCloud's instant REST/GraphQL APIs generation relies on Express.js

xgenecloud··on Show HN: Flatend – Quickly build microservices using P2P networking in Node/Go
This looks really promising. Can you think of mapping express.js routes to flatend automatically - that would be awesome. We are striving to make things simpler on backend too - pls take a look at https://github.com/xgenecloud/xgenecloud
xgenecloud··on GitHub isn't fun anymore
Stars are a way to bookmark and discover repos in the open source world. No stars doesn't mean no development - I am not denying that and appreciate your concern on how much vanity is in it. (I guess it is better than vanity of likes for a photo on instagram).
xgenecloud··on GitHub isn't fun anymore
Cannot agree more on this.

There are two sides to github consumption - active and passive.

On passive side - we are happy to stick to basics of git on CLI / IDE and get the job done of a version control. And the site is usually to configure CI/CD and so on.

However on active consumption of open source - it is all about discovery of repos relevant to tech you are into and people behind them. It is so amazing to go and find a good committer profile and see what repos he follows.

And the new github trending is simply axing their own feet here.

xgenecloud··on GitHub isn't fun anymore
>> No offense to Stripe, but the notion that stripe-samples/subscriptions, which has 13 total stars with exactly zero new stars today is the new JavaScript “hotness” is a joke. This is totally useless to everyone.

THIS.

The new algorithm is not only horrendous but SUPER FLAWED!

Here is what happened.

After receiving 900+ stars within a week of launch - we never make it to 'Trending' weekly or monthly!! We were their trending for 3 days. Then all of a sudden we are gone. The rest of the repos which were trending with us with as little as 50 stars are in weekly/monthly trending!!!

Can you please help explain this @Github ?

When contacted Github support about this flaw - the reply was short (they dont wanna reveal their buggy algorithm! I was asking to look at the problem not to defend their solution)

Stars not only tell how cool a open source project is but also makes the new open source developers produce valuable work without next to nothing in return.

Just taking out this small dopamine rush translates to this - a good company (Github) was acquired by an old-enterprise.

xgenecloud··on Show HN: XgeneCloud – Instant REST and GraphQL APIs on Any SQL Database
Strapi, I guess, can create APIs when you create models via Strapi's own UI Modeller itself (much inline with traditional API frameworks) and it does not generate APIs automatically on existing database schemas.

With XgeneCloud, you can point to 'ANY' existing or pre-built database schemas and your APIs are ready in seconds. So XgeneCloud introspects the underlying database schema automatically and then generates models, controllers, relational controllers, auth & ACL!

And to stretch the fun factor a bit - you can also point multiple databases as input - we will still manage to generate APIs for all databases together :) - happens within seconds.

Strapi ships an UI to create-edit models, but then I am guessing it is not a complete Database Client. They are targeting headless CMS space - so their needs might be much geared to provide richer datatypes in content management rather than to provide a fully featured database client. Also, I am not sure on how they manage SQL schema migrations (if somebody can help answer that). With XgeneCloud, your schema migrations are automatically generated as and when you make schema changes - this makes the process of backend database design a really seamless and enjoyable experience. What this means is - our desktop tool can be used by any database admins to manage schema migrations easily.

And finally, XgeneCloud's APIs are also Hybrid Serverless functions : which means without changing a single line of code - generated APIs can be deployed as Serverless functions across any Cloud Platform (AWS Lambda, GCP Cloud Functions, Microsoft Azure Function App, Alibaba Function Compute and Vercel Now)!

Two major-major benefits from this :

1. Your APIs also work as Serverless Functions.

2. Then those Serverless Functions are not cloud specific.

So the same code will work on any Serverless Cloud Infrastructure. Your code is not locked in with a Cloud provider.

Plus, we have a built in API client - where you can debug and perform test generated APIs (much like postman)

So with XgeneCloud, you can cover all aspects of API lifecycle management (Database, REST API Server, GraphQL API Server, API Client and Serverless)

xgenecloud··on Ask HN: Best Way to Mock APIs in 2020?
If you have a database - try this https://github.com/xgenecloud/xgenecloud

Automatically generates REST & GraphQL APIs within seconds from your database schema.

Here is a demo on how to create 8000+ REST APIs within 10 seconds - https://youtu.be/NtCwnlLudnk

Not just mock - you may even consider writing the full backend on it.

Im the creator - happy to answer any questions.

edit : added demo link

xgenecloud··on Show HN: Koyeb – Simple serverless processing workflows, on any cloud
How does this compare to minio ?
xgenecloud··on How and why GraphQL will influence the Sourcehut alpha
hey, you might want to check xgenecloud where it is seamless to add business logic for generated APIs.

XgeneCloud makes it really simple to add business logic for generated APIs (REST and GraphQL both) over any SQL databases.

We just launched this week [2]

[1] : https://github.com/xgenecloud/xgenecloud

[2] : https://news.ycombinator.com/item?id=23466782

Website : https://xgenecloud.com

(disclaimer: founder here)

xgenecloud··on Show HN: XgeneCloud – Instant REST and GraphQL APIs on Any SQL Database
We provide simple role based ACL mechanism (toggleable from CLI/GUI) https://docs.xgenecloud.com/en/v0.5/rest-apis/rest-acl

However, this simple ACL is not intended to encompass all business rules or hierarchies of every application. Hence we decided to provide each router (or controller) with its own middleware handler where these rules can be coded easily.

Explained in below diagram : https://docs.xgenecloud.com/en/v0.5/rest-apis/rest-acl#workf...

xgenecloud··on Show HN: XgeneCloud – Instant REST and GraphQL APIs on Any SQL Database
Hey vladsanchez, thanks much for following.. you deserve a yes for all the above ;) (this is after checking our number of followers on twitter! haha.. folks please follow us at https://twitter.com/XgeneCloud)

I kind of understand Elastic and Neo4j usecase.

Can you please give an usecase for Kafka - you can raise an issue detailing so in github.

However, I will have to admit that before agreeing new databases - we will be working to make existing databases concrete.

xgenecloud··on Show HN: XgeneCloud – Instant REST and GraphQL APIs on Any SQL Database
Thank you for your input.

Good & insightful questions.

>> instead was a one-to-many relationship between 2 first class entities?

This can be treated as virtual relationship between 2 entities and can be linked together in our models. This has to be done manually for now. May be we can do better with our UI tool. I've raised an issue to track this - https://github.com/xgenecloud/xgenecloud/issues/6

one-to-one relationship returns a list instead of an object as of now.

>> How does it handle join-tables which implement many-to-many relationships? Does it generate the REST end point for the join-table instead? In GraphQL : the schema is like a graph traversal so a join query is possible. In REST : no - this will have to be created manually.

>> How does it handle different subcollection semantics? Subcollections can be handled individually i.e in their own routes or in nested routes in REST framework. CUD operations for subcollections in GraphQL i.e nested CUD operations (mutations) are not possible.

>> SQL Query optimisation: N+1 query optimisations are done with data loaders.

Please let us know of any other questions.

xgenecloud··on Show HN: XgeneCloud – Instant REST and GraphQL APIs on Any SQL Database
Thank you so much.

Hasura supports generating GraphQL on Postgres.

XgeneCloud supports generating both REST APIs and GraphQL APIs on all the following databases PostgreSQL, MySQL, MSSQL, SQLite and MariaDB.

The key difference with generated APIs are - with Hasura you would need an extra service running on your backend for model-validations & business logic. This can be a container/microservice or serverless functions. With XgeneCloud, the APIs are not in a blackbox but generated express.js API source code. This would mean adding business logic is as seamless as changing that CRUD function. Since we use express.js (Thank you TJ Holowaychuk) - it is easily extendable as per your needs with npm being a great ecosystem to add middleware, rate-limiting, logging and what not. Also to note, Hasura is on Haskell language (although powerful as a language it is not mainstream language to build your backends on)

In essence,

Backend with Hasura = database + hasura (for crud) + microservice/serverless functions (for business logic)

Backend with XgeneCloud = database + xgene's API framework (regular run of the mill MVCish code with familiar controller->service->model). This means it is quite easy to comprehend, debug and scale.

The webhook pattern employed by say Firebase/Hasura/Any-API-in-a-box is good for only really simple projects or prototyping. But essentially, we believe webhook pattern for even simple CRUD operations is a major anti-pattern plaguing backend frameworks these days. Not to mention, simple things like debugging, SQL transactions become really hard on databases. Having said above, hasura has realtime capabilities which we do not have at the moment.

Serverless Support : Our APIs can be deployed as serverless functions on any cloud platform (we use express.js - which amazingly works as Serverless App). This is a big leap - so there is no more Cloud Platform specific serverless code. We support AWS Lambda, GCP Cloud Function, Azure Function App, Alibaba Function COmpute, Vercel Now.

Database Client :

We ship a fully featured GUI Database based client (much like MySQL Workbench / PgAdmin) that works on all databases - this supports autogenerating up/down SQL schema migrations automatically. It has features to bookmark queries and very intuitive :)

We also ship a full featured API Client (much like postman/insomnia) to maintain your API collections and we also support performance test of APIs via GUI interface.

edit : sentence corrections

xgenecloud··on Show HN: XgeneCloud – Instant REST and GraphQL APIs on Any SQL Database
>> Is there any way to exclude certain tables or customize what is generated in any way?

Yes, for this you can create the project from our GUI Desktop tool to your existing database.

Then from CLI you can just create database models with below

  xc gen.apis --model

However, I see there is an issue with our production application and workflow.

I 've created an issue to track this.

https://github.com/xgenecloud/xgenecloud/issues/3

>> Field "UagFbDataAggregate.min" can only be defined once

May be this happens when there is clashing column name with an existing column in table.

https://github.com/xgenecloud/xgenecloud/issues/4

xgenecloud··on Show HN: XgeneCloud – Instant REST and GraphQL APIs on Any SQL Database
>> my understanding from looking is at the website is that it provides a database client/editor

Yes, XgeneCloud comes with a fully featured GUI Database Client for schema design and migrations. No more database design from cli or code.

>> how is authentication handled?

We use session based authentication.

>> does serverless model mean that a new database connection has to be established every time an API

Yes, if there are any improvements please suggest it. We were inspired by a commit[1] made to our old solution in Xmysql - which turned REST APIs to Lambda functions.

So, we went onto extend this Serverless function support for all Cloud Platforms (AWS / GCP / Azure / Alibaba / Vercel)

>> But do those tables get added to the DB?

Yes, they gets added to Database.

>> And where does the email get sent from?

we are using nodemailer for mailing and the smtp config can be updated in the corresponding config file for the environment within server/config/ folder.

[1] : https://github.com/o1lab/xmysql/commit/3b279855a2562765975f7...

xgenecloud··on Show HN: XgeneCloud – Instant REST and GraphQL APIs on Any SQL Database
Absolutely.

Example: consider `country` and `city` are two tables and are related. City has a foreign key pointing to Country.

In REST API framework : We automatically generate /api/v1/country/:id/city for REST APIs.

In GraphQL API framework :

{Country {CityList} } graphql schema will be automatically generated with resolvers as well.

So they work out of the box

xgenecloud··on Show HN: XgeneCloud – Instant REST and GraphQL APIs on Any SQL Database
Yes, this will be perfect.
xgenecloud··on Show HN: XgeneCloud – Instant REST and GraphQL APIs on Any SQL Database
We support following Databases :

• MySQL

• PostgreSQL

• MSSQL

• SQL Server

• SQLite

• MariaDB

API Framework also comes with a built in GUI Database Client!

• Point & Click Schema design & migrations

• Works on MacOS, Windows & Linux

Happy to answer any questions and take your feedback.

edit : formatting

xgenecloud··on Show HN: FontEdit – A desktop app to develop fonts for embedded systems displays
Much needed. Fonts are such a pain on embedded systems. Congrats on shipping.
← PreviousPage 2 of 2