Super Impress is a Frontend Hire initiative where we build a serious product in public as a community.
This is why I am (or hopefully, we are) building SuperImpress.
There are many LinkedIn tools out there but:
- They make excessive use of AI to create content.
- This automatically results in not-so-authentic content.
- In order to sell themselves, they are marketing writing on LinkedIn in a wrong way.
SuperImpress will:
- Be author first and AI second.
- You write, then if needed you use AI to fix the writing.
- Give you templates that are plagiarism safe.
- And more, as I myself use the product.
Do note that I have already built the v0 (I have taken it down) of the product and it has served me and a few other users well.
For v1, I want to re-build it both from a product and a tech perspective.
We will be documenting every decision while re-building the product and this would be stored in the decisions folder.
Join the discord community for the latest updates.
This project uses pre-commit hooks to ensure code quality and consistency.
Steps to setup pre-commit:
# Install pre-commit
pip install pre-commit
# or if you have uv installed
uv tool install pre-commit
# Install the git hooks
pre-commit installNow pre-commit hooks will automatically run on staged files before each commit. If a hook fails, the commit will be blocked until issues are resolved.
Manual execution (optional):
# Run on staged files
pre-commit run
# Run on all files
pre-commit run --all-filesSuper Impress uses PostgreSQL as its database. The database choice is documented in decisions/tech/5-postgresql.md.
The application connects via DATABASE_URL and works with any PostgreSQL instance - Docker (recommended for development), local installation, or cloud services like AWS RDS.
You can run the project in two modes:
Best for active development with fast backend restarts and debugging.
-
Configure backend environment: Create
backend/.env:# Backend runs locally, PostgreSQL in Docker DATABASE_URL=postgresql+psycopg://postgres:postgres@localhost:5432/super_impress -
Start PostgreSQL:
docker compose up postgres -d
-
Install dependencies:
cd backend uv sync -
Run database migrations:
uv run alembic upgrade head
-
Start backend locally:
uv run fastapi dev
-
Test the setup:
- Backend: http://localhost:8000/docs
- PostgreSQL: Available on
localhost:5432
Run everything in Docker with a single command.
-
Configure backend environment: Create
backend/.env:# Both backend and PostgreSQL in Docker DATABASE_URL=postgresql+psycopg://postgres:postgres@postgres:5432/super_impress -
Start all services:
docker compose up backend -d
-
Run database migrations:
docker compose exec backend uv run alembic upgrade head
Key Difference: The hostname in DATABASE_URL:
localhost- Backend runs on your machine (Mode 1)postgres- Backend runs in Docker (Mode 2)
We use Alembic for database schema migrations.
After modifying models in backend/app/*/models.py:
# Mode 1 (Local backend)
cd backend
uv run alembic revision --autogenerate -m "describe your changes"
# Mode 2 (Docker backend)
docker compose exec backend uv run alembic revision --autogenerate -m "describe your changes"Review the generated migration file in backend/alembic/versions/ before applying.
# Mode 1 (Local backend)
uv run alembic upgrade head
# Mode 2 (Docker backend)
docker compose exec backend uv run alembic upgrade head# Rollback one migration
uv run alembic downgrade -1
# Rollback to specific revision
uv run alembic downgrade <revision_id>
# Rollback all migrations
uv run alembic downgrade base# Show current revision
uv run alembic current
# Show migration history
uv run alembic history
# Show pending migrations
uv run alembic heads