tangled
alpha
login
or
join now
usaa.ma
/
markedit
0
fork
atom
A deployable markdown editor that connects with your self hosted files and lets you edit in a beautiful interface
0
fork
atom
overview
issues
pulls
pipelines
docs: updates readme
usamasulaiman
1 month ago
c4cdeb23
a96fab02
+11
-72
1 changed file
expand all
collapse all
unified
split
README.md
+11
-72
README.md
reviewed
···
13
13
- **⚡ Fast & Lightweight** - Built with modern technologies for optimal performance
14
14
- **🐳 Docker Ready** - Easy deployment with Docker and docker-compose
15
15
16
16
-
## Tech Stack
17
17
-
18
18
-
### Backend
19
19
-
- **Go 1.24+** - High-performance backend server
20
20
-
- **chi** - Lightweight router
21
21
-
- **go-git** - Native Git operations
22
22
-
- **SQLite** (modernc.org/sqlite) - Pure Go database, no CGO required
23
23
-
- **goth** - GitHub OAuth authentication
24
24
-
25
25
-
### Frontend
26
26
-
- **Astro** - Fast, client-only static site generation
27
27
-
- **React 18** - UI components
28
28
-
- **TipTap** - WYSIWYG markdown editor
29
29
-
- **shadcn/ui** - Beautiful, accessible components
30
30
-
- **Tailwind CSS** - Utility-first styling
31
31
-
- **React Query** - Data fetching and state management
32
32
-
33
16
## Quick Start
34
17
35
18
### Prerequisites
···
40
23
### Run with Docker
41
24
42
25
1. Clone the repository:
26
26
+
43
27
```bash
44
28
git clone https://github.com/yourusername/markedit.git
45
29
cd markedit
46
30
```
47
31
48
32
2. Copy the environment file and configure:
33
33
+
49
34
```bash
50
35
cp .env.example .env
51
36
# Edit .env with your GitHub OAuth credentials
52
37
```
53
38
54
39
3. Start the application:
40
40
+
55
41
```bash
56
42
make up
57
43
```
···
67
53
#### Backend
68
54
69
55
Requirements:
56
56
+
70
57
- Go 1.24 or higher
71
58
72
59
```bash
···
83
70
#### Frontend
84
71
85
72
Requirements:
73
73
+
86
74
- Bun 1.x or higher
87
75
88
76
```bash
···
121
109
- Published changes replace the draft content
122
110
- Drafts are automatically deleted after successful PR creation
123
111
124
124
-
## Architecture
125
125
-
126
126
-
```
127
127
-
markedit/
128
128
-
├── backend/ # Go server
129
129
-
│ ├── cmd/server/ # Main entry point
130
130
-
│ ├── internal/
131
131
-
│ │ ├── api/ # HTTP handlers
132
132
-
│ │ ├── auth/ # OAuth & sessions
133
133
-
│ │ ├── database/ # SQLite & queries
134
134
-
│ │ ├── git/ # Git operations
135
135
-
│ │ └── markdown/ # Frontmatter parsing
136
136
-
│ └── Dockerfile
137
137
-
├── frontend/ # Astro + React
138
138
-
│ ├── src/
139
139
-
│ │ ├── components/
140
140
-
│ │ ├── lib/ # API client & hooks
141
141
-
│ │ └── pages/
142
142
-
│ ├── nginx.conf
143
143
-
│ └── Dockerfile
144
144
-
└── docker-compose.yml
145
145
-
```
146
146
-
147
147
-
## API Endpoints
148
148
-
149
149
-
### Authentication
150
150
-
- `GET /auth/github` - Initiate GitHub OAuth flow
151
151
-
- `GET /auth/github/callback` - OAuth callback handler
152
152
-
- `GET /auth/user` - Get current user info
153
153
-
- `POST /auth/logout` - Logout current user
154
154
-
155
155
-
### Repositories
156
156
-
- `GET /api/repos` - List user's repositories
157
157
-
- `GET /api/repos/:owner/:repo/files` - List files in repository
158
158
-
- `GET /api/repos/:owner/:repo/files/*path` - Get file content
159
159
-
- `PUT /api/repos/:owner/:repo/files/*path` - Save draft content
160
160
-
161
161
-
### Git Operations
162
162
-
- `GET /api/repos/:owner/:repo/branch/status` - Get current branch info
163
163
-
- `POST /api/repos/:owner/:repo/publish` - Commit, push, and create PR
164
164
-
165
112
## Configuration
166
113
167
114
### Environment Variables
···
169
116
See [SETUP.md](./SETUP.md) for detailed configuration instructions.
170
117
171
118
**Backend** (`.env`):
119
119
+
172
120
```bash
173
121
GITHUB_CLIENT_ID=your_github_oauth_client_id
174
122
GITHUB_CLIENT_SECRET=your_github_oauth_client_secret
···
179
127
```
180
128
181
129
**Frontend** (`frontend/.env`):
130
130
+
182
131
```bash
183
132
PUBLIC_API_URL=http://localhost:8080
184
133
```
···
189
138
190
139
1. Configure environment variables in `.env`
191
140
2. Build and start containers:
141
141
+
192
142
```bash
193
143
make build
194
144
make up
195
145
```
196
146
197
147
3. Check logs:
148
148
+
198
149
```bash
199
150
make logs
200
151
```
201
152
202
153
4. Stop containers:
154
154
+
203
155
```bash
204
156
make down
205
157
```
···
240
192
241
193
## Contributing
242
194
243
243
-
Contributions are welcome! Please follow these guidelines:
244
244
-
245
245
-
1. Fork the repository
246
246
-
2. Create a feature branch
247
247
-
3. Make your changes
248
248
-
4. Add tests if applicable
249
249
-
5. Submit a pull request
195
195
+
I am not expecting contributions yet. I will have a guide here once I am ready.
250
196
251
197
## License
252
198
···
257
203
For detailed setup instructions, see [SETUP.md](./SETUP.md)
258
204
259
205
For issues and feature requests, please use [GitHub Issues](https://github.com/yourusername/markedit/issues)
260
260
-
261
261
-
## Acknowledgments
262
262
-
263
263
-
- [TipTap](https://tiptap.dev/) - Excellent WYSIWYG editor
264
264
-
- [go-git](https://github.com/go-git/go-git) - Pure Go git implementation
265
265
-
- [Astro](https://astro.build/) - Fast static site generator
266
266
-
- [shadcn/ui](https://ui.shadcn.com/) - Beautiful component library