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.

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.
Secure authentication with signup, login, email confirmation, password reset, and social login via NextAuth.
Built-in integrations with Stripe and Paddle for handling payments, subscriptions, and billing.
A flexible CMS system for managing your application content, pages, and blog posts.
Automatic OpenAPI documentation with Swagger UI for your backend APIs.
Asynchronous task processing for handling long-running operations and scheduled jobs.
A comprehensive admin interface for managing users, content, and application settings.
Built-in support for multiple languages and localization of your application.
Docker-based development and deployment for consistent environments across your team.
Continuous integration and deployment workflows for automated testing and deployment.
How pywjs Works
A powerful combination of Python and JavaScript for full-stack development
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>
)
}
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
- Core template features
- GitHub repository access
- Community support
- MIT License
- Everything in Community
- Premium components
- Advanced authentication
- Priority email support
- 1 year of updates
- Everything in Pro
- Custom integrations
- White-label license
- Dedicated support
- Lifetime updates
Frequently Asked Questions
Common questions about 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.
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.
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.
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.
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.
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.