RFC: Pevensie v0.1.0 #1
Replies: 9 comments 35 replies
-
Not overly fond of the cute module names tbh 😂 it just adds overhead knowledge for onboarding and keeping track of the project structure |
Beta Was this translation helpful? Give feedback.
-
A billing/payments module would be quite nice, but is definitely not top-priority. |
Beta Was this translation helpful? Give feedback.
-
Might be ambitious but a livewire esque experience would be a nice addition though a case might be made for lustre to implement this instead of pensive as I see no work for a modern frontend in this spec. I also don't really understand the reasoning behind maybe including a Routing module. A web framework not including routing seems like a wierd decision if it is intended for the web. |
Beta Was this translation helpful? Give feedback.
-
I'm not sure if this is within the scope of this project or if it should be handled elsewhere, but I would love a sort of front-end "component framework", similar to something like shadcn/ui or material ui. As a lazy front-end dev, I sometimes just want to use pre-built components for 90% of things and not have to think about it. |
Beta Was this translation helpful? Give feedback.
-
You forgot about Caching, where we can have different drivers, any db; valkey (redis), sqlite, and others |
Beta Was this translation helpful? Give feedback.
-
I'm working on my first project in Laravel, and one thing that's making it both easy and enjoyable is Jetstream. Jetstream includes features like multi-user schemes and other essentials commonly found in SaaS applications. I believe that Pev (Pevensie) could benefit from having something similar. We might want to start with a simpler solution like Breeze. |
Beta Was this translation helpful? Give feedback.
-
Beta Was this translation helpful? Give feedback.
-
I've been doing some thinking about how Pevensie should be structured. Originally the plan was to have a number of separate libraries that the user could pick and choose from and plumb together. The reason for this decision was that a lot of the services we're going to be building for Pevensie don't already exist for Gleam, and there would be a community benefit to having them separate. However, there's also a case to be made for keeping everything tightly integrated. Done well, a tightly-coupled, opinionated framework can drastically improve developer velocity and it would actually be easier to implement on our side, too. That said, I still want Pevensie to have a wider benefit to the community, so I think that any core functionality we build should (where sensible) be released as a separate package. A good example is Pevensie/jargon, which was originally going to be part of This would also give us tighter control over the framework as a whole. Thoughts? |
Beta Was this translation helpful? Give feedback.
-
Sitemap & Robot policy generation would be a huge convenience it's a pain to do right now there's no libraries for it and it's a huge part of larger projects to make sure search engines are accurately finding and ranking content. |
Beta Was this translation helpful? Give feedback.
-
Pevensie is the first attempt at a batteries-included web framework for the Gleam programming language. Think Laravel/Phoenix for Gleam.
This discussion is for discussing what a very basic initial version of Pevensie would look like. What modules should it include? What should the overall ethos of the framework be?
Required modules will probably look something like:
The term 'module' here is being used to mean 'part of the Pevensie ecosystem', and not necessarily a module within a Pevensie mega package. I think each should be installable and usable separately, but they will be built to work best with each other. See this comment for more context.
These are listed roughly in priority order, though it's unclear as of yet whether a routing module is necessary. There may be a case for it for autogenerating an OpenAPI schema, though that would likely come at the cost of performance when compared to pattern matching. Ideally each module (apart from maybe the server) should be optional when building a Pevensie application, but they should all work together seamlessly.
Ideally, Pevensie should be built on the great work of the community so far. This will enable us to get started quicker and hopefully lower the barrier to entry for existing Gleam devs coming to Pevensie.
Current thoughts are:
Naming: why 'Pevensie'?
Pevensie is named after one of the best Lucys in modern literature - Lucy Pevensie from Narnia! In some sense, this was inspired by Laravel, which was so named because 'Laravel' rhymes with 'Cair Paravel' (from Narnia) and Taylor Otwell thought the name was cool. Well, we decided to run with the theme, and since Gleam's mascot is already called Lucy, we didn't think there was much debate to be had.
Pevensie modules could also be Narnia themed. For example:
import pevensie/aslan
gleam run -m pevensie/wardrobe new <name>
More name suggestions are welcome! Make sure you provide reasoning :)
Beta Was this translation helpful? Give feedback.
All reactions