Batteries Included SaaS Starter Kit

Build your SaaS faster with pywjs

A complete, production-ready SaaS template combining Python (FastAPI) and modern JavaScript (Next.js) with all the features you need to launch quickly.

pywjs dashboard preview

Everything You Need to Build a SaaS

pywjs comes with all the essential features built-in, so you can focus on your unique business logic.

User Accounts

Secure authentication with signup, login, email confirmation, password reset, and social login via NextAuth.

Subscriptions

Built-in integrations with Stripe and Paddle for handling payments, subscriptions, and billing.

Content Management

A flexible CMS system for managing your application content, pages, and blog posts.

API Documentation

Automatic OpenAPI documentation with Swagger UI for your backend APIs.

Background Tasks

Asynchronous task processing for handling long-running operations and scheduled jobs.

Admin Dashboard

A comprehensive admin interface for managing users, content, and application settings.

Internationalization

Built-in support for multiple languages and localization of your application.

Docker Ready

Docker-based development and deployment for consistent environments across your team.

CI/CD Pipeline

Continuous integration and deployment workflows for automated testing and deployment.

How pywjs Works

A powerful combination of Python and JavaScript for full-stack development

Backend

Python FastAPI Backend

  • High-performance, async-first API framework
  • Automatic OpenAPI documentation
  • Type safety with Pydantic models
  • Background task processing
  • Database ORM with SQLAlchemy
from fastapi import FastAPI, Depends
from pydantic import BaseModel

app = FastAPI()

class User(BaseModel):
    username: str
    email: str
    
@app.post("/users/")
async def create_user(user: User):
    # Create user logic here
    return {"status": "success", "user": user}
'use client'

import { useState } from 'react'
import { Button } from '@/components/ui/button'

export default function UserForm() {
  const [user, setUser] = useState({
    username: '',
    email: ''
  })
  
  async function handleSubmit() {
    const response = await fetch('/api/users', {
      method: 'POST',
      body: JSON.stringify(user)
    })
    // Handle response
  }
  
  return (
    <form onSubmit={handleSubmit}>
      {/* Form fields */}
      <Button type="submit">Create User</Button>
    </form>
  )
}
Frontend

Next.js Frontend

  • React-based framework with server components
  • TypeScript for type safety
  • Server-side rendering and static generation
  • API routes for backend functionality
  • Built-in routing and middleware

Simple, Transparent Pricing

Get started quickly with our affordable pricing plans

Community
Free
Perfect for personal projects and learning
  • Core template features
  • GitHub repository access
  • Community support
  • MIT License
Popular
Pro
$99/year
For professional developers and startups
  • Everything in Community
  • Premium components
  • Advanced authentication
  • Priority email support
  • 1 year of updates
Enterprise
$499/year
For teams and businesses with custom needs
  • Everything in Pro
  • Custom integrations
  • White-label license
  • Dedicated support
  • Lifetime updates

Frequently Asked Questions

Common questions about pywjs

What is pywjs?

pywjs is a batteries-included SaaS starter kit that combines Python (FastAPI) for the backend and modern JavaScript/TypeScript (Next.js) for the frontend. It includes all the core features needed for a SaaS application.

Do I need to know both Python and JavaScript?

Yes, pywjs uses Python for the backend and JavaScript/TypeScript for the frontend. However, the template is well-documented and structured to help you get started even if you're stronger in one language than the other.

Can I use pywjs for commercial projects?

Yes, pywjs can be used for commercial projects. The Community version is available under the MIT license, while the Pro and Enterprise versions come with their respective licenses that allow commercial use.

How do I deploy a pywjs application?

pywjs comes with Docker configurations for both development and production environments. You can deploy to any platform that supports Docker containers, such as AWS, Google Cloud, Azure, or DigitalOcean.

Is there a community for pywjs users?

Yes, we have an active community on GitHub and Discord where you can ask questions, share your projects, and get help from other pywjs users and the maintainers.

How often is pywjs updated?

We release updates regularly to keep up with the latest versions of FastAPI, Next.js, and other dependencies. Pro users get 1 year of updates, while Enterprise users get lifetime updates.

Ready to Build Your SaaS?

Get started with pywjs today and launch your SaaS faster than ever.