{"id":14972670,"url":"https://github.com/ashish-makes/django-tailwind-blog","last_synced_at":"2025-08-20T20:32:36.457Z","repository":{"id":187277282,"uuid":"601477523","full_name":"ashish-makes/django-tailwind-blog","owner":"ashish-makes","description":"A Developer Blog and Portfolio Website using Django and Tailwind CSS","archived":false,"fork":false,"pushed_at":"2024-04-28T17:47:06.000Z","size":10464,"stargazers_count":121,"open_issues_count":3,"forks_count":52,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-04-07T20:50:03.881Z","etag":null,"topics":["blog","css3","django","django-blog","django-blog-app","django-blog-deployment-project","django-blog-project-github","django-blog-templates","django-framework","django-portfolio","django-project","html5","python-django","python-django-blog","tailwind-css","tailwindcss"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ashish-makes.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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}},"created_at":"2023-02-14T06:29:59.000Z","updated_at":"2025-04-07T05:41:55.000Z","dependencies_parsed_at":null,"dependency_job_id":"cfad51e9-4328-49cb-b206-fb6e1d47f984","html_url":"https://github.com/ashish-makes/django-tailwind-blog","commit_stats":{"total_commits":13,"total_committers":2,"mean_commits":6.5,"dds":0.07692307692307687,"last_synced_commit":"4203b68a4f92fbbe7ede45bee9f0040118150a23"},"previous_names":["ashish-makes/django-tailwind-blog"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/ashish-makes/django-tailwind-blog","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ashish-makes%2Fdjango-tailwind-blog","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ashish-makes%2Fdjango-tailwind-blog/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ashish-makes%2Fdjango-tailwind-blog/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ashish-makes%2Fdjango-tailwind-blog/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ashish-makes","download_url":"https://codeload.github.com/ashish-makes/django-tailwind-blog/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ashish-makes%2Fdjango-tailwind-blog/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":271378680,"owners_count":24749192,"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","status":"online","status_checked_at":"2025-08-20T02:00:09.606Z","response_time":69,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["blog","css3","django","django-blog","django-blog-app","django-blog-deployment-project","django-blog-project-github","django-blog-templates","django-framework","django-portfolio","django-project","html5","python-django","python-django-blog","tailwind-css","tailwindcss"],"created_at":"2024-09-24T13:47:18.304Z","updated_at":"2025-08-20T20:32:36.431Z","avatar_url":"https://github.com/ashish-makes.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Django Tailwind Blog - A Developer Portfolio \u0026 Blog\n\n![HTML5](https://img.shields.io/badge/html5-%23E34F26.svg?style=for-the-badge\u0026logo=html5\u0026logoColor=white)\n![CSS3](https://img.shields.io/badge/css3-%231572B6.svg?style=for-the-badge\u0026logo=css3\u0026logoColor=white)\n![TailwindCSS](https://img.shields.io/badge/tailwindcss-%2338B2AC.svg?style=for-the-badge\u0026logo=tailwind-css\u0026logoColor=white)\n![JavaScript](https://img.shields.io/badge/javascript-%23323330.svg?style=for-the-badge\u0026logo=javascript\u0026logoColor=%23F7DF1E)\n![Django](https://img.shields.io/badge/django-%23092E20.svg?style=for-the-badge\u0026logo=django\u0026logoColor=white)\n![SQLite](https://img.shields.io/badge/sqlite-%2307405e.svg?style=for-the-badge\u0026logo=sqlite\u0026logoColor=white)\n![Postgres](https://img.shields.io/badge/postgres-%23316192.svg?style=for-the-badge\u0026logo=postgresql\u0026logoColor=white)\n![Visual Studio Code](https://img.shields.io/badge/Visual%20Studio%20Code-0078d7.svg?style=for-the-badge\u0026logo=visual-studio-code\u0026logoColor=white)\n\n## Introduction\n**\"Django Tailwind Blog\"** is a developer blog and portfolio website built using **Django** and **Tailwind CSS**. It includes several pages such as Home, About, Contact, Blog, Projects, Categories, and custom 404 pages. The project features a clean and modern design that is fully responsive and optimized for performance. It includes a powerful admin interface for managing the content, and is easy to customize and deploy to a production environment.\n\n![django-tailwind-blog-for-developers](https://user-images.githubusercontent.com/106135144/227858936-d4cbcb44-9ff4-4729-b0f0-6ede931b99e0.png)\n\n## Table of Content\n  * [Introduction](#introduction)\n  * [Installation](#installation)\n  * [Technologies Used](#technologies-used)\n  * [Features](#features)\n  * [Pages](#pages)\n  * [Website Screenshots](#website-screenshots)\n  * [Admin Screenshots](#admin-screenshots)\n  * [Deployment](#deployment)\n  * [Conclusion](#conclusion)\n  \n## Installation\n1. Clone the repository:\n```\ngit clone https://github.com/ashish-makes/django-tailwind-blog.git\n```\n2. Navigate to the project directory:\n```\ncd `django-tailwind-blog`\n```\n3. Create and activate a new virtual environment:\n```\npython -m venv env\nsource env/bin/activate\n```\n4. Install the project dependencies:\n```\npip install -r requirements.txt\n```\n5. Install the `django-tailwind` module:\n```\npip install django-tailwind\n```\n6. Add `tailwind` to your `INSTALLED_APPS` list in `settings.py`:\n```python\nINSTALLED_APPS = [\n    # ...\n    'tailwind',\n    # ...\n]\n```\n7. Run the Tailwind CSS configuration command:\n```python\npython manage.py tailwind init\n```\n8. Create the database tables:\n```python\npython manage.py migrate\n```\n9. Run the development server:\n```python\npython manage.py runserver\n```\n\n## Technologies used\n1. HTML\n2. CSS\n3. JavaScript\n4. Python\n\n### Primary Modules used\n1. Django==4.1.4\n2. django-tailwind==3.4.0\n3. whitenoise==6.3.0\n4. psycopg2==2.9.5\n5. django-tinymce==3.5.0\n\n## Features\n1. Responsive design using Tailwind CSS\n2. Admin dashboard for managing blog posts and portfolio items\n3. Contact form for sending messages to the site owner\n\n## Pages\n- `Home`: The landing page of the website, which displays a brief introduction and links to other pages.\n- `About`: A page that provides information about the site owner, their background, and skills.\n- `Contact`: A page that contains a contact form for visitors to send messages to the site owner.\n- `Blog`: A page that displays a list of blog posts in reverse chronological order, with links to individual post pages.\n- `Blog Post`: A page that displays the content of a single blog post, including the title, author, date, and content.\n- `Projects`: A page that displays a list of portfolio projects, with links to individual project pages.\n- `Project`: A page that displays the details of a single portfolio project, including the title, description, date, and any relevant images or links.\n- `Categories`: A page that displays a list of blog post categories, with links to filtered lists of posts for each category.\n- `Custom 404 Pages`: Custom error pages that display when a user navigates to a non-existent page or encounters an error.\n\n## Website Screenshots\n![127 0 0 1_8000_about](https://user-images.githubusercontent.com/106135144/218676693-b433a723-0569-4a5a-91e2-d2330659233d.png)\n\n![127 0 0 1_8000_contact](https://user-images.githubusercontent.com/106135144/218676709-3924f790-32db-46f3-a1b5-bf1907506751.png)\n\n![127 0 0 1_8000_blog](https://user-images.githubusercontent.com/106135144/218676733-bc2313e9-9721-4f4b-9fd8-ab7cfa939221.png)\n\n![127 0 0 1_8000_projects](https://user-images.githubusercontent.com/106135144/218676756-3770e70e-149b-48ae-af50-44d1ee43aed6.png)\n\n![127 0 0 1_8000_projectsk](https://user-images.githubusercontent.com/106135144/218676780-62e72dd7-d2e4-4ef9-9b2b-aea25abf625d.png)\n\n## Admin Screenshots\n![127 0 0 1_8000_admin_](https://user-images.githubusercontent.com/106135144/218730427-1aad64b4-65ff-44e4-babf-840d200919fa.png)\n\n![127 0 0 1_8000_admin_home_blog_](https://user-images.githubusercontent.com/106135144/218730473-d914186d-eabf-4ff9-bc45-dd98c024cfb5.png)\n\n![127 0 0 1_8000_admin_home_blog_7_change_](https://user-images.githubusercontent.com/106135144/218730503-f4027aeb-7579-4fc6-8fa4-5331201931e8.png)\n\n## Deployment\nTo deploy this project to a web server, you can follow these general steps:\n\n1. Set up a web server that can run Python applications. This could be a VPS, a PaaS like Heroku, or a cloud-based server like AWS.\n2. Clone the repository to your server:\n```\ngit clone https://github.com/ashish-makes/django-tailwind-blog.git\n```\n3. Install the project dependencies on your server using `pip`:\n```\npip install -r requirements.txt\n```\n4. Set up a database for the project, if necessary. You can use a database like PostgreSQL, MySQL, or SQLite, depending on your needs.\n5. Configure the settings.py file with your server's settings:\n```python\nDATABASES = {\n    'default': {\n        'ENGINE': 'django.db.backends.postgresql',\n        'NAME': 'mydatabase',\n        'USER': 'mydatabaseuser',\n        'PASSWORD': 'mypassword',\n        'HOST': 'localhost',\n        'PORT': '5432',\n    }\n}\n\nSTATIC_ROOT = '/var/www/static/'\nMEDIA_ROOT = '/var/www/media/'\n\nALLOWED_HOSTS = ['example.com', 'www.example.com']\n```\nThe DATABASES setting specifies the database connection details. In this example, we're using PostgreSQL with a database named `mydatabase`, a user named `mydatabaseuser`, and a password of `mypassword`. The `STATIC_ROOT` and `MEDIA_ROOT` settings specify the file paths where static files and media files will be stored. The `ALLOWED_HOSTS` setting is a list of domain names that the application is allowed to serve.\n6. Run the python manage.py collectstatic command to collect all the static files into the STATIC_ROOT directory:\n```python\npython manage.py collectstatic\n```\n7. Start the Django development server, or set up a production server using a WSGI server like uWSGI or Gunicorn.\n```python\npython manage.py runserver\n```\n8. Access the website using your server's IP address or domain name, and the port number of the server if necessary. For example, if you're running the development server on port 8000, you can access the website at `http://your-server-ip:8000/`.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fashish-makes%2Fdjango-tailwind-blog","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fashish-makes%2Fdjango-tailwind-blog","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fashish-makes%2Fdjango-tailwind-blog/lists"}