BasedNet is a next-generation indie web platform that allows users to create, customize, and host personal websites with P2P hosting, webrings, and AI-powered discovery.
This project is deployed on Vercel. Check out the live version at basednet.vercel.app.
- Personal Websites: Create and customize your own personal website with HTML, CSS, and JavaScript
- IPFS Integration: Host your content on the decentralized IPFS network
- Webrings: Join and create webrings to connect with like-minded creators
- Windows 98 Aesthetic: Enjoy a nostalgic user interface inspired by Windows 98
- User Profiles: Customize your profile with bio, avatar, and social links
- Content Management: Upload, manage, and pin your IPFS content
- Node.js 18+ installed
- PostgreSQL database
- IPFS node access (via Infura or Pinata)
-
Clone the repository:
git clone https://github.com/yourusername/basednet.git cd basednet
-
Install dependencies:
npm install
-
Run the setup wizard:
npm run setup
This will guide you through:
- Database configuration
- Authentication setup
- IPFS integration
You can also run individual setup scripts:
npm run setup:db
- Configure the databasenpm run setup:auth
- Set up IndieAuth authenticationnpm run setup:ipfs
- Configure IPFS integration
-
Start the development server:
npm run dev
-
Open http://localhost:3000 in your browser
src/app
: Next.js App Router pages and API routessrc/components
: React componentssrc/contexts
: React context providerssrc/db
: Database models and configurationsrc/lib
: Utility functions and API clientspublic
: Static assets
npm run dev
: Start the development servernpm run build
: Build the application for productionnpm run start
: Start the production servernpm run lint
: Run ESLintnpm run test
: Run testsnpm run db:migrate
: Run database migrationsnpm run db:seed
: Seed the database with initial datanpm run security:audit
: Run security audit
BasedNet uses IndieAuth for authentication, allowing users to sign in with their own domain. To set up authentication:
- Register an IndieAuth client
- Add the client ID and secret to your
.env
file - Configure the callback URL in your IndieAuth settings
BasedNet uses IPFS for decentralized content storage. To set up IPFS:
- Create an account on Infura or Pinata
- Get your IPFS project credentials
- Add them to your
.env
file
The easiest way to deploy BasedNet is to use our automated setup and deployment scripts:
# Run the setup wizard with deployment preparation
npm run setup
Alternatively, you can follow these steps:
- Check if your application is ready for deployment:
npm run check:deployment
This comprehensive check will verify:
- All environment variables are properly set
- Database connection is working
- IPFS configuration is valid
- Authentication is configured
- Application builds successfully
- No security vulnerabilities exist
- Vercel CLI is installed
- Once all checks pass, deploy to Vercel using our deployment script:
npm run deploy
This script will guide you through the process of deploying to Vercel, including setting up environment variables and configuring your project.
- After deployment, access your application:
# Your application will be available at:
- The Vercel URL shown in the deployment output (typically https://your-project-name.vercel.app)
- Your Vercel dashboard: https://vercel.com/dashboard
- Your custom domain (if configured)
For detailed deployment instructions, troubleshooting tips, and other deployment options, see DEPLOYMENT.md.
- Fork the repository
- Create your 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
This project is licensed under the MIT License - see the LICENSE file for details.
- Inspired by Neocities and the indie web movement
- Windows 98 UI inspired by 98.css