Some conceptual questions about AppMaster

Hi

I suscribed to AppMaster, looking for an alternative to Mendix and OutSystems.
I am an experienced High-Code Developer and Software Architect, mainly working with ASP.NET Core.
After reading your BLOG and some documentation, I have some conceptual questions about AppMaster:

  • Does AppMaster support external ( legacy ) databases or only embedded databases?
  • Does AppMaster create APIs for the database? Including OpenAPI ( or similar ) documentation?
  • In the following page you mention MySQL and PostgreSQL, but, as far as I know, you use PostgreSQL: right?
  • You define AppMaster as “No-Code”, not “Low-Code” like Mendix and OutSystems.
    Is there any way to extend AppMaster applications using CODE or writing a Plugin/Extension/Module?
  • When I open a Project I see a “Hosted by: Eastern Europe (SPB)”: is there any USA option?
  • May I deploy the project with my own domain?

Thanks

Hi @Siegmar
Here are our answers:

  1. Currently, we support embedded DB (aka backend primary DB) only - PostgreSQL. Every deployed app uses this type of DB, and if you host on-premise, you will need to have PG14+ in your infrastructure. Technically, we have ORM under the hood that supports MySQL, MariaDB, MSSQL and SQLite, but we never enabled those DBs. Connections to the external DBs are in progress and will be ready around Jan 2024.

  2. You can create logic functions - we call them Business Processes and attach them to endpoints. Yes, you can directly expose DB functions to the endpoints if yo need to, but usually, our users build fully featured functions where DB calls are just a small portion of the logic. For each backend app, we generate swagger.

  3. Yes, PostgreSQL, but some time later we will enable other types of RDBMS.

  4. AppMaster is a pure no-code. There is no option to add custom code. We use source code generation to build applications, and there are some benefits and drawbacks. One of the benefits is that the codebase has no technical debt - we regenerate it every time from scratch. On the other side that’s difficult for us to let users add any custom code. That’s something that we will do, but not in the next 6 months for sure.

  5. Yes, just create a new deployment plan and select the US location. We use AWS, US location is in us-east-1 (N. Virginia)

  6. Yes, with any paid subscription.

Here is a small doc for quick onboarding

Here is a sample business process that will take some input and will create a record in the DB.

To call this BP via network it must be attached to the endpoint.

Hi Mr. Sotnikov,

It’s not every day I receive a reply from the CEO himself :grinning:

First, congratulations for creating AppMaster.

Let me give you some context why I am saying this…
I am an experienced developer/consultant with 30+ of experience and since 2005 working with Microsoft .NET technology.
Frameworks to help developers are my passions: I wrote 4 for my own use and published one as Open-Source at GitHub ( EasyLOB ).
So you can imagine how many different applications/libraries I have already tested and integrated during my career.
The blessing is that even after so much time I still like to create USEFULL applications based on GOOD code.

AppMaster is the best No-Code ( yes ) Platform I have used, considering competitors like Superblocks, Retool, and UI Bakery among many others.
Of course, developers ( like this one ) always want to change or complain something :slightly_frowning_face:

Compared to Low-Code platforms like Mendix and OutSystems, it’s much easier to use. OutSystems is not a No-Code platform, it’s Low-Code, and when it moved from DOTNET/Java to just DOTNET, moved to “Reactive” model and now moved from 11 to ODS ( it runs 11 code, but create a new way of coding ), it changed paradigms and created migration problems for users. Mendix, looks like, is moving to be a Low-Code “only”. Both platforms are complex and expensive, mainly devoted to high-end customers. Looks like Technical Debt is now a problem for Low-Code Platforms too!

IMHO, AppMaster with some extension capabilities like Custom Code (I know it does not have it) or Custom Components/Modules could be a nice contender in the middle market of my clients. Businesses with small IT departments, budgets not big enough for Mendix or OutSystems, and no will, or technical skill, to create an application from zero.

Second, you did not create a site, you created an IT Dictionary!

I was an University Teacher ( alongside with all other duties ) for 5 years.
Should I go back to school I would create a “101 - Let’s talk about IT” course for first-year students based on your site.
The person(s) who did it REALLY like(s) IT!

Unfortunately, after the answers you gave me, I will create another Post(s) with some more conceptual questions/remarks about AppMaster :wink:

Thanks

Hi,

Thanks for your former answers.

You told me that is not possible to create a Custom Code, so let’s imagine the options:

  • Do I have external access to the PostgreSQL database?
    I am supposing each subscription has is own Database.
    If so, I could create a STORED PROCEDURE and call it from code: is it allowed and is there any BP Component to call SPs?
    PostgreSQL ( and other DBMSs ) have powerful SQL languages and could create really nice custom code ( I do it a lot ).

  • I understood why creating a Custom BO component would be tricky for AppMaster: I probably would take the same decision should I be in your place.
    But if you do not create something like this, 100% of the available Components would depend on AppMaster development.
    Allowing some kind of Custom BP Component or DB Stored Procedures called form BP would free users to extend AppMaster in remove a lot of pressure from AppMaster BACKLOG.

  • In Business Plan you have an options for AWS ( Cloud ) deployment.
    You mean the application is deployed in my own EC2 VMs, with my own PostgreSQL, or in VMs managed by AppMaster?
    Should be my own, I would, of course, have access to PostgreSQL ( question above ).

  • There is an option to dowload “Backend Source Code” in Enterprise Plans.
    Which technologies do you use in Backend/Frontend deployed Web Applications?

I also have some remarks to make your BACKLOG even bigger:

  • I like your pricing model based on fixed prices instead of $/user like most of No-Code Platforms.
    But please, do not make it as complicated ( or expensive ) as OutSystems model, based on Application Objects (AOs).
    Looking at your Business plan, I guess, based on my experience with High-Code, that 75 Data Models are not enough: I would think of 100, at least.
    But this is just a guess…

  • Black Theme for Designer

  • Create Models from SQL DDL or JSON
    I know Citizen Developers would not do it, but is a Pain in A… to create table-by-table

  • Change Columns order
    I know PostgresSQL cannot do this unless you recreate the table, but in the future, other DBs could

  • External Database
    I know you do not allow it, and Mendix and OutSystems, even allowing it, have a LOT of restrictions.
    But the reality is that Business have a lot of Legacy DBs and would be nice to create Apps based on them.

Thanks

Yes, each deployed container has its own DB. We recently launched DB Direct access with a simple web-based editor. While we don’t have any instruments to create SP, you still can do it using SQL in that editor. We can add SP call blocks in a week or so.

We definitely have custom components support for the web apps in our roadmap. Now, users can execute JS, embed HTML/JS, and use iframes with postmessage. For the backend, we also plan to do it once we have resources and a way to isolate custom code from the rest of the app securely. But for mobile apps, we can’t make any commitments due to the backend-driven approach.

Starting from Business, you can download binary files and pull docker images of the backend, get web bundles. Feel free to host it in any infrastructure, including AWS, GCP or your private cloud/servers. Backend apps can be compiled for Windows, Linux, macOS and x86,x86-64, arm CPU archs. Use any PG14+ compatible DB. In the end, experience with AppMaster-generated applications should be the same as with apps created by software engineers using classic code.

Golang (Go 1.21 as of now) for the backend, Vue3+TS for the web, and our custom declaratives with SwiftUI and Kotlin in mobile apps.

Our current approach is to limit resources in the container by CPU, RAM and etc. While we don’t have other metrics for running applications. In terms of Studio, we have limits on the amount of models, BPs and etc. Those building blocks directly influence complexity and required computing resources to generate, build and run apps.
We are always looking for ways to make our pricing policy more straightforward and effective.

Work in progress. ETA around late Dec 2023.

Could you please share any use cases for that besides perfectionism in the DB Designer UI? We can visually sort them without sorting columns actually.

We are working on it already, but no accurate ETA yet.

Hi,

Thanks again for the patience in answering my questions :grinning:

You are 100% right: it’s 99% perfectionism and 1% practicality to see related columns, created at different moments, together.
And the solution of sorting will work fine.

Thanks for helping community users .