Duolicious – Open-source dating app

roger_penrose1 pts0 comments

GitHub - duolicious/duolicious: The internet's most popular open-source dating app · GitHub

/" data-turbo-transient="true" />

Skip to content

Search or jump to...

Search code, repositories, users, issues, pull requests...

-->

Search

Clear

Search syntax tips

Provide feedback

--><br>We read every piece of feedback, and take your input very seriously.

Include my email address so I can be contacted

Cancel

Submit feedback

Saved searches

Use saved searches to filter your results more quickly

-->

Name

Query

To see all available qualifiers, see our documentation.

Cancel

Create saved search

Sign in

/;ref_cta:Sign up;ref_loc:header logged out"}"<br>Sign up

Appearance settings

Resetting focus

You signed in with another tab or window. Reload to refresh your session.<br>You signed out in another tab or window. Reload to refresh your session.<br>You switched accounts on another tab or window. Reload to refresh your session.

Dismiss alert

{{ message }}

Uh oh!

There was an error while loading. Please reload this page.

duolicious

duolicious

Public

Notifications<br>You must be signed in to change notification settings

Fork<br>49

Star<br>152

main

BranchesTags

Go to file

CodeOpen more actions menu

Folders and files<br>NameNameLast commit message<br>Last commit date<br>Latest commit

History<br>1,409 Commits<br>1,409 Commits

.github

.github

backend

backend

frontend

frontend

LICENSE

LICENSE

README.md

README.md

docker-compose.yml

docker-compose.yml

View all files

Repository files navigation

Duolicious

The world's most popular open-source dating app.

Duolicious is a personality-based dating app for meeting like-minded people.<br>There's no swiping; people connect by starting a conversation. The client and the<br>servers behind it both live in this repo under the AGPL-3.0, so you're welcome to<br>read how it works, run your own copy, or send a patch.

Try it now in your browser at web.duolicious.app ,<br>or grab it on<br>Google Play<br>and the<br>App Store .

How it works

Matching on answers, not just photos. The question bank has over 2,000<br>questions covering values, faith, politics, sexual compatibility and more. You<br>don't have to answer them all — Duolicious surfaces matches after your first<br>answer, and refines them as you answer more.

Psychometric traits. Alongside familiar frameworks like the MBTI,<br>Duolicious shows how you compare to others on traits such as attachment style<br>and thriftiness.

No swiping. There's no liking or swiping. People introduce themselves by<br>sending a message, and the app discourages low-effort openers like "hey" and<br>"sup".

Open source. The app, API, chat, and infrastructure are all in this repo.<br>Anyone can read the code, run their own instance, file an issue, or send a fix.

Funding. Duolicious runs on an optional subscription that covers the<br>servers and keeps the project going. The core experience is free to use.

What's in this repo

This monorepo contains both halves of Duolicious:

Directory<br>What it is

backend/<br>The API, chat, cron and supporting services (Python + Postgres). See its README and DEVELOPER.md.

frontend/<br>The cross-platform app (Expo / React Native, with a web build). See its README and DEVELOPER.md.

Run the whole app in one command

Requirements: Docker (with Compose v2.20+).

git clone https://github.com/duolicious/duolicious<br>cd duolicious<br>docker compose up

That single command builds and starts the entire backend stack and the<br>frontend web app. Once it's up:

Frontend (web): http://localhost:8081

API health: http://localhost:5000/health

MailHog (test email UI): http://localhost:8025

Mock S3: http://localhost:9090

Status page: http://localhost:8080

The frontend's default API URLs already point at the backend's published<br>localhost ports, so the web app talks to your local backend with no extra<br>configuration.

To seed a test user once the API is healthy:

(cd backend && ./test/util/create-user.sh alice 30 1 true)

Working on just one half

You can develop each side on its own — see the per-directory READMEs and<br>DEVELOPER.md files linked in the table above. The root docker compose up is<br>still the easiest way to get everything running at once.

Tests

CI runs the full test suite for both halves on every push and pull request to<br>main (see .github/workflows/):

Backend: mypy, unit tests, and functionality suites 1–6.

Frontend: ESLint, Jest, Playwright, and TypeScript type checks.

Contributing

There are a few ways to help:

Send a pull request. Pick up an open issue<br>or fix something that bugs you. docker compose up gets you a full local<br>environment in one step, and developer instructions live in each half's<br>DEVELOPER.md.

Read the CONTRIBUTING.md<br>(backend ·<br>frontend) for coding standards, how to run the<br>tests, and what makes a good PR.

Spread the word. Telling people and sharing Duolicious helps the app grow.

Subscribe. A subscription helps cover the servers and keep the project<br>sustainable.

New contributors are welcome. If you're not sure where to start, open an issue<br>and...

duolicious backend frontend open github docker

Related Articles