Skip to content

Latest commit

Β 

History

History
149 lines (105 loc) Β· 4.67 KB

File metadata and controls

149 lines (105 loc) Β· 4.67 KB

GitHub Actions Workflow Status Last Commit Discord

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