Repository files navigation

The fastest way to develop full-stack web apps with React & Node.js.


licenselatest releasediscord


Web page | Docs


Wasp (Web Application Specification) 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!

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:

// file: main.waspapptodoApp{title: "ToDo App",// visible in the browser tabwasp: {version: "^0.11.0"},auth: {// full-stack auth out-of-the-boxuserEntity: User,methods: {email: {...}}}}routeRootRoute{path: "/",to: MainPage}pageMainPage{authRequired: true,// Limit access to logged in users.component: importMainfrom"@client/Main.tsx"// Your React code.}querygetTasks{
fn: import{getTasks}from"@server/tasks.js",// Your Node.js code.entities: [Task]// Automatic cache invalidation.}entityTask{=psl// Your Prisma data model.idInt @id @default(autoincrement())descriptionStringisDoneBoolean @default(false)psl=}

The rest of the code you write in React / Node.js / Prisma and just reference it from the .wasp file.

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

How it works

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.

Get started

Run

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

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 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 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.

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.

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.

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 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:

Careers

Check our careers page for a list of currently opened positions!

Sponsors

michelwaechter - Our first sponsor ever! Thanks so much Michel ❤️ , from the whole Wasp Team, for bravely going where nobody has been before :)!

shayneczyzewski - Thanks Shayne, for all the contributions you did so far and for your continuous support!

MarianoMiguel - Big thanks Mariano for being one of our first sponsors and believing in us ❤️!

haseeb-heaven - We are thankful for your support Heaven in this early stage of Wasp :)!

About

The fastest way to develop full-stack web apps with React & Node.js.

Resources

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Repository files navigation

The fastest way to develop full-stack web apps with React & Node.js.


licenselatest releasediscord


Web page | Docs


Wasp (Web Application Specification) 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!

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:

// file: main.waspapptodoApp{title: "ToDo App",// visible in the browser tabwasp: {version: "^0.11.0"},auth: {// full-stack auth out-of-the-boxuserEntity: User,methods: {email: {...}}}}routeRootRoute{path: "/",to: MainPage}pageMainPage{authRequired: true,// Limit access to logged in users.component: importMainfrom"@client/Main.tsx"// Your React code.}querygetTasks{
fn: import{getTasks}from"@server/tasks.js",// Your Node.js code.entities: [Task]// Automatic cache invalidation.}entityTask{=psl// Your Prisma data model.idInt @id @default(autoincrement())descriptionStringisDoneBoolean @default(false)psl=}

The rest of the code you write in React / Node.js / Prisma and just reference it from the .wasp file.

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

How it works

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.

Get started

Run

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

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 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 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.

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.

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.

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 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:

Careers

Check our careers page for a list of currently opened positions!

Sponsors

michelwaechter - Our first sponsor ever! Thanks so much Michel ❤️ , from the whole Wasp Team, for bravely going where nobody has been before :)!

shayneczyzewski - Thanks Shayne, for all the contributions you did so far and for your continuous support!

MarianoMiguel - Big thanks Mariano for being one of our first sponsors and believing in us ❤️!

haseeb-heaven - We are thankful for your support Heaven in this early stage of Wasp :)!

About

The fastest way to develop full-stack web apps with React & Node.js.

Resources

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

The fastest way to develop full-stack web apps with React & Node.js.


licenselatest releasediscord


Web page | Docs


Wasp (Web Application Specification) 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!

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:

// file: main.waspapptodoApp{title: "ToDo App",// visible in the browser tabwasp: {version: "^0.11.0"},auth: {// full-stack auth out-of-the-boxuserEntity: User,methods: {email: {...}}}}routeRootRoute{path: "/",to: MainPage}pageMainPage{authRequired: true,// Limit access to logged in users.component: importMainfrom"@client/Main.tsx"// Your React code.}querygetTasks{
fn: import{getTasks}from"@server/tasks.js",// Your Node.js code.entities: [Task]// Automatic cache invalidation.}entityTask{=psl// Your Prisma data model.idInt @id @default(autoincrement())descriptionStringisDoneBoolean @default(false)psl=}

The rest of the code you write in React / Node.js / Prisma and just reference it from the .wasp file.

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

How it works

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.

Get started

Run

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

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 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 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.

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.

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.

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 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:

Careers

Check our careers page for a list of currently opened positions!

Sponsors

michelwaechter - Our first sponsor ever! Thanks so much Michel ❤️ , from the whole Wasp Team, for bravely going where nobody has been before :)!

shayneczyzewski - Thanks Shayne, for all the contributions you did so far and for your continuous support!

MarianoMiguel - Big thanks Mariano for being one of our first sponsors and believing in us ❤️!

haseeb-heaven - We are thankful for your support Heaven in this early stage of Wasp :)!

About

The fastest way to develop full-stack web apps with React & Node.js.

Resources

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

The fastest way to develop full-stack web apps with React & Node.js.


licenselatest releasediscord


Web page | Docs


Wasp (Web Application Specification) 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!

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:

// file: main.waspapptodoApp{title: "ToDo App",// visible in the browser tabwasp: {version: "^0.11.0"},auth: {// full-stack auth out-of-the-boxuserEntity: User,methods: {email: {...}}}}routeRootRoute{path: "/",to: MainPage}pageMainPage{authRequired: true,// Limit access to logged in users.component: importMainfrom"@client/Main.tsx"// Your React code.}querygetTasks{
fn: import{getTasks}from"@server/tasks.js",// Your Node.js code.entities: [Task]// Automatic cache invalidation.}entityTask{=psl// Your Prisma data model.idInt @id @default(autoincrement())descriptionStringisDoneBoolean @default(false)psl=}

The rest of the code you write in React / Node.js / Prisma and just reference it from the .wasp file.

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

How it works

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.

Get started

Run

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

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 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 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.

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.

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.

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 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:

Careers

Check our careers page for a list of currently opened positions!

Sponsors

michelwaechter - Our first sponsor ever! Thanks so much Michel ❤️ , from the whole Wasp Team, for bravely going where nobody has been before :)!

shayneczyzewski - Thanks Shayne, for all the contributions you did so far and for your continuous support!

MarianoMiguel - Big thanks Mariano for being one of our first sponsors and believing in us ❤️!

haseeb-heaven - We are thankful for your support Heaven in this early stage of Wasp :)!

About

The fastest way to develop full-stack web apps with React & Node.js.

Resources

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Repository files navigation

The fastest way to develop full-stack web apps with React & Node.js.


licenselatest releasediscord


Web page | Docs


Wasp (Web Application Specification) 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!

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:

// file: main.waspapptodoApp{title: "ToDo App",// visible in the browser tabwasp: {version: "^0.11.0"},auth: {// full-stack auth out-of-the-boxuserEntity: User,methods: {email: {...}}}}routeRootRoute{path: "/",to: MainPage}pageMainPage{authRequired: true,// Limit access to logged in users.component: importMainfrom"@client/Main.tsx"// Your React code.}querygetTasks{
fn: import{getTasks}from"@server/tasks.js",// Your Node.js code.entities: [Task]// Automatic cache invalidation.}entityTask{=psl// Your Prisma data model.idInt @id @default(autoincrement())descriptionStringisDoneBoolean @default(false)psl=}

The rest of the code you write in React / Node.js / Prisma and just reference it from the .wasp file.

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

How it works

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.

Get started

Run

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

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 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 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.

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.

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.

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 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:

Careers

Check our careers page for a list of currently opened positions!

Sponsors

michelwaechter - Our first sponsor ever! Thanks so much Michel ❤️ , from the whole Wasp Team, for bravely going where nobody has been before :)!

shayneczyzewski - Thanks Shayne, for all the contributions you did so far and for your continuous support!

MarianoMiguel - Big thanks Mariano for being one of our first sponsors and believing in us ❤️!

haseeb-heaven - We are thankful for your support Heaven in this early stage of Wasp :)!

About

The fastest way to develop full-stack web apps with React & Node.js.

Resources

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

The fastest way to develop full-stack web apps with React & Node.js.


licenselatest releasediscord


Web page | Docs


Wasp (Web Application Specification) 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!

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:

// file: main.waspapptodoApp{title: "ToDo App",// visible in the browser tabwasp: {version: "^0.11.0"},auth: {// full-stack auth out-of-the-boxuserEntity: User,methods: {email: {...}}}}routeRootRoute{path: "/",to: MainPage}pageMainPage{authRequired: true,// Limit access to logged in users.component: importMainfrom"@client/Main.tsx"// Your React code.}querygetTasks{
fn: import{getTasks}from"@server/tasks.js",// Your Node.js code.entities: [Task]// Automatic cache invalidation.}entityTask{=psl// Your Prisma data model.idInt @id @default(autoincrement())descriptionStringisDoneBoolean @default(false)psl=}

The rest of the code you write in React / Node.js / Prisma and just reference it from the .wasp file.

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

How it works

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.

Get started

Run

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

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 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 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.

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.

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.

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 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:

Careers

Check our careers page for a list of currently opened positions!

Sponsors

michelwaechter - Our first sponsor ever! Thanks so much Michel ❤️ , from the whole Wasp Team, for bravely going where nobody has been before :)!

shayneczyzewski - Thanks Shayne, for all the contributions you did so far and for your continuous support!

MarianoMiguel - Big thanks Mariano for being one of our first sponsors and believing in us ❤️!

haseeb-heaven - We are thankful for your support Heaven in this early stage of Wasp :)!

About

The fastest way to develop full-stack web apps with React & Node.js.

Resources

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

The fastest way to develop full-stack web apps with React & Node.js.


licenselatest releasediscord


Web page | Docs


Wasp (Web Application Specification) 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!

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:

// file: main.waspapptodoApp{title: "ToDo App",// visible in the browser tabwasp: {version: "^0.11.0"},auth: {// full-stack auth out-of-the-boxuserEntity: User,methods: {email: {...}}}}routeRootRoute{path: "/",to: MainPage}pageMainPage{authRequired: true,// Limit access to logged in users.component: importMainfrom"@client/Main.tsx"// Your React code.}querygetTasks{
fn: import{getTasks}from"@server/tasks.js",// Your Node.js code.entities: [Task]// Automatic cache invalidation.}entityTask{=psl// Your Prisma data model.idInt @id @default(autoincrement())descriptionStringisDoneBoolean @default(false)psl=}

The rest of the code you write in React / Node.js / Prisma and just reference it from the .wasp file.

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

How it works

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.

Get started

Run

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

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 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 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.

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.

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.

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 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:

Careers

Check our careers page for a list of currently opened positions!

Sponsors

michelwaechter - Our first sponsor ever! Thanks so much Michel ❤️ , from the whole Wasp Team, for bravely going where nobody has been before :)!

shayneczyzewski - Thanks Shayne, for all the contributions you did so far and for your continuous support!

MarianoMiguel - Big thanks Mariano for being one of our first sponsors and believing in us ❤️!

haseeb-heaven - We are thankful for your support Heaven in this early stage of Wasp :)!

About

The fastest way to develop full-stack web apps with React & Node.js.

Resources

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Repository files navigation

The fastest way to develop full-stack web apps with React & Node.js.


licenselatest releasediscord


Web page | Docs


Wasp (Web Application Specification) 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!

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:

// file: main.waspapptodoApp{title: "ToDo App",// visible in the browser tabwasp: {version: "^0.11.0"},auth: {// full-stack auth out-of-the-boxuserEntity: User,methods: {email: {...}}}}routeRootRoute{path: "/",to: MainPage}pageMainPage{authRequired: true,// Limit access to logged in users.component: importMainfrom"@client/Main.tsx"// Your React code.}querygetTasks{
fn: import{getTasks}from"@server/tasks.js",// Your Node.js code.entities: [Task]// Automatic cache invalidation.}entityTask{=psl// Your Prisma data model.idInt @id @default(autoincrement())descriptionStringisDoneBoolean @default(false)psl=}

The rest of the code you write in React / Node.js / Prisma and just reference it from the .wasp file.

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

How it works

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.

Get started

Run

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

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 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 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.

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.

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.

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 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:

Careers

Check our careers page for a list of currently opened positions!

Sponsors

michelwaechter - Our first sponsor ever! Thanks so much Michel ❤️ , from the whole Wasp Team, for bravely going where nobody has been before :)!

shayneczyzewski - Thanks Shayne, for all the contributions you did so far and for your continuous support!

MarianoMiguel - Big thanks Mariano for being one of our first sponsors and believing in us ❤️!

haseeb-heaven - We are thankful for your support Heaven in this early stage of Wasp :)!

About

The fastest way to develop full-stack web apps with React & Node.js.

Resources

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages