Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Create a new repo fastify/demo #1001

Closed
jean-michelet opened this issue Feb 27, 2024 · 38 comments
Closed

Create a new repo fastify/demo #1001

jean-michelet opened this issue Feb 27, 2024 · 38 comments
Labels
help wanted Extra attention is needed

Comments

@jean-michelet
Copy link

jean-michelet commented Feb 27, 2024

When I was in the PHP ecosystem, I worked with the Symfony framework. They have created a symfony/demo repo using what they consider best practices. I found the perspective of reading the code of a web project considered optimal by the core team very useful and reassuring.

Do you think it's worth it?
If so, I'm fully committed to work on it.

I'm not sure what the theme should be, though. It seems that the main type of development in the Node ecosystem are apis.

@jean-michelet jean-michelet added the help wanted Extra attention is needed label Feb 27, 2024
@jean-michelet jean-michelet changed the title Create a new repo fastify/demo to learn by looking at a concret project Create a new repo fastify/demo Feb 27, 2024
@Uzlopak
Copy link

Uzlopak commented Feb 27, 2024

Imho

It is already too much work to maintain the core plugins. I have the feeling that few core deps need more love but we have currently no time.

It would be cooler if you first help with the other plugins before we open a demo repo.

If the core plugins are all green, a demo repo on top would be no Problem.

@jean-michelet
Copy link
Author

If the core plugins are all green, a demo repo on top would be no Problem.

You mean code coverage?

@metcoder95
Copy link
Member

Do you have a concrete example you are willing to share or would you like to start one?
Maybe we can start from there, have a look and decide further steps

@jean-michelet
Copy link
Author

jean-michelet commented Feb 27, 2024

Do you have a concrete example you are willing to share or would you like to start one?

I'd like to start a clean repo, following carefully the doc and trying to find interesting uses cases. Something basic at first, in order to gather your feedbacks and plan what to do next.

But I'd like to know if you're interested before jumping in.

@jean-michelet
Copy link
Author

Sorry @Uzlopak, I recently worked on an issue to increase test coverage on find-my-way and so I understood "all green" = 100% test coverage. I guess you meant I should help you with the issues on core plugins, right?

@metcoder95
Copy link
Member

I believe any contribution can be of value, and this seems to provide good basics to start with fastify as framework; happy on my side to support you by giving a look at it 🙂

@jean-michelet
Copy link
Author

Thanks for the proposal @metcoder95,

It's not urgent so I can gradually work on this demo and looking at ongoing issues to help you with core plugins.

@mcollina, are you open to the idea of an official demo repo on your side?

@melroy89
Copy link
Contributor

melroy89 commented Mar 15, 2024

+3 I would like seeing such an official demo repo using several plugins like maybe autoload, cors, env, helmet, mysql and swagger. With some routes, controllers, etc.

@hpmouton
Copy link

Thanks for the proposal @metcoder95,

It's not urgent so I can gradually work on this demo and looking at ongoing issues to help you with core plugins.

@mcollina, are you open to the idea of an official demo repo on your side?

Hey, I would love to help out with this. What is the status on this project?

@mcollina
Copy link
Member

I am! https://github.com/fastify/demo here is the repo!

@jean-michelet
Copy link
Author

@hpmouton
I'm very interested in this project, both personally and professionally, so I'm going to work on it as a priority. I think you'll be able to help by review the first PR I will make, which aims to set up the architecture with simple routing, autoloader, tests and so on.

After this first step, we could create a more feature-oriented roadmap to collaborate?

@hpmouton
Copy link

@hpmouton
I'm very interested in this project, both personally and professionally, so I'm going to work on it as a priority. I think you'll be able to help by review the first PR I will make, which aims to set up the architecture with simple routing, autoloader, tests and so on.

After this first step, we could create a more feature-oriented roadmap to collaborate?

Great stuff! Can't wait.

@melroy89
Copy link
Contributor

melroy89 commented Jun 3, 2024

@hpmouton I'm very interested in this project, both personally and professionally, so I'm going to work on it as a priority. I think you'll be able to help by review the first PR I will make, which aims to set up the architecture with simple routing, autoloader, tests and so on.

After this first step, we could create a more feature-oriented roadmap to collaborate?

The demo project for now is just a README file :\ So.. I dunno if Matteo already added more example code without committing or not. Otherwise maybe a PR?

@mcollina maybe you want to be more explicit about what you did already without pushing to the git repo? Since you want to avoid people doing duplicate work. Or did you only setup a README, LICENSE and a gitignore thus far?

@jean-michelet
Copy link
Author

As I understand it, Matteo created the repository so we could work on it ourselves. I offered to help create the demo, I didn't ask him to do it 😅

I'm going to push a very basic PR (no db, no auth, no features) this afternoon. Just the basic structure and from there we can create a roadmap and assign the tasks to volunteers.

Does that sound good to you @melroy89?

@jean-michelet
Copy link
Author

French hour afternoon ^

@melroy89
Copy link
Contributor

melroy89 commented Jun 3, 2024

As I understand it, Matteo created the repository so we could work on it ourselves. I offered to help create the demo, I didn't ask him to do it 😅

I'm going to push a very basic PR (no db, no auth, no features) this afternoon. Just the basic structure and from there we can create a roadmap and assign the tasks to volunteers.

Does that sound good to you @melroy89?

Ah that make sense. It wasn't fully clear to me what Matteo was going to do.

Sounds awesome! Add me to the review list if you want. I'm from The Netherlands, so our French afternoon, is the same as mine afternoon hour ;P

@jean-michelet
Copy link
Author

fastify/demo#1

@jcenlo
Copy link

jcenlo commented Jun 6, 2024

To be honest i had the same feeling about there is not a "rule" to use fastify but some guidance will be appreciated , more or less, almost all the material i found was created 3 years ago, researching a lot you can see the project is alive but the first contact is not good, like i expressed here #5502 - fastify/fastify#5502 (reply in thread), this demo will be very helpfully to understand basics

@jean-michelet
Copy link
Author

jean-michelet commented Jun 6, 2024

Fastify has a very good reputation from a purely technical point of view in the Node.js ecosystem, but it's true that communication could be improved.

I sincerely believe that there is room for an official Fastify academy offering courses on Fastify, advanced Node.js and software development more broadly. This would both generate profits to fund the project, as learners would prefer to be trained by the official academy, and potentially convert non-Fastify users who would be attracted by Node's advanced courses...

It could be interesting to offer plans for companies, which would send out a very positive signal.

Finally, the person in charge of communication could be a native English speaker. For example, Symfony is widely used in Europe, but it's an American who manages SymfonyCasts, in partnership with the company behind the Framework.

@jean-michelet
Copy link
Author

@jcenlo

I think once I've finished the demo, I'll work on fastify-cli The automatic commented code generation is very educational, I think the current component can be improved, the demo is an opportunity to think about what should be done for most of the projects.

@jcenlo
Copy link

jcenlo commented Jun 6, 2024

@jean-michelet thanks for the effort, i am designer and developer , i use to work more in frontend, ux, ui , etc... In any case, if there is anything I can help with to spread the project and improve its dissemination and adoption, let me know, I will be happy to collaborate.

@jean-michelet
Copy link
Author

i am designer and developer , i use to work more in frontend, ux, ui , etc...

Maybe there are opportunities to contribute here:
https://fastify-vite.dev/

if there is anything I can help with to spread the project and improve its dissemination and adoption

Fastify is doing pretty good:
adoption

I don't understand why people keep massively downloading Express though, maybe for legacy reasons and work opportunities.... But I know it annoys a lot of developers around me, who would prefer to see Fastiy or Adonis used. I think you'd make a positive contribution by using Fastify for your professional projects, and maybe hiring some developers if you can ^^

@melroy89
Copy link
Contributor

melroy89 commented Jun 7, 2024

I don't understand why people keep massively downloading Express though, maybe for legacy reasons

Yes. Legacy reasons. Porting from express to fastify basically means starting from scratch if you want to use the fastify ecosystem in it fullest with their plugin system.

And then you have tons of people that are simply not aware. I wasn't aware of the existence of fastify, only after much digging and looking for alternatives. The de facto "standard" for a web application framework in nodejs is still express, due to all the media/blog post coverage and just people heard about it. Similar how Google is the most known search engine.

@jcenlo
Copy link

jcenlo commented Jun 9, 2024

I can share my perspective based on my experience.

I started as a graphic designer, then moved to web design, and eventually into web development. Naturally, the next step was to learn programming, so I chose ReactJS. I found countless courses on creating a MERN stack, all of which used Express.js for the server. There are many resources, articles, and AI tools available to help with Express.

Two years passed, and I had no idea about Fastify. My Express server worked fine, and I didn’t look for alternatives until I needed more power for my project. A senior dev friend suggested Fastify, and I started researching it.

However, I found limited content about Fastify, most of it dated 2-3 years back. There wasn’t much in TypeScript or a solid architecture demo like this project. This gave me a sense of abandonment.

What I want to communicate is that adoption should start from the ground up, with juniors and beginners willing to try new things. To attract them, there need to be tons of articles, examples, and a solid starting point.

Good ambassadors like popular instructors, streamers, or course platforms could help. I often use Udemy and complement it with extensive research. While Fastify is powerful, it's less known because instructors prefer proven tools to avoid student frustration due to lack of resources.

Fastify is young but needs more 'salsa'. It’s not an overnight task, but it needs a bit more push to grow.

@jean-michelet
Copy link
Author

What I want to communicate is that adoption should start from the ground up, with juniors and beginners willing to try new things. To attract them, there need to be tons of articles, examples, and a solid starting point.

It's a tricky question. As a trainer, it's your duty to direct juniors towards the wealthiest possible job market. Besides, I don't think I'd recommend specializing in the backend as a junior.

Moreother, Fastify is community driven, so if you want a new feature or your bugs fixed, opening an issue will result in a response like “No, because...” or “Ok, do you want to push a PR?”. You have to get your hands into the code, and the reality is that opensource is difficult even for many experienced developers, both technically and mentally -> accepting to be vulnerable by making mistakes publicly.

I think that adoption by experienced devs and entrepreneurs can have a significant impact, because they're the ones in a position to adopt new technological solutions or have them adopted, and therefore, by domino effect, influence the job market.

So while I share your view that communication could probably be improved, I wanted to bring another perspective.

@mcollina
Copy link
Member

While Fastify is powerful, it's less known because instructors prefer proven tools to avoid student frustration due to lack of resources.

I disagree with this analysis. Instructors prepare courses they can sell, and most of the market is still express-dominated. As a result, instructors cover express.
This has little to do with the content available for Fastify.

Note that Fastify is open-governed and run by volunteers. As a result, if anybody wants to contribute a blog or a tutorial, we are happy to support them. Nobody is blocking it.

Moreover, Fastify is not young by far. It's also used by quite a few major companies worldwide.

@jean-michelet
Copy link
Author

Note that Fastify is open-governed and run by volunteers. As a result, if anybody wants to contribute a blog or a tutorial, we are happy to support them. Nobody is blocking it.

Does this mean that these volunteers can do educational business and benefit from community support, like links in the doc to promote them? Maybe experienced and regular contributors. Because creating quality content like video tutorials for free seems really difficult IMO.

@jcenlo
Copy link

jcenlo commented Jun 11, 2024

@mcollina @jean-michelet
I want to apologize for my previous comment and any misunderstanding it may have caused. My intention was to share my perspective as someone very new to Fastify and express my feelings when I first searched for content. I realize now that I spoke without doing thorough research, and I am sorry if I caused any discomfort.

Thank you for the feedback.I still have a lot to learn about Fastify.

@jean-michelet
Copy link
Author

I want to apologize for my previous comment and any misunderstanding it may have caused.

Don't worry about that 😉

@mcollina
Copy link
Member

Does this mean that these volunteers can do educational business and benefit from community support, like links in the doc to promote them?

It really depends on a case-by-case basis. I don't expect much more than what we did for the book.

@mcollina
Copy link
Member

@jcenlo I actually did a 1 hour and a half vidoe on the topic in January: https://www.youtube.com/watch?v=x3SG71Ut2tA&t=1s.

@jean-michelet
Copy link
Author

@jcenlo

Do you think this type of tool would have helped you adopt Fastify?

fastify/fastify-cli#740

@melroy89
Copy link
Contributor

melroy89 commented Jul 6, 2024

@jcenlo

Do you think this type of tool would have helped you adopt Fastify?

fastify/fastify-cli#740

I love it. Hopefully that pr will eventually be merged.

And hopefully this pr will also be finalized. Not sure what the open actions points are. If any.

@jean-michelet
Copy link
Author

Yep, I am really interested in developer experience and education more broadly.
This is why I plan to work mainly on the demo, fastify-cli and the autoloader.

Talking about the demo, first PR is about to be merged, so I created a roadmap issue.

Interested by your feedbacks: fastify/demo#2

@jcenlo
Copy link

jcenlo commented Jul 8, 2024

@jean-michelet , brilliant , let me try it but look amazing, i will give you feedback in a couple of days i am really busy at the moment, thanks for your efforts

@jean-michelet
Copy link
Author

FYI, it is still an idea for now ^^

But I will probably do it.

@simoneb
Copy link

simoneb commented Aug 29, 2024

As the repo exists now, I think we can close this issue. https://github.com/fastify/demo

@melroy89
Copy link
Contributor

Agreed

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
help wanted Extra attention is needed
Projects
None yet
Development

No branches or pull requests

8 participants