Skip to content

Commit 981af04

Browse files
authored
Enhance README with comprehensive project details
Expanded README to provide detailed features, setup instructions, and project structure.
1 parent a55b044 commit 981af04

1 file changed

Lines changed: 356 additions & 12 deletions

File tree

README.md

Lines changed: 356 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,88 @@
11
# SimpleTools
22

3-
A compact suite of web tools crafted with SolidJS, Vite, and TypeScript.
3+
**SimpleTools** is a fast, privacy-first, browser-based productivity suite built with SolidJS and Vite.
4+
It provides a collection of lightweight tools designed to run entirely in the browser — no accounts, no tracking, no backend required.
45

5-
<sub> This README was just made by gpt until I actually make one. Not a super detailed one either <sub>
6-
## Features
7-
- Notebook: Markdown support, auto-save to IndexedDB, organized by notebooks and pages.
8-
- HTML Previewer: Real-time preview of HTML/CSS/JS.
9-
- Theming: Custom YAML-driven themes with live preview in Settings.
10-
- Lightning-fast AI-powered citation generator: Ultra-quick, faster than Scribr + MyBib (Powered by [Pollinations](https://pollinations.ai)
6+
Live site: [https://simpletools.lol](https://simpletools.lol)
117

12-
## Setup
13-
1. `npm install`
14-
2. `npm run dev`
8+
---
9+
10+
# Overview
11+
12+
SimpleTools is designed to be:
13+
14+
* ⚡ Extremely fast (Vite + SolidJS)
15+
* 🔒 Privacy-friendly (client-side storage, no accounts)
16+
* 🎨 Customizable (YAML-driven theme system)
17+
* 🧩 Modular (independent tool pages)
18+
* 📦 Deployable as static hosting
19+
20+
Everything runs in the browser using IndexedDB and modern web APIs.
21+
22+
---
23+
24+
# Who It's For
25+
26+
SimpleTools is built for:
27+
28+
* Students who need quick citations and organized notes
29+
* Developers who want a live HTML/CSS/JS preview tool
30+
* Writers who want markdown-based notebooks
31+
* Privacy-conscious users who don’t want cloud logins
32+
* Anyone who wants fast, no-sign-up browser tools
33+
34+
---
35+
36+
# Features
37+
38+
## 📓 Notebook Library
39+
40+
* Markdown support (via `marked`)
41+
* Organized by notebooks and pages
42+
* Auto-save to IndexedDB (Dexie)
43+
* Fully client-side
44+
* Persistent between sessions
45+
46+
## 🌐 HTML Viewer
47+
48+
* Real-time HTML/CSS/JS preview
49+
* Instant rendering
50+
* Safe isolated preview environment
51+
* Useful for prototyping and debugging snippets
52+
53+
## 📚 SimpleCite (AI Citation Generator)
54+
55+
* AI-powered citation generation
56+
* Designed to be fast and minimal
57+
* Generates academic references quickly
58+
* No account required
59+
60+
## 🧰 SimpleSuite
61+
62+
* Text utility suite
63+
* Lightweight transformation tools
64+
* Designed for speed and ease of use
65+
66+
## 🔗 TextLink
67+
68+
* Text encoding / transfer utilities
69+
* Compact sharing mechanisms
70+
71+
## 🎨 YAML Theme Engine
72+
73+
* Drop-in theme files
74+
* Live preview in settings
75+
* Full UI recoloring
76+
* Stored in local storage
77+
78+
Themes live in:
79+
80+
```
81+
public/themes/
82+
```
83+
84+
Example theme format:
1585

16-
## Themes
17-
Themes live in `public/themes/`. Drop in your own YAML file there, following the schema:
1886
```yaml
1987
name: MyTheme
2088
mainColor: "#hex"
@@ -24,3 +92,279 @@ textColor: "#hex"
2492
sidebarColor: "#hex"
2593
accentColor: "#hex"
2694
```
95+
96+
---
97+
98+
# How It Works
99+
100+
## Frontend Framework
101+
102+
* SolidJS for reactive UI
103+
* Vite for ultra-fast bundling
104+
* TypeScript for type safety
105+
106+
## Data Storage
107+
108+
* IndexedDB via Dexie (`src/db.ts`)
109+
* Auto-save system
110+
* No external database
111+
112+
## Theming System
113+
114+
* YAML files parsed using `js-yaml`
115+
* Theme state managed in `src/store/themeStore.ts`
116+
* Applied dynamically to CSS variables
117+
118+
## Service Worker
119+
120+
* `public/sw.js`
121+
* Registered via `src/swClient.ts`
122+
* Enables caching and offline behavior
123+
124+
## Routing
125+
126+
* `@solidjs/router`
127+
* Each tool lives under `src/pages/`
128+
129+
---
130+
131+
# Tech Stack
132+
133+
* SolidJS
134+
* Vite
135+
* TypeScript
136+
* Dexie (IndexedDB wrapper)
137+
* js-yaml
138+
* marked (Markdown parser)
139+
* lucide-solid (icons)
140+
* lz-string (compression)
141+
* jszip (exports / packaging)
142+
143+
---
144+
145+
# Requirements
146+
147+
To run locally you need:
148+
149+
* Node.js 18+
150+
* npm (or compatible package manager)
151+
152+
---
153+
154+
# Installation
155+
156+
Clone the repository:
157+
158+
```bash
159+
git clone https://github.com/your-username/simpletools.git
160+
cd simpletools
161+
```
162+
163+
Install dependencies:
164+
165+
```bash
166+
npm install
167+
```
168+
169+
Start development server:
170+
171+
```bash
172+
npm run dev
173+
```
174+
175+
The app will start on:
176+
177+
```
178+
http://localhost:5173
179+
```
180+
181+
---
182+
183+
# Build for Production
184+
185+
```bash
186+
npm run build
187+
```
188+
189+
This will:
190+
191+
* Compile TypeScript
192+
* Generate optimized static files in `dist/`
193+
194+
To preview production build locally:
195+
196+
```bash
197+
npm run preview
198+
```
199+
200+
---
201+
202+
# Deployment
203+
204+
SimpleTools is a fully static app and can be deployed anywhere.
205+
206+
## Option 1: Cloudflare Pages
207+
208+
1. Connect GitHub repository
209+
2. Build command:
210+
211+
```
212+
npm run build
213+
```
214+
3. Output directory:
215+
216+
```
217+
dist
218+
```
219+
4. Set Node version to 18+
220+
221+
## Option 2: Netlify
222+
223+
* Build command: `npm run build`
224+
* Publish directory: `dist`
225+
226+
## Option 3: Vercel
227+
228+
* Framework preset: Vite
229+
* Output directory: `dist`
230+
231+
## Option 4: Static Hosting
232+
233+
Upload contents of:
234+
235+
```
236+
dist/
237+
```
238+
239+
To any static server (NGINX, Apache, S3, etc.)
240+
241+
---
242+
243+
# Environment & Configuration
244+
245+
The app contains:
246+
247+
```
248+
public/env-ob.json
249+
```
250+
251+
Used for obfuscated environment configuration.
252+
253+
If modifying environment handling, see:
254+
255+
```
256+
src/utils/env.ts
257+
```
258+
259+
---
260+
261+
# Project Structure
262+
263+
```
264+
simpletools/
265+
266+
├── public/ # Static assets
267+
│ ├── themes/ # YAML themes
268+
│ ├── sw.js # Service worker
269+
│ ├── robots.txt
270+
│ ├── sitemap.xml
271+
│ └── site.webmanifest
272+
273+
├── src/
274+
│ ├── components/ # Reusable UI components
275+
│ │ ├── Sidebar.tsx
276+
│ │ └── SettingsModal.tsx
277+
│ │
278+
│ ├── pages/ # Individual tool pages
279+
│ │ ├── Notebook.tsx
280+
│ │ ├── HtmlViewer.tsx
281+
│ │ ├── SimpleCite.tsx
282+
│ │ ├── SimpleSuite.tsx
283+
│ │ └── TextLink.tsx
284+
│ │
285+
│ ├── store/ # State management
286+
│ │ └── themeStore.ts
287+
│ │
288+
│ ├── utils/ # Utilities
289+
│ │ ├── dataTransfer.ts
290+
│ │ └── env.ts
291+
│ │
292+
│ ├── db.ts # IndexedDB setup
293+
│ ├── swClient.ts # Service worker registration
294+
│ ├── App.tsx # Main app layout
295+
│ └── index.tsx # Entry point
296+
297+
├── vite.config.ts
298+
├── package.json
299+
├── tsconfig*.json
300+
├── _headers # Cache control rules
301+
└── LICENSE
302+
```
303+
304+
---
305+
306+
# Offline & Caching
307+
308+
* `_headers` defines aggressive static caching.
309+
* Service worker caches static assets.
310+
* IndexedDB ensures notebook persistence offline.
311+
312+
---
313+
314+
# Security & Privacy
315+
316+
* No required login
317+
* No backend database
318+
* All notes stored locally
319+
* No forced tracking
320+
* Analytics (if enabled) are privacy-focused
321+
322+
---
323+
324+
# License
325+
326+
This project is licensed under the **GNU Affero General Public License v3**.
327+
328+
Because this is AGPL:
329+
330+
* If you deploy a modified version publicly,
331+
* You must provide source access to users.
332+
333+
See `LICENSE` for full details.
334+
335+
---
336+
337+
# Contributing
338+
339+
1. Fork the repository
340+
2. Create a new branch
341+
3. Make changes
342+
4. Submit a pull request
343+
344+
Please keep changes minimal, modular, and performance-focused.
345+
346+
---
347+
348+
# Philosophy
349+
350+
SimpleTools is built around:
351+
352+
* Simplicity
353+
* Speed
354+
* Ownership of your data
355+
* Zero friction
356+
357+
No accounts. No nonsense. Just tools.
358+
359+
---
360+
361+
If you'd like, I can also generate:
362+
363+
* A shorter marketing-style README
364+
* A developer-focused README
365+
* A more technical architecture deep dive
366+
* A contribution guideline doc
367+
* A security policy
368+
* A Cloudflare Pages–optimized deployment guide
369+
370+
Just tell me which direction you want.

0 commit comments

Comments
 (0)