Merge branch 'release'

This commit is contained in:
vincanger 2023-02-02 15:35:29 +01:00
commit 6c3e0b92e3
29 changed files with 390 additions and 0 deletions

View File

@ -0,0 +1,142 @@
---
title: 'Wasp Beta December 2022'
authors: [matijasos]
image: /img/update-dec-23/banner.png
tags: [webdev, wasp, startups, github]
---
import Link from '@docusaurus/Link';
import useBaseUrl from '@docusaurus/useBaseUrl';
import InBlogCta from './components/InBlogCta';
import WaspIntro from './_wasp-intro.md';
import ImgWithCaption from './components/ImgWithCaption'
<ImgWithCaption
alt="Wasp Update Dec 22"
source="img/update-dec-23/banner.png"
/>
*Want to stay in the loop? → [Join our newsletter!](/#signup)*
Hey Wasp tribe 🐝 ,
Happy New Year! I know you're probably already sick of hearing it, but hopefully we're the last ones to congratulate you 🔫 👈 (that's pistol fingers emoji in case you were wondering).
<!--truncate-->
<ImgWithCaption
alt="Pistol fingers"
source="img/update-dec-23/pistol-fingers.gif"
caption="This is how I imagine myself telling the joke above."
/>
Now that the [Beta Launch](/blog/2022/11/29/wasp-beta) craze is over (thanks for your support, it was amazing - we saw more devs hacking with Wasp than ever!), we're back to our usual programming. Let's dive in and see what's new and what's in the plans for this year:
## 🎮 🐝 We hosted our first hackathon - it was a blast! 🎉 🎉
<ImgWithCaption
alt="Tweet about Wasp"
source="img/update-dec-23/tskaggs-tweet.png"
/>
We launched our first Wasp hackathon ever on the last day of Beta Launch (thus we named it Betathon) and got some [really cool submissions](/blog/2023/01/11/betathon-review)! Winners received hosting credits kindly offered by our partners at [Railway](https://railway.app/) and a special 1st place award was a wasp-themed mechanical keyboard (we're still assembling it but we'll post photos on our [twitter](https://twitter.com/WaspLang) :))!
> “***This was the best app dev experience I ever had!*** *…Walking through the docs, I immediately figured out how to use Wasp and was able to make a prototype in a couple of days.”* - Chris
>
To check out the winning projects and see where devs found Wasp most helpful, take a look here: [Wasp Betathon review post](/blog/2023/01/11/betathon-review)
## 🔑 New auth method - GitHub! 🐙
Next to [username/password](/docs/language/features#username-and-password) and [Google](/docs/language/features#google), **Wasp now also supports [GitHub](/docs/language/features#github)** as an authentication method!
<ImgWithCaption
alt="Support for GitHub auth in Wasp"
source="img/update-dec-23/github-auth.png"
/>
Putting the code above in your `main.wasp` file and specifying your GitHub env variables is all you need to do! Wasp will provide you with a full-stack GitHub authentication along with UI helpers (GitHub sign-up button) you can immediately use in your React component.
For more details, check the docs [here](/docs/language/features#github).
## 💬 Let's discuss - on GitHub Discussions!
<ImgWithCaption
alt="Wasp is now on GitHub Discussions"
source="img/update-dec-23/gh-discussions.png"
/>
So far we've been capturing your feedback across [GitHub issues](https://github.com/wasp-lang/wasp/issues) and [Wasp Discord server](https://discord.gg/rzdnErX), but with the current volume it has become a bit unwieldy and hard to keep track of.
That's why we introduced [Wasp GitHub Discussions](https://github.com/wasp-lang/wasp/discussions)! It's a relatively new service by GitHub that allows distinguishing between specific, well-defined issues (bug reports, TODOs, ...) and discussion items (ideating about new features, figuring out best practices, etc) and allows for upvotes from the community.
If there is a feature you'd like to see in Wasp (e.g. support for Vue) you can create a new post for it or upvote it if it is already there!
## 🚀 Next launch is coming - a super early sneak peek 👀
<ImgWithCaption
alt="Next launch sneak peek"
source="img/update-dec-23/next-launch.png"
/>
We know we just wrapped up Beta release, but we are busy wasps and our heads are already in the next one! We made a preliminary draft of the features that are going to be included - **the "theme" of this release is going to be about making Wasp super easy and friendly for you to use**.
We'll further polish our auth & deployment experience, along with ensuring TypeScript experience is fully typed and as helpful as possible. Stay tuned for the official roadmap and date of the next launch!
Want to make sure your fav feature makes it into the next release? [Let us know on Discussions](https://github.com/wasp-lang/wasp/discussions)!
## 🎥 Wasp is now on YouTube!
<ImgWithCaption
alt="Wasp is on YouTube"
source="img/update-dec-23/wasp-youtube.png"
/>
Thanks to Vince, who recently joined as Devrel (intro blog post coming soon!), Wasp now finally has [its YouTube channel](https://www.youtube.com/@wasplang/videos)!
We're just starting out but already made some splashes - our ["Build a full-stack app in 9 mins with Wasp and ChatGPT"](https://youtu.be/HjUpqfEonow) got over 2k views (not bad for a channel with 50 subscribers, right?).
We also made our first YT short, featuring [how to add auth to your app in 60 seconds](https://youtube.com/shorts/-daNTYiUC64?feature=share) with Wasp.
If you want to stay in the loop (and I guess you do since you're reading this :D), please [subscribe to our channel](https://www.youtube.com/@wasplang) and help us reach the first 100 subscribers on YouTube!
<ImgWithCaption
alt="Subscribe to Wasp on YouTube"
source="img/update-dec-23/yt-cta.png"
caption="You know you want it!"
/>
## 🕹 Community highlights
* [Making Something Waspy: A Review Of Wasp](https://dev.to/emmanuelthecoder/making-something-waspy-a-review-of-wasp-571j) - an overview of Wasp by Emmanuel, one of our contributors and hackathon winners!
* [The first 2,000 GitHub stars of Wasp](https://podcast.bitreach.io/episodes/matija-sosic) (podcast 🔊) - I was a guest on the Scaling DevTools podcast by [Jack Bridger](https://twitter.com/jacksbridger) - we chatted about how Wasp started, what were the hardest parts and what are the plans for the future!
## Wasp Github Star Growth - over 2,000 ⭐️, woohoo!
Beta was great and it brought us to [2,234 stars](https://github.com/wasp-lang/wasp)! We never imagined Wasp could become so popular when we were just getting started. Huge thanks to all our [contributors](https://github.com/wasp-lang/wasp/graphs/contributors) and [stargazers](https://github.com/wasp-lang/wasp/stargazers) - you are amazing!
<ImgWithCaption
alt="Wasp has over 2,000 GitHub stars"
source="img/update-dec-23/gh-stars.png"
/>
And if you haven't yet, please [star us on Github](https://wasp-lang.dev/docs)! Yes, we are shameless star beggars, but if you believe in the project and want to support it that's one of the best ways to do it (next to actually building something with Wasp - [go do that too](https://wasp-lang.dev/docs)! :D)
And before you leave, here's a photo of a squishy wasp (ok, it's a bumblebee, but you get it) proudly rocking Wasp swag 🤘 🐝 (yep, we got a bunch of these for the office, you can also see Martin the background :D)!
<ImgWithCaption
alt="Wasp's new mascot"
source="img/update-dec-23/da-boi.jpg"
caption="This lil' boy actually became pretty popular in our community - we're now looking for a name for him!"
/>
Thanks for reading and see you in a month!
Buzzity buzz, you got that pizzazz 🐝 🐝,
Matija, Martin and the Wasp team
*Want to stay in the loop? → [Join our newsletter!](/#signup)*

View File

@ -0,0 +1,137 @@
---
title: 'Convincing developers to try a new web framework - the effects of launching beta'
authors: [matijasos]
image: /img/beta-launch-review/beta-feedback.png
tags: [webdev, wasp, startups, github]
---
import Link from '@docusaurus/Link';
import useBaseUrl from '@docusaurus/useBaseUrl';
import InBlogCta from './components/InBlogCta';
import WaspIntro from './_wasp-intro.md';
import ImgWithCaption from './components/ImgWithCaption'
<ImgWithCaption
alt="Alpha feedback"
source="img/beta-launch-review/alpha-feedback.png"
caption="How it started: feedback on Wasp Alpha, 3 years ago"
/>
We are developing an OSS web framework in a form of a config language (DSL) that works with React & Node.js. Getting developers to use a new tool (especially a web framework) is [a pretty hard thing to do](/blog/2022/09/29/journey-to-1000-gh-stars). We wished there were more stories of how today's mainstream tools got adopted that we could learn from, so that motivated us to document our own.
*Want to stay in the loop? → [Join our newsletter!](/#signup)*
<!--truncate-->
## TL;DR
- [HackerNews launch](https://news.ycombinator.com/item?id=33910997) post brought the most traffic, by far
- Product Hunt launch was worse then expected, bots took over
- Our goal was to reach GitHub Trending but we failed
- Less traffic overall than for the Alpha launch, but much higher quality of feedback + change of public perception
- Having a public launch date made us 3x more productive
## 📊 The results: stats
We [launched Beta](http://localhost:3000/blog/2022/11/29/wasp-beta) on Nov 27, 2022 in a launch week format, recently popularized by [Supabase](https://supabase.com/blog/supabase-how-we-launch). During the first week we launched on Product Hunt, and after the weekend we posted on HackerNews. Here's what the numbers were on the last day of the launch:
- 190 GitHub stars added to the repo
- 108 new projects started
- 83 new users (installed Wasp locally and ran it)
<ImgWithCaption
alt="Web visitors during beta launch week"
source="img/beta-launch-review/launch-week-visitors.png"
/>
HN launch caused almost 2x spike in traffic and usage. Also, although our launch week already ended by the start of December, we actually had the most users ever throughout December:
<ImgWithCaption
alt="WAU displayed monthly"
source="img/beta-launch-review/wau-monthly.png"
/>
Looking back, this wasn't at all our biggest event in terms of traffic, but it was in terms of usage:
<ImgWithCaption
alt="All time stats"
source="img/beta-launch-review/all-time-stats.png"
/>
One of the main effects of the launch (together with a [few](https://news.ycombinator.com/item?id=32098144) [recent](https://news.ycombinator.com/item?id=32566123) successful HN posts, and the [Alpha Testing Program](/blog/2022/11/16/alpha-testing-program-post-mortem) we ran in Jul '22) is that we managed to move the baseline WAU from ~10 to ~20. Another effect, felt more subjectively, is the change in the community perception (I will say more about it below).
## Before the launch
This was our initial plan:
<ImgWithCaption
alt="Launch timeline"
source="img/beta-launch-review/launch-timeline.png"
/>
For 20 days before the launch we were posting daily countdown banners on Twitter + a few polls (e.g. what's your favourite CSS framework) to engage the audience.
<ImgWithCaption
alt="Examples of pre-launch tweets"
source="img/beta-launch-review/prelaunch-tweets.png"
/>
[Our Twitter game](https://twitter.com/WaspLang) is still super young (~500 followers) so it didn't have a big effect but it helped to get the team excited and a few people also noticed it and commented/voted.
Due to the lack of time we ended up doing user testing in-house. That's still something I'd like to improve and make a habit of in the future.
A few other things we did prior to the launch:
- **Redesigned our project page** - gave it a new, sleeker look
- **Published [use cases with our most successful users](/#showcases)** and featured them on the project page
- **Activated our Discord and [email list](https://us4.campaign-archive.com/?u=8139c7de74df98aa17054b235&id=1195fce664)**
- **Organized a launch event** (call on Discord) to celebrate the launch - it went better than expected, a decent amount of people showed up and we had some good discussions!
## The launch
As mentioned, we went with a launch week format - we liked the idea of having a whole week filled with content rather than cramming everything in a single day. We highlighted a new feature every day + launched a hackathon on the last day of the week, to keep the momentum. You can see the full schedule [here](/blog/2022/11/26/wasp-beta-launch-week).
<ImgWithCaption
alt="Launch week schedule"
source="img/beta-launch-review/launch-schedule.png"
/>
We also shared our launch news at different places, most successful being [Product Hunt](https://www.producthunt.com/products/wasp-lang-alpha#wasp-lang-beta), [HackerNews](https://news.ycombinator.com/item?id=33910997) and [Reddit](https://www.reddit.com/r/javascript/comments/z7xo9t/wasp_dsl_framework_for_building_fullstack_js/).
## Product Hunt - failed, but ok
The mistake we did was launching on the Thanksgiving weekend - there was little (real) traffic + the mods were away so the bots took over!
We ended up as [#5 product of the day](https://www.producthunt.com/products/wasp-lang-alpha#wasp-lang-beta) with ~250 upvotes, which wasnt so bad because in the end we got featured in their daily newsletter with 1M+ subscribers.
The bad part was that mods were away and **pretty much all other products in front of us were fake or obviously bot powered!** It felt like there was no real interaction on any of these products, just endless “congrats on the launch” comments from the newly created accounts with obviously fake names. Two products were also clearly violating PH rules (one was the same product that launched a week or two ago, but just changed the name).
The most disappointing part for us (and especially for the team) was that it felt like there arent any real people on PH, just bots.
## 🕹 Post-launch: Wasp Hackathon #1 - Betathon!
Since we introduced all the new features during the launch week, we thought a good way to keep the community engaged and give them a reason to try Wasp Beta out would be to throw a hackathon! It was the first time we did so we weren't sure how it'd go, but it went better than expected!
<ImgWithCaption
alt="Tweet about Betathon - our #1 hackathon!"
source="img/beta-launch-review/hackathon-tweet.png"
/>
In the end, it was definitely worth it ([see review and submissions here](https://wasp-lang.dev/blog/2023/01/11/betathon-review)). It was quite lightweight to organize (we even made a [custom web app with Wasp for the hackathon](https://betathon.wasp-lang.dev/) which you can also [use for your hackathon](https://github.com/vincanger/wasp-betathon)) and we got some really nice submissions and community shout-outs.
## Community perception shift
As mentioned above, although our Alpha launch had higher absolute numbers (website traffic, HN upvotes etc), **it felt that Beta launch caused the biggest perception shift in the community so far**.
Before were mostly getting superficial comments like *“this looks cool, Ill give it a try once”*, or *“why DSL approach and not the other one”*, and this time we could notice that portion of people already knew Wasp from before (some even used it), and had more specific questions, even proposing next features that we planned but havent published yet.
<ImgWithCaption
alt="Beta feedback"
source="img/beta-launch-review/beta-feedback.png"
/>
Although the core message (DSL for developing full-stack web apps with React & Node.js) hasnt changed, there was significantly less pushback to the concept than before. I guess it comes down to the time elapsed and the product being more polished and validated from the outside - Beta, [published use-cases](/#showcases), [testimonials](/#testimonials), …
## Announcing a launch date publicly is great for productivity
Another big benefit we noticed from this type of launching is how much more productive it made the whole team. Although the launch date was totally self-imposed (and we did move it a couple of times internally), it was still an amazing forcing function once we announced it publicly. It focused the efforts of the whole team and it also felt great.
**We decided to keep going with the quarterly release schedule in this format - 3 months is just enough time to make a dent on the product side, but not long enough to get stuck or caught up with endless refactoring**. It also forces us to plan for the features that will have most impact on the developers using Wasp and make their lives easier, because we all want to have something cool and useful to present during the launch week.
## Conclusion
I hope you found this post helpful or at least interesting! Creating a new web framework might be one of the most notorious things to do as a developer, but that shouldn't be a reason not to do it - where are the new frameworks going to come from otherwise?
*Want to stay in the loop? → [Join our newsletter!](/#signup)*

View File

@ -0,0 +1,69 @@
---
title: "The Best Web App Framework Doesn't Exist"
authors: [vinny]
image: /img/best-framework/pretending.png
tags: [framework, StateOfJS, react, webdev]
---
import Link from '@docusaurus/Link';
import useBaseUrl from '@docusaurus/useBaseUrl';
import InBlogCta from './components/InBlogCta';
import WaspIntro from './_wasp-intro.md';
import ImgWithCaption from './components/ImgWithCaption'
<br/>
The web app framework you choose doesnt *really* matter. Well, it matters, just not as much as others would like you to believe.
The fact that so many libraries and frameworks exist in 2023, and that **the best one** is [still hotly debated](https://joshcollinsworth.com/blog/self-fulfilling-prophecy-of-react), proves my point. Its the web developers biggest “first-world problem” — a problem thats not really a problem. On Maslows *Hierarchy of Developer Needs,* its definitely near the top (ok, I made that up 😅)
<br/>
<ImgWithCaption
alt="hierarchy of developer needs"
source="img/best-framework/hierarchy-of-dev-needs.png"
/>
<br/>
<!--truncate-->
For example, according the the [StateOfJS](https://2022.stateofjs.com/en-US/libraries/front-end-frameworks/) survey, there were 5 Front-end Frameworks with good retention in 2018, now there are 11 in 2022. Thats a 120% increase in a matter of 4 years, and thats not even taking into account the hot meta-frameworks like NextJS, SvelteKit, or Astro!
<br/>
<ImgWithCaption
alt="State of JS 2022"
source="img/best-framework/state-of-js.png"
caption="A growing family of frameworks..."
/>
<br/>
These are great developments for the space, overall. They improve things like developer speed, bundle size, performance, and developer experience. But they also make it damn hard for developers and teams to make a decision when trying to decide which to use for their next project. Its even worse for beginners, which is probably why they just go for React — which, of course, is perfectly fine.
And I think all of this is OK, because in the end it doesnt really matter which one you choose. When it really comes down to it, all that matters is that the framework you chose:
- Is stable
- Allows you to move quickly
- Allows you to reach your end goal
Why? Because most of them are built around the same concepts, have proven themselves capable of performing at scale, and have communities you can engage with and learn from.
React might be the most prominent in job descriptions, but if youre looking for a new role and only have experience in Vue or Angular, I cant imagine it would take you more than a week to build a side-project with React to display your ability to prospective employers.
On the flip side, if youre a beginner or Junior dev, once you have the basics of HTML, CSS, and JS under your belt, it doesnt really matter what framework you learn. I personally started learning backend development with Node/ExpressJS, but landed my first role as a Frontend developer with Angular. In my second role I used NextJS, and now I work with [Wasp](https://wasp-lang.dev) (a full-stack framework built on top of React and ExpressJS). [Developers never stop learning](https://www.youtube.com/watch?v=gl5HvBpUbt8), so its kind of a non-argument to deride any specific framework — unless it really sucks, but then no one will continue to use it anyway.
<br/>
<ImgWithCaption
alt="Use what works"
source="img/best-framework/midwitwasp.jpeg"
/>
<br/>
So, in the end, use what works. Because in 99.99% of cases, your choice of web framework will not decide the fate of your project.
If youve done a bit of research and found a framework that suits your needs and you enjoy using it — use it. Theres really no good reason not to.
<br/>
<hr/>
*Want to stay in the loop? → [Join our newsletter!](/#signup)*

View File

@ -28,6 +28,21 @@ module.exports = {
isCloseable: false,
},
*/
imageZoom: {
// CSS selector to apply the plugin to, defaults to '.markdown img'
//selector: '.markdown img',
// Optional medium-zoom options
// see: https://www.npmjs.com/package/medium-zoom#options
options: {
/*
margin: 24,
background: '#BADA55',
scrollOffset: 0,
container: '#zoom-container',
template: '#zoom-template',
*/
}
},
navbar: {
title: '.wasp (beta)',
logo: {
@ -158,6 +173,7 @@ module.exports = {
'/js/fix-multiple-trailing-slashes.js'
],
plugins: [
'plugin-image-zoom',
async function myPlugin(context, options) {
return {
name: "docusaurus-tailwindcss",

25
web/package-lock.json generated
View File

@ -17,6 +17,7 @@
"autoprefixer": "^10.4.13",
"classnames": "^2.3.2",
"clsx": "^1.2.1",
"plugin-image-zoom": "github:flexanalytics/plugin-image-zoom",
"postcss": "^8.4.19",
"prism-react-renderer": "^1.3.5",
"react": "^17.0.2",
@ -7862,6 +7863,11 @@
"node": ">= 0.6"
}
},
"node_modules/medium-zoom": {
"version": "1.0.8",
"resolved": "https://registry.npmjs.org/medium-zoom/-/medium-zoom-1.0.8.tgz",
"integrity": "sha512-CjFVuFq/IfrdqesAXfg+hzlDKu6A2n80ZIq0Kl9kWjoHh9j1N9Uvk5X0/MmN0hOfm5F9YBswlClhcwnmtwz7gA=="
},
"node_modules/memfs": {
"version": "3.4.9",
"resolved": "https://registry.npmjs.org/memfs/-/memfs-3.4.9.tgz",
@ -8645,6 +8651,13 @@
"node": ">=4"
}
},
"node_modules/plugin-image-zoom": {
"version": "0.0.0",
"resolved": "git+ssh://git@github.com/flexanalytics/plugin-image-zoom.git#6edf8e287dc64c8a4e1010fd36478316ac25ffeb",
"dependencies": {
"medium-zoom": "^1.0.4"
}
},
"node_modules/postcss": {
"version": "8.4.19",
"resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.19.tgz",
@ -18529,6 +18542,11 @@
"resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
"integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ=="
},
"medium-zoom": {
"version": "1.0.8",
"resolved": "https://registry.npmjs.org/medium-zoom/-/medium-zoom-1.0.8.tgz",
"integrity": "sha512-CjFVuFq/IfrdqesAXfg+hzlDKu6A2n80ZIq0Kl9kWjoHh9j1N9Uvk5X0/MmN0hOfm5F9YBswlClhcwnmtwz7gA=="
},
"memfs": {
"version": "3.4.9",
"resolved": "https://registry.npmjs.org/memfs/-/memfs-3.4.9.tgz",
@ -19081,6 +19099,13 @@
}
}
},
"plugin-image-zoom": {
"version": "git+ssh://git@github.com/flexanalytics/plugin-image-zoom.git#6edf8e287dc64c8a4e1010fd36478316ac25ffeb",
"from": "plugin-image-zoom@flexanalytics/plugin-image-zoom",
"requires": {
"medium-zoom": "^1.0.4"
}
},
"postcss": {
"version": "8.4.19",
"resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.19.tgz",

View File

@ -23,6 +23,7 @@
"autoprefixer": "^10.4.13",
"classnames": "^2.3.2",
"clsx": "^1.2.1",
"plugin-image-zoom": "github:flexanalytics/plugin-image-zoom",
"postcss": "^8.4.19",
"prism-react-renderer": "^1.3.5",
"react": "^17.0.2",

Binary file not shown.

After

Width:  |  Height:  |  Size: 207 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 79 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 367 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 382 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 27 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 154 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 116 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 43 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 110 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 213 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 152 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 466 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 84 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 130 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 104 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 68 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 115 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 896 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB