I saw there is a VSCode extension for Fauna which looks quite awesome. Unfortunately, users of other editors/IDEs can’t really benefit from it (IntelliJ and variants, Sublime, Nova, Atom, Visual Studio, Xcode, etc).
Wouldn’t it make more sense to have a Fauna desktop client app instead, so that any developer can benefit from that effort?
VSCode is popular among the web dev crowd, but I’m sure there plenty of Fauna users that don’t use it (me included).
I’m thinking of an app that can not only make queries and navigate the data, but also integrate with coding projects, do migrations, etc.
I think this is a great idea. I was looking at prisma.io the other day and they seem to have taken this path. They have a “studio” application and they have a migration app. Fauna should totally do this.
This is an interesting idea Pier. Do you have any good examples of clients that do something like that where we get inspiration from? Thanks @miql for that first link, I’ll look into that. This is how I imagine your question, let me know if that’s accurate.
Queries: something similar as the fauna dashboard, but as a desktop client, would a repackage as a desktop client make sense?
Schema migrations: I just wrote a (still unofficial until validated) schema migration tool that will be released this week. Currently, it’s a command line tool. From the above, I assume that you see value in having such a migration tool be part of the UI of a desktop client. Is it correct to imagine this as, ‘you add a resource, migration appears in the UI’, you click migrate (and might have your different databases on which you can migrate in the UI) or would you rather see something that has the full manual capabilities of the Fauna dashboard to write custom queries but doesn’t really deal with schema migrations in an apply/rollback fashion?
Data migrations: would you like to see data migrations in there as well? Arguably some people might need the host language of their choice for complex data migrations besides of pure FQL, so I’m not certain whether that would work well. I’m still undecided on the best way to make data migrations easier and would love to pick your brain on your needs in that area.
Integrate with coding projects: what would the integration entail? Are you thinking about language servers etc?
It would certainly work in terms of UI, although for a desktop app to make sense it would need to have more features than the web dashboard though.
Hmm I imagine that’s for GraphQL? I’ve never used GraphQL with Fauna but I’d love to have some sort of schema definition for FQL though.
What I’m imagining is having something like a .fauna file/folder at the root of the project with different environment configs (dev, prod, staging, etc) and being able to switch to different environments. Something like firebase use dev.
As for migrations, what I’ve used in the past with Postgres is having up and down migration files with regular SQL commands (create table, add/remove/change column, etc). Maybe doing something like fauna migrations init would create a collection to store the applied migrations for a particular database. Then fauna migrations create would create a new migrations file that can be edited with the necessary FQL queries, maybe even GraphQL schema changes? Then fauna migrations up would apply the unapplied migrations to the selected database. Etc.
Honestly, the more I think about these features, the more I think a CLI rather than a GUI would probably make more sense.