Product Development · May 13th, 2024

Publicly Collaborating on Project Feedback

Dan Pastori@danpastori

Ever want to quickly share feedback? Maybe a fellow dev just wants you to take a look at their app and give some constructive feedback? Or you are working in public and want to share all feedback reported publicly?

With Bugflow, you can quickly share an entire project’s feedback or an individual piece of feedback with the world. Of course, you are in full control.

Share Entire Project's Feedback

Share an entire project's feedback

With in any project, you can quickly view the feedback page. On the feedback page, click the "Share" button in the top right. You will be prompted to publish the page to the web. This shared page will be the listing of your entire project’s feedback.

Anyone with the link will be able to view all feedback on the project and expand the feedback to view comments. However, secure items such as GitHub issue number, integration interactions, etc. will be hidden.

Once you share the project’s feedback, you can apply settings to how long the link should be active. This puts you in full control of how long you want to share the feedback for anyone who has the link.

Publicly shared project

What if you don’t want to share everything on the project? We’ve got you covered.

Share One Feedback Item

Similar to sharing all feedback items, you can share a single piece of feedback. This will give any user who has the link access to the piece of feedback where they can leave a comment.

Sharing one piece of feedback is perfect for those scenarios when you want to collaborate in public on an item, collect information and insight, and work on resolving without opening up your entire project.

To share, simply click on the feedback item you wish to share and the popout will open. On top, click the "Share" button, and "Publish".

Sharing a single feedback item

You will now have a public link where you can copy and share with your collaborators. Similar to the entire project’s feedback, you can set the link expiration time to expire after a certain amount of time.

Share an item for a designated amount of time

Turning off Public Sharing

Let’s say you want to immediately stop sharing a link. This is as simple as sharing. On both project and individual feedback items, you can click “Link Settings” on the blue banner to pop up your link’s settings. All you have to do is click "Unpublish".

Unpublish shared project or feedback

Immediately all links will be expired and no one will be able to view the feedback. This makes it a breeze to work collaboratively with users of your application.

How it Works

So how does link sharing work? To be direct, it’s the magic of Laravel’s signed urls combined with some database love. Let’s take a look.

Creating a Public URL

When we actually create a public URL, two things happen. First, we generate a signed URL based on the UUID of the project or the UUID of the project and the feedback. This will create the publicly accessible link.

Second, we persist the settings to the database on whether the link is published and how long it’s published for. We don’t create a temporarily signed URL, we handle the "temporary signing" on the database side. So if the setting is to expire in an hour, we set the link_expires_at field in the database to be the current time, add an hour. We also flag the project or the feedback as published. This will come into play in the next section.

Accessing the URL

When a user who is not authenticated accesses a signed URL, we first check if the URL has a valid signature. This is the Laravel way of approaching signed URLs. If the URL has a valid signature and not altered in any way, we do another check.

The next check is if the feedback or project is published. This is important. Since we aren’t using temporarily signed URLs, a user could have an indefinitely signed URL which would be valid even after it’s expired. By checking the published flag, we ensure that the URL is still active with the time frame defined. If both validations are true, the user can access the page!

Cleaning Up Expired Links

To tie everything together, we have a scheduled task that is run every minute to ensure that links that have expired are properly terminated. It’s fairly simple. If the command finds a project or feedback where the link_expires_at is less than the current time, we set the published flag to false and prevent public access. Now users even with a valid link will be turned away since the project or feedback is not published.

Address Feedback in Record Time

Our goal is to enable you to address feedback in record time when using Bugflow. Even if the user is not a part of the Bugflow project. By creating publicly accessible links, you can safely and securely collaborate on feedback in public. Want to give it a try? Start your 15 day free trial and let us know what you think! You can report feedback on Bugflow itself from within Bugflow!

🚀 We're building in public

Be the first to know of the latest Bugflow news.
    Dan Pastori
    Jay Rogers