Join the First Amendment Club to help us become the People's Paper with a $2M Match!

Join Now
Skip to main content

Colophon

The technology, tools, and philosophies that power Comma.

Our Development Ethos

At Comma, we believe that technology should serve journalism, not the other way around. Our development approach is guided by four core principles that shape everything we build:

Code Ownership

Our front-end developers own their code end-to-end, from concept to deployment. This empowers our team to make informed decisions, take pride in their work, and build cohesive, maintainable systems rather than fragmented components.

Utility-First Design

We embrace utility-first design principles with Tailwind CSS at our core. This approach leads to more consistent interfaces, faster iteration, and a cleaner separation between design and business logic.

Ridiculously Fast Development

Using Django's "batteries-included" philosophy, we prioritize speed to publication. News doesn't wait, and neither do we. Our stack is optimized for rapid development without sacrificing code quality or maintainability.

Emotion-Driven Experiences

Inspired by Material Design principles but implemented through our Vue and Tailwind stack, we create interfaces that resonate emotionally with users. Journalism is about human stories, and our platform reflects that humanity in every interaction.

Core Technologies

Django

Django

Our back-end is powered by Django (4.2.21), the high-level Python web framework that encourages rapid development and clean, pragmatic design. Django's "batteries-included" philosophy gives us a comprehensive set of tools to build secure, scalable web applications quickly.

Learn more →
Python

Python

Python (3.13.5) forms the foundation of our back-end development. Its readability, extensive standard library, and thriving ecosystem make it the perfect language for building our journalism platform. We leverage Python's elegant syntax and powerful features for everything from data processing to web services.

Learn more →
Vue.js

Vue.js

Vue.js (3.3.x) powers our reactive front-end components. We chose Vue for its gentle learning curve, flexible architecture, and excellent performance. Vue's component-based approach allows us to build complex UIs while maintaining clean, maintainable code.

Learn more →
Tailwind CSS

Tailwind CSS

Tailwind CSS (3.3.x) is our utility-first CSS framework that helps us build custom designs without leaving our HTML. It allows us to rapidly develop responsive interfaces with consistent design language while maintaining full control over our visual identity.

Learn more →

Database & Analytics

PostgreSQL

PostgreSQL

PostgreSQL (15.x) is our database of choice for its reliability, feature robustness, and excellent performance. We leverage its advanced features like JSON storage, full-text search, and transactional integrity to power our content management and user data systems.

Learn more →
Metabase

Metabase

Metabase provides our data visualization and business intelligence solution. It allows our journalists and editors to explore data, create visualizations, and gain insights without requiring technical expertise. We use Metabase to track user engagement, content performance, and other key metrics.

Learn more →

AI & Third-Party Services

Claude by Anthropic

Claude by Anthropic

We leverage Claude's AI capabilities to assist with content summarization, research, and data analysis. Claude helps our journalists find relevant information and process large datasets quickly.

Learn more →
OpenAI

OpenAI

OpenAI's models help power our content recommendation engine and assist with semantic search across our journalism archive. We use these tools to enhance user experiences while maintaining editorial integrity.

Learn more →
Google Cloud

Google APIs

We utilize various Google APIs for maps integration, analytics, and document processing. These services help us deliver location-aware content and understand user engagement patterns.

Learn more →

Development & Deployment

GitHub

GitHub

GitHub hosts our source code and powers our collaborative development workflow. We use GitHub Actions for continuous integration and deployment, ensuring our code is thoroughly tested before reaching production.

Visit our GitHub →
PrimeVue (Volt)

PrimeVue (Volt)

PrimeVue provides our UI component library for Vue, offering a comprehensive suite of accessible, customizable components that accelerate our front-end development while maintaining a consistent user experience.

Learn more →

Open Source Licenses

Comma is built on the shoulders of giants. We're deeply grateful to the open-source community for creating and maintaining the tools that make our work possible.

Our License

Comma's own code is licensed under the MIT License, allowing for maximum flexibility for those who wish to learn from or build upon our work.

MIT License

Copyright (c) 2025 Comma News

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
                        

We use numerous open-source packages, each with its own license. For a complete list of dependencies and their licenses, please visit:

Help Us Build the Future of Journalism

We're committed to opensource and transparent technology for better journalism. Join us in our mission to create technology that serves the truth.

DJDT

Versions

Package Name Version
Django 4.2.21
Python 3.13.5
debug_toolbar Debug Toolbar 5.2.0
django_filters Django_Filters 25.1
drf_spectacular drf-spectacular 0.28.0
graphene_django Graphene_Django 3.2.3
rest_framework Django REST framework 3.16.0
storages Storages 1.14.6

Time

Resource usage

Resource Value
User CPU time 13.761 msec
System CPU time 0.000 msec
Total CPU time 13.761 msec
Elapsed time 13.761 msec
Context switches 0 voluntary, 0 involuntary

Browser timing

Timing attribute Timeline Milliseconds since navigation start (+length)

Settings from config.settings.staging

Setting Value
ABSOLUTE_URL_OVERRIDES {}
ACCOUNT_AUTHENTICATION_METHOD 'email'
ACCOUNT_DEFAULT_HTTP_PROTOCOL 'https'
ACCOUNT_EMAIL_REQUIRED True
ACCOUNT_EMAIL_VERIFICATION 'mandatory'
ACCOUNT_LOGIN_ON_EMAIL_CONFIRMATION True
ACCOUNT_SESSION_REMEMBER True
ACCOUNT_SIGNUP_PASSWORD_ENTER_TWICE '********************'
ACCOUNT_UNIQUE_EMAIL True
ACCOUNT_USERNAME_REQUIRED False
ADMINS []
ADMIN_LOGIN_URL '/min/login/'
ADMIN_URL_PREFIX 'min/'
ALLAUTH_2FA_ALWAYS_REVEAL_BACKUP_TOKENS '********************'
ALLOWED_HOSTS ['beta.comma.cm', '3.232.182.111', 'localhost', '127.0.0.1', '.comma.cm']
APPEND_SLASH True
AUTHENTICATION_BACKENDS ['django.contrib.auth.backends.ModelBackend', 'graphql_jwt.backends.JSONWebTokenBackend', 'apps.web.auth.PhoneAuthenticationBackend']
AUTH_PASSWORD_VALIDATORS '********************'
AUTH_USER_MODEL 'web.User'
AWS_SSO_SETTINGS {'DEFAULT_PROFILE': 'comma-dev', 'PRODUCTION_PROFILE': 'comma-prod', 'REFRESH_INTERVAL_HOURS': 8}
BASE_DIR PosixPath('/opt/comma/monorepo/services/django')
CACHES {'default': {'BACKEND': 'django.core.cache.backends.locmem.LocMemCache', 'LOCATION': 'staging-cache'}}
CACHE_MIDDLEWARE_ALIAS 'default'
CACHE_MIDDLEWARE_KEY_PREFIX '********************'
CACHE_MIDDLEWARE_SECONDS 600
CORS_ALLOWED_ORIGINS ['https://beta.comma.cm', 'https://b-staging.comma.cm', 'https://docs-staging.comma.cm', 'https://sb-staging.comma.cm']
CSRF_COOKIE_AGE 31449600
CSRF_COOKIE_DOMAIN None
CSRF_COOKIE_HTTPONLY False
CSRF_COOKIE_MASKED False
CSRF_COOKIE_NAME 'csrftoken'
CSRF_COOKIE_PATH '/'
CSRF_COOKIE_SAMESITE 'Lax'
CSRF_COOKIE_SECURE True
CSRF_FAILURE_VIEW 'django.views.csrf.csrf_failure'
CSRF_HEADER_NAME 'HTTP_X_CSRFTOKEN'
CSRF_TRUSTED_ORIGINS []
CSRF_USE_SESSIONS False
DATABASES {'default': {'ATOMIC_REQUESTS': False, 'AUTOCOMMIT': True, 'CONN_HEALTH_CHECKS': False, 'CONN_MAX_AGE': 0, 'ENGINE': 'django.db.backends.sqlite3', 'HOST': '', 'NAME': '/opt/comma/django/db.sqlite3', 'OPTIONS': {}, 'PASSWORD': '********************', 'PORT': '', 'TEST': {'CHARSET': None, 'COLLATION': None, 'MIGRATE': True, 'MIRROR': None, 'NAME': None}, 'TIME_ZONE': None, 'USER': ''}}
DATABASE_ROUTERS []
DATA_UPLOAD_MAX_MEMORY_SIZE 10485760
DATA_UPLOAD_MAX_NUMBER_FIELDS 1000
DATA_UPLOAD_MAX_NUMBER_FILES 100
DATETIME_FORMAT 'N j, Y, P'
DATETIME_INPUT_FORMATS ['%Y-%m-%d %H:%M:%S', '%Y-%m-%d %H:%M:%S.%f', '%Y-%m-%d %H:%M', '%m/%d/%Y %H:%M:%S', '%m/%d/%Y %H:%M:%S.%f', '%m/%d/%Y %H:%M', '%m/%d/%y %H:%M:%S', '%m/%d/%y %H:%M:%S.%f', '%m/%d/%y %H:%M']
DATE_FORMAT 'N j, Y'
DATE_INPUT_FORMATS ['%Y-%m-%d', '%m/%d/%Y', '%m/%d/%y', '%b %d %Y', '%b %d, %Y', '%d %b %Y', '%d %b, %Y', '%B %d %Y', '%B %d, %Y', '%d %B %Y', '%d %B, %Y']
DEBUG True
DEBUG_PROPAGATE_EXCEPTIONS False
DEBUG_TOOLBAR_CONFIG {'SHOW_TOOLBAR_CALLBACK': <function <lambda> at 0x759e863d22a0>}
DECIMAL_SEPARATOR '.'
DEFAULT_AUTO_FIELD 'django.db.models.BigAutoField'
DEFAULT_CHARSET 'utf-8'
DEFAULT_EXCEPTION_REPORTER 'django.views.debug.ExceptionReporter'
DEFAULT_EXCEPTION_REPORTER_FILTER 'django.views.debug.SafeExceptionReporterFilter'
DEFAULT_FILE_STORAGE 'django.core.files.storage.FileSystemStorage'
DEFAULT_FROM_EMAIL 'webmaster@localhost'
DEFAULT_INDEX_TABLESPACE ''
DEFAULT_TABLESPACE ''
DISALLOWED_USER_AGENTS []
DJANGO_ENVIRONMENT 'development'
DOCS_BASE_URL 'https://docs.comma.cm'
EMAIL_BACKEND 'django.core.mail.backends.console.EmailBackend'
EMAIL_HOST 'localhost'
EMAIL_HOST_PASSWORD '********************'
EMAIL_HOST_USER ''
EMAIL_PORT 25
EMAIL_SSL_CERTFILE None
EMAIL_SSL_KEYFILE '********************'
EMAIL_SUBJECT_PREFIX '[Django] '
EMAIL_TIMEOUT None
EMAIL_USE_LOCALTIME False
EMAIL_USE_SSL False
EMAIL_USE_TLS False
ENABLE_OTP True
ENVIRONMENT 'staging'
FILE_UPLOAD_DIRECTORY_PERMISSIONS None
FILE_UPLOAD_HANDLERS ['django.core.files.uploadhandler.MemoryFileUploadHandler', 'django.core.files.uploadhandler.TemporaryFileUploadHandler']
FILE_UPLOAD_MAX_MEMORY_SIZE 2621440
FILE_UPLOAD_PERMISSIONS 420
FILE_UPLOAD_TEMP_DIR None
FIRST_DAY_OF_WEEK 0
FIXTURE_DIRS []
FORCE_SCRIPT_NAME None
FORMAT_MODULE_PATH None
FORM_RENDERER 'django.forms.renderers.DjangoTemplates'
FRONTEND_BASE_URL 'https://b.comma.cm'
GOOGLE_WORKSPACE_ADMIN_EMAIL ''
GOOGLE_WORKSPACE_ADMIN_GROUP 'comma-admins'
GOOGLE_WORKSPACE_CREDENTIALS_FILE ''
GRAPHENE {'MIDDLEWARE': ['graphql_jwt.middleware.JSONWebTokenMiddleware'], 'SCHEMA': 'apps.core.schema.schema'}
HEALTH_CHECK_URL '/health/'
IGNORABLE_404_URLS []
INSTALLED_APPS ['django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'django.contrib.humanize', 'storages', 'rest_framework', 'drf_spectacular', 'django_filters', 'graphene_django', 'django.contrib.sites', 'apps.core', 'apps.accounts', 'apps.web', 'apps.comms', 'apps.search', 'apps.sso', 'debug_toolbar']
INTERNAL_IPS ['127.0.0.1']
LANGUAGES [('af', 'Afrikaans'), ('ar', 'Arabic'), ('ar-dz', 'Algerian Arabic'), ('ast', 'Asturian'), ('az', 'Azerbaijani'), ('bg', 'Bulgarian'), ('be', 'Belarusian'), ('bn', 'Bengali'), ('br', 'Breton'), ('bs', 'Bosnian'), ('ca', 'Catalan'), ('ckb', 'Central Kurdish (Sorani)'), ('cs', 'Czech'), ('cy', 'Welsh'), ('da', 'Danish'), ('de', 'German'), ('dsb', 'Lower Sorbian'), ('el', 'Greek'), ('en', 'English'), ('en-au', 'Australian English'), ('en-gb', 'British English'), ('eo', 'Esperanto'), ('es', 'Spanish'), ('es-ar', 'Argentinian Spanish'), ('es-co', 'Colombian Spanish'), ('es-mx', 'Mexican Spanish'), ('es-ni', 'Nicaraguan Spanish'), ('es-ve', 'Venezuelan Spanish'), ('et', 'Estonian'), ('eu', 'Basque'), ('fa', 'Persian'), ('fi', 'Finnish'), ('fr', 'French'), ('fy', 'Frisian'), ('ga', 'Irish'), ('gd', 'Scottish Gaelic'), ('gl', 'Galician'), ('he', 'Hebrew'), ('hi', 'Hindi'), ('hr', 'Croatian'), ('hsb', 'Upper Sorbian'), ('hu', 'Hungarian'), ('hy', 'Armenian'), ('ia', 'Interlingua'), ('id', 'Indonesian'), ('ig', 'Igbo'), ('io', 'Ido'), ('is', 'Icelandic'), ('it', 'Italian'), ('ja', 'Japanese'), ('ka', 'Georgian'), ('kab', 'Kabyle'), ('kk', 'Kazakh'), ('km', 'Khmer'), ('kn', 'Kannada'), ('ko', 'Korean'), ('ky', 'Kyrgyz'), ('lb', 'Luxembourgish'), ('lt', 'Lithuanian'), ('lv', 'Latvian'), ('mk', 'Macedonian'), ('ml', 'Malayalam'), ('mn', 'Mongolian'), ('mr', 'Marathi'), ('ms', 'Malay'), ('my', 'Burmese'), ('nb', 'Norwegian Bokmål'), ('ne', 'Nepali'), ('nl', 'Dutch'), ('nn', 'Norwegian Nynorsk'), ('os', 'Ossetic'), ('pa', 'Punjabi'), ('pl', 'Polish'), ('pt', 'Portuguese'), ('pt-br', 'Brazilian Portuguese'), ('ro', 'Romanian'), ('ru', 'Russian'), ('sk', 'Slovak'), ('sl', 'Slovenian'), ('sq', 'Albanian'), ('sr', 'Serbian'), ('sr-latn', 'Serbian Latin'), ('sv', 'Swedish'), ('sw', 'Swahili'), ('ta', 'Tamil'), ('te', 'Telugu'), ('tg', 'Tajik'), ('th', 'Thai'), ('tk', 'Turkmen'), ('tr', 'Turkish'), ('tt', 'Tatar'), ('udm', 'Udmurt'), ('uk', 'Ukrainian'), ('ur', 'Urdu'), ('uz', 'Uzbek'), ('vi', 'Vietnamese'), ('zh-hans', 'Simplified Chinese'), ('zh-hant', 'Traditional Chinese')]
LANGUAGES_BIDI ['he', 'ar', 'ar-dz', 'ckb', 'fa', 'ur']
LANGUAGE_CODE 'en-us'
LANGUAGE_COOKIE_AGE None
LANGUAGE_COOKIE_DOMAIN None
LANGUAGE_COOKIE_HTTPONLY False
LANGUAGE_COOKIE_NAME 'django_language'
LANGUAGE_COOKIE_PATH '/'
LANGUAGE_COOKIE_SAMESITE None
LANGUAGE_COOKIE_SECURE False
LOCALE_PATHS []
LOGGING {'disable_existing_loggers': False, 'formatters': {'verbose': {'format': '{levelname} {asctime} {module} ' '{message}', 'style': '{'}}, 'handlers': {'console': {'class': 'logging.StreamHandler', 'formatter': 'verbose'}, 'file': {'class': 'logging.FileHandler', 'filename': '/opt/comma/logs/django-staging.log', 'formatter': 'verbose'}}, 'loggers': {'apps': {'handlers': ['console', 'file'], 'level': 'DEBUG'}, 'django': {'handlers': ['console', 'file'], 'level': 'INFO'}}, 'version': 1}
LOGGING_CONFIG 'logging.config.dictConfig'
LOGIN_REDIRECT_URL '/'
LOGIN_URL '/accounts/login/'
LOGOUT_REDIRECT_URL '/'
MANAGERS []
MEDIA_LOCATION 'media'
MEDIA_ROOT PosixPath('/opt/comma/monorepo/services/django/media')
MEDIA_URL '/media/'
MESSAGE_STORAGE 'django.contrib.messages.storage.fallback.FallbackStorage'
MIDDLEWARE ['debug_toolbar.middleware.DebugToolbarMiddleware', 'django.middleware.security.SecurityMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', 'django.middleware.common.CommonMiddleware', 'django.middleware.csrf.CsrfViewMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', 'allauth.account.middleware.AccountMiddleware', 'apps.sso.middleware.SSOValidationMiddleware', 'django.middleware.clickjacking.XFrameOptionsMiddleware', 'config.analytics_strategy.DjangoAnalyticsMiddleware']
MIGRATION_MODULES {}
MIXPANEL_SECRET '********************'
MIXPANEL_TOKEN '********************'
MONTH_DAY_FORMAT 'F j'
NPM_BIN_PATH '/usr/bin/npm'
NUMBER_GROUPING 0
PASSWORD_HASHERS '********************'
PASSWORD_RESET_TIMEOUT '********************'
PHONENUMBER_DEFAULT_FORMAT 'INTERNATIONAL'
PHONENUMBER_DEFAULT_REGION 'US'
PREPEND_WWW False
REST_FRAMEWORK {'DEFAULT_AUTHENTICATION_CLASSES': ('rest_framework.authentication.SessionAuthentication', 'rest_framework.authentication.BasicAuthentication'), 'DEFAULT_FILTER_BACKENDS': ['django_filters.rest_framework.DjangoFilterBackend'], 'DEFAULT_PAGINATION_CLASS': 'rest_framework.pagination.PageNumberPagination', 'DEFAULT_SCHEMA_CLASS': 'drf_spectacular.openapi.AutoSchema', 'PAGE_SIZE': 10}
ROOT_URLCONF 'config.urls'
SECRET_KEY '********************'
SECRET_KEY_FALLBACKS '********************'
SECURE_BROWSER_XSS_FILTER True
SECURE_CONTENT_TYPE_NOSNIFF True
SECURE_CROSS_ORIGIN_OPENER_POLICY 'same-origin'
SECURE_HSTS_INCLUDE_SUBDOMAINS False
SECURE_HSTS_PRELOAD False
SECURE_HSTS_SECONDS 0
SECURE_PROXY_SSL_HEADER None
SECURE_REDIRECT_EXEMPT []
SECURE_REFERRER_POLICY 'same-origin'
SECURE_SSL_HOST None
SECURE_SSL_REDIRECT False
SENDGRID_SETTINGS {'API_KEY': '********************', 'FROM_EMAIL': 'noreply@comma.cm', 'FROM_NAME': 'Comma', 'SANDBOX_MODE': True}
SERVER_EMAIL 'root@localhost'
SESSION_CACHE_ALIAS 'default'
SESSION_COOKIE_AGE 1209600
SESSION_COOKIE_DOMAIN None
SESSION_COOKIE_HTTPONLY True
SESSION_COOKIE_NAME 'sessionid'
SESSION_COOKIE_PATH '/'
SESSION_COOKIE_SAMESITE 'Lax'
SESSION_COOKIE_SECURE True
SESSION_ENGINE 'django.contrib.sessions.backends.db'
SESSION_EXPIRE_AT_BROWSER_CLOSE False
SESSION_FILE_PATH None
SESSION_SAVE_EVERY_REQUEST False
SESSION_SERIALIZER 'django.contrib.sessions.serializers.JSONSerializer'
SETTINGS_MODULE 'config.settings.staging'
SHORT_DATETIME_FORMAT 'm/d/Y P'
SHORT_DATE_FORMAT 'm/d/Y'
SIGNING_BACKEND 'django.core.signing.TimestampSigner'
SILENCED_SYSTEM_CHECKS []
SITE_ID 1
SOCIALACCOUNT_ADAPTER None
SOCIALACCOUNT_PROVIDERS {'google': {'APP': {'client_id': '', 'key': '********************', 'secret': '********************'}, 'AUTH_PARAMS': {'access_type': 'online', 'hd': 'comma.cm'}, 'SCOPE': ['profile', 'email'], 'VERIFIED_EMAIL': True}}
SPECTACULAR_SETTINGS {'COMPONENT_NO_READ_ONLY_REQUIRED': False, 'COMPONENT_SPLIT_REQUEST': True, 'DESCRIPTION': 'API documentation for Comma platform', 'GET_MOCK_REQUEST': 'apps.core.utils.get_mock_request', 'REDOC_UI_SETTINGS': {'hideDownloadButton': False}, 'SCHEMA_PATH_PREFIX': '/api/v1', 'SERVE_INCLUDE_SCHEMA': False, 'SERVE_PERMISSIONS': ['rest_framework.permissions.IsAuthenticated'], 'SWAGGER_UI_SETTINGS': {'deepLinking': True, 'displayOperationId': True, 'persistAuthorization': True}, 'TITLE': 'Comma API', 'VERSION': '1.0.0'}
SSO_VALIDATION {'ENABLED': True, 'TARGET_USERS': ['scott@comma.cm'], 'VALIDATE_INTERVAL_HOURS': 24}
STATICFILES_DIRS [PosixPath('/opt/comma/monorepo/services/django/static')]
STATICFILES_FINDERS ['django.contrib.staticfiles.finders.FileSystemFinder', 'django.contrib.staticfiles.finders.AppDirectoriesFinder']
STATICFILES_STORAGE 'django.contrib.staticfiles.storage.StaticFilesStorage'
STATIC_LOCATION 'static'
STATIC_ROOT PosixPath('/opt/comma/monorepo/services/django/staticfiles')
STATIC_URL '/static/'
STORAGES {'default': {'BACKEND': 'django.core.files.storage.FileSystemStorage'}, 'staticfiles': {'BACKEND': 'django.contrib.staticfiles.storage.StaticFilesStorage'}}
STORYBOOK_BASE_URL 'https://sb.comma.cm'
TEMPLATES [{'APP_DIRS': True, 'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': [PosixPath('/opt/comma/monorepo/services/django/templates'), PosixPath('/opt/comma/monorepo/services/django/apps/core/templates')], 'OPTIONS': {'context_processors': ['django.template.context_processors.debug', 'django.template.context_processors.request', 'django.contrib.auth.context_processors.auth', 'django.contrib.messages.context_processors.messages', 'config.variables.variable_context_processor', 'apps.web.context_processors.navigation_items', 'apps.web.context_processors.environment_urls', 'config.analytics_strategy.analytics_context_processor']}}]
TEST_NON_SERIALIZED_APPS []
TEST_RUNNER 'django.test.runner.DiscoverRunner'
THOUSAND_SEPARATOR ','
TIME_FORMAT 'P'
TIME_INPUT_FORMATS ['%H:%M:%S', '%H:%M:%S.%f', '%H:%M']
TIME_ZONE 'America/Los_Angeles'
TWILIO_ACCOUNT_SID ''
TWILIO_AUTH_TOKEN '********************'
TWILIO_FROM_NUMBER ''
TWILIO_SETTINGS {'ACCOUNT_SID': '', 'AUTH_TOKEN': '********************', 'FROM_NUMBER': '', 'VERIFY_SERVICE_SID': ''}
USE_DEPRECATED_PYTZ False
USE_I18N True
USE_L10N True
USE_S3 False
USE_THOUSAND_SEPARATOR False
USE_TZ True
USE_X_FORWARDED_HOST False
USE_X_FORWARDED_PORT False
WSGI_APPLICATION 'config.wsgi.application'
X_FRAME_OPTIONS 'DENY'
YEAR_MONTH_FORMAT 'F Y'

Headers

Request headers

Key Value
Accept */*
Accept-Encoding gzip, br, zstd, deflate
Connection close
Host beta.comma.cm
Referer https://beta.comma.cm/colophon
User-Agent Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)
X-Forwarded-For 216.73.216.111
X-Forwarded-Proto https
X-Real-Ip 216.73.216.111

Response headers

Key Value
Content-Length 36563
Content-Type text/html; charset=utf-8
Cross-Origin-Opener-Policy same-origin
Referrer-Policy same-origin
Vary Cookie
X-Content-Type-Options nosniff
X-Frame-Options DENY

WSGI environ

Since the WSGI environ inherits the environment of the server, only a significant subset is shown below.

Key Value
PATH_INFO /colophon/
QUERY_STRING
REMOTE_ADDR
REQUEST_METHOD GET
SCRIPT_NAME
SERVER_NAME beta.comma.cm
SERVER_PORT 443
SERVER_PROTOCOL HTTP/1.0
SERVER_SOFTWARE gunicorn/20.1.0

Request

View information

View function Arguments Keyword arguments URL name
apps.web.views.colophon.ColophonView () {} colophon

No cookies

No session data

No GET data

No POST data

SQL queries from 0 connections

No SQL queries were recorded during this request.

Static files (310 found, 16 used)

Static file path

  1. /opt/comma/monorepo/services/django/static

Static file apps

  1. django.contrib.admin
  2. rest_framework
  3. graphene_django
  4. debug_toolbar

Static files

images/favicons/favicon.ico
/opt/comma/monorepo/services/django/static/images/favicons/favicon.ico
css/primeicons/primeicons.css
/opt/comma/monorepo/services/django/static/css/primeicons/primeicons.css
css/primeflex/primeflex.min.css
/opt/comma/monorepo/services/django/static/css/primeflex/primeflex.min.css
css/primevue-theme.css
/opt/comma/monorepo/services/django/static/css/primevue-theme.css
css/theme.css
/opt/comma/monorepo/services/django/static/css/theme.css
css/styles.css
/opt/comma/monorepo/services/django/static/css/styles.css
css/comma-ui.css
/opt/comma/monorepo/services/django/static/css/comma-ui.css
css/micro-interactions.css
/opt/comma/monorepo/services/django/static/css/micro-interactions.css
css/header-footer-clean.css
/opt/comma/monorepo/services/django/static/css/header-footer-clean.css
css/icon-fixes.css
/opt/comma/monorepo/services/django/static/css/icon-fixes.css
images/brand/comma-logo.svg
/opt/comma/monorepo/services/django/static/images/brand/comma-logo.svg
images/brand/comma-logo.svg
/opt/comma/monorepo/services/django/static/images/brand/comma-logo.svg
js/vue/vue.global.prod.js
/opt/comma/monorepo/services/django/static/js/vue/vue.global.prod.js
js/primevue/core.min.js
/opt/comma/monorepo/services/django/static/js/primevue/core.min.js
js/comma-ui.js
/opt/comma/monorepo/services/django/static/js/comma-ui.js
js/app-fixed.js
/opt/comma/monorepo/services/django/static/js/app-fixed.js

django.contrib.staticfiles.finders.FileSystemFinder (141 files)

Path Location
.DS_Store /opt/comma/monorepo/services/django/static/.DS_Store
images/.DS_Store /opt/comma/monorepo/services/django/static/images/.DS_Store
images/hero/hero-bg.jpg /opt/comma/monorepo/services/django/static/images/hero/hero-bg.jpg
images/carousel/slide1.jpg /opt/comma/monorepo/services/django/static/images/carousel/slide1.jpg
images/carousel/slide3.jpg /opt/comma/monorepo/services/django/static/images/carousel/slide3.jpg
images/carousel/slide2.jpg /opt/comma/monorepo/services/django/static/images/carousel/slide2.jpg
images/carousel/slide5.jpg /opt/comma/monorepo/services/django/static/images/carousel/slide5.jpg
images/carousel/slide4.jpg /opt/comma/monorepo/services/django/static/images/carousel/slide4.jpg
images/carousel/slide6.jpg /opt/comma/monorepo/services/django/static/images/carousel/slide6.jpg
images/placeholders/commabug-01.svg /opt/comma/monorepo/services/django/static/images/placeholders/commabug-01.svg
images/placeholders/commaLogoOptions.ai /opt/comma/monorepo/services/django/static/images/placeholders/commaLogoOptions.ai
images/placeholders/PosterComma.ai /opt/comma/monorepo/services/django/static/images/placeholders/PosterComma.ai
images/placeholders/commaCardsLogo.ai /opt/comma/monorepo/services/django/static/images/placeholders/commaCardsLogo.ai
images/placeholders/commabug-new.svg /opt/comma/monorepo/services/django/static/images/placeholders/commabug-new.svg
images/placeholders/commaLogoBug.png /opt/comma/monorepo/services/django/static/images/placeholders/commaLogoBug.png
images/placeholders/COMMARegular.otf /opt/comma/monorepo/services/django/static/images/placeholders/COMMARegular.otf
images/placeholders/.DS_Store /opt/comma/monorepo/services/django/static/images/placeholders/.DS_Store
images/placeholders/index.html /opt/comma/monorepo/services/django/static/images/placeholders/index.html
images/placeholders/commabug.svg /opt/comma/monorepo/services/django/static/images/placeholders/commabug.svg
images/placeholders/commabug-02.svg /opt/comma/monorepo/services/django/static/images/placeholders/commabug-02.svg
images/placeholders/comma.svg /opt/comma/monorepo/services/django/static/images/placeholders/comma.svg
images/placeholders/sales_funnel_value.webp /opt/comma/monorepo/services/django/static/images/placeholders/sales_funnel_value.webp
images/placeholders/commaAlt.svg /opt/comma/monorepo/services/django/static/images/placeholders/commaAlt.svg
images/brand/comma-logo.svg /opt/comma/monorepo/services/django/static/images/brand/comma-logo.svg
images/testimonials/testimonial3.jpeg /opt/comma/monorepo/services/django/static/images/testimonials/testimonial3.jpeg
images/testimonials/.DS_Store /opt/comma/monorepo/services/django/static/images/testimonials/.DS_Store
images/testimonials/testimonial1.jpeg /opt/comma/monorepo/services/django/static/images/testimonials/testimonial1.jpeg
images/testimonials/testimonial2.jpeg /opt/comma/monorepo/services/django/static/images/testimonials/testimonial2.jpeg
images/inline/.DS_Store /opt/comma/monorepo/services/django/static/images/inline/.DS_Store
images/inline/variable-system.png /opt/comma/monorepo/services/django/static/images/inline/variable-system.png
images/favicons/favicon.ico /opt/comma/monorepo/services/django/static/images/favicons/favicon.ico
js/app.js /opt/comma/monorepo/services/django/static/js/app.js
js/tailwind.config.js /opt/comma/monorepo/services/django/static/js/tailwind.config.js
js/app-fixed.js /opt/comma/monorepo/services/django/static/js/app-fixed.js
js/comma-ui.js /opt/comma/monorepo/services/django/static/js/comma-ui.js
js/vue/vue.global.prod.js /opt/comma/monorepo/services/django/static/js/vue/vue.global.prod.js
js/vue/vue.global.js /opt/comma/monorepo/services/django/static/js/vue/vue.global.js
js/primevue/core.min.js /opt/comma/monorepo/services/django/static/js/primevue/core.min.js
js/stores/content.js /opt/comma/monorepo/services/django/static/js/stores/content.js
js/stores/index.js /opt/comma/monorepo/services/django/static/js/stores/index.js
js/stores/navigationStore.js /opt/comma/monorepo/services/django/static/js/stores/navigationStore.js
js/stores/user.js /opt/comma/monorepo/services/django/static/js/stores/user.js
js/stores/themeStore.js /opt/comma/monorepo/services/django/static/js/stores/themeStore.js
js/stores/navigation.json /opt/comma/monorepo/services/django/static/js/stores/navigation.json
js/stores/navigation.js /opt/comma/monorepo/services/django/static/js/stores/navigation.js
js/stores/newsletterStore.js /opt/comma/monorepo/services/django/static/js/stores/newsletterStore.js
js/stores/features.json /opt/comma/monorepo/services/django/static/js/stores/features.json
js/stores/theme.js /opt/comma/monorepo/services/django/static/js/stores/theme.js
js/stores/testimonials.json /opt/comma/monorepo/services/django/static/js/stores/testimonials.json
js/stores/ui.js /opt/comma/monorepo/services/django/static/js/stores/ui.js
videos/background.mp4 /opt/comma/monorepo/services/django/static/videos/background.mp4
pdf/Introducing-Volt-UI-Component-Library-by-PrimeVue-r_vuejs.pdf /opt/comma/monorepo/services/django/static/pdf/Introducing-Volt-UI-Component-Library-by-PrimeVue-r_vuejs.pdf
pdf/The-23-Most-Important-Web-Analytics-Metrics-to-Track-in-2024-Woopra.pdf /opt/comma/monorepo/services/django/static/pdf/The-23-Most-Important-Web-Analytics-Metrics-to-Track-in-2024-Woopra.pdf
pdf/a1_0416_peoples_paper.pdf /opt/comma/monorepo/services/django/static/pdf/a1_0416_peoples_paper.pdf
fonts/primeicons/primeicons.eot /opt/comma/monorepo/services/django/static/fonts/primeicons/primeicons.eot
fonts/primeicons/primeicons.ttf /opt/comma/monorepo/services/django/static/fonts/primeicons/primeicons.ttf
fonts/primeicons/primeicons.woff2 /opt/comma/monorepo/services/django/static/fonts/primeicons/primeicons.woff2
fonts/primeicons/primeicons.woff /opt/comma/monorepo/services/django/static/fonts/primeicons/primeicons.woff
css/comma-ui.css /opt/comma/monorepo/services/django/static/css/comma-ui.css
css/tailwind-cdn-config.html /opt/comma/monorepo/services/django/static/css/tailwind-cdn-config.html
css/micro-interactions.css /opt/comma/monorepo/services/django/static/css/micro-interactions.css
css/header-footer.css /opt/comma/monorepo/services/django/static/css/header-footer.css
css/header-footer-clean.css /opt/comma/monorepo/services/django/static/css/header-footer-clean.css
css/icon-fixes.css /opt/comma/monorepo/services/django/static/css/icon-fixes.css
css/primevue-theme.css /opt/comma/monorepo/services/django/static/css/primevue-theme.css
css/styles.css /opt/comma/monorepo/services/django/static/css/styles.css
css/theme.css /opt/comma/monorepo/services/django/static/css/theme.css
css/primeicons/primeicons.css /opt/comma/monorepo/services/django/static/css/primeicons/primeicons.css
css/primeicons/fonts/primeicons.svg /opt/comma/monorepo/services/django/static/css/primeicons/fonts/primeicons.svg
css/primeicons/fonts/primeicons.eot /opt/comma/monorepo/services/django/static/css/primeicons/fonts/primeicons.eot
css/primeicons/fonts/primeicons.ttf /opt/comma/monorepo/services/django/static/css/primeicons/fonts/primeicons.ttf
css/primeicons/fonts/primeicons.woff2 /opt/comma/monorepo/services/django/static/css/primeicons/fonts/primeicons.woff2
css/primeicons/fonts/primeicons.woff /opt/comma/monorepo/services/django/static/css/primeicons/fonts/primeicons.woff
css/primevue/primeicons.css /opt/comma/monorepo/services/django/static/css/primevue/primeicons.css
css/primeflex/primeflex.min.css /opt/comma/monorepo/services/django/static/css/primeflex/primeflex.min.css
css/dist/tailwind.css /opt/comma/monorepo/services/django/static/css/dist/tailwind.css
storybook/favicon.svg /opt/comma/monorepo/services/django/static/storybook/favicon.svg
storybook/index.json /opt/comma/monorepo/services/django/static/storybook/index.json
storybook/nunito-sans-bold.woff2 /opt/comma/monorepo/services/django/static/storybook/nunito-sans-bold.woff2
storybook/nunito-sans-italic.woff2 /opt/comma/monorepo/services/django/static/storybook/nunito-sans-italic.woff2
storybook/nunito-sans-regular.woff2 /opt/comma/monorepo/services/django/static/storybook/nunito-sans-regular.woff2
storybook/project.json /opt/comma/monorepo/services/django/static/storybook/project.json
storybook/stories.json /opt/comma/monorepo/services/django/static/storybook/stories.json
storybook/nunito-sans-bold-italic.woff2 /opt/comma/monorepo/services/django/static/storybook/nunito-sans-bold-italic.woff2
storybook/index.html /opt/comma/monorepo/services/django/static/storybook/index.html
storybook/sb-addons/links-0/manager-bundle.js /opt/comma/monorepo/services/django/static/storybook/sb-addons/links-0/manager-bundle.js
storybook/sb-addons/links-0/manager-bundle.js.LEGAL.txt /opt/comma/monorepo/services/django/static/storybook/sb-addons/links-0/manager-bundle.js.LEGAL.txt
storybook/sb-addons/storybook-core-core-server-presets-0/common-manager-bundle.js /opt/comma/monorepo/services/django/static/storybook/sb-addons/storybook-core-core-server-presets-0/common-manager-bundle.js
storybook/sb-addons/storybook-10/manager-bundle.js /opt/comma/monorepo/services/django/static/storybook/sb-addons/storybook-10/manager-bundle.js
storybook/sb-addons/storybook-10/manager-bundle.js.LEGAL.txt /opt/comma/monorepo/services/django/static/storybook/sb-addons/storybook-10/manager-bundle.js.LEGAL.txt
storybook/sb-addons/essentials-controls-1/manager-bundle.js /opt/comma/monorepo/services/django/static/storybook/sb-addons/essentials-controls-1/manager-bundle.js
storybook/sb-addons/essentials-controls-1/manager-bundle.js.LEGAL.txt /opt/comma/monorepo/services/django/static/storybook/sb-addons/essentials-controls-1/manager-bundle.js.LEGAL.txt
storybook/sb-addons/a11y-9/manager-bundle.js /opt/comma/monorepo/services/django/static/storybook/sb-addons/a11y-9/manager-bundle.js
storybook/sb-addons/a11y-9/manager-bundle.js.LEGAL.txt /opt/comma/monorepo/services/django/static/storybook/sb-addons/a11y-9/manager-bundle.js.LEGAL.txt
storybook/sb-addons/essentials-outline-7/manager-bundle.js /opt/comma/monorepo/services/django/static/storybook/sb-addons/essentials-outline-7/manager-bundle.js
storybook/sb-addons/essentials-outline-7/manager-bundle.js.LEGAL.txt /opt/comma/monorepo/services/django/static/storybook/sb-addons/essentials-outline-7/manager-bundle.js.LEGAL.txt
storybook/sb-addons/essentials-controls-2/manager-bundle.js /opt/comma/monorepo/services/django/static/storybook/sb-addons/essentials-controls-2/manager-bundle.js
storybook/sb-addons/links-1/manager-bundle.js /opt/comma/monorepo/services/django/static/storybook/sb-addons/links-1/manager-bundle.js
storybook/sb-addons/essentials-viewport-6/manager-bundle.js /opt/comma/monorepo/services/django/static/storybook/sb-addons/essentials-viewport-6/manager-bundle.js
storybook/sb-addons/essentials-docs-4/manager-bundle.js /opt/comma/monorepo/services/django/static/storybook/sb-addons/essentials-docs-4/manager-bundle.js
storybook/sb-addons/essentials-measure-8/manager-bundle.js /opt/comma/monorepo/services/django/static/storybook/sb-addons/essentials-measure-8/manager-bundle.js
storybook/sb-addons/interactions-8/manager-bundle.js /opt/comma/monorepo/services/django/static/storybook/sb-addons/interactions-8/manager-bundle.js
storybook/sb-addons/interactions-8/manager-bundle.js.LEGAL.txt /opt/comma/monorepo/services/django/static/storybook/sb-addons/interactions-8/manager-bundle.js.LEGAL.txt
storybook/sb-addons/essentials-backgrounds-3/manager-bundle.js /opt/comma/monorepo/services/django/static/storybook/sb-addons/essentials-backgrounds-3/manager-bundle.js
storybook/sb-addons/essentials-backgrounds-3/manager-bundle.js.LEGAL.txt /opt/comma/monorepo/services/django/static/storybook/sb-addons/essentials-backgrounds-3/manager-bundle.js.LEGAL.txt
storybook/sb-addons/interactions-10/manager-bundle.js /opt/comma/monorepo/services/django/static/storybook/sb-addons/interactions-10/manager-bundle.js
storybook/sb-addons/essentials-outline-9/manager-bundle.js /opt/comma/monorepo/services/django/static/storybook/sb-addons/essentials-outline-9/manager-bundle.js
storybook/sb-addons/essentials-toolbars-7/manager-bundle.js /opt/comma/monorepo/services/django/static/storybook/sb-addons/essentials-toolbars-7/manager-bundle.js
storybook/sb-addons/essentials-actions-3/manager-bundle.js /opt/comma/monorepo/services/django/static/storybook/sb-addons/essentials-actions-3/manager-bundle.js
storybook/sb-addons/essentials-backgrounds-5/manager-bundle.js /opt/comma/monorepo/services/django/static/storybook/sb-addons/essentials-backgrounds-5/manager-bundle.js
storybook/sb-addons/storybook-12/manager-bundle.js /opt/comma/monorepo/services/django/static/storybook/sb-addons/storybook-12/manager-bundle.js
storybook/sb-addons/a11y-11/manager-bundle.js /opt/comma/monorepo/services/django/static/storybook/sb-addons/a11y-11/manager-bundle.js
storybook/sb-addons/essentials-toolbars-5/manager-bundle.js /opt/comma/monorepo/services/django/static/storybook/sb-addons/essentials-toolbars-5/manager-bundle.js
storybook/sb-addons/essentials-toolbars-5/manager-bundle.js.LEGAL.txt /opt/comma/monorepo/services/django/static/storybook/sb-addons/essentials-toolbars-5/manager-bundle.js.LEGAL.txt
storybook/sb-addons/essentials-viewport-4/manager-bundle.js /opt/comma/monorepo/services/django/static/storybook/sb-addons/essentials-viewport-4/manager-bundle.js
storybook/sb-addons/essentials-viewport-4/manager-bundle.js.LEGAL.txt /opt/comma/monorepo/services/django/static/storybook/sb-addons/essentials-viewport-4/manager-bundle.js.LEGAL.txt
storybook/sb-addons/essentials-measure-6/manager-bundle.js /opt/comma/monorepo/services/django/static/storybook/sb-addons/essentials-measure-6/manager-bundle.js
storybook/sb-addons/essentials-measure-6/manager-bundle.js.LEGAL.txt /opt/comma/monorepo/services/django/static/storybook/sb-addons/essentials-measure-6/manager-bundle.js.LEGAL.txt
storybook/sb-addons/essentials-actions-2/manager-bundle.js /opt/comma/monorepo/services/django/static/storybook/sb-addons/essentials-actions-2/manager-bundle.js
storybook/sb-addons/essentials-actions-2/manager-bundle.js.LEGAL.txt /opt/comma/monorepo/services/django/static/storybook/sb-addons/essentials-actions-2/manager-bundle.js.LEGAL.txt
storybook/sb-preview/runtime.js /opt/comma/monorepo/services/django/static/storybook/sb-preview/runtime.js
storybook/sb-preview/globals.js /opt/comma/monorepo/services/django/static/storybook/sb-preview/globals.js
storybook/sb-manager/runtime.js /opt/comma/monorepo/services/django/static/storybook/sb-manager/runtime.js
storybook/sb-manager/index.js /opt/comma/monorepo/services/django/static/storybook/sb-manager/index.js
storybook/sb-manager/WithTooltip-V3YHNWJZ-MXTFSDU5.js /opt/comma/monorepo/services/django/static/storybook/sb-manager/WithTooltip-V3YHNWJZ-MXTFSDU5.js
storybook/sb-manager/chunk-ZEU7PDD3.js /opt/comma/monorepo/services/django/static/storybook/sb-manager/chunk-ZEU7PDD3.js
storybook/sb-manager/chunk-XE6LDGTE.js /opt/comma/monorepo/services/django/static/storybook/sb-manager/chunk-XE6LDGTE.js
storybook/sb-manager/globals.js /opt/comma/monorepo/services/django/static/storybook/sb-manager/globals.js
storybook/sb-manager/chunk-7PRFHFSS.js /opt/comma/monorepo/services/django/static/storybook/sb-manager/chunk-7PRFHFSS.js
storybook/sb-manager/chunk-YDUB7CS6.js /opt/comma/monorepo/services/django/static/storybook/sb-manager/chunk-YDUB7CS6.js
storybook/sb-manager/globals-module-info.js /opt/comma/monorepo/services/django/static/storybook/sb-manager/globals-module-info.js
storybook/sb-manager/globals-runtime.js /opt/comma/monorepo/services/django/static/storybook/sb-manager/globals-runtime.js
storybook/sb-manager/chunk-5QAFKPS7.js /opt/comma/monorepo/services/django/static/storybook/sb-manager/chunk-5QAFKPS7.js
storybook/sb-manager/syntaxhighlighter-MJWPISIS-JOSCT6CQ.js /opt/comma/monorepo/services/django/static/storybook/sb-manager/syntaxhighlighter-MJWPISIS-JOSCT6CQ.js
storybook/sb-manager/formatter-SWP5E3XI-7BGIK6BL.js /opt/comma/monorepo/services/django/static/storybook/sb-manager/formatter-SWP5E3XI-7BGIK6BL.js
storybook/sb-common-assets/favicon.svg /opt/comma/monorepo/services/django/static/storybook/sb-common-assets/favicon.svg
storybook/sb-common-assets/nunito-sans-bold.woff2 /opt/comma/monorepo/services/django/static/storybook/sb-common-assets/nunito-sans-bold.woff2
storybook/sb-common-assets/nunito-sans-italic.woff2 /opt/comma/monorepo/services/django/static/storybook/sb-common-assets/nunito-sans-italic.woff2
storybook/sb-common-assets/nunito-sans-regular.woff2 /opt/comma/monorepo/services/django/static/storybook/sb-common-assets/nunito-sans-regular.woff2
storybook/sb-common-assets/nunito-sans-bold-italic.woff2 /opt/comma/monorepo/services/django/static/storybook/sb-common-assets/nunito-sans-bold-italic.woff2
storybook/sb-common-assets/fonts.css /opt/comma/monorepo/services/django/static/storybook/sb-common-assets/fonts.css

django.contrib.staticfiles.finders.AppDirectoriesFinder (169 files)

Path Location
admin/js/core.js /home/comma/.cache/pypoetry/virtualenvs/comma-django-tGJDhkQ1-py3.13/lib/python3.13/site-packages/django/contrib/admin/static/admin/js/core.js
admin/js/actions.js /home/comma/.cache/pypoetry/virtualenvs/comma-django-tGJDhkQ1-py3.13/lib/python3.13/site-packages/django/contrib/admin/static/admin/js/actions.js
admin/js/cancel.js /home/comma/.cache/pypoetry/virtualenvs/comma-django-tGJDhkQ1-py3.13/lib/python3.13/site-packages/django/contrib/admin/static/admin/js/cancel.js
admin/js/SelectBox.js /home/comma/.cache/pypoetry/virtualenvs/comma-django-tGJDhkQ1-py3.13/lib/python3.13/site-packages/django/contrib/admin/static/admin/js/SelectBox.js
admin/js/autocomplete.js /home/comma/.cache/pypoetry/virtualenvs/comma-django-tGJDhkQ1-py3.13/lib/python3.13/site-packages/django/contrib/admin/static/admin/js/autocomplete.js
admin/js/filters.js /home/comma/.cache/pypoetry/virtualenvs/comma-django-tGJDhkQ1-py3.13/lib/python3.13/site-packages/django/contrib/admin/static/admin/js/filters.js
admin/js/calendar.js /home/comma/.cache/pypoetry/virtualenvs/comma-django-tGJDhkQ1-py3.13/lib/python3.13/site-packages/django/contrib/admin/static/admin/js/calendar.js
admin/js/SelectFilter2.js /home/comma/.cache/pypoetry/virtualenvs/comma-django-tGJDhkQ1-py3.13/lib/python3.13/site-packages/django/contrib/admin/static/admin/js/SelectFilter2.js
admin/js/prepopulate_init.js /home/comma/.cache/pypoetry/virtualenvs/comma-django-tGJDhkQ1-py3.13/lib/python3.13/site-packages/django/contrib/admin/static/admin/js/prepopulate_init.js
admin/js/urlify.js /home/comma/.cache/pypoetry/virtualenvs/comma-django-tGJDhkQ1-py3.13/lib/python3.13/site-packages/django/contrib/admin/static/admin/js/urlify.js
admin/js/jquery.init.js /home/comma/.cache/pypoetry/virtualenvs/comma-django-tGJDhkQ1-py3.13/lib/python3.13/site-packages/django/contrib/admin/static/admin/js/jquery.init.js
admin/js/inlines.js /home/comma/.cache/pypoetry/virtualenvs/comma-django-tGJDhkQ1-py3.13/lib/python3.13/site-packages/django/contrib/admin/static/admin/js/inlines.js
admin/js/nav_sidebar.js /home/comma/.cache/pypoetry/virtualenvs/comma-django-tGJDhkQ1-py3.13/lib/python3.13/site-packages/django/contrib/admin/static/admin/js/nav_sidebar.js
admin/js/prepopulate.js /home/comma/.cache/pypoetry/virtualenvs/comma-django-tGJDhkQ1-py3.13/lib/python3.13/site-packages/django/contrib/admin/static/admin/js/prepopulate.js
admin/js/change_form.js /home/comma/.cache/pypoetry/virtualenvs/comma-django-tGJDhkQ1-py3.13/lib/python3.13/site-packages/django/contrib/admin/static/admin/js/change_form.js
admin/js/popup_response.js /home/comma/.cache/pypoetry/virtualenvs/comma-django-tGJDhkQ1-py3.13/lib/python3.13/site-packages/django/contrib/admin/static/admin/js/popup_response.js
admin/js/theme.js /home/comma/.cache/pypoetry/virtualenvs/comma-django-tGJDhkQ1-py3.13/lib/python3.13/site-packages/django/contrib/admin/static/admin/js/theme.js
admin/js/collapse.js /home/comma/.cache/pypoetry/virtualenvs/comma-django-tGJDhkQ1-py3.13/lib/python3.13/site-packages/django/contrib/admin/static/admin/js/collapse.js
admin/js/vendor/select2/LICENSE.md /home/comma/.cache/pypoetry/virtualenvs/comma-django-tGJDhkQ1-py3.13/lib/python3.13/site-packages/django/contrib/admin/static/admin/js/vendor/select2/LICENSE.md
admin/js/vendor/select2/select2.full.js /home/comma/.cache/pypoetry/virtualenvs/comma-django-tGJDhkQ1-py3.13/lib/python3.13/site-packages/django/contrib/admin/static/admin/js/vendor/select2/select2.full.js
admin/js/vendor/select2/select2.full.min.js /home/comma/.cache/pypoetry/virtualenvs/comma-django-tGJDhkQ1-py3.13/lib/python3.13/site-packages/django/contrib/admin/static/admin/js/vendor/select2/select2.full.min.js
admin/js/vendor/select2/i18n/es.js /home/comma/.cache/pypoetry/virtualenvs/comma-django-tGJDhkQ1-py3.13/lib/python3.13/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/es.js
admin/js/vendor/select2/i18n/ru.js /home/comma/.cache/pypoetry/virtualenvs/comma-django-tGJDhkQ1-py3.13/lib/python3.13/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/ru.js
admin/js/vendor/select2/i18n/ca.js /home/comma/.cache/pypoetry/virtualenvs/comma-django-tGJDhkQ1-py3.13/lib/python3.13/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/ca.js
admin/js/vendor/select2/i18n/sq.js /home/comma/.cache/pypoetry/virtualenvs/comma-django-tGJDhkQ1-py3.13/lib/python3.13/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/sq.js
admin/js/vendor/select2/i18n/en.js /home/comma/.cache/pypoetry/virtualenvs/comma-django-tGJDhkQ1-py3.13/lib/python3.13/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/en.js
admin/js/vendor/select2/i18n/ne.js /home/comma/.cache/pypoetry/virtualenvs/comma-django-tGJDhkQ1-py3.13/lib/python3.13/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/ne.js
admin/js/vendor/select2/i18n/sr-Cyrl.js /home/comma/.cache/pypoetry/virtualenvs/comma-django-tGJDhkQ1-py3.13/lib/python3.13/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/sr-Cyrl.js
admin/js/vendor/select2/i18n/az.js /home/comma/.cache/pypoetry/virtualenvs/comma-django-tGJDhkQ1-py3.13/lib/python3.13/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/az.js
admin/js/vendor/select2/i18n/nb.js /home/comma/.cache/pypoetry/virtualenvs/comma-django-tGJDhkQ1-py3.13/lib/python3.13/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/nb.js
admin/js/vendor/select2/i18n/ja.js /home/comma/.cache/pypoetry/virtualenvs/comma-django-tGJDhkQ1-py3.13/lib/python3.13/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/ja.js
admin/js/vendor/select2/i18n/bn.js /home/comma/.cache/pypoetry/virtualenvs/comma-django-tGJDhkQ1-py3.13/lib/python3.13/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/bn.js
admin/js/vendor/select2/i18n/ko.js /home/comma/.cache/pypoetry/virtualenvs/comma-django-tGJDhkQ1-py3.13/lib/python3.13/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/ko.js
admin/js/vendor/select2/i18n/th.js /home/comma/.cache/pypoetry/virtualenvs/comma-django-tGJDhkQ1-py3.13/lib/python3.13/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/th.js
admin/js/vendor/select2/i18n/gl.js /home/comma/.cache/pypoetry/virtualenvs/comma-django-tGJDhkQ1-py3.13/lib/python3.13/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/gl.js
admin/js/vendor/select2/i18n/pt-BR.js /home/comma/.cache/pypoetry/virtualenvs/comma-django-tGJDhkQ1-py3.13/lib/python3.13/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/pt-BR.js
admin/js/vendor/select2/i18n/bg.js /home/comma/.cache/pypoetry/virtualenvs/comma-django-tGJDhkQ1-py3.13/lib/python3.13/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/bg.js
admin/js/vendor/select2/i18n/hu.js /home/comma/.cache/pypoetry/virtualenvs/comma-django-tGJDhkQ1-py3.13/lib/python3.13/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/hu.js
admin/js/vendor/select2/i18n/lv.js /home/comma/.cache/pypoetry/virtualenvs/comma-django-tGJDhkQ1-py3.13/lib/python3.13/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/lv.js
admin/js/vendor/select2/i18n/fi.js /home/comma/.cache/pypoetry/virtualenvs/comma-django-tGJDhkQ1-py3.13/lib/python3.13/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/fi.js
admin/js/vendor/select2/i18n/ro.js /home/comma/.cache/pypoetry/virtualenvs/comma-django-tGJDhkQ1-py3.13/lib/python3.13/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/ro.js
admin/js/vendor/select2/i18n/ar.js /home/comma/.cache/pypoetry/virtualenvs/comma-django-tGJDhkQ1-py3.13/lib/python3.13/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/ar.js
admin/js/vendor/select2/i18n/bs.js /home/comma/.cache/pypoetry/virtualenvs/comma-django-tGJDhkQ1-py3.13/lib/python3.13/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/bs.js
admin/js/vendor/select2/i18n/it.js /home/comma/.cache/pypoetry/virtualenvs/comma-django-tGJDhkQ1-py3.13/lib/python3.13/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/it.js
admin/js/vendor/select2/i18n/lt.js /home/comma/.cache/pypoetry/virtualenvs/comma-django-tGJDhkQ1-py3.13/lib/python3.13/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/lt.js
admin/js/vendor/select2/i18n/eu.js /home/comma/.cache/pypoetry/virtualenvs/comma-django-tGJDhkQ1-py3.13/lib/python3.13/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/eu.js
admin/js/vendor/select2/i18n/ka.js /home/comma/.cache/pypoetry/virtualenvs/comma-django-tGJDhkQ1-py3.13/lib/python3.13/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/ka.js
admin/js/vendor/select2/i18n/hi.js /home/comma/.cache/pypoetry/virtualenvs/comma-django-tGJDhkQ1-py3.13/lib/python3.13/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/hi.js
admin/js/vendor/select2/i18n/da.js /home/comma/.cache/pypoetry/virtualenvs/comma-django-tGJDhkQ1-py3.13/lib/python3.13/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/da.js
admin/js/vendor/select2/i18n/uk.js /home/comma/.cache/pypoetry/virtualenvs/comma-django-tGJDhkQ1-py3.13/lib/python3.13/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/uk.js
admin/js/vendor/select2/i18n/fa.js /home/comma/.cache/pypoetry/virtualenvs/comma-django-tGJDhkQ1-py3.13/lib/python3.13/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/fa.js
admin/js/vendor/select2/i18n/dsb.js /home/comma/.cache/pypoetry/virtualenvs/comma-django-tGJDhkQ1-py3.13/lib/python3.13/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/dsb.js
admin/js/vendor/select2/i18n/de.js /home/comma/.cache/pypoetry/virtualenvs/comma-django-tGJDhkQ1-py3.13/lib/python3.13/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/de.js
admin/js/vendor/select2/i18n/nl.js /home/comma/.cache/pypoetry/virtualenvs/comma-django-tGJDhkQ1-py3.13/lib/python3.13/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/nl.js
admin/js/vendor/select2/i18n/is.js /home/comma/.cache/pypoetry/virtualenvs/comma-django-tGJDhkQ1-py3.13/lib/python3.13/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/is.js
admin/js/vendor/select2/i18n/hy.js /home/comma/.cache/pypoetry/virtualenvs/comma-django-tGJDhkQ1-py3.13/lib/python3.13/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/hy.js
admin/js/vendor/select2/i18n/zh-TW.js /home/comma/.cache/pypoetry/virtualenvs/comma-django-tGJDhkQ1-py3.13/lib/python3.13/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/zh-TW.js
admin/js/vendor/select2/i18n/sv.js /home/comma/.cache/pypoetry/virtualenvs/comma-django-tGJDhkQ1-py3.13/lib/python3.13/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/sv.js
admin/js/vendor/select2/i18n/id.js /home/comma/.cache/pypoetry/virtualenvs/comma-django-tGJDhkQ1-py3.13/lib/python3.13/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/id.js
admin/js/vendor/select2/i18n/mk.js /home/comma/.cache/pypoetry/virtualenvs/comma-django-tGJDhkQ1-py3.13/lib/python3.13/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/mk.js
admin/js/vendor/select2/i18n/km.js /home/comma/.cache/pypoetry/virtualenvs/comma-django-tGJDhkQ1-py3.13/lib/python3.13/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/km.js
admin/js/vendor/select2/i18n/he.js /home/comma/.cache/pypoetry/virtualenvs/comma-django-tGJDhkQ1-py3.13/lib/python3.13/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/he.js
admin/js/vendor/select2/i18n/tk.js /home/comma/.cache/pypoetry/virtualenvs/comma-django-tGJDhkQ1-py3.13/lib/python3.13/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/tk.js
admin/js/vendor/select2/i18n/tr.js /home/comma/.cache/pypoetry/virtualenvs/comma-django-tGJDhkQ1-py3.13/lib/python3.13/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/tr.js
admin/js/vendor/select2/i18n/hr.js /home/comma/.cache/pypoetry/virtualenvs/comma-django-tGJDhkQ1-py3.13/lib/python3.13/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/hr.js
admin/js/vendor/select2/i18n/hsb.js /home/comma/.cache/pypoetry/virtualenvs/comma-django-tGJDhkQ1-py3.13/lib/python3.13/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/hsb.js
admin/js/vendor/select2/i18n/et.js /home/comma/.cache/pypoetry/virtualenvs/comma-django-tGJDhkQ1-py3.13/lib/python3.13/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/et.js
admin/js/vendor/select2/i18n/pl.js /home/comma/.cache/pypoetry/virtualenvs/comma-django-tGJDhkQ1-py3.13/lib/python3.13/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/pl.js
admin/js/vendor/select2/i18n/cs.js /home/comma/.cache/pypoetry/virtualenvs/comma-django-tGJDhkQ1-py3.13/lib/python3.13/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/cs.js
admin/js/vendor/select2/i18n/fr.js /home/comma/.cache/pypoetry/virtualenvs/comma-django-tGJDhkQ1-py3.13/lib/python3.13/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/fr.js
admin/js/vendor/select2/i18n/pt.js /home/comma/.cache/pypoetry/virtualenvs/comma-django-tGJDhkQ1-py3.13/lib/python3.13/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/pt.js
admin/js/vendor/select2/i18n/sr.js /home/comma/.cache/pypoetry/virtualenvs/comma-django-tGJDhkQ1-py3.13/lib/python3.13/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/sr.js
admin/js/vendor/select2/i18n/sl.js /home/comma/.cache/pypoetry/virtualenvs/comma-django-tGJDhkQ1-py3.13/lib/python3.13/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/sl.js
admin/js/vendor/select2/i18n/el.js /home/comma/.cache/pypoetry/virtualenvs/comma-django-tGJDhkQ1-py3.13/lib/python3.13/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/el.js
admin/js/vendor/select2/i18n/af.js /home/comma/.cache/pypoetry/virtualenvs/comma-django-tGJDhkQ1-py3.13/lib/python3.13/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/af.js
admin/js/vendor/select2/i18n/zh-CN.js /home/comma/.cache/pypoetry/virtualenvs/comma-django-tGJDhkQ1-py3.13/lib/python3.13/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/zh-CN.js
admin/js/vendor/select2/i18n/ms.js /home/comma/.cache/pypoetry/virtualenvs/comma-django-tGJDhkQ1-py3.13/lib/python3.13/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/ms.js
admin/js/vendor/select2/i18n/vi.js /home/comma/.cache/pypoetry/virtualenvs/comma-django-tGJDhkQ1-py3.13/lib/python3.13/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/vi.js
admin/js/vendor/select2/i18n/sk.js /home/comma/.cache/pypoetry/virtualenvs/comma-django-tGJDhkQ1-py3.13/lib/python3.13/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/sk.js
admin/js/vendor/select2/i18n/ps.js /home/comma/.cache/pypoetry/virtualenvs/comma-django-tGJDhkQ1-py3.13/lib/python3.13/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/ps.js
admin/js/vendor/jquery/jquery.js /home/comma/.cache/pypoetry/virtualenvs/comma-django-tGJDhkQ1-py3.13/lib/python3.13/site-packages/django/contrib/admin/static/admin/js/vendor/jquery/jquery.js
admin/js/vendor/jquery/LICENSE.txt /home/comma/.cache/pypoetry/virtualenvs/comma-django-tGJDhkQ1-py3.13/lib/python3.13/site-packages/django/contrib/admin/static/admin/js/vendor/jquery/LICENSE.txt
admin/js/vendor/jquery/jquery.min.js /home/comma/.cache/pypoetry/virtualenvs/comma-django-tGJDhkQ1-py3.13/lib/python3.13/site-packages/django/contrib/admin/static/admin/js/vendor/jquery/jquery.min.js
admin/js/vendor/xregexp/xregexp.min.js /home/comma/.cache/pypoetry/virtualenvs/comma-django-tGJDhkQ1-py3.13/lib/python3.13/site-packages/django/contrib/admin/static/admin/js/vendor/xregexp/xregexp.min.js
admin/js/vendor/xregexp/LICENSE.txt /home/comma/.cache/pypoetry/virtualenvs/comma-django-tGJDhkQ1-py3.13/lib/python3.13/site-packages/django/contrib/admin/static/admin/js/vendor/xregexp/LICENSE.txt
admin/js/vendor/xregexp/xregexp.js /home/comma/.cache/pypoetry/virtualenvs/comma-django-tGJDhkQ1-py3.13/lib/python3.13/site-packages/django/contrib/admin/static/admin/js/vendor/xregexp/xregexp.js
admin/js/admin/RelatedObjectLookups.js /home/comma/.cache/pypoetry/virtualenvs/comma-django-tGJDhkQ1-py3.13/lib/python3.13/site-packages/django/contrib/admin/static/admin/js/admin/RelatedObjectLookups.js
admin/js/admin/DateTimeShortcuts.js /home/comma/.cache/pypoetry/virtualenvs/comma-django-tGJDhkQ1-py3.13/lib/python3.13/site-packages/django/contrib/admin/static/admin/js/admin/DateTimeShortcuts.js
admin/img/icon-changelink.svg /home/comma/.cache/pypoetry/virtualenvs/comma-django-tGJDhkQ1-py3.13/lib/python3.13/site-packages/django/contrib/admin/static/admin/img/icon-changelink.svg
admin/img/icon-unknown.svg /home/comma/.cache/pypoetry/virtualenvs/comma-django-tGJDhkQ1-py3.13/lib/python3.13/site-packages/django/contrib/admin/static/admin/img/icon-unknown.svg
admin/img/icon-unknown-alt.svg /home/comma/.cache/pypoetry/virtualenvs/comma-django-tGJDhkQ1-py3.13/lib/python3.13/site-packages/django/contrib/admin/static/admin/img/icon-unknown-alt.svg
admin/img/icon-deletelink.svg /home/comma/.cache/pypoetry/virtualenvs/comma-django-tGJDhkQ1-py3.13/lib/python3.13/site-packages/django/contrib/admin/static/admin/img/icon-deletelink.svg
admin/img/calendar-icons.svg /home/comma/.cache/pypoetry/virtualenvs/comma-django-tGJDhkQ1-py3.13/lib/python3.13/site-packages/django/contrib/admin/static/admin/img/calendar-icons.svg
admin/img/LICENSE /home/comma/.cache/pypoetry/virtualenvs/comma-django-tGJDhkQ1-py3.13/lib/python3.13/site-packages/django/contrib/admin/static/admin/img/LICENSE
admin/img/icon-calendar.svg /home/comma/.cache/pypoetry/virtualenvs/comma-django-tGJDhkQ1-py3.13/lib/python3.13/site-packages/django/contrib/admin/static/admin/img/icon-calendar.svg
admin/img/icon-yes.svg /home/comma/.cache/pypoetry/virtualenvs/comma-django-tGJDhkQ1-py3.13/lib/python3.13/site-packages/django/contrib/admin/static/admin/img/icon-yes.svg
admin/img/tooltag-add.svg /home/comma/.cache/pypoetry/virtualenvs/comma-django-tGJDhkQ1-py3.13/lib/python3.13/site-packages/django/contrib/admin/static/admin/img/tooltag-add.svg
admin/img/inline-delete.svg /home/comma/.cache/pypoetry/virtualenvs/comma-django-tGJDhkQ1-py3.13/lib/python3.13/site-packages/django/contrib/admin/static/admin/img/inline-delete.svg
admin/img/tooltag-arrowright.svg /home/comma/.cache/pypoetry/virtualenvs/comma-django-tGJDhkQ1-py3.13/lib/python3.13/site-packages/django/contrib/admin/static/admin/img/tooltag-arrowright.svg
admin/img/sorting-icons.svg /home/comma/.cache/pypoetry/virtualenvs/comma-django-tGJDhkQ1-py3.13/lib/python3.13/site-packages/django/contrib/admin/static/admin/img/sorting-icons.svg
admin/img/selector-icons.svg /home/comma/.cache/pypoetry/virtualenvs/comma-django-tGJDhkQ1-py3.13/lib/python3.13/site-packages/django/contrib/admin/static/admin/img/selector-icons.svg
admin/img/icon-alert.svg /home/comma/.cache/pypoetry/virtualenvs/comma-django-tGJDhkQ1-py3.13/lib/python3.13/site-packages/django/contrib/admin/static/admin/img/icon-alert.svg
admin/img/icon-viewlink.svg /home/comma/.cache/pypoetry/virtualenvs/comma-django-tGJDhkQ1-py3.13/lib/python3.13/site-packages/django/contrib/admin/static/admin/img/icon-viewlink.svg
admin/img/icon-clock.svg /home/comma/.cache/pypoetry/virtualenvs/comma-django-tGJDhkQ1-py3.13/lib/python3.13/site-packages/django/contrib/admin/static/admin/img/icon-clock.svg
admin/img/search.svg /home/comma/.cache/pypoetry/virtualenvs/comma-django-tGJDhkQ1-py3.13/lib/python3.13/site-packages/django/contrib/admin/static/admin/img/search.svg
admin/img/icon-addlink.svg /home/comma/.cache/pypoetry/virtualenvs/comma-django-tGJDhkQ1-py3.13/lib/python3.13/site-packages/django/contrib/admin/static/admin/img/icon-addlink.svg
admin/img/README.txt /home/comma/.cache/pypoetry/virtualenvs/comma-django-tGJDhkQ1-py3.13/lib/python3.13/site-packages/django/contrib/admin/static/admin/img/README.txt
admin/img/icon-no.svg /home/comma/.cache/pypoetry/virtualenvs/comma-django-tGJDhkQ1-py3.13/lib/python3.13/site-packages/django/contrib/admin/static/admin/img/icon-no.svg
admin/img/gis/move_vertex_off.svg /home/comma/.cache/pypoetry/virtualenvs/comma-django-tGJDhkQ1-py3.13/lib/python3.13/site-packages/django/contrib/admin/static/admin/img/gis/move_vertex_off.svg
admin/img/gis/move_vertex_on.svg /home/comma/.cache/pypoetry/virtualenvs/comma-django-tGJDhkQ1-py3.13/lib/python3.13/site-packages/django/contrib/admin/static/admin/img/gis/move_vertex_on.svg
admin/css/responsive.css /home/comma/.cache/pypoetry/virtualenvs/comma-django-tGJDhkQ1-py3.13/lib/python3.13/site-packages/django/contrib/admin/static/admin/css/responsive.css
admin/css/forms.css /home/comma/.cache/pypoetry/virtualenvs/comma-django-tGJDhkQ1-py3.13/lib/python3.13/site-packages/django/contrib/admin/static/admin/css/forms.css
admin/css/widgets.css /home/comma/.cache/pypoetry/virtualenvs/comma-django-tGJDhkQ1-py3.13/lib/python3.13/site-packages/django/contrib/admin/static/admin/css/widgets.css
admin/css/changelists.css /home/comma/.cache/pypoetry/virtualenvs/comma-django-tGJDhkQ1-py3.13/lib/python3.13/site-packages/django/contrib/admin/static/admin/css/changelists.css
admin/css/autocomplete.css /home/comma/.cache/pypoetry/virtualenvs/comma-django-tGJDhkQ1-py3.13/lib/python3.13/site-packages/django/contrib/admin/static/admin/css/autocomplete.css
admin/css/nav_sidebar.css /home/comma/.cache/pypoetry/virtualenvs/comma-django-tGJDhkQ1-py3.13/lib/python3.13/site-packages/django/contrib/admin/static/admin/css/nav_sidebar.css
admin/css/base.css /home/comma/.cache/pypoetry/virtualenvs/comma-django-tGJDhkQ1-py3.13/lib/python3.13/site-packages/django/contrib/admin/static/admin/css/base.css
admin/css/dark_mode.css /home/comma/.cache/pypoetry/virtualenvs/comma-django-tGJDhkQ1-py3.13/lib/python3.13/site-packages/django/contrib/admin/static/admin/css/dark_mode.css
admin/css/responsive_rtl.css /home/comma/.cache/pypoetry/virtualenvs/comma-django-tGJDhkQ1-py3.13/lib/python3.13/site-packages/django/contrib/admin/static/admin/css/responsive_rtl.css
admin/css/rtl.css /home/comma/.cache/pypoetry/virtualenvs/comma-django-tGJDhkQ1-py3.13/lib/python3.13/site-packages/django/contrib/admin/static/admin/css/rtl.css
admin/css/dashboard.css /home/comma/.cache/pypoetry/virtualenvs/comma-django-tGJDhkQ1-py3.13/lib/python3.13/site-packages/django/contrib/admin/static/admin/css/dashboard.css
admin/css/login.css /home/comma/.cache/pypoetry/virtualenvs/comma-django-tGJDhkQ1-py3.13/lib/python3.13/site-packages/django/contrib/admin/static/admin/css/login.css
admin/css/vendor/select2/LICENSE-SELECT2.md /home/comma/.cache/pypoetry/virtualenvs/comma-django-tGJDhkQ1-py3.13/lib/python3.13/site-packages/django/contrib/admin/static/admin/css/vendor/select2/LICENSE-SELECT2.md
admin/css/vendor/select2/select2.css /home/comma/.cache/pypoetry/virtualenvs/comma-django-tGJDhkQ1-py3.13/lib/python3.13/site-packages/django/contrib/admin/static/admin/css/vendor/select2/select2.css
admin/css/vendor/select2/select2.min.css /home/comma/.cache/pypoetry/virtualenvs/comma-django-tGJDhkQ1-py3.13/lib/python3.13/site-packages/django/contrib/admin/static/admin/css/vendor/select2/select2.min.css
rest_framework/js/load-ajax-form.js /home/comma/.cache/pypoetry/virtualenvs/comma-django-tGJDhkQ1-py3.13/lib/python3.13/site-packages/rest_framework/static/rest_framework/js/load-ajax-form.js
rest_framework/js/ajax-form.js /home/comma/.cache/pypoetry/virtualenvs/comma-django-tGJDhkQ1-py3.13/lib/python3.13/site-packages/rest_framework/static/rest_framework/js/ajax-form.js
rest_framework/js/csrf.js /home/comma/.cache/pypoetry/virtualenvs/comma-django-tGJDhkQ1-py3.13/lib/python3.13/site-packages/rest_framework/static/rest_framework/js/csrf.js
rest_framework/js/prettify-min.js /home/comma/.cache/pypoetry/virtualenvs/comma-django-tGJDhkQ1-py3.13/lib/python3.13/site-packages/rest_framework/static/rest_framework/js/prettify-min.js
rest_framework/js/default.js /home/comma/.cache/pypoetry/virtualenvs/comma-django-tGJDhkQ1-py3.13/lib/python3.13/site-packages/rest_framework/static/rest_framework/js/default.js
rest_framework/js/bootstrap.min.js /home/comma/.cache/pypoetry/virtualenvs/comma-django-tGJDhkQ1-py3.13/lib/python3.13/site-packages/rest_framework/static/rest_framework/js/bootstrap.min.js
rest_framework/js/coreapi-0.1.1.js /home/comma/.cache/pypoetry/virtualenvs/comma-django-tGJDhkQ1-py3.13/lib/python3.13/site-packages/rest_framework/static/rest_framework/js/coreapi-0.1.1.js
rest_framework/js/jquery-3.7.1.min.js /home/comma/.cache/pypoetry/virtualenvs/comma-django-tGJDhkQ1-py3.13/lib/python3.13/site-packages/rest_framework/static/rest_framework/js/jquery-3.7.1.min.js
rest_framework/img/glyphicons-halflings.png /home/comma/.cache/pypoetry/virtualenvs/comma-django-tGJDhkQ1-py3.13/lib/python3.13/site-packages/rest_framework/static/rest_framework/img/glyphicons-halflings.png
rest_framework/img/grid.png /home/comma/.cache/pypoetry/virtualenvs/comma-django-tGJDhkQ1-py3.13/lib/python3.13/site-packages/rest_framework/static/rest_framework/img/grid.png
rest_framework/img/glyphicons-halflings-white.png /home/comma/.cache/pypoetry/virtualenvs/comma-django-tGJDhkQ1-py3.13/lib/python3.13/site-packages/rest_framework/static/rest_framework/img/glyphicons-halflings-white.png
rest_framework/docs/js/highlight.pack.js /home/comma/.cache/pypoetry/virtualenvs/comma-django-tGJDhkQ1-py3.13/lib/python3.13/site-packages/rest_framework/static/rest_framework/docs/js/highlight.pack.js
rest_framework/docs/js/jquery.json-view.min.js /home/comma/.cache/pypoetry/virtualenvs/comma-django-tGJDhkQ1-py3.13/lib/python3.13/site-packages/rest_framework/static/rest_framework/docs/js/jquery.json-view.min.js
rest_framework/docs/js/api.js /home/comma/.cache/pypoetry/virtualenvs/comma-django-tGJDhkQ1-py3.13/lib/python3.13/site-packages/rest_framework/static/rest_framework/docs/js/api.js
rest_framework/docs/img/grid.png /home/comma/.cache/pypoetry/virtualenvs/comma-django-tGJDhkQ1-py3.13/lib/python3.13/site-packages/rest_framework/static/rest_framework/docs/img/grid.png
rest_framework/docs/img/favicon.ico /home/comma/.cache/pypoetry/virtualenvs/comma-django-tGJDhkQ1-py3.13/lib/python3.13/site-packages/rest_framework/static/rest_framework/docs/img/favicon.ico
rest_framework/docs/css/base.css /home/comma/.cache/pypoetry/virtualenvs/comma-django-tGJDhkQ1-py3.13/lib/python3.13/site-packages/rest_framework/static/rest_framework/docs/css/base.css
rest_framework/docs/css/highlight.css /home/comma/.cache/pypoetry/virtualenvs/comma-django-tGJDhkQ1-py3.13/lib/python3.13/site-packages/rest_framework/static/rest_framework/docs/css/highlight.css
rest_framework/docs/css/jquery.json-view.min.css /home/comma/.cache/pypoetry/virtualenvs/comma-django-tGJDhkQ1-py3.13/lib/python3.13/site-packages/rest_framework/static/rest_framework/docs/css/jquery.json-view.min.css
rest_framework/fonts/glyphicons-halflings-regular.svg /home/comma/.cache/pypoetry/virtualenvs/comma-django-tGJDhkQ1-py3.13/lib/python3.13/site-packages/rest_framework/static/rest_framework/fonts/glyphicons-halflings-regular.svg
rest_framework/fonts/glyphicons-halflings-regular.eot /home/comma/.cache/pypoetry/virtualenvs/comma-django-tGJDhkQ1-py3.13/lib/python3.13/site-packages/rest_framework/static/rest_framework/fonts/glyphicons-halflings-regular.eot
rest_framework/fonts/fontawesome-webfont.ttf /home/comma/.cache/pypoetry/virtualenvs/comma-django-tGJDhkQ1-py3.13/lib/python3.13/site-packages/rest_framework/static/rest_framework/fonts/fontawesome-webfont.ttf
rest_framework/fonts/glyphicons-halflings-regular.ttf /home/comma/.cache/pypoetry/virtualenvs/comma-django-tGJDhkQ1-py3.13/lib/python3.13/site-packages/rest_framework/static/rest_framework/fonts/glyphicons-halflings-regular.ttf
rest_framework/fonts/glyphicons-halflings-regular.woff2 /home/comma/.cache/pypoetry/virtualenvs/comma-django-tGJDhkQ1-py3.13/lib/python3.13/site-packages/rest_framework/static/rest_framework/fonts/glyphicons-halflings-regular.woff2
rest_framework/fonts/fontawesome-webfont.eot /home/comma/.cache/pypoetry/virtualenvs/comma-django-tGJDhkQ1-py3.13/lib/python3.13/site-packages/rest_framework/static/rest_framework/fonts/fontawesome-webfont.eot
rest_framework/fonts/glyphicons-halflings-regular.woff /home/comma/.cache/pypoetry/virtualenvs/comma-django-tGJDhkQ1-py3.13/lib/python3.13/site-packages/rest_framework/static/rest_framework/fonts/glyphicons-halflings-regular.woff
rest_framework/fonts/fontawesome-webfont.svg /home/comma/.cache/pypoetry/virtualenvs/comma-django-tGJDhkQ1-py3.13/lib/python3.13/site-packages/rest_framework/static/rest_framework/fonts/fontawesome-webfont.svg
rest_framework/fonts/fontawesome-webfont.woff /home/comma/.cache/pypoetry/virtualenvs/comma-django-tGJDhkQ1-py3.13/lib/python3.13/site-packages/rest_framework/static/rest_framework/fonts/fontawesome-webfont.woff
rest_framework/css/bootstrap-tweaks.css /home/comma/.cache/pypoetry/virtualenvs/comma-django-tGJDhkQ1-py3.13/lib/python3.13/site-packages/rest_framework/static/rest_framework/css/bootstrap-tweaks.css
rest_framework/css/default.css /home/comma/.cache/pypoetry/virtualenvs/comma-django-tGJDhkQ1-py3.13/lib/python3.13/site-packages/rest_framework/static/rest_framework/css/default.css
rest_framework/css/bootstrap.min.css.map /home/comma/.cache/pypoetry/virtualenvs/comma-django-tGJDhkQ1-py3.13/lib/python3.13/site-packages/rest_framework/static/rest_framework/css/bootstrap.min.css.map
rest_framework/css/bootstrap-theme.min.css /home/comma/.cache/pypoetry/virtualenvs/comma-django-tGJDhkQ1-py3.13/lib/python3.13/site-packages/rest_framework/static/rest_framework/css/bootstrap-theme.min.css
rest_framework/css/prettify.css /home/comma/.cache/pypoetry/virtualenvs/comma-django-tGJDhkQ1-py3.13/lib/python3.13/site-packages/rest_framework/static/rest_framework/css/prettify.css
rest_framework/css/bootstrap-theme.min.css.map /home/comma/.cache/pypoetry/virtualenvs/comma-django-tGJDhkQ1-py3.13/lib/python3.13/site-packages/rest_framework/static/rest_framework/css/bootstrap-theme.min.css.map
rest_framework/css/font-awesome-4.0.3.css /home/comma/.cache/pypoetry/virtualenvs/comma-django-tGJDhkQ1-py3.13/lib/python3.13/site-packages/rest_framework/static/rest_framework/css/font-awesome-4.0.3.css
rest_framework/css/bootstrap.min.css /home/comma/.cache/pypoetry/virtualenvs/comma-django-tGJDhkQ1-py3.13/lib/python3.13/site-packages/rest_framework/static/rest_framework/css/bootstrap.min.css
graphene_django/graphiql.js /home/comma/.cache/pypoetry/virtualenvs/comma-django-tGJDhkQ1-py3.13/lib/python3.13/site-packages/graphene_django/static/graphene_django/graphiql.js
debug_toolbar/js/toolbar.js /home/comma/.cache/pypoetry/virtualenvs/comma-django-tGJDhkQ1-py3.13/lib/python3.13/site-packages/debug_toolbar/static/debug_toolbar/js/toolbar.js
debug_toolbar/js/redirect.js /home/comma/.cache/pypoetry/virtualenvs/comma-django-tGJDhkQ1-py3.13/lib/python3.13/site-packages/debug_toolbar/static/debug_toolbar/js/redirect.js
debug_toolbar/js/timer.js /home/comma/.cache/pypoetry/virtualenvs/comma-django-tGJDhkQ1-py3.13/lib/python3.13/site-packages/debug_toolbar/static/debug_toolbar/js/timer.js
debug_toolbar/js/utils.js /home/comma/.cache/pypoetry/virtualenvs/comma-django-tGJDhkQ1-py3.13/lib/python3.13/site-packages/debug_toolbar/static/debug_toolbar/js/utils.js
debug_toolbar/js/history.js /home/comma/.cache/pypoetry/virtualenvs/comma-django-tGJDhkQ1-py3.13/lib/python3.13/site-packages/debug_toolbar/static/debug_toolbar/js/history.js
debug_toolbar/css/toolbar.css /home/comma/.cache/pypoetry/virtualenvs/comma-django-tGJDhkQ1-py3.13/lib/python3.13/site-packages/debug_toolbar/static/debug_toolbar/css/toolbar.css
debug_toolbar/css/print.css /home/comma/.cache/pypoetry/virtualenvs/comma-django-tGJDhkQ1-py3.13/lib/python3.13/site-packages/debug_toolbar/static/debug_toolbar/css/print.css

Templates (4 rendered)

Template paths

  1. /opt/comma/monorepo/services/django/templates
  2. /opt/comma/monorepo/services/django/apps/core/templates

Templates

pages/colophon.html
/opt/comma/monorepo/services/django/apps/web/templates/pages/colophon.html
Toggle context {'False': False, 'None': None, 'True': True} {'ANALYTICS_CONFIG': {'domain': 'comma.cm', 'focus': ['user_registration', 'authentication', 'server_events', 'conversion_funnels'], 'gtm_container': None, 'measurement_id': 'G-VKC59T8HRE', 'name': 'Comma - Django Backend', 'tracking_strategy': 'server_side'}, 'ANALYTICS_ENVIRONMENT': 'django_backend', 'ANALYTICS_GTM_CONTAINER': None, 'ANALYTICS_MEASUREMENT_ID': 'G-VKC59T8HRE', 'ANALYTICS_SHOULD_USE_CLIENT_SIDE': False, 'ANALYTICS_SHOULD_USE_SERVER_SIDE': True, 'ANALYTICS_TRACKING_STRATEGY': 'server_side', 'DEFAULT_MESSAGE_LEVELS': {'DEBUG': 10, 'ERROR': 40, 'INFO': 20, 'SUCCESS': 25, 'WARNING': 30}, 'csrf_token': '<SimpleLazyObject: <function csrf.<locals>._get_val at ' '0x759e80f87b00>>', 'docs_url': 'https://docs.comma.cm', 'frontend_url': 'https://b.comma.cm', 'messages': <FallbackStorage: request=<WSGIRequest: GET '/colophon/'>>, 'navigation_items': [{'icon': 'pi pi-info-circle', 'items': [[{'items': [{'label': 'Our Story', 'url': '/story/'}, {'label': 'Leadership', 'url': '/leadership/'}, {'label': 'Community Impact', 'url': '/impact/'}], 'label': 'Our Mission'}], [{'items': [{'label': 'Press Kit', 'url': '/press/'}, {'label': 'Documentation', 'target': '_blank', 'url': 'https://docs.comma.cm'}, {'label': 'FAQ', 'url': '/faq/'}], 'label': 'Resources'}]], 'label': 'About'}, {'icon': 'pi pi-users', 'items': [[{'items': [{'label': 'First Amendment Club', 'url': '/first-amendment-club/'}, {'label': 'Volunteer', 'url': '/volunteer/'}, {'label': 'Events', 'url': '/events/'}], 'label': 'Get Involved'}], [{'items': [{'label': 'Newsletter', 'url': '/#newsletter'}, {'label': 'Social Media', 'url': '/social/'}, {'label': 'Contact Us', 'url': '/contact/'}], 'label': 'Connect'}]], 'label': 'Community'}, {'icon': 'pi pi-palette', 'items': [[{'items': [{'label': 'Storybook', 'target': '_blank', 'url': 'https://sb.comma.cm'}, {'label': 'Design System', 'url': '/design-system/'}, {'label': 'Component Showcase', 'url': '/#components-showcase'}], 'label': 'UI Library'}], [{'items': [{'label': 'Documentation', 'target': '_blank', 'url': 'https://docs.comma.cm'}, {'label': 'GitHub', 'target': '_blank', 'url': 'https://github.com/commasconnect'}, {'label': 'API Reference', 'url': '/api/'}], 'label': 'Development'}]], 'label': 'Components'}], 'perms': PermWrapper(<SimpleLazyObject: <django.contrib.auth.models.AnonymousUser object at 0x759e803f4280>>), 'request': '<<request>>', 'simple_nav_items': [{'label': 'About', 'url': '/story/'}, {'label': 'Community', 'url': '/first-amendment-club/'}, {'label': 'Components', 'url': '/#components-showcase'}, {'label': 'Storybook', 'target': '_blank', 'url': 'https://sb.comma.cm'}, {'label': 'Docs', 'target': '_blank', 'url': 'https://docs.comma.cm'}], 'storybook_url': 'https://sb.comma.cm', 'user': '<SimpleLazyObject: <django.contrib.auth.models.AnonymousUser object ' 'at 0x759e803f4280>>', 'variables': <config.variables.Variables object at 0x759e8146f380>} {'current_year': 2025, 'django_version': '4.2.21', 'os_info': 'Linux-6.8.0-1029-aws-x86_64-with-glibc2.35', 'postgresql_version': '15.x', 'python_version': '3.13.5', 'tailwind_version': '3.3.x', 'view': <apps.web.views.colophon.ColophonView object at 0x759e8146fa10>, 'vue_version': '3.3.x'}
base.html
/opt/comma/monorepo/services/django/templates/base.html
Toggle context {'False': False, 'None': None, 'True': True} {'ANALYTICS_CONFIG': {'domain': 'comma.cm', 'focus': ['user_registration', 'authentication', 'server_events', 'conversion_funnels'], 'gtm_container': None, 'measurement_id': 'G-VKC59T8HRE', 'name': 'Comma - Django Backend', 'tracking_strategy': 'server_side'}, 'ANALYTICS_ENVIRONMENT': 'django_backend', 'ANALYTICS_GTM_CONTAINER': None, 'ANALYTICS_MEASUREMENT_ID': 'G-VKC59T8HRE', 'ANALYTICS_SHOULD_USE_CLIENT_SIDE': False, 'ANALYTICS_SHOULD_USE_SERVER_SIDE': True, 'ANALYTICS_TRACKING_STRATEGY': 'server_side', 'DEFAULT_MESSAGE_LEVELS': {'DEBUG': 10, 'ERROR': 40, 'INFO': 20, 'SUCCESS': 25, 'WARNING': 30}, 'csrf_token': '<SimpleLazyObject: <function csrf.<locals>._get_val at ' '0x759e80f87b00>>', 'docs_url': 'https://docs.comma.cm', 'frontend_url': 'https://b.comma.cm', 'messages': <FallbackStorage: request=<WSGIRequest: GET '/colophon/'>>, 'navigation_items': [{'icon': 'pi pi-info-circle', 'items': [[{'items': [{'label': 'Our Story', 'url': '/story/'}, {'label': 'Leadership', 'url': '/leadership/'}, {'label': 'Community Impact', 'url': '/impact/'}], 'label': 'Our Mission'}], [{'items': [{'label': 'Press Kit', 'url': '/press/'}, {'label': 'Documentation', 'target': '_blank', 'url': 'https://docs.comma.cm'}, {'label': 'FAQ', 'url': '/faq/'}], 'label': 'Resources'}]], 'label': 'About'}, {'icon': 'pi pi-users', 'items': [[{'items': [{'label': 'First Amendment Club', 'url': '/first-amendment-club/'}, {'label': 'Volunteer', 'url': '/volunteer/'}, {'label': 'Events', 'url': '/events/'}], 'label': 'Get Involved'}], [{'items': [{'label': 'Newsletter', 'url': '/#newsletter'}, {'label': 'Social Media', 'url': '/social/'}, {'label': 'Contact Us', 'url': '/contact/'}], 'label': 'Connect'}]], 'label': 'Community'}, {'icon': 'pi pi-palette', 'items': [[{'items': [{'label': 'Storybook', 'target': '_blank', 'url': 'https://sb.comma.cm'}, {'label': 'Design System', 'url': '/design-system/'}, {'label': 'Component Showcase', 'url': '/#components-showcase'}], 'label': 'UI Library'}], [{'items': [{'label': 'Documentation', 'target': '_blank', 'url': 'https://docs.comma.cm'}, {'label': 'GitHub', 'target': '_blank', 'url': 'https://github.com/commasconnect'}, {'label': 'API Reference', 'url': '/api/'}], 'label': 'Development'}]], 'label': 'Components'}], 'perms': PermWrapper(<SimpleLazyObject: <django.contrib.auth.models.AnonymousUser object at 0x759e803f4280>>), 'request': '<<request>>', 'simple_nav_items': [{'label': 'About', 'url': '/story/'}, {'label': 'Community', 'url': '/first-amendment-club/'}, {'label': 'Components', 'url': '/#components-showcase'}, {'label': 'Storybook', 'target': '_blank', 'url': 'https://sb.comma.cm'}, {'label': 'Docs', 'target': '_blank', 'url': 'https://docs.comma.cm'}], 'storybook_url': 'https://sb.comma.cm', 'user': '<SimpleLazyObject: <django.contrib.auth.models.AnonymousUser object ' 'at 0x759e803f4280>>', 'variables': <config.variables.Variables object at 0x759e8146f380>} {'current_year': 2025, 'django_version': '4.2.21', 'os_info': 'Linux-6.8.0-1029-aws-x86_64-with-glibc2.35', 'postgresql_version': '15.x', 'python_version': '3.13.5', 'tailwind_version': '3.3.x', 'view': <apps.web.views.colophon.ColophonView object at 0x759e8146fa10>, 'vue_version': '3.3.x'}
components/core/header_proper.html
/opt/comma/monorepo/services/django/templates/components/core/header_proper.html
Toggle context {'False': False, 'None': None, 'True': True} {'ANALYTICS_CONFIG': {'domain': 'comma.cm', 'focus': ['user_registration', 'authentication', 'server_events', 'conversion_funnels'], 'gtm_container': None, 'measurement_id': 'G-VKC59T8HRE', 'name': 'Comma - Django Backend', 'tracking_strategy': 'server_side'}, 'ANALYTICS_ENVIRONMENT': 'django_backend', 'ANALYTICS_GTM_CONTAINER': None, 'ANALYTICS_MEASUREMENT_ID': 'G-VKC59T8HRE', 'ANALYTICS_SHOULD_USE_CLIENT_SIDE': False, 'ANALYTICS_SHOULD_USE_SERVER_SIDE': True, 'ANALYTICS_TRACKING_STRATEGY': 'server_side', 'DEFAULT_MESSAGE_LEVELS': {'DEBUG': 10, 'ERROR': 40, 'INFO': 20, 'SUCCESS': 25, 'WARNING': 30}, 'csrf_token': '<SimpleLazyObject: <function csrf.<locals>._get_val at ' '0x759e80f87b00>>', 'docs_url': 'https://docs.comma.cm', 'frontend_url': 'https://b.comma.cm', 'messages': <FallbackStorage: request=<WSGIRequest: GET '/colophon/'>>, 'navigation_items': [{'icon': 'pi pi-info-circle', 'items': [[{'items': [{'label': 'Our Story', 'url': '/story/'}, {'label': 'Leadership', 'url': '/leadership/'}, {'label': 'Community Impact', 'url': '/impact/'}], 'label': 'Our Mission'}], [{'items': [{'label': 'Press Kit', 'url': '/press/'}, {'label': 'Documentation', 'target': '_blank', 'url': 'https://docs.comma.cm'}, {'label': 'FAQ', 'url': '/faq/'}], 'label': 'Resources'}]], 'label': 'About'}, {'icon': 'pi pi-users', 'items': [[{'items': [{'label': 'First Amendment Club', 'url': '/first-amendment-club/'}, {'label': 'Volunteer', 'url': '/volunteer/'}, {'label': 'Events', 'url': '/events/'}], 'label': 'Get Involved'}], [{'items': [{'label': 'Newsletter', 'url': '/#newsletter'}, {'label': 'Social Media', 'url': '/social/'}, {'label': 'Contact Us', 'url': '/contact/'}], 'label': 'Connect'}]], 'label': 'Community'}, {'icon': 'pi pi-palette', 'items': [[{'items': [{'label': 'Storybook', 'target': '_blank', 'url': 'https://sb.comma.cm'}, {'label': 'Design System', 'url': '/design-system/'}, {'label': 'Component Showcase', 'url': '/#components-showcase'}], 'label': 'UI Library'}], [{'items': [{'label': 'Documentation', 'target': '_blank', 'url': 'https://docs.comma.cm'}, {'label': 'GitHub', 'target': '_blank', 'url': 'https://github.com/commasconnect'}, {'label': 'API Reference', 'url': '/api/'}], 'label': 'Development'}]], 'label': 'Components'}], 'perms': PermWrapper(<SimpleLazyObject: <django.contrib.auth.models.AnonymousUser object at 0x759e803f4280>>), 'request': '<<request>>', 'simple_nav_items': [{'label': 'About', 'url': '/story/'}, {'label': 'Community', 'url': '/first-amendment-club/'}, {'label': 'Components', 'url': '/#components-showcase'}, {'label': 'Storybook', 'target': '_blank', 'url': 'https://sb.comma.cm'}, {'label': 'Docs', 'target': '_blank', 'url': 'https://docs.comma.cm'}], 'storybook_url': 'https://sb.comma.cm', 'user': '<SimpleLazyObject: <django.contrib.auth.models.AnonymousUser object ' 'at 0x759e803f4280>>', 'variables': <config.variables.Variables object at 0x759e8146f380>} {'current_year': 2025, 'django_version': '4.2.21', 'os_info': 'Linux-6.8.0-1029-aws-x86_64-with-glibc2.35', 'postgresql_version': '15.x', 'python_version': '3.13.5', 'tailwind_version': '3.3.x', 'view': <apps.web.views.colophon.ColophonView object at 0x759e8146fa10>, 'vue_version': '3.3.x'}
components/core/footer_proper.html
/opt/comma/monorepo/services/django/templates/components/core/footer_proper.html
Toggle context {'False': False, 'None': None, 'True': True} {'ANALYTICS_CONFIG': {'domain': 'comma.cm', 'focus': ['user_registration', 'authentication', 'server_events', 'conversion_funnels'], 'gtm_container': None, 'measurement_id': 'G-VKC59T8HRE', 'name': 'Comma - Django Backend', 'tracking_strategy': 'server_side'}, 'ANALYTICS_ENVIRONMENT': 'django_backend', 'ANALYTICS_GTM_CONTAINER': None, 'ANALYTICS_MEASUREMENT_ID': 'G-VKC59T8HRE', 'ANALYTICS_SHOULD_USE_CLIENT_SIDE': False, 'ANALYTICS_SHOULD_USE_SERVER_SIDE': True, 'ANALYTICS_TRACKING_STRATEGY': 'server_side', 'DEFAULT_MESSAGE_LEVELS': {'DEBUG': 10, 'ERROR': 40, 'INFO': 20, 'SUCCESS': 25, 'WARNING': 30}, 'csrf_token': '<SimpleLazyObject: <function csrf.<locals>._get_val at ' '0x759e80f87b00>>', 'docs_url': 'https://docs.comma.cm', 'frontend_url': 'https://b.comma.cm', 'messages': <FallbackStorage: request=<WSGIRequest: GET '/colophon/'>>, 'navigation_items': [{'icon': 'pi pi-info-circle', 'items': [[{'items': [{'label': 'Our Story', 'url': '/story/'}, {'label': 'Leadership', 'url': '/leadership/'}, {'label': 'Community Impact', 'url': '/impact/'}], 'label': 'Our Mission'}], [{'items': [{'label': 'Press Kit', 'url': '/press/'}, {'label': 'Documentation', 'target': '_blank', 'url': 'https://docs.comma.cm'}, {'label': 'FAQ', 'url': '/faq/'}], 'label': 'Resources'}]], 'label': 'About'}, {'icon': 'pi pi-users', 'items': [[{'items': [{'label': 'First Amendment Club', 'url': '/first-amendment-club/'}, {'label': 'Volunteer', 'url': '/volunteer/'}, {'label': 'Events', 'url': '/events/'}], 'label': 'Get Involved'}], [{'items': [{'label': 'Newsletter', 'url': '/#newsletter'}, {'label': 'Social Media', 'url': '/social/'}, {'label': 'Contact Us', 'url': '/contact/'}], 'label': 'Connect'}]], 'label': 'Community'}, {'icon': 'pi pi-palette', 'items': [[{'items': [{'label': 'Storybook', 'target': '_blank', 'url': 'https://sb.comma.cm'}, {'label': 'Design System', 'url': '/design-system/'}, {'label': 'Component Showcase', 'url': '/#components-showcase'}], 'label': 'UI Library'}], [{'items': [{'label': 'Documentation', 'target': '_blank', 'url': 'https://docs.comma.cm'}, {'label': 'GitHub', 'target': '_blank', 'url': 'https://github.com/commasconnect'}, {'label': 'API Reference', 'url': '/api/'}], 'label': 'Development'}]], 'label': 'Components'}], 'perms': PermWrapper(<SimpleLazyObject: <django.contrib.auth.models.AnonymousUser object at 0x759e803f4280>>), 'request': '<<request>>', 'simple_nav_items': [{'label': 'About', 'url': '/story/'}, {'label': 'Community', 'url': '/first-amendment-club/'}, {'label': 'Components', 'url': '/#components-showcase'}, {'label': 'Storybook', 'target': '_blank', 'url': 'https://sb.comma.cm'}, {'label': 'Docs', 'target': '_blank', 'url': 'https://docs.comma.cm'}], 'storybook_url': 'https://sb.comma.cm', 'user': '<SimpleLazyObject: <django.contrib.auth.models.AnonymousUser object ' 'at 0x759e803f4280>>', 'variables': <config.variables.Variables object at 0x759e8146f380>} {'current_year': 2025, 'django_version': '4.2.21', 'os_info': 'Linux-6.8.0-1029-aws-x86_64-with-glibc2.35', 'postgresql_version': '15.x', 'python_version': '3.13.5', 'tailwind_version': '3.3.x', 'view': <apps.web.views.colophon.ColophonView object at 0x759e8146fa10>, 'vue_version': '3.3.x'}

Context processors

django.template.context_processors.csrf
Toggle context {'csrf_token': <SimpleLazyObject: <function csrf.<locals>._get_val at 0x759e80f87b00>>}
django.template.context_processors.debug
Toggle context {}
django.template.context_processors.request
Toggle context {'request': <WSGIRequest: GET '/colophon/'>}
django.contrib.auth.context_processors.auth
Toggle context {'user': <SimpleLazyObject: <django.contrib.auth.models.AnonymousUser object at 0x759e803f4280>>, 'perms': PermWrapper(<SimpleLazyObject: <django.contrib.auth.models.AnonymousUser object at 0x759e803f4280>>)}
django.contrib.messages.context_processors.messages
Toggle context {'messages': <FallbackStorage: request=<WSGIRequest: GET '/colophon/'>>, 'DEFAULT_MESSAGE_LEVELS': {'DEBUG': 10, 'INFO': 20, 'SUCCESS': 25, 'WARNING': 30, 'ERROR': 40}}
config.variables.variable_context_processor
Toggle context {'variables': <config.variables.Variables object at 0x759e8146f380>}
apps.web.context_processors.navigation_items
Toggle context {'navigation_items': [{'label': 'About', 'icon': 'pi pi-info-circle', 'items': [[{'label': 'Our Mission', 'items': [{'label': 'Our Story', 'url': '/story/'}, {'label': 'Leadership', 'url': '/leadership/'}, {'label': 'Community Impact', 'url': '/impact/'}]}], [{'label': 'Resources', 'items': [{'label': 'Press Kit', 'url': '/press/'}, {'label': 'Documentation', 'url': 'https://docs.comma.cm', 'target': '_blank'}, {'label': 'FAQ', 'url': '/faq/'}]}]]}, {'label': 'Community', 'icon': 'pi pi-users', 'items': [[{'label': 'Get Involved', 'items': [{'label': 'First Amendment Club', 'url': '/first-amendment-club/'}, {'label': 'Volunteer', 'url': '/volunteer/'}, {'label': 'Events', 'url': '/events/'}]}], [{'label': 'Connect', 'items': [{'label': 'Newsletter', 'url': '/#newsletter'}, {'label': 'Social Media', 'url': '/social/'}, {'label': 'Contact Us', 'url': '/contact/'}]}]]}, {'label': 'Components', 'icon': 'pi pi-palette', 'items': [[{'label': 'UI Library', 'items': [{'label': 'Storybook', 'url': 'https://sb.comma.cm', 'target': '_blank'}, {'label': 'Design System', 'url': '/design-system/'}, {'label': 'Component Showcase', 'url': '/#components-showcase'}]}], [{'label': 'Development', 'items': [{'label': 'Documentation', 'url': 'https://docs.comma.cm', 'target': '_blank'}, {'label': 'GitHub', 'url': 'https://github.com/commasconnect', 'target': '_blank'}, {'label': 'API Reference', 'url': '/api/'}]}]]}], 'simple_nav_items': [{'label': 'About', 'url': '/story/'}, {'label': 'Community', 'url': '/first-amendment-club/'}, {'label': 'Components', 'url': '/#components-showcase'}, {'label': 'Storybook', 'url': 'https://sb.comma.cm', 'target': '_blank'}, {'label': 'Docs', 'url': 'https://docs.comma.cm', 'target': '_blank'}]}
apps.web.context_processors.environment_urls
Toggle context {'docs_url': 'https://docs.comma.cm', 'storybook_url': 'https://sb.comma.cm', 'frontend_url': 'https://b.comma.cm'}
config.analytics_strategy.analytics_context_processor
Toggle context {'ANALYTICS_ENVIRONMENT': 'django_backend', 'ANALYTICS_CONFIG': {'name': 'Comma - Django Backend', 'measurement_id': 'G-VKC59T8HRE', 'tracking_strategy': 'server_side', 'focus': ['user_registration', 'authentication', 'server_events', 'conversion_funnels'], 'gtm_container': None, 'domain': 'comma.cm'}, 'ANALYTICS_MEASUREMENT_ID': 'G-VKC59T8HRE', 'ANALYTICS_GTM_CONTAINER': None, 'ANALYTICS_TRACKING_STRATEGY': 'server_side', 'ANALYTICS_SHOULD_USE_CLIENT_SIDE': False, 'ANALYTICS_SHOULD_USE_SERVER_SIDE': True}

Alerts

No alerts found

Cache calls from 1 backend

Summary

Total calls Total time Cache hits Cache misses
0 0 ms 0 0

Commands

add get set get_or_set touch delete clear get_many set_many delete_many has_key incr decr incr_version decr_version
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

Signals

Signal Receivers
class_prepared
connection_created
got_request_exception
m2m_changed
post_delete
post_init
post_migrate create_permissions, create_contenttypes, create_default_site
post_save create_user_profile, save_user_profile, create_sso_profile, save_sso_profile
pre_delete clear_site_cache
pre_init
pre_migrate inject_rename_contenttypes_operations
pre_save clear_site_cache
request_finished close_old_connections, close_caches, reset_urlconf
request_started reset_queries, close_old_connections
setting_changed reset_cache, Settings.change_setting, clear_cache_handlers, update_installed_apps, update_connections_time_zone, clear_routers_cache, reset_template_engines, storages_changed, clear_serializers_cache, language_changed, localize_settings_changed, file_storage_changed, complex_setting_changed, root_urlconf_changed, static_storage_changed, static_finders_changed, auth_password_validators_changed, user_model_swapped, reload_graphene_settings, update_toolbar_config, reset_hashers, update_level_tags, clear_caches, StaticFilesStorage._clear_cached_properties, reload_api_settings, FileSystemStorage._clear_cached_properties, FileSystemStorage._clear_cached_properties, FileSystemStorage._clear_cached_properties, FileSystemStorage._clear_cached_properties, FileSystemStorage._clear_cached_properties, reload_settings