A peer-to-peer (P2P) application browser built with modern web technologies. Pear Browser allows you to discover and launch P2P applications in your network through an intuitive search interface.
- P2P App Discovery: Search and discover P2P applications in your network
- Modern UI: Clean, responsive interface built with Alpine.js and Tailwind CSS
- Desktop App: Runs as a native desktop application using Pear Runtime
- Real-time Search: Instant search results with live filtering
- App Management: View app details including icons, descriptions, and URLs
The browser features a clean interface with:
- A prominent search bar for discovering P2P apps
- App listings with icons and descriptions
- Seamless app launching capabilities
- Modern, responsive design
- Frontend: HTML5, Alpine.js, Tailwind CSS
- Backend: Node.js with Pear Runtime
- Data Storage: Corestore with Schema Sheets
- P2P Communication: Pear Request
- Build Tools: Tailwind CSS CLI
- Node.js (v16 or higher)
- Pear Runtime
- Git
- Clone the repository:
git clone <repository-url>
cd pear-browser- Install dependencies:
npm install- Build the CSS:
npm run build:tailwindStart the development server:
npm run devThis will launch the Pear Browser in development mode with hot reloading.
For production deployment, build the CSS and run the application:
npm run build:tailwind
pear run .pear-browser/
├── app.js # Main application logic
├── apps.json # Default apps configuration
├── assets/ # Static assets (logos, icons)
├── index.html # Main HTML file
├── input.css # Tailwind CSS input
├── package.json # Dependencies and scripts
├── schema.json # Data schema definition
└── README.md # This file
Edit apps.json to add default P2P applications:
[
{
"name": "App Name",
"icon": "data:image/png;base64,...",
"description": "App description",
"url": "app-url"
}
]Modify schema.json to change the data structure for apps:
{
"type": "object",
"properties": {
"name": { "type": "string" },
"icon": { "type": "string" },
"description": { "type": "string" },
"url": { "type": "string" }
}
}npm run dev- Start development servernpm run test- Run testsnpm run build:tailwind- Build Tailwind CSS
- Search Interface: Built with Alpine.js for reactive search functionality
- App Container: Uses HTMX for dynamic app loading
- Data Management: Corestore with Schema Sheets for P2P data storage
- Network Communication: Pear Request for P2P communication
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
- Follow the existing code style
- Add tests for new features
- Update documentation as needed
- Ensure all tests pass before submitting
Run the test suite:
npm testTests are written using Brittle and cover core functionality.
This project is licensed under the Apache 2.0 License - see the LICENSE file for details.
- Built with Pear Runtime
- UI components powered by Alpine.js
- Styling with Tailwind CSS
- P2P data storage with Corestore
For support and questions:
- Open an issue on GitHub
- Check the documentation
- Join the community discussions
Note: This is a P2P application browser designed for discovering and launching distributed applications. Make sure you have the necessary P2P network setup for full functionality.