mirror of
https://github.com/wasp-lang/wasp.git
synced 2024-11-23 10:14:08 +03:00
Updated gh repo README.
This commit is contained in:
parent
4ad22ffc9d
commit
eb8856ad49
61
README.md
61
README.md
@ -7,55 +7,72 @@
|
||||
<br>
|
||||
<p align=center>
|
||||
<a href="https://github.com/wasp-lang/wasp/blob/main/LICENSE"><img alt="license" src="https://img.shields.io/github/license/wasp-lang/wasp"></a>
|
||||
<a href="https://github.com/wasp-lang/wasp/search?l=haskell"><img alt="language" src="https://img.shields.io/badge/language-Haskell-purple.svg"></a>
|
||||
<a href="https://github.com/wasp-lang/wasp/actions"><img alt="build status" src="https://img.shields.io/github/workflow/status/wasp-lang/wasp/CI"/></a>
|
||||
<a href="https://github.com/wasp-lang/wasp/releases/latest"><img alt="latest release" src="https://img.shields.io/github/v/release/wasp-lang/wasp"/></a>
|
||||
<a href="https://discord.gg/rzdnErX"><img alt="discord" src="https://img.shields.io/discord/686873244791210014?label=chat%20@%20discord"/></a>
|
||||
</p>
|
||||
|
||||
------
|
||||
|
||||
- [**Project page**](https://wasp-lang.dev)
|
||||
- [**Docs**](https://wasp-lang.dev/docs)
|
||||
<p align="center">
|
||||
<a href="https://wasp-lang.dev">Web page</a> | <a href="https://wasp-lang.dev/docs">Docs</a>
|
||||
</p>
|
||||
|
||||
<br>
|
||||
|
||||
Develop full stack web apps without boilerplate. Describe common features via Wasp DSL and write the rest in React, Node.js and Prisma.
|
||||
Wasp (**W**eb **A**pplication **Sp**ecification) is a Rails-like framework for React, Node.js and Prisma.
|
||||
Build your app in a day and deploy it with a single CLI command!
|
||||
|
||||
Wasp (**W**eb **A**pplication **Sp**ecification Language) is a declarative configuration tool for developing, building and deploying modern full stack web apps with less code.
|
||||
### Why is Wasp awesome
|
||||
- 🚀 **Quick start**: Due to its expressiveness, you can create and deploy a production-ready web app from scratch with very few lines of concise, consistent, declarative code.
|
||||
- 😌 **No boilerplate**: By abstracting away complex full-stack features, there is less boilerplate code. That means less code to maintain and understand! It also means easier upgrades.
|
||||
- 🔓 **No lock-in**: You can deploy Wasp app anywhere you like. There is no lock-in into specific providers, you have full control over the code (and can actually check it out in .wasp/ dir if you are interested ).
|
||||
|
||||
### Features
|
||||
🔒 Full-stack Auth, 🖇️ RPC (Client <-> Server), 🚀 Simple Deployment, ⚙ ️Jobs, ✉️ Email Sending, 🛟 Full-stack Type Safety, ...
|
||||
|
||||
### Code example
|
||||
|
||||
Simple Wasp config file in which you describe the high-level details of your web app:
|
||||
```js
|
||||
// file: main.wasp
|
||||
|
||||
app TodoApp {
|
||||
title: "Todo App",
|
||||
wasp: { version: "^0.7.0" }
|
||||
app todoApp {
|
||||
title: "ToDo App", // visible in the browser tab
|
||||
wasp: { version: "^0.10.0" },
|
||||
auth: { // full-stack auth out-of-the-box
|
||||
userEntity: User, methods: { email: {...} }
|
||||
}
|
||||
}
|
||||
|
||||
route RootRoute { path: "/", to: MainPage }
|
||||
page MainPage {
|
||||
component: import Main from "@ext/pages/Main.jsx" // Importing React component.
|
||||
authRequired: true, // Limit access to logged in users.
|
||||
component: import Main from "@client/Main.tsx" // Your React code.
|
||||
}
|
||||
|
||||
query getTasks {
|
||||
fn: import { getTasks } from "@ext/queries.js", // Importing NodeJS code.
|
||||
entities: [Task]
|
||||
fn: import { getTasks } from "@server/tasks.js", // Your Node.js code.
|
||||
entities: [Task] // Automatic cache invalidation.
|
||||
}
|
||||
|
||||
entity Task {=psl
|
||||
entity Task {=psl // Your Prisma data model.
|
||||
id Int @id @default(autoincrement())
|
||||
description String
|
||||
isDone Boolean @default(false)
|
||||
psl=}
|
||||
```
|
||||
|
||||
Source files (`.wasp`, `.js(x)`, `.css`, ...) are compiled by `waspc` (Wasp compiler) into the web technology stack of your choice (currently React + NodeJS/ExpressJS + Prisma).
|
||||
The rest of the code you write in React / Node.js / Prisma and just reference it from the .wasp file.
|
||||
|
||||
:arrow_forward: Check out [TodoApp example](/examples/tutorials/TodoApp) for the complete code example. :arrow_backward:
|
||||
|
||||
Why is Wasp awesome:
|
||||
- **Quick start**: Due to its expressiveness, you can create and deploy a production-ready web app from scratch with very few lines of concise, consistent, declarative code.
|
||||
- **Flexible**: When you need more control than Wasp offers, you can write code in existing technologies such as js/html/css/... and combine it with Wasp code!
|
||||
- **No lock-in**: If Wasp becomes too limiting for you, simply eject and continue with the generated source code, which is human-readable.
|
||||
### How it works
|
||||
|
||||
<img width="800px" src="https://user-images.githubusercontent.com/1536647/231472285-126679e5-ecce-4cbb-8579-eb3cd9ba95bf.png"/>
|
||||
|
||||
Given a simple .wasp configuration file that describes the high-level details of your web app, and .js(x)/.css/..., source files with your unique logic, Wasp compiler generates the full source of your web app in the target stack: front-end, back-end and deployment.
|
||||
|
||||
This unique approach is what makes Wasp "smart" and gives it its super powers!
|
||||
|
||||
For more information about Wasp, check [**docs**](https://wasp-lang.dev/docs).
|
||||
|
||||
@ -65,9 +82,9 @@ Run
|
||||
```
|
||||
curl -sSL https://get.wasp-lang.dev/installer.sh | sh
|
||||
```
|
||||
to install Wasp on OSX/Linux. From there, just follow the instructions to run your first app in less than a minute!
|
||||
to install Wasp on OSX/Linux/WSL(Win). From there, just follow the instructions to run your first app in less than a minute!
|
||||
|
||||
For more details (including installing on Windows) check out [the docs](https://wasp-lang.dev/docs).
|
||||
For more details check out [the docs](https://wasp-lang.dev/docs).
|
||||
|
||||
# This repository
|
||||
|
||||
@ -79,7 +96,7 @@ Currently, Wasp is in beta, with most features flushed out and working well.
|
||||
However, there are still a lot of improvements and additions that we have in mind for the future, and we are working on them constantly, so you can expect a lot of changes and improvements in the future.
|
||||
As Wasp grows further, it should allow the development of web apps of increasing complexity!
|
||||
|
||||
While the idea is to support multiple web tech stacks in the future, right now we are focusing on the specific stack: React + react-query, NodeJS + ExpressJS, Prisma. We might yet change that as time goes on, taking trends into account, but for now, this is serving us well to develop compiler and language.
|
||||
While the idea is to support multiple web tech stacks in the future, right now we are focusing on the specific stack: React + react-query, NodeJS + ExpressJS, Prisma. We might yet change that as time goes on, taking trends into account, but for now, this is serving us well to develop Wasp.
|
||||
|
||||
# Contributing
|
||||
|
||||
@ -87,6 +104,8 @@ Any way you want to contribute is a good way :)!
|
||||
|
||||
The best place to start is to check out [waspc/](waspc/), where you can find detailed steps for the first time contributors + technical details about the Wasp compiler.
|
||||
|
||||
Core of Wasp is built in Haskell, but there is also a lot of non-Haskell parts of Wasp, so you will certainly be able to find something for you!
|
||||
|
||||
Even if you don't plan to submit any code, just joining the discussion on discord [![Discord](https://img.shields.io/discord/686873244791210014?label=chat%20on%20discord)](https://discord.gg/rzdnErX) and giving your feedback is already great and helps a lot (motivates us and helps us figure out how to shape Wasp)!
|
||||
|
||||
You can also:
|
||||
|
Loading…
Reference in New Issue
Block a user