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. The content is managed in Airtable and automatically synchronized with the site.
🌐 Visit the site: eferro's picks
📝 Author's Blog: eferro's random stuff
- Frontend: React + TypeScript
- Styling: Tailwind CSS
- Data Source: Airtable
- 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:
- All talk data is managed in Airtable
- GitHub Actions syncs data every 6 hours
- Data is stored as JSON in the
public/datadirectory
-
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 site's content is automatically updated through GitHub Actions:
- Scheduled Updates: Every 6 hours
- Manual Updates: Available through GitHub Actions UI
- Force Updates: Option available in manual triggers
The following secrets need to be configured in GitHub repository settings:
AIRTABLE_API_KEY: Your Airtable API keyAIRTABLE_DATABASE_ID: Your Airtable base IDGH_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.