All Projects → wasp-lang → Wasp

wasp-lang / Wasp

Licence: mit
A programming language that understands what a web app is.

Programming Languages

haskell
3896 projects

Projects that are alternatives of or similar to Wasp

Gatsby
Build blazing fast, modern apps and websites with React
Stars: ✭ 51,925 (+5423.94%)
Mutual labels:  compiler, web-app
Asl
Arma Scripting Language - a clean scripting language compiling to Arma 3 SQF scripts.
Stars: ✭ 20 (-97.87%)
Mutual labels:  compiler
Ldc
The LLVM-based D Compiler.
Stars: ✭ 937 (-0.32%)
Mutual labels:  compiler
Kaleidoscope
Haskell LLVM JIT Compiler Tutorial
Stars: ✭ 870 (-7.45%)
Mutual labels:  compiler
Hamler
Haskell-style functional programming language running on Erlang VM.
Stars: ✭ 840 (-10.64%)
Mutual labels:  compiler
Rexjs
Rexjs is a faster and smaller JavaScript(ES6+) compiler!
Stars: ✭ 15 (-98.4%)
Mutual labels:  compiler
Litecloud
User management system for the server (Home Cloud).
Stars: ✭ 26 (-97.23%)
Mutual labels:  web-app
Sml Compiler
A compiler for Standard ML, somewhat
Stars: ✭ 22 (-97.66%)
Mutual labels:  compiler
Ph2date
💕 Powerful & lightweight PHP Dating Script built with CodeIgniter 2.X and Bootstrap + jQuery 💖
Stars: ✭ 20 (-97.87%)
Mutual labels:  web-app
Potterscript
/x/pel/e/r/mus
Stars: ✭ 12 (-98.72%)
Mutual labels:  compiler
Dugong
Minimal State Store Manager for React Apps using RxJS
Stars: ✭ 10 (-98.94%)
Mutual labels:  compiler
Cfl
a Compileable statically typed Functional programming Language
Stars: ✭ 7 (-99.26%)
Mutual labels:  compiler
Jodel Web
[PHP] JodelBlue is a Web-App and Browser-Client for the Jodel App. No registration required! Browse Jodels all over the world.
Stars: ✭ 15 (-98.4%)
Mutual labels:  web-app
Fly Coffee
☕️ Fly plugin for CoffeeScript
Stars: ✭ 7 (-99.26%)
Mutual labels:  compiler
Kamekazi
Self destructing messages
Stars: ✭ 21 (-97.77%)
Mutual labels:  web-app
Orcc
Open RVC-CAL Compiler
Stars: ✭ 26 (-97.23%)
Mutual labels:  compiler
Lyca
programming language compiler w/ llvm
Stars: ✭ 9 (-99.04%)
Mutual labels:  compiler
Ferret
Ferret is a free software lisp implementation for real time embedded control systems.
Stars: ✭ 878 (-6.6%)
Mutual labels:  compiler
Nuxt.js
The Intuitive Vue(2) Framework
Stars: ✭ 38,986 (+4047.45%)
Mutual labels:  web-app
Rum
💀 Compiler for the Rum language
Stars: ✭ 21 (-97.77%)
Mutual labels:  compiler

A programming language that understands what a web app is.


license language build status discord



Wasp (Web Application Specification Language) is a declarative DSL (domain-specific language) for developing, building and deploying modern full-stack web apps with less code.

Concepts such as app, page, user, login, frontend, production, etc. are baked into the language, bringing a new level of expressiveness and allowing you to get more work done with fewer lines of code.

While describing high-level features with Wasp, you still write the rest of your logic in your favorite technologies (currently React, NodeJS, Prisma).

NOTE: Wasp is in alpha and is therefore likely to change a lot, have bugs and miss important features.

// file: main.wasp

app TodoApp {
  title: "Todo App"
}

route "/" -> page Main
page Main {
    component: import Main from "@ext/pages/Main.js" // Importing React component.
}

query getTasks {
  fn: import { getTasks } from "@ext/queries.js", // Importing NodeJS code.
  entities: [Task]
}

entity Task {=psl
    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).

▶️ Check out TodoApp example for the complete code example. ◀️

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.

For more information about Wasp, check docs.

Get started

Run

curl -sSL http://get.wasp-lang.dev | sh

to install Wasp on OSX/Linux. From there, just follow the instructions to run your first app in less then a minute!

For more details (including installing on Windows) check out the docs.

This repository

This is the main repo of the Wasp universe, containing core code (mostly waspc - Wasp compiler) and the supporting materials.

Project status

Currently, Wasp is in alpha and has enough features so that you can develop a basic web app in it! You might find that it misses flexibility in some places or that some bigger features are missing, but the basics are there and we are now adding on top of them. In the case you get stuck, you can take the generated code and continue with it. As Wasp grows further, it should allow the development of web apps of increasing complexity, without the need to eject!

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, taking trends into account, but for now, this is serving us well for the purpose of developing compiler and language.

Contributing

Any way you want to contribute is a good way :)!

The best place to start is to check out waspc/, where you can find detailed steps for the first time contributors + technical details about the Wasp compiler.

Even if you don't plan to submit any code, just joining the discussion on discord Discord 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:

  • ⭐️ Star this repo to show your interest/support.
  • 📫 Stay updated by subscribing to our email list.
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].