Skip to content

junobuild/juno

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4,293 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation


GitHub Actions Workflow Status Last Commit Discord

Important

Juno is in maintenance and not actively developed anymore. Do not use it for anything serious.

⭐️ Description

Juno is a platform for hosting static websites, building web applications, and running serverless functions with the privacy and control of self-hosting.

It provides a familiar cloud experience with strong security and zero operational complexity. Each project runs in its own WASM container, fully owned and controlled by you.

Think of it as Vercel + Firebase + Self-Hosting - without the compromises.

  • 🔑 Authentication [Docs]
  • 📦 Datastore [Docs]
  • 📂 File Storage [Docs]
  • 🌐 Hosting [Docs]
  • ⚙️ Serverless Functions [Docs]
  • 📊 Analytics [Docs]
  • 👀 Monitoring [Docs]
  • 💾 Snapshots [Docs]

A screenshot of the Juno Console


⚡️ Why Juno?

  • Zero DevOps - No servers to manage, no infrastructure to maintain
  • Full-stack - Every service you need runs in your container, no third party needed
  • True Ownership - Your code, data, and infrastructure are fully yours
  • Local-First Development - Full production-like emulator for rapid iteration

🚀 Quick Start

// Initialize Juno
import { initSatellite } from '@junobuild/core';
await initSatellite();

// Store data
import { setDoc } from '@junobuild/core';
await setDoc({
	collection: 'posts',
	doc: {
		key: 'my-post',
		data: { title: 'Hello Juno!' }
	}
});

⚙️ Serverless Functions

Write serverless functions in TypeScript or Rust and deploy them to your own WASM container.

TypeScript:

import { j } from '@junobuild/schema';
import { defineQuery } from '@junobuild/functions';

export const hello = defineQuery({
	args: j.strictObject({
		name: j.string()
	}),
	handler: ({ data }) => {
		return { message: `Hello, ${data.name}!` };
	}
});

Rust:

#[ic_cdk::query]
fn hello(name: String) -> String {
    format!("Hello, {}!", name)
}

🚢 Deploy

Deploy to production with a single command:

# Deploy your frontend
juno hosting deploy

# Deploy your serverless functions
juno functions publish

Or integrate with GitHub Actions → Setup CI/CD

🧪 Local Development

Spin up a full production-like environment locally using the Juno emulator:

juno emulator start

Run with Docker or Podman → Emulator Docs

💁‍♂️️ Links & Resources

Here are some useful links:

  • Looking to get started? Check out the Guides & Examples for step-by-step tutorials and sample code.
  • Explore the full documentation for in-depth details on using and configuring Juno.
  • See the HACKING document for instructions on running and developing Juno locally.

🖥️ Bootstrap

Planning to build a website, blog, or web application? Start quickly by scaffolding a new project using a template.

# with npm
npm create juno@latest
# with pnpm
pnpm create juno
# with yarn
yarn create juno

🎯 Live Examples

Check out the showcase.

🧑‍🤝‍🧑 Community

Have questions, comments, or feedback? Join our Discord or OpenChat.

💬 Contact

Find us on X/Twitter at @junobuild or email us at hi@juno.build.