-
Notifications
You must be signed in to change notification settings - Fork 105
Presentator v3 Roadmap discussion #183
Description
Hi everyone,
I'd like to share with the community my plans for the next major version of Presentator and where the project is headed in general.
Without further ado, here is a short list of some of the currently planned changes and features for Presentator v3:
- Rewrite in Go and distribute as a single executable file (embedding the frontend, api and database) for easier self-hosted installation (breaking - no more shared-hosting support!)
- Redesign the frontend for more modern and cleaner UI
- Actual real-time collaboration support without relying on external services
- Better invite/share flow
- Prototype screens sections/grouping (eg. Proposal: Ability to add title screens #146)
- Draw and annotate over the shared designs (eg. Proposal : Canvas Mode #87, Proposal: Annotation capabilities #142)
- Finer controls over the received user notifications (eg. Proposal : Notification per project #83)
- Better incorporate the "Guidelines" feature in to the project prototypes
- Improve thumbs generation and memory consumption
- Super admin dashboard with some basic api metrics (eg. Proposal: analytics tools #144)
- (*) Allow users to have a public portfolio page to showcase their designs (like in Behance or Dribbble but without the pesky ads and tracking; depending on my schedule, this feature may not be included in the first v3 release)
The most breaking and time consuming change will be rewriting and redesigning the platform using Go.
Why the switch from PHP to Go?
Presentator has grown quite a lot since its first release in ~2016/2017. Not only the public free service (app.presentator.io) has already 12000+ registered users with more than 140GB+ uploaded files but there are also a lot of people self-hosting the platform. Which has led to numerous issues and support requests related to difficulties installing and properly configuring Presentator. In addition, the PHP API limits our options for real-time collaboration and you either have to further complicate the setup using something like Swoole or rely on 3rd party services like Pusher or Firebase.
This is why at the end of 2021 I decided to start working on a new general purpose backend written in Go - for now I've named it PocketBase. It will be a separate project but all its features will be aligned with what we'll need for Presentator.
It is inspired by Nhost and Supabase but rather relying on several different microservices, PocketBase will have everything included in itself - authentication, SQLite database with real-time subscriptions, files handling and super admin dashboard. The end result would be a Go library that will allow us to build quickly single executable platforms by just doing something like:
package main
import pb "pocketbase"
func main() {
pb.New().
AddListener("BeforeUserApiCreate", func (e *pb.Event) {
// some Presentator specific logic...
}).
Start()
}If you are curious, this is how PocketBase dashboard currently looks like:
(it is still a very early MVP but you could also explore some of the other screenshots here - https://app.presentator.io/#/6mote1hf)
Release schedule:
- finalize the unit tests and documentation for PocketBase and release it by the end of Q2/Q3 this year (the project repo(s) will be located here https://github.com/pocketbase)
- somewhere around Q4 (or Q1/Q2 the next year) release Presentator v3, including:
- migration script to automate the upgrade from v2 to v3
- new AdobeXD and Figma plugins to work with the new v3 api
- new landing site and api documentation
Please share your thoughts and what else you would like to see in Presentator v3 :)
