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...