Squigl v2 is the next evolution of my Twitter/X clone, rebuilt from the ground up with a modern tech stack. This time, I’ve split it into two parts: a Django REST Framework back-end for a robust API and a React front-end for a seamless user experience. Built on the foundation of my Banana repository.
On top of everything in Banana, Squigl v2 includes:
- Post creation (image and/or text)
- Automatic hashtag, user profile links, and URL generation in posts
- Post editing and deletion
- Post liking
- Replying, editing, and deleting replies
- Reply liking
- Individual post pages with replies
- User profile pages
- User following and unfollowing
- Private user-to-user messaging
- Message read/unread status
- Message deletion
- Trending hashtags calculated from posts
- Listing unfollowed users
- Post and user searching
- User profile customisation
To make v2 have feature parity with v1 I still need to add the following:
- Post reporting
- Moderation dashboard
- Optimised views for mobile and tablet
Instructions are for macOS.
- Node.js
- Python
- Open the backend directory in your terminal.
- Create and activate a virtual environment:
python3 -m venv venv source venv/bin/activate - Install dependencies:
pip3 install -r requirements.txt
- Apply database migrations:
python3 manage.py makemigrations dm posts accounts python3 manage.py migrate
- (Optional) Create an admin user:
python3 manage.py createsuperuser
- Start the server:
python3 manage.py runserver
- Open the frontend directory in your terminal.
- Install dependencies:
npm install
- Start the server:
npm run dev