Normalize a text for Slug without using plugin

Hello friends, how are you? I would like your help, today I have a system that uses many dynamic pages based on the company name followed by the name of the page (example: Hotel New York (name of the hotel) - kitchen (title of the dynamic page), currently I use plugin “Normalize Text”, but it overloads the server a lot when the user changes the name of the hotel because all dynamic pages need to change the slug to the new name. How to solve this without using the plugin?

Slug is set on a thing, not a page. Page might have a thing as a data type (Current page thing). So you might need to change often the slug of the thing.

From the question I suspect that you might just need a clean URL like …/new-york-hotel/kitchen.


So my system is multi-company, so I can have
……/new-york-hotel/kitchen, but I can also have a …/ohio-hotel/kitchen.
Because of that I’m using the Current Page slug to make the URL cleaner
But my current problem is when I need to change the “…/new-york-hotel/kitchen.” to “…/wall-street-hotel/kitchen.”
I use a Backend Workflow to change the Slug of all dynamic pages.
Here’s the link to the editor so you can understand better.
View the “Slug” Workflow

I would like to remove the “normalize” plugin and use a Regex or something like that, because every time I have to run this changing Slug it overloads the server a lot.

Sorry to also take advantage of the opportunity, but can you tell me how it would be possible for me to improve the rendering performance of the site?
During navigation, as everything is very dynamic, I have a delay for the background and data visualization.
Below is a link to an example of use.
https://hotel.slideworks.cc/version-test/h/paulista

I think dynamic slugs for navigation is a really bad practice. Setting the slug in the backend takes a while and it adds delays to the navigation. Also one thing can only have one slug - so if you change slug “new-york” to “new-york-kitchen” - the page “new-york” won’t open and you get 404 error. Such links are not shareable. And this is also terrible for SEO.

I’ve looked at the website. It should be build on the single page with the usage of reusable groups for every screen view. Navigating between pages in your case creates the delay.

I recommend you to rebuild the app on a single page (NoCodeSaaS - Building fast & maintainable apps - Issue #2) and implement clean URLs (https://youtu.be/9hrOgHHjwI0)


And how can I make a clean URL?
I started restructuring the app to do it the way you indicated, but I don’t know how to leave the URL clean
currently she stays: https://hotelspateste.bubbleapps.io/version-test/h/test?p=room-service

I manage to leave something like: https://hotelspateste.bubbleapps.io/version-test/h/test/room-service
or
https://hotelspateste.bubbleapps.io/version-test/h/test?room-service

OBS: navigation is still broken if you try to test it and I created a copy of the app to make these changes without affecting the official version: https://hotelspateste.bubbleapps.io/version-test/h/test

Implementing clean URL structure requires to rebuild the whole navigation.
In short, you show/hide groups based on the URL path segments. For this you make the groups not visible on the page load and add conditions on them - like this one `when get data from URL item#2 is kitchen this group is visible’. I highly recommend to use an option set for storing the path segments (I call it “views”).


1 Like

This topic was automatically closed after 70 days. New replies are no longer allowed.