Best practices pls for image sharing & storage from anywhere in app

It depends. I’ve created a standard image column in any table that needed an image…and I’ve also created an image resources table that holds a key name and the image. Then any time I need the image, I create a template column with the key name, a relation column that links the key to the images/resources table, and a lookup column to return the url. This way if an image is used in multiple locations, I only need to update the resources table if I need the change anything and have it populate throughout the app. I’ve also done similar things by using the user profile and created the relation/lookup or a single value in that table, so it’s easy to access everywhere else.


But with Glide Tables and images stored in “Image” simple col, you cannot get the url for IMG SRC and control the size, can you?

Sure you can… If you use a template column to build out the html.


Do you mean when using with CSS?
Yes, you can. Just reference the image column in your CSS template column.


You mean you can generate the url of the image “standardly” inserted inside a simple image col, without going to Google Sheet’s side to see the generated url?
For now, I need to switch between the Glide Table and its matching GSheet Tab
Like this image

Can I do without the GS part?
I mean, with an url I can use in an IMG SRC so Rich Text Component

An image column will show the rendered image, but it’s still just a url underneath. The database doesn’t store images. It just stores the location of those images. If you switch that column to a text column, you will see only the url. If you use that image column value in a template column for example, it’s still a url and will show you the url.


Euh… Ah?
Can you screenshot a sample for me pls, Darren? I did’nt know you can ref an image without its complete url in an HTML/CSS.

Sure, here is an example.

Note that the URL in that example references an image column.


Oh! Right! Like the Title Component (or of your inline list) that never shows your image even if you want to, but only its url!
OK! So you ref the image col as if it were already a text with url, et voilà!
So I can store my shared images in the same table than my keywords (to populate choice components), for ex. To save the nb of rows and remain within the 500 rows quota.
And ref them as text to catch their url. With a Template Col if need be, in the same Table.

1 Like

Ahem. There’s still sth I don’t get, @Darren_Murphy & Jeff.
From a Detail Screen, the only Tables I could access are
1/the Current User’s Profile
2/the “Current” Table (whose columns are in the [Data] tab on bottom left).
It does not matter whether I insert multiple inlines from different tables, there’s still only 1 single Table’s Data I can reach

And in this capture, I actually access the Profile 2 times! Which does not help.

How do you access the URL of the image of another table than what Glide considers your “current” one?
Thks, both of u

Like this :arrow_down_small:


If I manage to get this: as my screen cap shows, there’s no way I see and get directly another table. So does that imply that I have to create a column to look for that table col. In EACH table from where I may need that shared images table?
Screen → fetch current table col with lookup? formula → fetch shared images table
and not
Screen → fetch shared images table (provided it’s not the current table)
As you can lookup from a col any table col, but you cannot lookup a col directly from a Detail Screen UI. You have to work it out in “backstage”.


If that seems like a lot of work, think about the alternative.
You’d need an image column in every table where you want to use your images, and then you’d need to duplicate your images in all these tables. Doing it this way means you just have a single copy of each image in a single location, which you then reference from many other locations.


I understand, Darren. It’s just like an address or a shortcut phone number you register for emergency cases or everyday convenience. You do it once. Tediously. But once. And for maintenance, the image is still updated only from one centralized column.


I use two sheets:

  • lookups
  • images

(Though I now try to do most things in a single long lookups sheet)

I have a template column in these sheets called TP-link - with a string ‘link’. I have that column also in the user profile sheet, and I make a relationship column in user profiles to connect the two.

Then I add lookup columns in the user profile sheet.

And that means I have access to all the common resources I need across the app.


If you absolutely need to get the URL to do something else, change the column type to text, grab the URL, then change it back to image.


So if I draw my conclusions from the 4 of you (sounds like the “musketeers” whose punchline could be: “All for Glide, and Glide for all!” :grin: French literature inspirational writer’s reflex) @Darren_Murphy @Jeff_Hager @ThinhDinh & @Mark_Turrell

  1. there’s no existing component that can directly lookup in any table: really?

  2. there’s no read-only url that can do that like
    /my app/mytable/mycol&param=

  3. the one and only magic directly shareable table and hence columns are the User Profiles

  4. if you want to access any column outside your current table (whose DATA are editable in the Builder), you create a column with a lookup or any formula to catch the column value of another table/the User Profiles. And you ref your current column in your component.

  5. If the desired ref is an image url, display it in anything that does not render as image and copy the generated url to your component.

  6. If the User Profiles is so supercharged to share all desired values/resources, you’d better think of backup strategy like exporting to CSV, if the User Profiles Table is not a Google Sheet. An IT file can always be corrupted…

  7. any performance, display latency differences? between

  • ref directly from User Profiles column

  • ref from current table column with direct uploaded image

  • ref from current table column with lookup to User Profiles column

  • ref from current table with lookup to any other table column

Any Feature Request to have

  • Shared Tables
  • Shared Columns
  • Component that Lookup any column in any table?

Unless that impact performance? And is not “Glide-smart/compliant”?

Oh, I miss low code Lotus Domino (now called HCL Domino) so much: almost everything could be shared (subforms, fields, any resources: images, flash files, html, head, columns) and updated/refreshed from its source.
Sorry, Nostalgia moment :teddy_bear:

Thks to complete, correct, adjust, anything.

Not really, although Lookup probably isn’t the correct word when referring to components. But you can use components to display data from tables other than the current one. List components, for example.

The closest we have to this are Deep Links

Yes, but generally I find that adequate. I don’t disagree though that it would be useful to have tables that could be marked as globally accessible. A good use case for this would be a place to store “global variables” or app level settings, both of which usually wind up in the User Profiles table.

Yes, more or less.

I’m not sure why you would want/need to, but yes you can certainly do this.

I don’t really see this as a concern.
I do personally almost always use a Google Sheet for my user profiles, but for other reasons:

  • I think it’s good practice to always have a Google Spreadsheet as the data source for your Glide app, due to some of the current limitations of Glide tables. Most notably the difficulty in importing/exporting in bulk, and integrating with external sources (API’s, etc). So when I start a new app, the first thing I usually do is create a Google Spreadsheet with a single sheet, which becomes my User Profiles table.
  • Often some of the data in my User Profiles is sourced and/or shared with other applications, so it’s easier to do that if it’s based on a Google Sheet.
  • I use a lot of Apps Script in my projects, so I always need a Google Spreadsheet.

Nope, not that I’ve noticed. Glide computed columns are incredibly powerful, and because everything happens locally on the user device there is rarely any noticeable degradation in user experience as the number and/or complexity of computed columns increases. I have one app that has roughly 1500 computed columns, and it works fine.


Yes, indeed! But I can’t easily extract just the image to integrate in an html/css if need be.

My initial strategy to use Glide Table for User Profiles (and any table not complex to edit in Glide) was to stay within the 500 rows limits. As my purpose-driven app must remain Free. Which will be challenging to defend in front of my next project examinator, but I’m confident there’s nothing he/she can blame me for. I have a die-hard responses team :fist_right::fist_left:: ME.

I have mixed feelings concerning the display of User Name: there’s always a pending time, even without any visibility conditions (at first I thought it was visibility latence). And other customized messages I compute with Template Cols in User Profiles: always a pending icon showing before display, which perturbs the overall layout - things that pushes one another - until every component is in place (you cannot specify width and height to stabilise the placeholders while waiting for everything to load, or preload before displaying the whole screen).
So if I use columns of User Profile, I’m afraid I’ll get the same pending latency and “perturbations”.

No Zapier: only 100 as a monthly limit.
But nice to know. Thks