Hello everyone!
In the next few days, I'll start publishing posts on building Appwish - a platform where people can express their app wishes (e.g. "I wish I had an app for X and Y") and vote up other people's great ideas.
Developers can use Appwish to keep track of the most wanted apps and features. They can assign themselves to projects, create dev teams and collaborate to fulfil people's needs.
In the future, the platform could also introduce elements of fund-raising or voluntary donations for the most appreciated developers and teams.
In the project and tutorials I'll use all of the following concepts and technologies (& more)
- React.js - for building modern web UI
- GraphQL - for data exchange between UI and backend microservices
- gRPC - for backend inter-service communication
- Docker - for packaging applications
- Docker Compose - for setting up local development environment
- Vert.x - for creating high-performance, reactive microservices
- Kubernetes - for container orchestration
- Real-Time Data Streaming via gRPC & GraphQL
- Microservices architecture
If the project goes well, there's even more stuff in plans:
- Istio - additional layer on top of Kubernetes for managing service-to-service communications between microservices
- Many of the Cloud Native Computing Foundation projects like
- Jaeger - for distributed tracing
- Prometheus - for system monitoring
- React Native - for iOS & Android client (or other mobile native framework, contributions are welcome!)
The Goal
The goal of this project is to create a real-life application/platform using top trending technologies & describe all the steps in educational tutorial series. If the project goes well, it may be released someday!
Contributions are welcome!
After I set up the initial project skeleton I'd appreciate any contributions from people who would like to collaborate in app development and/or learn hands-on.
Frontend, Backend, DevOps - doesn't matter - you'll find your place here. There's lots to do!
Final Words
If you like (or don't) the idea - share your thoughts and let me know in the comments or on social media - I'd really appreciate it! You can also let me know if you'd prefer the tutorial in the form of blog posts or videos :) Thank you for reading!
EDIT:
Now you can also join us on Slack to learn more about the project - https://join.slack.com/t/appwish/shared_invite/enQtODk2NjE1ODkyMjMwLTU4NTNhYzBmYmI0MzNiNmJjNDU4MzRkNjI4ZTc4NWZmMzMyMTZmNWFjNDAzNTIwMDYzY2U5YWVhMTRkZGIyNmI
Top comments (95)
BTW. I see lots of Node.js developers interested in contributing - do you guys prefer sticking with Node or you want to learn something new?
For the first two microservices, I used Vert.x - it's a framework for building reactive applications on the JVM.
At its core, it's very similar to Node - it's event-based and uses event loop to process events. However, as it uses JVM languages(Java, Kotlin, Scala...), it's not limited to a single thread as Node - it uses "Multi-Reactor" pattern, where multiple event loops can process events parallelly (the optimal number of loops is based on CPU core number) vertx.io/docs/vertx-core/java/#_re...
As we use microservices, theoretically we could write other services using Node. But nothing is free - adding new languages to the stack comes with some costs.
So, would you like to try Vert.x or rather put some Node microservices to the game?
I can't say that I'm familiar with NodeJS, but I am certainly familiar with javascript. For me, however, I would prefer Vert.x, as I am interested in learning more about the JVM languages / ecosystem.
(disclaimer: while I hope to contribute, I don't know that I will, so I don't know how much my opinion should matter)
I love Nodejs. But I have a short experience in JAVA. I would like to keep learning more of java. For me it's not a problem learn something new.
Great to hear that :)
Hello Patryk,my core Stack is React / Java but I don't working with any language so I wouldn't mind a polyglot environment. Here's my github id: ahwinemman 😉
I've sent you invite on . Github - feel free to join Slack: join.slack.com/t/appwish/shared_in...
We choose node
How come you didn't go with Go lang and went for Vert.x instead?
Hey @pjeziorowski , excited for your App, I'm more of a Java/Microservice guy and would love to contribute in same. I would love to learn Node and Vert.x
Add me as a contributor , my GitHub id is @ashutosh049
Great. We need Java microservice guys if we go with Vert.x :D
Perfect. That's what I do at work. Count me in.
I will learn a lot for sure
I have to get my hands dirty this year. I have been reading documentation and watching tutorials since 2017 without putting them into practice.
I would be grateful if you could add me as a contributor to this awesome project. Working alongside experts would inspire me a lot and I am sure I will learn more from this project.
GitHub:
github.com/Parables
Email: parables95@gmail.com
I'll soon create an organization on GitHub with a task board.
After it's done I'll add you all guys as contributors if you're interested :)
Yeah. Intrested
A slack channel would greatly help everyone to contribute and form groups to contribute module or necessary feature or idea.
Yeah, that's a GREAT idea. I had been thinking about this yesterday but didn't have enough time to create one. I'll share an invite link soon :)
I'm very interested.
Github: github.com/ahwinemman.
Email: ahwinrukevwe@gmail.com
As this comment section gets bigger and bigger it's getting hard to manage - I hope I haven't missed anyone :) If you haven't received the invitation to join project on Github, ping me on SLACK:
join.slack.com/t/appwish/shared_in...
This channel will be also used for talks about development, new features & ideas, so I kindly ask all people involved/interested in contributing to join :)
@rricardotj @ahwinemman @rv1448 @ashutosh049 @narutosanjiv @mfahad1 @ducminh @noelchanwh @krsanty @quangthanh0909 @mojjammil & all others
Thanks Patryk for sharing slack channel.
Feel free to join! :)
Hi @pjeziorowski , really good initiative, on the vert.x side, I can also add that vert.x is a polyglot framework, which means that you can use Java and also use JavaScript if you like.
I see that there is interest on JavaScript so if you want to showcase the polyglot aspect, please also look at reactiverse.io/es4x/ which is the successor of the current javascript binding.
This reactiverse.io/es4x/ looks dope :) I've never heard of somebody using Vert.x with JS extensively though
You don't have to use Docker Compose as a local dev environment.
When deploying to Kubernetes, you might as well develop directly on it.
Several tools allow you to do this such as Skaffold, Garden & Okteto
I've heard about Skaffold before but never used it, I'll definitely give it a closer look.
looking forward to this.
Damn cool stuff! I'm a decade old developer with a perpetual imposter syndrome! Time to get my hands dirty! This project is so exciting. Thanks for doing this! I'm definitely going to learn a lot and hopefully be contributing in a big way as well! Add me please
GitHub account: @avelang
Email address: abey[dot]velangadan[at]gmail[dot]com
Great! I'll add you soon - you can also join us on Slack :)