Fresh Start vs Cleanup of current project, plus some "best practice" questions

I have a fairly large app structure built (not in prod yet) but i have made some core changes to certain logic now that i have learnt a bit more about actual coding techniques and practices.

There is some rework that will be needed, including changing some core tables a bit and workflows too.

Starting fresh of course feels “clean” but will also be significantly more work. Particularly recreating all the forms, delete screens and tables with lots of attributes.

If i delete a table, does it wipe all screens/logic/remnants of that table from my app? or am i likely to have a bunch of ghost-data dragging my app speed down?

With that being said… I have some larger questions about things that feel they really take me more effort than it should.

  1. Delete screens
  • I dont want directly deletable data from the app, but a verification screen to pop up. I want every screen to be the same, so having 1 single screen would be ideal but then “delete this item” doesnt work. It would need to be some sort of delete table with relations to every single other table in the app… is this reasonable? better way to go about it? soft delete function with a periodic bulk clear out?
  1. Forms as workflows
  • I generally create workflows for all forms so i can access them from everywhere, but sometimes i want to access that form from a page/tab of a different table. Is there a way to do this that still results in a single page needing to be changed
  1. Tabs for tables vs “dashboards”
  • Often i find myself wanting an interface for all things related to a given area of the app. It is often management level work (users are my staff and operations managers) that includes anywhere from 10-20 different tables that need to be accessed.
  • Sometimes i do it from a screen of the “core” table, but sometimes an interface seems nicer. Interfaces mean “from screen” additonal coloumns and filters dont work so well, but it is also nice for carrying info between one task and another. Temp storage if you will
  • Of course, user table can be used for this which i have done but i found it made for quite a busy user table which i didnt end up liking.

Thanks in advance!

  • Build your form on a single row helper table
  • In your User Profile row, add a Single Value column that targets first->whole row of the helper table

You can then open the form from anywhere in the App via that single value column.

1 Like

I use that approach to set columns from anywhere in the app, or access a consistent detail screen of that table, but how do i access the workflows via that single value column without opening a new screen for that single value, and then using a workflow?

Maybe I misunderstood - you want to access the Form, or directly trigger an associated workflow?
User interaction workflows are bound to tables, and you can only trigger them from within the context of the connected table.

I want access to the form, but i have most “form screens” as part of a workflow so that i can always access the same form screen from all parts of the app. Is this not necessary? i didnt think form screens were like detail or edit screens that are consistent

Apologies, I find the above confusing. I don’t understand how a screen can be a part of a workflow. Do you mind elaborating, or perhaps show me an example?

This way if i access that form from 4 different places, it only takes one adjustment of the form to change all 4 locations.

Otherwise i believe forms are isolated screens, unlike detail/edit.

ah, now I see what you are saying. Okay, got it - native forms.

Alright, my initial response was assuming Custom Forms, so not applicable in your case.

I do use custom forms for some things, but ive found that the more normalized my table structure is, the less i need it (for my use case anyway). forms have become nearly all 1-3 values entered.

which does make adjusting them fairly straight forward, but i dont want to worry in the future about inconsistency.

Is there a different reason i should avoid native forms?

No, not at all.
I think you should always use native forms in preference if you can.
Custom forms are just an option if you need something extra that native forms don’t provide, such as more advanced validation.

1 Like

great, thanks for all your help as always.

Any thoughts on starting fresh vs adjusting current app? i know it depends on amount of adjusting needed likely, but more about what im going to call ghost data/screens/flows. I have never seen a “purge all unused” button anywhere, and i dont like the feeling of carrying possible garbage with me going forward…

I don’t really have a strong view either way. Thinking about what I’ve done in the past, I guess I’m generally more inclined to refactor rather than rebuild. That doesn’t mean that’s the best approach, or there is even a best approach. I think every App is different, and you need to make a decision on a case by case basis.

Yeah, I also wish we had something like a “purge all unused” feature, and I’ve asked for similar several times. One thing I can tell you is that a quick way to get rid of unused workflows is to duplicate your App - because any that aren’t referenced wont be present in the duplicated App.

There are also some Developer Tools in the works that will help with this sort of stuff. Go to https://staging.heyglide.com/, and look for the Column Inspector Tool in preview features. Once you enable that, you’ll see a “Dev Tools” button in the Builder, just near the Share/Publish button. That one is very, very useful. Hopefully it will make its way into production soon.

looks useful, but to be clear there is no way to currently use it on an app? this appears to be some kind of test environment?

I would love to be able to sort all my coloumns by # of uses for example, or view any screens/flows/forms that are unused or otherwise unlinked too.

Once enabled, its available for use on all Apps in the team. The URL I gave you is the Glide Staging environment. New features are often made available there before they make their way into Production.

These dev tools in staging look like they could be very useful to audit, debug, refactor a project. The UI is polished enough. Any idea why the feature is not in production?

I was looking into finding a way to have a shared team between my production dahboard or staging dashboard, so I could use dev tools on an existing app in production. I don’t think it’s possible. Can you confirm?

I don’t know, sorry. Some features sit in staging for a long time before being promoted to production, and sometimes they never make it at all.

No, that won’t work.

1 Like

Not sure if this was answered but I too am interested in the response.

I assume that if a table is deleted and it is not the source for a Screen: the screens will live on with the components referencing the deleted table within the screen disappearing or having no context.

If the table is the source for a screen (new screen, detail, edit, form) than I assume those screens and layouts would be wiped out/cleared from the app.

I also assume all workflows associated with the table (a row from the table is the ‘app interaction’) would also be deleted BUT not really sure about that. Do workflows get deleted or does the ‘app interaction’ default to NULL.

I think a lot of screens float around cause when I do a ‘Find Use’ in the data editor I find screens that I did not know still existed, are never called in the app and I can not find where they were/might have been called from.

Are these ghost screens/data dragging down speed….great question?