Twibble is a minimalist, Twitter-like microblogging platform built with Django. It lets users share short posts, follow others, and explore a simple, clean social feed.
- User registration and login
- Post short messages (tweets)
- Follow/unfollow other users
- View a personalized feed
- User profiles with follower/following counts
- Profile editing and account settings
- Responsive design using Bootstrap 5
- Python: 3.12+
- Dependency management: uv
- Backend: Django 6.0
- Frontend: HTML, CSS, Bootstrap 5
- Database: SQLite (for development), PostgreSQL (for production)
- Auth: Django built-in authentication
- Image Processing: Pillow
- Env config:
.env(python-dotenv) - Linting & Formatting: Ruff
- Pre-commit Hooks: Automated linting, formatting, and tests
This project uses modern python dependency management with:
pyproject.tomlfor dependency definitions.uv.lockfor exact dependency versions.
To recreate the exact environment:
uv syncScreenshots coming soon!
- Install uv uv is used to manage dependencies and virtual environments.
pip install uvor
curl -Ls https://astral.sh/uv/install.sh | sh- Clone the repository
git clone https://github.com/DevMohammad-SA/Twibble.git
cd Twibble- Install dependencies
uv syncThis will:
- Create a virtual environment automatically.
- Install all dependencies specified in
pyproject.toml. - Reproduce the exact development environment.
-
Set up environment variables
Copy the example environment file and update it with your configuration:
cp example.env .env
Or create a
.envfile manually in the root directory with at minimum:DEBUG=True SECRET_KEY=your-secret-key-here ALLOWED_HOSTS=127.0.0.1,localhost
Security Note: Generate a secure secret key for production. You can use
python -c "from django.core.management.utils import get_random_secret_key; print(get_random_secret_key())"to generate one.See
example.envfor additional configuration options including database, email, and timezone settings. -
Apply migrations and run server
uv run python manage.py migrate uv run python manage.py runserver
-
Access the app Open your browser and go to
http://127.0.0.1:8000/ -
Install pre-commit hooks
uv run pre-commit run --all-files
- Add likes and replies
- Add image uploads
- Add search functionality
- Create REST API (optional)
- Add notifications system
- Implement hashtags support
- Add Arabic locale support
- Implement bookmark support
Contributions are welcome! Please see CONTRIBUTING for guidelines. Feel free to open issues or submit pull requests.
This project is licensed under the MIT License. See the LICENSE file for details.
Made with ❤️ by Mohammad Albuainain