Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
185 changes: 122 additions & 63 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,98 +1,157 @@
# DevBits
<p align="center">
<img src="frontend/public/Devbits_Icons.png" alt="DevBits Logo" width="120" />
</p>

A place for developers to share their projects.
<h1 align="center">DevBits</h1>

Goal: Create an X and LinkedIn crossover for posting real content about your projects, semi-formally
<p align="center">
Social infrastructure for builders shipping in public.
</p>

### Outline
<p align="center">
<img alt="Go" src="https://img.shields.io/badge/Go-1.24-00ADD8?style=for-the-badge&logo=go&logoColor=white" />
<img alt="Gin" src="https://img.shields.io/badge/Gin-API-009688?style=for-the-badge&logo=gin&logoColor=white" />
<img alt="React Native" src="https://img.shields.io/badge/React_Native-0.81-20232A?style=for-the-badge&logo=react&logoColor=61DAFB" />
<img alt="Expo" src="https://img.shields.io/badge/Expo-SDK_54-000020?style=for-the-badge&logo=expo&logoColor=white" />
<img alt="TypeScript" src="https://img.shields.io/badge/TypeScript-5.3-3178C6?style=for-the-badge&logo=typescript&logoColor=white" />
<img alt="PostgreSQL" src="https://img.shields.io/badge/PostgreSQL-Data-4169E1?style=for-the-badge&logo=postgresql&logoColor=white" />
<img alt="AWS" src="https://img.shields.io/badge/AWS-Deployed-FF9900?style=for-the-badge&logo=amazonaws&logoColor=white" />
</p>

Projects are the baseline of the app, you must have a project to post.
---

Anyone can comment, like, follow, despite their project count.
<p align="center">
<img src="frontend/public/Cards.webp" alt="DevBits App Preview" width="100%" />
</p>

Some quirky names for things (frontend only)
## Product Identity

- Projects are called 'Stream's
- Posts about projects are called 'Byte's
- Comments are called 'Bit's
DevBits is where developers document real progress, not vanity metrics.

### Tech Stack
- `Streams` are projects.
- `Bytes` are project updates.
- `Bits` are comments and conversations.

- Backend/API in Go using Gin framework
- Frontend: ReactNative (iOS and Android)
- Database: PostgreSQL
- Host: AWS ec2 for backend, AWS RDS for PostgreSQL
Anyone can react, follow, comment, and join the conversation.

## Local Development
> [!IMPORTANT]
> DevBits is designed for technical storytelling: milestones, blockers, experiments, demos, and lessons learned.

### Quick Start
## Visual Gallery

Start only the frontend (choose production or local backend at launch):
| Home Feed | Discovery |
| --- | --- |
| <img src="frontend/public/IMG_2651.webp" alt="Home Feed" width="100%" /> | <img src="frontend/public/IMG_2652.webp" alt="Explore Feed" width="100%" /> |

```bash
./run-front.sh
```
| Streams | Messaging |
| --- | --- |
| <img src="frontend/public/IMG_2653.webp" alt="Streams Screen" width="100%" /> | <img src="frontend/public/IMG_2654.webp" alt="Messages Screen" width="100%" /> |

Start local backend stack only (dev PostgreSQL + backend):
| Profile | Product Motion |
| --- | --- |
| <img src="frontend/public/IMG_2655.webp" alt="Profile Screen" width="100%" /> | <img src="frontend/public/IMG_2660.webp" alt="DevBits UI Motion" width="100%" /> |

```bash
./run-dev.sh
```
## Experience Cards

Then start frontend and choose local or live backend:
| Card | What It Delivers |
| --- | --- |
| `Build Logs` | Structured public progress for each project stream, from first prototype to launch day. |
| `Discovery Engine` | Explore recent streams, bytes, people, and tags in one place. |
| `Builder Identity` | Profiles, follows, saved streams, saved bytes, and creator-centric timelines. |
| `Real Conversations` | Direct messages, threaded discussions, and comment-level collaboration. |
| `Creation Flow` | Quick post publishing with media support and stream-first organization. |

```bash
./run-front.sh
```
## App Functions

Run backend tests using dockerized Go against the dev DB stack:
<details>
<summary><strong>▸ Core social model</strong></summary>
<br />

```bash
./run-db-tests.sh
```
- Stream-first posting model: project context is always attached to updates.
- Byte interactions: reactions, saves, and threadable discussion.
- Follow graph for people discovery and relationship context.
- Unified feed surfaces both streams and bytes.

PowerShell equivalents:
</details>

```powershell
.\run-front.ps1
.\run-dev.ps1
.\run-db-tests.ps1
```
<details>
<summary><strong>▸ Discovery and navigation</strong></summary>
<br />

- Dedicated Explore experience for users, tags, streams, and bytes.
- Category-aware search and trend-style tag surfacing.
- Route-based architecture with tabs and deep-linked detail pages.
- Welcome tour introduces product primitives and navigation model.

</details>

<details>
<summary><strong>▸ Builder profile system</strong></summary>
<br />

Scan the QR code with Expo Go on your phone. The app will automatically connect to your local backend.
- Personal stream portfolio with project and post collections.
- Follower/following views and interaction controls.
- Saved content libraries for both streams and bytes.
- Profile metadata and social proof around shipping activity.

### Verification Checklist
</details>

- Fresh clone frontend check: run `chmod +x run-front.sh run-dev.sh run-db-tests.sh`, then `./run-front.sh`, choose `Production`, and confirm Expo starts.
- Backend stack: run `./run-dev.sh`, confirm backend health at `http://<LAN-IP>:8080/health`.
- Frontend to local backend: run `./run-front.sh --local`, then validate app API calls from a phone on same WiFi.
- DB tests: run `./run-db-tests.sh` and confirm it exits with code `0`.
<details>
<summary><strong>▸ Messaging and collaboration</strong></summary>
<br />

### Prerequisites
- Direct message threads by builder.
- Username search with suggestion ranking.
- Conversation-level interaction for async collaboration.

1. Install Docker and Docker Compose (v2)
2. Install Node.js/npm for Expo frontend
</details>

### Troubleshooting
<details>
<summary><strong>▸ Platform and delivery</strong></summary>
<br />

- Docker Desktop on Windows: ensure file sharing is enabled for the repo path.
- If `8080` or `5433` is occupied, the scripts prompt for alternate ports (or allow exit with guidance).
- WSL/Docker Desktop/Linux engine differences: run scripts from the environment that owns your Docker daemon and ensure localhost port forwarding is enabled.
- Go + Gin REST backend with JWT auth and middleware-protected routes.
- PostgreSQL production database and SQLite-friendly test workflows.
- React Native + Expo mobile client for Android and iOS.
- AWS-hosted backend deployment path.

</details>

## Language and Platform Snapshot

```text
Backend: Go (Gin API, JWT auth, DB query layer)
Frontend: TypeScript (React Native + Expo Router)
Database: PostgreSQL (production), SQLite (test mode)
Infra: AWS EC2 + AWS RDS
```

## Architecture at a Glance

```mermaid
flowchart LR
A[Mobile App\nReact Native + Expo] --> B[Go API\nGin]
B --> C[(PostgreSQL)]
B --> D[Media Uploads]
A --> E[Streams / Bytes / Bits UX]
```

For detailed instructions, see [INSTRUCTIONS.md](INSTRUCTIONS.md).
## Project Story

## Static file sync
DevBits exists to make technical progress visible.

`backend/api/static/` is the source of truth for compliance and deep-linking files
(`apple-app-site-association`, `privacy-policy.html`, `account-deletion.html`).
The same files are mirrored into `frontend/public/` for the Expo web build.
Instead of posting polished outcomes only, builders can share:

Run `Bash-Scripts/sync-static.sh` after editing any file in `backend/api/static/`
to keep the frontend copy in sync.
- What they are building now
- What broke today
- What they learned while fixing it
- What they are shipping next

## Deployment DB scripts
> [!TIP]
> The goal is simple: give developers a social home for real work in progress.

All deployment database script commands and usage are documented in:
## Explore More

- [backend/scripts/README.md](backend/scripts/README.md)
- [backend/docs/AWS_TRANSFER_NO_NGINX.md](backend/docs/AWS_TRANSFER_NO_NGINX.md)
- Product and deployment runbook: [INSTRUCTIONS.md](INSTRUCTIONS.md)
- Backend structure and scripts: [backend/scripts/README.md](backend/scripts/README.md)
- AWS deployment notes: [docs/AWS_TRANSFER_NO_NGINX.md](docs/AWS_TRANSFER_NO_NGINX.md)
Copy link

Copilot AI Mar 9, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The link to the AWS deployment notes points to docs/AWS_TRANSFER_NO_NGINX.md, but there is no top-level docs/ directory in the repo; the file currently lives at backend/docs/AWS_TRANSFER_NO_NGINX.md. Update the README link target to avoid a broken reference.

Suggested change
- AWS deployment notes: [docs/AWS_TRANSFER_NO_NGINX.md](docs/AWS_TRANSFER_NO_NGINX.md)
- AWS deployment notes: [backend/docs/AWS_TRANSFER_NO_NGINX.md](backend/docs/AWS_TRANSFER_NO_NGINX.md)

Copilot uses AI. Check for mistakes.
Comment on lines +139 to +157
Copy link

Copilot AI Mar 9, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This rewrite removes the prior “Local Development” / quick-start and troubleshooting content from the README without providing an equivalent developer onboarding section elsewhere (INSTRUCTIONS.md is deployment-focused). If the intent is only to enhance visuals/description, consider restoring a minimal local dev quick start (or moving it to a dedicated doc and linking it here) to avoid losing setup guidance.

Copilot uses AI. Check for mistakes.
Loading