<a href="https://schroedinger-hat.org">
<img src="https://github.com/Schroedinger-Hat/tanglecat/raw/main/app/public/tanglecat-red.png" alt="Schrödinger Hat - Tangle Cat Logo" width="20%" align="center"/>
</a>
A platform for managing tech events with QR code-based challenge verification.
Hey, are you looking to implement this in your event? Contact us via events@schroedinger-hat.org we might help you!
Even in local development, your TangleCat game data will be hosted in a Sanity Studio Data Lake.
It is recommended that you complete the following steps before attempting to load Tanglecat, as a database connection is necessary for basic functionality.
Now, when you setup your project's .env file, you should have all the necessary environment variables.
Ensure that the following are installed on your device: - Docker and Docker Compose - Node.js 20+ (for local development)
git clone Schroedinger-Hat/tanglecat.git
cd tanglecat
.env file under the /app directory as follows.```bash NODE_ENV="development" NEXT_PUBLIC_SANITY_DATASET="production" NEXT_PUBLIC_SANITY_DATASET_DEV="development" NEXT_PUBLIC_SANITY_PROJECT_ID= NEXT_PUBLIC_BASE_URL="http://localhost:3000" SANITY_API_TOKEN= SANITY_API_VERSION="2024-03-21" NEXT_PUBLIC_TANGLECAT_EVENT_CODE= GITHUB_TOKEN=
(Dataset values may differ, but should match your Sanity testing and production db names)
**Event Code Resolution:** The app resolves the event code in the following order:
1. `NEXT_PUBLIC_TANGLECAT_EVENT_CODE` environment variable (e.g., `osday26`)
2. URL subdomain (e.g., `osday26.tanglecat.dev` → `osday26`)
3. If neither is set, generic text is displayed without an event name.
3. Start the development environment (from main project directory)
```bash
docker compose up
This will start the Next.js application and the integrated Sanity Studio CMS.
NOTE: The first time you start the environment, it will take a while to download the images and start the containers. If you encounter issues, confirm you have a correctly configured .env file in the root of the /app directory.
http://localhost:8080 - this should show you your local version on the NextJS app, with access to live development database data.http://localhost:8080/studio - this should show you your live development database hosted on Sanity.io. Use this Studio interface to create test content for your event app.The above instructions allow you to access and edit your development database locally (from within your app), but not access your production database locally. If you would like to make changes to the production database locally, deploy a remote sanity studio, or otherwise work with your Sanity data uncoupled from the frontend app, follow these instructions to run a separate Sanity Studio instance:
.env file under /app/sanity as follows (see provided .env.example in same directory).```bash SANITY_STUDIO_SANITY_DATASET="production" SANITY_STUDIO_SANITY_DATASET_DEV="development" SANITY_STUDIO_SANITY_PROJECT_ID= SANITY_API_TOKEN= SANITY_API_VERSION="2024-03-21"
(These values should match your primary `.env` file, however the names will differ. You may also wish to use a separate API token with different permissions than app token).
**NOTE**: additional `.env.development` & `.env.production` example files are provided - if you remove the `.sample` suffix from both, Sanity Studio will default to showing *production* database first in production environments & *development* database first in development environments (extra optional).
2. Start the development environment (from main project directory)
```bash
docker compose -f docker-compose.sanity.yml up
This will start the Next.js application and the integrated Sanity Studio CMS.
NOTE: The first time you start the environment, it will take a while to download the images and start the containers. If you encounter issues, confirm you have a correctly configured .env file in the root of the /app/sanity directory.
http://localhost:3333 - this should show you your live development database hosted on Sanity.io. You will find, however, that you can also navigate to and edit your production database from here.NODE_ENV=production docker compose up --build
NODE_ENV=production docker compose up
This will start the Next.js application and the Sanity Studio CMS in production mode.
http://localhost:8080 & http://localhost:8080/studioThe project is organized into the following directories:
app: Next.js application codeapp/components: Reusable React componentsapp/lib: Utility functionsapp/api: API routesapp/public: Static assetsapp/styles: Global CSS stylesapp/types: TypeScript type definitionsapp/utils: Utility functionsapp/sanity: Sanity Studio configuration and schemasFork or clone this repository to your GitHub account
Create a new project on Vercel
Import your repository
Configure the following environment variables in Vercel's project settings:
NEXT_PUBLIC_SANITY_PROJECT_ID: Your Sanity project IDNEXT_PUBLIC_SANITY_DATASET: Your Sanity dataset name (usually "production")SANITY_API_VERSION: Your Sanity API version (e.g., "2024-03-21")SANITY_API_TOKEN: Your Sanity API token with write access
Deploy! Vercel will automatically build and deploy your app
The app will be automatically deployed on every push to the main branch.
https://your-project.vercel.appThis project is licensed under the AGPLv3 License. See the LICENSE file for details.
For any questions or feedback, please contact us at events@schroedinger-hat.org
Miki Lombardi
💻 Maintainer
|
Patrick Raedler
💻 Maintainer
|
Lorenzo Bugli
💻 Maintainer
|
$ claude mcp add tanglecat \
-- python -m otcore.mcp_server <graph>