110 lines
2.8 KiB
Markdown
110 lines
2.8 KiB
Markdown
# Software X
|
||
|
||
A polished React + Vite landing page and community waitlist experience for a premium meme-coin launch platform. The app includes a hero section, ecosystem overview, funding narrative, tokenomics modal, roadmap, and a live waitlist flow backed by Firebase Firestore.
|
||
|
||
## Overview
|
||
|
||
Software X is designed to present a high-trust launch narrative for a community-driven web3 product. The project combines brand storytelling, conversion-focused sections, and a waitlist system that tracks registrations and community momentum.
|
||
|
||
## Highlights
|
||
|
||
- Premium landing-page design with dark, modern visual language
|
||
- Conversion-focused sections for problem, solution, roadmap, and funding
|
||
- Tokenomics and vision modal experiences
|
||
- Waitlist registration and stats tracking powered by Firebase
|
||
- Responsive React interface built with Vite and TypeScript
|
||
|
||
## Tech Stack
|
||
|
||
- React 19
|
||
- Vite
|
||
- TypeScript
|
||
- Tailwind CSS
|
||
- Firebase Firestore
|
||
- Google GenAI SDK
|
||
|
||
## Project Structure
|
||
|
||
```bash
|
||
.
|
||
├── src/
|
||
│ ├── components/
|
||
│ ├── data/
|
||
│ ├── lib/
|
||
│ ├── App.tsx
|
||
│ ├── main.tsx
|
||
│ └── index.css
|
||
├── firebase-applet-config.json
|
||
├── firebase-blueprint.json
|
||
├── firestore.rules
|
||
├── .env.example
|
||
├── package.json
|
||
├── tsconfig.json
|
||
├── vite.config.ts
|
||
└── README.md
|
||
```
|
||
|
||
## Local Development
|
||
|
||
### Prerequisites
|
||
|
||
- Node.js 18+
|
||
- npm
|
||
|
||
### Install dependencies
|
||
|
||
```bash
|
||
npm install
|
||
```
|
||
|
||
### Environment variables
|
||
|
||
This project includes an example environment file at [.env.example](.env.example). Configure the variables required by your runtime environment before starting the app.
|
||
|
||
```bash
|
||
cp .env.example .env
|
||
```
|
||
|
||
The example file includes:
|
||
|
||
- `GEMINI_API_KEY`
|
||
- `APP_URL`
|
||
|
||
If you are running in AI Studio, configure these values through the platform’s secrets/runtime settings as needed.
|
||
|
||
### Run the app
|
||
|
||
```bash
|
||
npm run dev
|
||
```
|
||
|
||
The app runs on port `3000` by default via the Vite config.
|
||
|
||
### Production build
|
||
|
||
```bash
|
||
npm run build
|
||
```
|
||
|
||
### Type checking
|
||
|
||
```bash
|
||
npm run lint
|
||
```
|
||
|
||
## Firebase + Waitlist
|
||
|
||
The waitlist logic is configured in [src/lib/firebase.ts](src/lib/firebase.ts). It uses Firebase Firestore to manage registrations, live statistics, and referral-based waitlist tracking.
|
||
|
||
Before using the live waitlist flow, make sure your Firebase config file is populated correctly in [firebase-applet-config.json](firebase-applet-config.json).
|
||
|
||
## Notes
|
||
|
||
- The app is structured as a marketing and launch-site interface, not a general-purpose backend app.
|
||
- If you are deploying this to a static host or custom frontend platform, ensure your environment variables and Firebase configuration are available in the deployment environment.
|
||
|
||
## Contributing
|
||
|
||
Pull requests and improvements are welcome. For any significant changes, open an issue or propose the update before making a large refactor.
|
||
|