Built using Eleventy Static Site Generator, and hosted on Azure Static Web Apps.
To build and run it locally, install mise, then run mise start in the root folder.
Production website at https://devdottalk.uk
mise run build # Build: npm install → npm ci → npm run build
mise run test # Run tests: npm run test
mise run test-watch # Run tests in watch mode: npm run test:watch
mise start # Start dev: build → test → npm start (watch)This project includes comprehensive unit tests for all Nunjucks components using Vitest.
# Run tests once
mise x node@24 -- npm run test
# Run tests in watch mode (re-runs on file changes)
mise x node@24 -- npm run test:watchTests automatically run before the development server starts:
mise testIf any test fails, the dev server will not start. Fix the failing tests and run again.
Use this monthly checklist to keep event updates complete.
- Create the event page in
src/(copy the previous month), then set frontmatter:permalink,title,description,eventId,showVenueSection. - Add or update the event in
src/_data/events.jsonwithid, date/display fields, URL/title, location fields,overview, andsessionIDs. - Add or update talks in
src/_data/sessions.jsonwith unique sessionid, matchingeventID, speaker/title/description,status,videoUrl, andslidesUrl. - Keep event/session links in sync:
- every
sessionIDsentry must exist in sessions - every session with
eventID = Xmust be listed in eventid = XsessionIDs
- every
- If no talks are confirmed yet, keep
sessionIDsempty and show "coming soon" content. - Confirm the page wiring still works:
events.findById(eventId),currentEvent.sessionIDs, andeventVenues.findByEvent(currentEvent). - If using a new venue, add an include under
src/_includes/venues/and map it insrc/_includes/venue-details.njk. - Update ticketing links:
ticketSystemEventIdinsrc/_includes/layout.njk/ticketsredirect insrc/staticwebapp.config.json/next-eventredirect insrc/staticwebapp.config.json
- Retire old short links/redirects in
src/staticwebapp.config.json(keep historical event links stable). - Update
src/_data/kofiSupporters.jsonif new supporters were received. - Optional polish: refresh images in
src/images/, verifyhideMainLogo/hideNextEventBanner, and check month/title/ticket wording. - Validate before commit:
- run
mise test - run
mise run build - spot-check with
mise start: new event page,/next-event,/tickets, floating ticket button
- run
- Final sanity check: upcoming lists look right, speaker cards render correctly (or "coming soon" intentionally), venue visibility toggles with
showVenueSection, and no broken links remain.
Tests are organized in the tests/ directory:
tests/
├── components/ # Component-specific tests
│ ├── speaker-session.test.js
│ ├── event-list-item.test.js
│ ├── session-info-item.test.js
│ └── floating-register-button.test.js
├── fixtures/ # Mock data for tests
│ └── data.js # Fake session and event data (won't conflict with real data)
├── helpers/ # Test utilities and helpers
│ └── nunjucks.js # Nunjucks rendering utilities for tests
└── vitest.config.js # Vitest configuration
The tests/fixtures/data.js file contains:
mockSessions- 4 fake sessions with IDs 999, 998, 997, 996mockEvents- 3 fake events with test event IDs
Mock data uses completely fake URLs and names to avoid conflicts with real website data when searching or indexing.
PRs welcome.
The src/community-projects.md page showcases blogs, articles, videos, GitHub repos, and websites created by {dev.talk} community members.
Adding your project takes a few minutes:
-
Find the section that best fits your project:
- Blogs & Personal Sites — personal blogs or portfolio sites
- Articles — published articles on Dev.to, Medium, personal blogs, etc.
- Videos — YouTube videos, conference recordings, screencasts
- GitHub Repos & Open Source — open source tools, libraries or experiments
- Websites & Apps — live sites or apps you've built
-
Add a bullet point in this format:
- [Project Name](https://your-project-url) — A short description. *by [Your Name](https://your-profile-link)* -
If your project doesn't fit an existing section, add a new
##heading. -
Submit a Pull Request — all community project contributions are welcome!
Not sure how to raise a PR? Drop a message via contactus@devdottalk.uk.