Skip to content

Anvoria/smithy

Warning

This project will be rewritten. No ETA is available at this moment.


Smithy

Smithy Banner

A modern, full-stack project and task management platform built for developers and teams.

License: MIT Python 3.13+ Node.js 20+ FastAPI Next.js Linted with Ruff CI


✨ Features

  • 🚀 Fast and Modern - FastAPI backend + Next.js frontend for optimal performance
  • 🔐 Secure by Default - JWT authentication with MFA support (TOTP + backup codes)
  • 👥 Multi-tenant - Organizations with role-based access control
  • 📊 Project Management - Comprehensive project and task tracking
  • 🌐 API-First - RESTful API with auto-generated OpenAPI documentation
  • 🔧 Developer-Friendly - Built by developers, for developers

Core Functionality

  • User management (registration, login, profile)
  • Project organization (create, update, delete projects)
  • Task tracking (full CRUD with status, priority, due dates)

🚀 Getting Started

Prerequisites

  • Docker & Docker Compose (recommended)
  • Python 3.13+ (for local backend development)
  • Node.js 20+ (for local frontend development)
  • PostgreSQL 15+ (if not using Docker)

Quick Start

# Clone the repository
git clone https://github.com/Anvoria/smithy.git
cd smithy

# Copy environment variables
cp backend/.env.example backend/.env

# Start the full stack
docker-compose up --build

# The application will be available at:
# - Backend API: http://localhost:8000
# - API Documentation: http://localhost:8000/docs

Local Development Setup

Backend Setup

cd backend

# Create virtual environment
python -m venv venv
source venv/bin/activate  # On Windows: venv\Scripts\activate

# Install dependencies
pip install -r requirements.txt

# Set up environment
cp .env.example .env

# Run database migrations
alembic upgrade head

# Start development server
uvicorn app.main:app --reload --host 0.0.0.0 --port 8000

Frontend Setup

cd frontend

# Install dependencies
pnpm install

# Start development server
pnpm run dev

🧪 Testing

Coming soon!


🤝 Contributing

We welcome contributions! Please see our Contributing Guide for details on:

  • Setting up the development environment
  • Code style and formatting guidelines
  • Submitting pull requests
  • Reporting issues

📋 Roadmap

🧱 Foundation

  • Project scaffold (folder structure, FastAPI app)
  • Environment setup (.env, config loader)
  • Base Dockerfile + docker-compose
  • SQLAlchemy models (User, Project, Task)
  • Alembic migrations
  • JWT authentication (access and refresh)
  • Initial tests (pytest + coverage)
  • Basic logging + error handling

📡 API Layer

  • Auth endpoints (register, login, refresh)
  • User CRUD
  • Project CRUD
  • Task CRUD
  • Filtering & pagination
  • Basic OpenAPI docs

📦 Later / Feature Plans

  • Web dashboard (Next.js frontend)
  • Team collaboration (invites, roles)
  • Time tracking
  • Webhooks
  • Notifications

📄 License

This project is licensed under the MIT License - see the LICENSE file for details.

About

Smithy is an open-source, self-hosted platform for managing projects, tasks, and developer workflows.

Resources

License

Code of conduct

Contributing

Stars

Watchers

Forks

Packages

 
 
 

Contributors