A curated collection of software development talks that I find interesting and valuable.
This site showcases a handpicked selection of talks about software development, engineering practices, and technical leadership.
🌐 Visit the site: eferro's picks
📝 Author's Blog: eferro's random stuff
- Frontend: React + TypeScript
- Styling: Tailwind CSS
- Data Storage: Static JSON files
- Hosting: GitHub Pages
- Automation: GitHub Actions
- Testing: Vitest + Testing Library (robust coverage for all filters, including Author Filter)
The site follows a simple and efficient architecture:
-
Data Management:
- Talk data is stored as static JSON files
- Data is located in the
public/datadirectory - Updates are managed through direct file modifications
-
Frontend:
- React components for UI
- TypeScript for type safety
- Tailwind CSS for styling
- Client-side routing with React Router
-
Deployment:
- Hosted on GitHub Pages
- Automatic builds and deployments via GitHub Actions
-
Clone the repository:
git clone https://github.com/eferro/eferro-picks-site.git cd eferro-picks-site -
Install dependencies:
npm install
-
Start the development server:
npm run dev
To generate the production bundle manually, install dependencies and then run the build script:
npm ci # or npm install
npm run buildThe project uses Vitest and Testing Library for unit and integration tests. The test suite provides robust coverage for all major features, including:
- UI rendering and interaction for all filters (topics, rating, notes, author, etc.)
- URL parameter updates and state management
- Filtering logic and edge cases
To run the tests locally:
npm testTests are run automatically in CI to ensure code quality and prevent regressions. Contributions should include relevant tests for new features or bug fixes.
The following secrets need to be configured in GitHub repository settings:
GH_ACTIONS_PAT: GitHub Personal Access Token for deployments
Feel free to suggest new talks or improvements by opening an issue or pull request.
MIT License. See LICENSE for more information.