{"id":27351834,"url":"https://github.com/sonervergon/typethon","last_synced_at":"2026-04-10T15:46:15.576Z","repository":{"id":287554794,"uuid":"964832932","full_name":"sonervergon/typethon","owner":"sonervergon","description":"A boilerplate pnpm monorepo with a Python backend and React frontend.","archived":false,"fork":false,"pushed_at":"2025-04-12T18:33:22.000Z","size":1428,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-12T20:53:52.258Z","etag":null,"topics":["fastapi","pnpm","python","react-query","react-router","tanstack-react-query","typesafe","typescript","vite"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sonervergon.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-04-11T21:37:44.000Z","updated_at":"2025-04-12T18:33:26.000Z","dependencies_parsed_at":"2025-04-12T19:28:56.165Z","dependency_job_id":null,"html_url":"https://github.com/sonervergon/typethon","commit_stats":null,"previous_names":["sonervergon/fast-api-boilerplate","sonervergon/typethon"],"tags_count":0,"template":true,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sonervergon%2Ftypethon","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sonervergon%2Ftypethon/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sonervergon%2Ftypethon/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sonervergon%2Ftypethon/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sonervergon","download_url":"https://codeload.github.com/sonervergon/typethon/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248631719,"owners_count":21136560,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["fastapi","pnpm","python","react-query","react-router","tanstack-react-query","typesafe","typescript","vite"],"created_at":"2025-04-12T20:53:54.986Z","updated_at":"2025-12-30T23:05:05.488Z","avatar_url":"https://github.com/sonervergon.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n   \u003cimg width=\"180\" src=\"./typethon.png\" alt=\"Typethon\"\u003e\n   \u003cdiv align=\"center\"\u003e🚧 Work in progress 🚧\u003c/div\u003e\n\u003c/p\u003e\n\nTypethon is a Typescript pnpm monorepo with Turborepo containing a Python backend service and a Vite web application. Meant to provide a seamles developer experience for Typescript and Python devs. It's a minimal repository containing a Python backend, a Vite React app, and an autogenerated api-client that outputs a react-query client.\n\n![Typethon demo](./typethon.gif)\n\n## Getting Started\n\n### Prerequisites\n\n- Node.js 22+\n- pnpm 10+\n- Python 3.13+ (for Python services)\n\n### Installation \u0026 Setup\n\nInstall dependencies and set up the project:\n\n```bash\n# Install pnpm\nnpm i -g pnpm\n\npnpm install\n\n# Install uv (https://docs.astral.sh/uv/)\nbrew install uv\n\n# Setup local environment\npnpm setup-env\n```\n\n### Development\n\nStart all services in development mode:\n\n```bash\npnpm dev\n```\n\n## Available Commands\n\n| Command          | Description                          |\n| ---------------- | ------------------------------------ |\n| `pnpm setup-env` | Set up Python environments           |\n| `pnpm dev`       | Run all services in development mode |\n| `pnpm build`     | Build all packages                   |\n| `pnpm test`      | Run tests across all packages        |\n| `pnpm typecheck` | Run type checking                    |\n| `pnpm lint`      | Lint all packages                    |\n| `pnpm format`    | Format code with Biome               |\n\n## Monorepo Structure\n\n```\ntypethon/\n├── apps/                 # Application packages\n│   ├── core/             # Core Python API service\n│   └── web/              # Vite web application\n├── packages/             # Shared packages (libraries, components, etc.)\n│   └── api-client/       # Autogenerated TypeScript API client with React Query hooks\n├── package.json          # Root package configuration\n├── pnpm-workspace.yaml   # Workspace configuration\n└── turbo.json            # Turborepo configuration\n```\n\n## Available Services\n\n### Core API Service\n\nThe Core API service is a Python backend service using FastAPI with a layered architecture.\n\n### Web Application\n\nA modern Vite-powered web application that connects to the Core API.\n\n### API Client\n\nAn autogenerated TypeScript client that provides type-safe access to the Core API endpoints with built-in React Query hooks. This package automatically synchronizes with the Python backend's API definitions.\n\n## Python Environment\n\nThe Python environment is automatically set up through the `setup-env` script, which:\n\n- Creates a `.venv` virtual environment in the core project\n- Installs all dependencies from requirements.txt\n- Sets up Python tools and configuration\n\n### Required VS Code Extensions\n\nFor the best Python development experience in VS Code or Cursor, install these extensions:\n\n- **Biome**: `biomejs.biome` - Official Biome extension for formatting and linting\n- **Python**: `ms-python.python` - Main Python extension\n- **Ruff**: `charliermarsh.ruff` - Code formatting and linting for Python\n- **Mypy Type Checker**: `ms-python.mypy-type-checker` - Type checking\n\n### Select Python Interpreter\n\nOnce setup is complete, you'll need to select the Python interpreter:\n\n1. Open a python file\n2. Press `Cmd/Ctrl + Shift + P` → `Python: Select Interpreter`\n3. Choose the `.venv/bin/python` in the core project folder\n\n## Adding New Services\n\n1. Create a new directory in the appropriate folder:\n\n   - For applications: `apps/\u003cservice-name\u003e`\n   - For shared packages: `packages/\u003cpackage-name\u003e`\n\n2. Add the service to the workspace by updating its package.json\n\n3. Add the service to the Turborepo pipeline in `turbo.json` if needed\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsonervergon%2Ftypethon","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsonervergon%2Ftypethon","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsonervergon%2Ftypethon/lists"}