I’ve only been using Wappler for around 6 months, but I thought it would be useful if I collected most of the things I’ve learned/needed to learn in one place as well as explain some of the basics terms to make it easier for newcomers. This is mainly aimed towards people coming from Bubble or similar, who don’t have experience or understand a lot of this (like myself).
I would appreciate any feedback, ideas to add, or corrections on things I may have wrong.
Some things (mainly the terms to know) were made with ChatGPT which can sometimes be wrong.
Also had a few spots (usually marked with a ?) of things I wasn’t sure of/didn’t know. Mainly related to databases and shared hosting.
Thank you for the Guide, this should be of great help for many new to Wappler and a coding environment.
The only part that I find controversial is the term SCRUD. This will no doubt place me in exact opposition to Brian (@Hyperbytes) who is Wappler’s spiritual SCRUD father.
To my way of thinking, the term should be CRUD because the search part (S) is a read function.
Happy to hear other views.
As a sidenote: HTTP defines a set of request methods to indicate the desired action to be performed for a given resource:
Create = POST
Read = GET
Update = PUT
Delete = DELETE
PUT is the opposite of GET.
PATCH would be used to update a resource.
Anyway, I think Search and List permissions although they are read actions they have their own reason of existing as you might want to separate these permissions. So SCRUDL all the way.
Thank you for posting that @Eric_F, that will be a great help to new Wappler users - there’s a lot of other stuff there a lot of us take for granted eg GIT / Databases etc etc so its nice to see perspective like that from someone just coming in to this.
I’m happy any way with CRUD/SCRUD/SCRUDL however this cracked me up:
I think its an excellent nickname for the Wappler sage that is @Hyperbytes
As others have mentioned, I think this will be a very useful guide. I’m not sure if I would agree that SQLite is “usually just used for testing/development”. It’s used for all sorts of things - eg web browsers and desktop applications like Wappler.
Will put a note regarding this. I will also add GET and POST to the terms as they are pretty common
That was the main goal. At least for me, when you look at a GIT repository for the first time you see a whole bunch of files and code and aren’t really sure what is going on. But after you look into it even very briefly you see how easy and useful it is.
Similar with databases, I figured they would be a lot more complicated but when you can just use something like the database manager it is very easy as long as you get the basic logic behind it.
My main thing with SQLite was that if you deployed it to a server, it would get overwritten on the next deploy. Also, I couldn’t find a way (without external software) to convert an SQLite to another type like MySQL. This was a bit annoying as a beginner as I couldn’t use my SQLite database on my website, and I also had to remake my database structure.
I am not personally sure of the use of SQLite in Wappler outside of testing/development due to it overwriting on deploy. Can you actually build desktop apps and such in Wappler? I have never looked into it. Would you be willing to write a quick paragraph regarding the uses of SQLite inside of Wappler?
I will probably edit this all and format it properly into a forum post over the weekend. Anyone know which forum category would be appropriate?
Also, if anyone could share some basic info regarding shared hosting/cPanel databases I would appreciate it. I have never done one that way but would still like to include info about it.
I don’t think I would ever use SQLite on a server; if I did I would certainly want to make sure I didn’t overwrite it. (I’ve never used the deploy button.)
When I said SQLite was used by applications like Wappler, I meant Wappler uses it internally, not that it makes it available as an option to the developer (which it also does of course). In fact, I think I’m wrong about Wappler using SQLite internally. It did some versions ago, but looking again now, I think it uses IndexedDB instead. I’m afraid my comment in relation to Wappler wasn’t very helpful, but SQLite is nevertheless used in many desktop applications.
Can you actually build desktop apps and such in Wappler?
SQLite is easy for quick lightweight local development, but on live targets you should use a better relational database like MySQL, MariaDB or Postgres.
The advantage of Wappler’s multiple targets is that you can have SQLite for the local development, but a different database for your live target, The Wappler’s Database Manager keeps track of all the schema changes that you do in your development database, and later on when you publish your site to a live target then those changes are applied also to your remote database. So everything gets in sync.
SQLite is also very useful for Mobile Apps as local database on device btw.
If you use the new Project Publisher from the “Publish” action from the bottom toolbar, it will apply the database changes, commit to git and tag your version. So it is a qucik and easy all in one solution.
I think your idea is excellent! Being new to Wappler, I am struggling to understand for example, how to build your first app. Watching videos is ok, but it leaves many questions as the videos assume you have a lot more background that I think someone new may not have. You’ve put a lot of work into this and it is much appreciated.
Thanks all! Before I pose the questions, it might help you to know that I used to develop using InterAKT which Adobe wiped out. Then I used the Adobe Toolbox extensions which they also did away with. That said, I need to transition from my existing mindset to Wappler’s. That is, how do I go about doing what I used to do (create a db connection, which I have already figured out, apply security, create a recordset etc. etc.). I know how to do all of this and even create complex applications, but having a hard time understanding how I do the same things in Wappler. I hope to not have confused you.