syntaxfm/website
syntaxfm/website has 1,214 GitHub stars and 517 forks. GitHot measured -1 stars in 24 hours and -2 in 7 days. Last checked 2026-11-13 18:40 UTC. Last push 2026-10-30.
Crecimiento de estrellas medido
- in 24h
- -1
- in 7 days
- -2
- in 15 days
- Recopilando historial
- in 1 month
- Recopilando historial
Cambios netos en períodos que se solapan, no totales diarios. Los datos no disponibles se dejan en blanco. Las estrellas indican interés, no calidad.
Acerca de
Syntax Podcast Website
Web y aplicacionesREADME.md
OriginalSyntax.
A tasty treats podcast for Web Developers.
This is the site that runs Syntax.fm — go there to listen to it!
This site is built on SvelteKit 3.
Requirements
- Node 22.17.0 or higher
Prerequisite
- Install Node - https://nodejs.org/en
- Install pnpm - https://pnpm.io/installation
- If you are on a Mac, there is an issue with the curl install.
- Preferably, use homebrew to install:
brew install pnpm
- Install mysql or use docker with the provided
docker-compose.ymlfile.
This site uses MySQL via Prisma, so you will need a valid MySQL connection string.
Getting Started
Without Docker
Have your database connection string handy.
pnpm installpnpm preheatpnpm dev
That's it!
With Docker
- Read Prerequisites above ^^ before starting
- Copy
.env.exampleto.envand specify env variables (needs at leastDATABASE_URL, see here for how to get the others)- If using Docker, add the following at the top of your
.envfile to share variables with thedocker-compose.yml(replace the existing DATABASE_URL with the one below)# required to run the seed commands within the container DOCKER=true # any value other than "true" is considered false DATABASE_HOST=localhost DATABASE_PORT=3306 DATABASE_USER=syntax DATABASE_PASSWORD=syntax DATABASE_NAME=syntax DATABASE_ROOT_PASSWORD=syntax DATABASE_URL=mysql://${DATABASE_USER}:${DATABASE_PASSWORD}@${DATABASE_HOST}:${DATABASE_PORT}/${DATABASE_NAME} REDIS_PORT=6379 REDIS_HTTP_PORT=8079 UPSPLASH_TOKEN=supersecret UPSPLASH_URL=http://localhost:${REDIS_HTTP_PORT}
- If using Docker, add the following at the top of your
- If using docker, in a separate tab run ->
docker compose up - Run ->
pnpm preheat - Run ->
pnpm dev - Visit
http://localhost:5173
Scripts
- Generate Types
pnpm db:generate - DB studio
pnpm db:studio - DB Migrations
pnpm db:push - DB Seed
pnpm db:seed
About this codebase
Just about all major code folders live in /src with the exception of /shows - the md source of truth for all podcast episodes as well as /prisma for our db connections and schema.
| Import | ||
|---|---|---|
/actions |
Svelte Actions, these are reusable functions that act as lifecycle on DOM elements | #actions/* |
/assets |
Images and other assets imported by code and CSS | #assets/* |
/server |
All database and server-side only reusable code | #server/* |
/lib |
(SK Paradigm) Components and files that are used in more than one route | #lib/* |
/routes |
(SK Paradigm) File System based routing | |
/state |
Global State containers and resolvers | #state/* |
/styles |
CSS | #styles/* |
/utilities |
Global Utility functions | #utilities/* |
params.ts |
(SK Paradigm) Validation for parameter based routes, e.g. [number=show_number] |
|
env.ts |
Declares every environment variable the app reads |
Imports are subpath imports defined in package.json. They map paths literally, so include the file extension, using .js for .ts files (e.g. #server/prisma-client.js). In CSS, # means a fragment, so url()s use relative paths instead.
Stylin'
These are the available media queries:
@custom-media --below-small (width < 400px);
@custom-media --below-med (width < 700px);
@custom-media --below-large (width < 900px);
@custom-media --below-xlarge (width < 1200px);
@custom-media --above-small (width > 400px);
@custom-media --above-med (width > 700px);
@custom-media --above-large (width > 900px);
@custom-media --above-xlarge (width > 1200px);
@custom-media --stacked-video-bar (max-width: 809px);
// Usage
@media (--above-med) {
}
Where to get your own Environment Variables
Variables read through $app/env/private or $app/env/public must also be declared in src/env.ts, or SvelteKit won't expose them. Server-only code that reads process.env directly (OPENROUTER_API_KEY, DEEPGRAM_SECRET, CRON_SECRET) doesn't need a declaration.
| Variable | Where to get it | Notes |
|---|---|---|
| PUBLIC_GITHUB_ID, GH_SECRET | Github Oauth Apps | Create new OAuth App, set http://localhost:5173/api/oauth/github/callback as the redirect URL |
| DEEPGRAM_SECRET | Deepgram | |
| SENTRY_AUTH_TOKEN | Sentry | |
| OPENROUTER_API_KEY | OpenRouter | Used for AI show notes (Claude Sonnet 5.5) |
| CRON_SECRET | Any random string | Only needed to call /webhooks/* directly; admin buttons work without it |
| UPSPLASH_TOKEN, UPSPLASH_URL | https://upstash.com/ | Create a redis DB after sign up in the console |
| YOUTUBE_API_KEY | Google API Console | Create an API key, visit the library and enable "YouTube Data API v3" |
Our Contributors
Explorar proyectos relacionados
freeCodeCamp/freeCodeCamp
Base de código abierto y plan de estudios de freeCodeCamp.org. Aprende matemáticas, programación y ciencias de la computación gratis.
459,091 estrellasdonnemartin/system-design-primer
Aprende a diseñar sistemas a gran escala y prepárate para la entrevista de diseño de sistemas. Incluye fichas de Anki.
377,782 estrellasreact/react
La biblioteca para interfaces de usuario web y nativas.
252,586 estrellasvuejs/vue
Este es el repositorio de Vue 2. Para Vue 3, visita https://github.com/vuejs/core
212,527 estrellas